فهرست مطالب:

Detección De Rostros Con Arduino اینتل ادیسون: 8 مرحله
Detección De Rostros Con Arduino اینتل ادیسون: 8 مرحله

تصویری: Detección De Rostros Con Arduino اینتل ادیسون: 8 مرحله

تصویری: Detección De Rostros Con Arduino اینتل ادیسون: 8 مرحله
تصویری: CONTROL DE SERVOMOTOR POR MEDIO DE VISION ARTIFICIAL | Tutorial Arduino Python OpenCV 2024, جولای
Anonim
Detección De Rostros Con Arduino اینتل ادیسون
Detección De Rostros Con Arduino اینتل ادیسون

برای پردازش ، بررسی ، تجزیه و تحلیل و بررسی اطلاعاتی که در زمینه های مختلف انجام می شود ، اطلاعاتی را در نظر می گیرید. ser tratados por un ordenador. Actualmente، los mejores algoritmos para tales tareas se basan en redes neuronales convolucionales، las cuales generalmente processan miles at imágenes de rostros humanos mediante el uso de aprendizaje supervisado for entrenar el algoritmo que identificara el objeto buscado. Sin embargo، no vamos a meternos en tantos lios en este instructable y usaremos una biblioteca de código abierto de visión for computadora llamada openCV la cual gracias al arduo trabajo de la comunidad de cientificos y desarrolladores y mópoanta، con un rico set de carcaterisiticas que podemos implementar facilmente para la detección y reconocimiento de imágenes.

A pesar de que OpenCV se encuentra escrita en C ++ orientado a objetos، este soporta múltiples idiomas y nosotros vamos a usar Python como nuestro lenguaje de programación para realizar la detección de rostros. Típicamente una apeses، una apeses، una aplices، una aplices dea، apaises، una aplices de una، apaises، una aplices de una، apaisen، una aplices de una، apappen، una aplices de una، apappen، una aplicesen، una aplicesen un procesamiento y una imágen de salida. اینتل ادیسون نمی تواند از طریق ویدئو ، با استفاده از اسکریپت Python و nuestro PC رایانه خود را باز کند. Luego، después del funcionamiento exitoso del código en la PC، modificaremos el código para correrlo en el Edison. Las cosas se aclararán cuando hagamos la implementación práctica. Nuestro objetivo es realizar la detección de rostros y، si se detea، realizar alguna acción.

تدارکات

El material que Requerimos para llevar a cabo este tutorial es:

سخت افزار

  • 1 لپ تاپ/رایانه شخصی
  • 1 Placa Arduino اینتل ادیسون.
  • 2 کابل USB micro-B
  • 1 تلفن هوشمند با برنامه "وب کم".
  • 1 سرومو موتور sg 90.

نرم افزار

  • ابزار فلش اینتل Lite V5.2.4
  • PuTTy
  • FTP FileZilla
  • Imágen Yocto Poky (V25.5-15)
  • کد VS
  • پایتون 2.7
  • نسخه OpenCV 3.3.0
  • آشفته
  • Libreria MRAA
  • درایورهای دستگاه های ویندوز Intel Edison (Se descargan en cuanto se conecta la placa).
  • Archivos dll Windows (Pueda ser que te falten al momento de instalalar OpenCV en laptop).

مرحله 1: Conectando El Intel Edison a La PC

Conectando El Intel Edison a La PC
Conectando El Intel Edison a La PC
Conectando El Intel Edison a La PC
Conectando El Intel Edison a La PC
Conectando El Intel Edison a La PC
Conectando El Intel Edison a La PC

اطلاعات سخت افزاری Intel Edison lo podemos encontrar en tres presentaciones:

  • La placa de desarrollo creada for Intel compatible con Arduino (es la que usamos en este tutorial).
  • Una placa mini-breakout (con el móudlo ya montado) سازگار با con Expansion Board de Arduino.
  • El módulo Intel Edison en su estado nativo (Aquí Requerimos fabricar nuestra propia PCB).

شما می توانید از طریق سازگاری با Arduino debido a la flexibilidad و compatibilidad برای تعامل با سیستم عامل و سنسور استفاده کنید. El Intel Edison ، یک دستورالعمل متفاوت برای برنامه های کاربردی UNO یا MEGA مربوط به سیستم عامل ، و همچنین از طریق لینوکس Yocto است.

کابل های USB USB micro-B del Arduino Edison یک لپ تاپ جدید است. Fijate bien que el interrupor (marcado con el número 1 en la imágen)، este apuntando hacia abajo، si no se encuentra en dicha posición el Arduino Edison permanecerá apagado.

El conector USB micro-B marcado con el numero 2 به منظور استفاده از تغذیه 5V ، برنامه های کاربردی IDE Arduino ، سخنرانی/یادگیری و حافظه فلش و استفاده از اترنت و حمل و نقل USB.

El conector USB micro-B marcado con el número 3 برای استفاده از SSH a nuestro Edison استفاده کنید.

درایورهای برنامه ویندوز را در ویندوز خود نصب کنید. Posteriormente revisamos en el Admsinistrador de dispositivos de Windows si reconoce dos puertos:

  • El puerto COM virtual del Intel Edison
  • سریال El puerto COM del Intel Edison.

Habiendo revisado lo anterior، procedemos al siguiente paso، flashear el Intel Edison con la imagen de Linux.

مرحله 2: Flasheando El Intel Edison

Flasheando El Intel Edison
Flasheando El Intel Edison
Flasheando El Intel Edison
Flasheando El Intel Edison
Flasheando El Intel Edison
Flasheando El Intel Edison

با استفاده از این روش می توانید سیستم خود را در کامپیوتر تشخیص داده و از لینوکس استفاده کنید. برای استفاده از این فلش می توانید از Intel: Flash Tool Lite و el conector USB micro-B marcado con el numero 2 (ver paso anterior) استفاده کنید.

1. هر ابزار "Flash Tool Lite" را در اختیار کامپیوتر خود قرار دهید.

2. لطفاً در Examinar y busca el archivo.zip de la imagen de Linux que descargaste (edison-image-ww25.5-15.zip) کلیک کنید.

3. Después de hacer clicen "Start to flash"، la herramienta descomprimirá automáticamente el archivo y empezará a subir la imágen de Linux en el Intel Edison.

4. Se te pedirá desconectar y volver a conectar el cable USB cable 2، hazlo.

5. El rectangulito de carga debe de llegar al 100٪. ¡لیستو! Ya flasheaste tu Intel Edison.

به منظور نصب "Linux Yocto Poky" و پیکربندی تنظیمات اینتل ادیسون اقدام کنید.

مرحله 3: Configurando El Intel Edison (Primeros Pasos)

Configurando El Intel Edison (Primeros Pasos)
Configurando El Intel Edison (Primeros Pasos)
Configurando El Intel Edison (Primeros Pasos)
Configurando El Intel Edison (Primeros Pasos)
Configurando El Intel Edison (Primeros Pasos)
Configurando El Intel Edison (Primeros Pasos)

Después de flashear con éxito tu Edison، ahora configuraremos el dispositivo، para ello vamos a usar la terminal PuTTY. PuTTY از مشتریان SSH و telnet پشتیبانی می کند ، و برای Simon Tatham para la plataforma Windows از سیستم اصلی خود استفاده کنید. Vamos a usar la conexión serial aqui.

Antes de abrir la terminal de PuTTY، abre el "Administrador de dispositivos" y anota el número de puertorespondiente para el COM del Edison (بدون مجازی). Este valor lo usaremos para inicializar la comunicación.

Abre PUTTY y luego، selecciona el botón "Serial" و ingresa el número de puerto COM del Edison. Posteriormente anota la velocidad en baudios a la que se comunicara el Edison con tu equipo، escribe 115200. Finalmente presiona abrir para empezar la comunicación con el dispitivivo.

Una vez que estas en la terminal de PuTTY puedes ejecutar comandos para configurar tu Edison. Lo siguiente es un listado tareas que haremos en la consola para configurar el dispitivo:

  • پیکربندی بدون نام برای dispsotivo.
  • پیکربندی بدون ریشه برای تنظیم.
  • Conectar el Edison یک WIFI بدون قرمز است.

ورود به سیستم را وارد کنید. "root" y presiona "Enter" را وارد کنید. Veras "root@edison" lo cual indica que te encuentras en el Directorio root.

Ahora que ya te encuentras listo para teclear comandos ، escribe:

configure_edison -راه اندازی

Presiona enter y posteriormente escribe un password و nuevamente presiona enter. Luego te pedira un nombre para el dispitivo (que en realidad es un alias mas que un nombre) ، un nombre y da enter را وارد کنید.

Finalmente te pedira را بدون WIFI قرمز پیکربندی کنید. El móudlo escaneara el lugar y deteará las redes disponibles WIFI ، escrib el el numero de la opción de la red deteada la que te vas a conectar y posteriormente te pedirá el password de la red، escríbelo y presiona را وارد کنید.

¡لیستو! بله می توانید از WIFI استفاده کنید. Te mostrará una pantalla en el navegador con tu hostame y tu dirección IP. Asimismo puedes revisar más parámetros de tu conexión escribiendo:

ifconfig

Presiona را وارد کنید در اکثر شبکه های WIFI قرمز.

Ya estamos listo para configurar el Entorno de Desarrollo Integrado (IDE) برای empezar con la programación. در حال حاضر سرور… ¡پایتون!

مرحله 4: Usando Python Para Programar El Edison

Usando Python Para Programar El Edison
Usando Python Para Programar El Edison
Usando Python Para Programar El Edison
Usando Python Para Programar El Edison

El Edison se puede programar usando el IDE de Arduino ، guneh embargo aqui usaremos Python.

سخت افزار و پایتون و سخت افزار ، نیاز به استفاده از کتابخانه "MRAA" برای تعامل با دستگاه های GPIO. MRAA از کتابخانه های سطح شهر برای ارتباط با GPIO در GNU / Linux و در برنامه های کاربردی مناسب برای استفاده از لینوکس استفاده می کند. Para ello procederemos a instalarla.

En Putty، vete a la terminal y escribe (puedes ocupar el editor vi o nano por ejemplo) در یک فایل بایگانی در لینوکس /etc/opkg/base-feeds.conf به دنبال این هستید:

  • src/gz همه
  • src/gz edison
  • src/gz core2-32

Posteriormente guarda el archivo y actualiza la lista de paquetes escribiendo:

ارتقاء opkg

Ahora vamos a instalar git ، escribe:

opkg git را نصب کنید

Ahora vamos a instalar un repositorio de GitHib en el Edison:

git clone https://github.com/drejkim/edison-scripts.git ~/edison-scripts

Ahora añadiremos ed/edison-scripts al PATH:

  • echo 'export PATH = $ PATH: ~/edison-scripts' >> ~/.profile
  • منبع ~/. پروفایل

Ahora ejecutaremos los siguientes comandos:

  • resizeBoot.sh
  • installPip.sh
  • installMraa.sh

¡لیستو! در حال حاضر تنظیمات پیکربندی Python و el Edison را انجام می دهید. به منظور پیش بینی ejecutaremos el código anexado en este paso ("prueba.py") و استفاده از FileZilla. Para ello abriremos FileZilla en la PC (Lo debiste de haber descargado) y el el campo de "Servidor"، "usuario"، "contraseña" y "Puerto" escribimos la IP de tu edison (revisalo escribiendo ifcong en tu edison)، el usuario (ریشه) ، tu password y finalmente en el campo del puerto escribiremos 22 ، ya que es el que generalmente se emplea para conexiones SSH.

Una vez conectado transfiere el archivo "prueba.py" در پوشه "root".

Ahora escribe، desde tu Edison y en la ubicación "root" el comando siguiente para ejecutar el código.

python prueba.py

Debemos de observar como el LED 13 enciende 2 milisegundos. y se apaga 2 milisegundos.

¡Felicidades! Has ejecutado correctamente un código en phyton para tu Edison. در حال حاضر لیست برنامه های کاربردی برای ویرایش و استفاده از ادیسون و پایتون ، به منظور توصیف برنامه های پایتون و تشخیص آنها در رایانه شخصی…

مرحله 5: Detectando Rostros Con OpenCV

Detectando Rostros Con OpenCV
Detectando Rostros Con OpenCV
Detectando Rostros Con OpenCV
Detectando Rostros Con OpenCV

El Intel Edison بدون هیچ گونه ارتباطی با ویدئو ، به منظور پیش بینی این که چگونه می توانم از برنامه های پایتون استفاده کنم و کار کنم و از طریق کامپیوتر و پس از آن به مهاجرت ادیسون کمک کنم.

Nuestro objetivo es realizar la detección de rostros y، si se detea، realizar alguna acción.

Antes de empezar necesitamos tener instalado Python y OpenCv en nuestras computadora. Por lo que vamos a realizar estos pasos en nuestra PC:

  1. برنامه Python 2.7 را در رایانه شخصی خود بارگیری کنید
  2. Descargar OpenCV نسخه 3.3.0
  3. می توانید فایل های OpenCv و C را اضافه کنید:
  4. Instala pip، mas info en el siguiente enlace
  5. Instala numpy escribiendo el comando de python -m pip install --user numpy

Para verificar que todo funciona correctamente escribe en la terminal de python de tu PC y da enter:

  • وارد کردن بی حساب
  • واردات cv2

Ambos comandos respectivamente deben de responder ningún mensaje de error (osea nada) ، نشان می دهد که در کتابخانه ها به سادگی وارد شده تصحیح می شود.

Ahora descarga el archivo "3_detectaRostrosOjos.py" ، در ترمینال Python en tu PC و corre el programa. این برنامه به شما امکان می دهد وب کم را از طریق PC و detector rostros y ojos tal y como en la imágen ، پس از آن برنامه خود را با تجربه ESC اجرا کنید.

Si lo lograste، ¡felicidades! Pasemos al siguiente paso que es correr este código desde nuestro Intel Edison y activar un motor a pasos cada vez que detee un rostro.

مرحله 6: Antes De Llegar Al Código En Edison… ¡Teoria De Funcionamiento

Antes De Llegar Al Código En Edison… ¡Teoria De Funcionamiento!
Antes De Llegar Al Código En Edison… ¡Teoria De Funcionamiento!

La detección de rostros es un caso muy específico del reconocimiento de objetos. Hay muchos اطلاعاتی را در مورد صورت مجدد صورت ایجاد می کند. Sin embargo، vamos a discutir los dos mas comunes:

Segmentación basada en color: En esta técnica، la cara se segmenta según el color de la piel. برای ورود به سیستم با استفاده از فرمت های رنگی RGB ، می توانید از فرمت های HSV یا YIQ استفاده کنید. از این رو به بعد ، می توانم از این طریق به رنگ دلخواه پیل و رنگ پوست را دریافت کنم. La razón detrás del uso de otros modelos de color que no sean RGB es que a veces RGB no puede dalls los colores de la piel در شرایط مختلف برای luz. Esto mejora signativamente al usar otros modelos de color. Nosotros no usaremos este algoritmo

تشخیص مبتنی بر ویژگی: Esta es la técnica que si usaremos para este instruction. En esta técnica buscamos ciertas características، y en base a eso hacemos el reconocimiento. El empleo de "haar feature-based cascade" para la detección de rostros es un método eficaz de detección de objetos propuesto en Michael yu arto yu artoo Paulo " تشخیص سریع اشیاء با استفاده از آبشار تقویت شده از ویژگی های ساده "در آگوست 2001. به منظور بررسی عملکردهای آبشار" از طریق استفاده از عکس های مثبت و منفی می توانید از آنها استفاده کنید. El algoritmo Requirere de muchas imágenes positivas (en nuestro caso estas son imágenes de caras) y muchas imágenes negativas (que no contienen imágenes de caras). A partir de ello vamos a entrenar el modelo para extraer las características de cada imágen. Para este propósito ، با استفاده از "ویژگی هار" که از آن استفاده می شود ، استفاده می شود. Cada una de las figuras es un valor único obtenido al restar la suma de píxeles debajo de un rectángulo blanco de la suma de píxeles debajo de un rectángulo negro. Los "haar features" deben estar entrenados para la cara، ojos، sonrisa و غیره La biblioteca OpenCV contiene un conjunto de clasificadores predefinidos. Estos están disponibles en la carpeta C: / opencv / build / etc / haarcascades

مرحله 7: شناسایی Rostros Con OpenCV و Intel Edison

Detectando Rostros Con OpenCV و Intel Edison!
Detectando Rostros Con OpenCV و Intel Edison!
Detectando Rostros Con OpenCV و Intel Edison!
Detectando Rostros Con OpenCV و Intel Edison!

Vamos a instalar la biblioteca numpy y openCV en el Intel Edison ، برای آشنایی بیشتر با ترمینال del Edison:

  • آپدیت opkg
  • ارتقاء opkg
  • opkg python-numpy python-opencv را نصب کنید

Verifica que todo se haya instalado correctamente. Para ello ve a la terminal de Python desde tu arduino Edison y escribe:

  • وارد کردن بی حساب
  • واردات cv2

اگر می خواهید از این گزارش استفاده کنید ، نمی توانید از آن استفاده کنید ، بنابراین می توانید از راه اندازی آن استفاده کنید.

Ahora vamos a configurar la fuente de donde el donde el Intel Edison leera los rostros. برنامه کاربردی "وب کم" IP را بارگیری کنید. از قبل به برنامه "Webcam Ajustes de IP"/"Preferencias de video"/"Resolución de las fotos" y dejamos el parámetro a 640x480 پیوستید. به عنوان یک محتوا می توانید از Intel Edison simplemente no está destinado for el procesamiento de imágenes debido a la poca cantidad de RAM que posee (1GB RAM) استفاده کنید.

برنامه "IP Webcam" را در پایین "Iniciar servidor" کلیک کنید. Ahora، desde tu smartphone debes de poder ver la camara encendida (como si fuera a tomar foto) y una dirección IP abajito. esc dicha dirección IP en tu navegador web de la PC y deberas ver el video in vivo ، en mi caso salgo yo sentado trabajando.

Ahora descarga el código "tres.py" y el archivo "haarcascade_frontalface_default.xml" (Los dos códigos los puedes encontrar en los archivos del paso actual) و در رایانه شما. از FileZilla برای عبور از ambos códigos a una misma localidad de tu Edison (به عنوان مثال در ریشه پوشه) و در python con el comando استفاده کنید:

python tres.py

Desmin la terminal de tu Edison debes de ver un mensaje "Dame la dirección IP" aquí inserta la IP que te da "IP Webcam" (es la misma que escribiste en el navegador de tu PC para conectarte) y dale enter. در صورت تمایل به بررسی "Rostro deteco" در ترمینال Edison y "Rostro no deteco" بر اساس یک وب کم از طریق تلفن همراه ، می توانید از آن استفاده کنید. Asimismo si se detea un rostro tu Intel Edison debe de hacer girar el servomotor.

توصیه شده: