ዝርዝር ሁኔታ:

Detección De Rostros Con Arduino Intel Edison: 8 ደረጃዎች
Detección De Rostros Con Arduino Intel Edison: 8 ደረጃዎች

ቪዲዮ: Detección De Rostros Con Arduino Intel Edison: 8 ደረጃዎች

ቪዲዮ: Detección De Rostros Con Arduino Intel Edison: 8 ደረጃዎች
ቪዲዮ: Detección y seguimiento de rostros con OpenCV + Python + Arduino Uno 2024, ሀምሌ
Anonim
ዲቴሲሲዮን ዴ ሮስትሮስ ኮን አርዱዲኖ ኢንቴል ኤዲሰን
ዲቴሲሲዮን ዴ ሮስትሮስ ኮን አርዱዲኖ ኢንቴል ኤዲሰን

El procesamiento de imágenes o la visión por computadora es uno de esos campos que requiere enormes cantidades de investigación debido a que involucra métodos para adquirir, procesar, analizar y comprender las imágenes del mundo real con el fin de producir información numérica o simb ser tratados por un ordenador. በተጨባጭ ፣ ሎስ mejores algoritmos para tales tareas se basan en redes neuronales convolucionales ፣ las cuales generalmente procesan miles de imágenes de rostros humanos mediante el uso de aprendizaje supervisado para entrenar el algoritmo que identificara el objeto buscado. ምንም እንኳን እገዳው የለም ፣ ምንም ነገር የለም። con un rico set de carcaterisiticas que podemos implementar facilmente para la detección y reconocimiento de imágenes.

በፒሲሲቪ ሲ ሲ ሲ ሲ ኦን ኦንቶዶዶ አንድ ኦብጀቶስ ፣ ፒሲቶን ኮምፕሌክስ ኢሞማስ ኖሶትሮስ ቫምሶስ ፒዛን ኮሞ nuestro lenguaje de programación para realizar la detección de rostros. un procesamiento y una imágen de salida. Intel Edison no tiene una interfaz de video, por lo que ejecutaremos el script script Python en nuestro PC. ሉጎጎ ፣ 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 አጋዥ ስልጠና:

ሃርድዌር

  • 1 ላፕቶፕ/ፒሲ።
  • 1 ፕላካ አርዱዲኖ ኢንቴል ኤዲሰን።
  • 2 ኬብሎች ዩኤስቢ ማይክሮ-ቢ።
  • 1 ስማርትፎን ከላ መተግበሪያ “አይፒ ዌብካም”።
  • 1servomotor sg 90.

SOFTWARE

  • ኢንቴል ፍላሽ መሣሪያ Lite V5.2.4
  • PuTTy
  • FileZilla ኤፍቲፒ
  • ኢማገን ዮክቶ ፖኪ (V25.5-15)
  • ቪኤስ ኮድ
  • ፓይዘን 2.7
  • OpenCV Versión 3.3.0
  • ጎበዝ
  • Libreria MRAA
  • Drivers de Windows para el módulo Intel Edison (Se descargan en cuanto se conecta la placa)።
  • በዊንዶውስ (edaዳ ሰርፕሎፕ ኦፕን ሲፒኤን እና ላፕቶፕ ውስጥ)።

ደረጃ 1: Conectando ኤል Intel ኤዲሰን እና ላ ፒሲ

Conectando ኤል ኢንቴል ኤዲሰን እና ላ ፒሲ
Conectando ኤል ኢንቴል ኤዲሰን እና ላ ፒሲ
Conectando ኤል ኢንቴል ኤዲሰን እና ላ ፒሲ
Conectando ኤል ኢንቴል ኤዲሰን እና ላ ፒሲ
Conectando ኤል Intel ኤዲሰን እና ላ ፒሲ
Conectando ኤል Intel ኤዲሰን እና ላ ፒሲ

ኤል ሞዱሎ ዴ ሃርድዌር Intel ኤዲሰን ሎ ፖሞሞስ encontrar en tres presentaciones:

  • ላ placa de desarrollo creada por Intel ተስማሚ con Arduino (es la que usamos en este tutorial)።
  • Una placa mini-breakout (con el móudlo ya montado) ተኳሃኝ ኮን ላ ማስፋፊያ ቦርድ ደ አርዱinoኖ።
  • ኤል ሞዱሎ ኢንቴል ኤዲሰን en su estado nativo (Aquí requerimos fabricar nuestra propia PCB)።

ዮ usare la placa de expansión ተስማሚ con Arduino debido a la flexibilidad y compatibilidad para interactuar con otros actuadores y sensores. ኤል ኢንቴል ኤዲሰን ፣ አንድ ዲፔሬሺያ ዴ ላ ኦራስ ፕላስካስ ዴ አርዱinoኖ como UNO o MEGA corre un sistema operativo, en este caso una imágen Linux llamada Yocto.

Tal y como se muestra en la imágen conectaremos los dos ኬብሎች USB micro-B del Arduino Edison a nuestra laptop. 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.

ኤል ኮኔክተር ዩኤስቢ ማይክሮ-ቢ ማርካዶ ኮን ኤል ቁጥር 2 se utiliza para alimentación de 5V, programación utilizando el IDE Arduino, lectura/escritura en la memoria flash y uso de Ethernet a través de USB.

El conector USB micro-B marcado con el número 3 se utiliza para acceder por SSH a nuestro ኤዲሰን።

Una vez conectado dejemos que se instalen los drivers de Windows. የኋላ ማስታወቂያዎች በ ‹ኤል አድሚሲኒስትራዶር ዴ ዲስፖዚቲቭስ ዴ ዊንዶውስ› ዳስ ertoርቶስን መልሶ ለማግኘት ፦

  • ኤል ፖርቶ ኮም ምናባዊ ዴል ኢንቴል ኤዲሰን
  • ኤል ፖርቶ ተከታታይ COM ዴል ኢንቴል ኤዲሰን።

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

ደረጃ 2 - ፍላሸንዶ ኤል ኢንቴል ኤዲሰን

ፍላሸንዶ ኤል ኢንቴል ኤዲሰን
ፍላሸንዶ ኤል ኢንቴል ኤዲሰን
ፍላሸንዶ ኤል ኢንቴል ኤዲሰን
ፍላሸንዶ ኤል ኢንቴል ኤዲሰን
ፍላሸንዶ ኤል ኢንቴል ኤዲሰን
ፍላሸንዶ ኤል ኢንቴል ኤዲሰን

Una vez que tu dispositivo esta correctamente detectado por la PC, ዕዳዎች ከሊኑክስ ጋር ተገናኝተዋል። ፓራ ኢስቶ usaremos la herramienta flash provista por Intel: Flash Tool Lite y el conector USB micro-B marcado con el numero 2 (ver paso anterior)።

1. Abre la herramienta “Flash Tool Lite” y conecta tu dispositivo a la PC.

2. Haz ጠቅ en Examinar y busca el archivo.zip de la imagen de Linux que descargaste (edison-image-ww25.5-15.zip)።

3. በ “ብልጭታ ጀምር” ን ጠቅ ያድርጉ ፣ ላ 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. ኤል ሬክታንግሉቶ ደ ካርጋ ደቤ ደ ልጋር አል 100%። ¡ዝርዝር! እሱ ኢንቴል ኤዲሰን ብልጭ ድርግም ይላል።

“ሊኑክስ ዮክቶ ፖኪ” ን ያካተተ ኢንቴል ኤዲሰን እንደመሆኑ መጠን አhoራ።

ደረጃ 3: Configurando ኤል ኢንቴል ኤዲሰን (Primeros Pasos)።

Configurando ኤል Intel ኤዲሰን (Primeros Pasos)።
Configurando ኤል Intel ኤዲሰን (Primeros Pasos)።
Configurando ኤል Intel ኤዲሰን (Primeros Pasos)።
Configurando ኤል Intel ኤዲሰን (Primeros Pasos)።
Configurando ኤል Intel ኤዲሰን (Primeros Pasos)።
Configurando ኤል Intel ኤዲሰን (Primeros Pasos)።

በኤዲሰን ፣ በኤችአይአይአአአአአአአአአአአአአአአአአአአ አአአአአአአአአአአአአአአአአአአአአአአአአአአአአአአአአአአአአአአአአአአአአአአአአአአአአአደንዝ፣ በድምሩ ላይ የምንገፋፋዉን ተርሚናል PuTTY። PuTTY es un cliente SSH y telnet, desarrollado originalmente por 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 puerto correspondiente para el COM del Edison (no el virtual)። Este valor lo usaremos para inicializar la comunicación.

Abre PUTTY y luego, selecciona el botón "Serial" e 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 dispositivo.

Una vez que estas en la terminal de PuTTY puedes ejecutar comandos para configurar tu ኤዲሰን። ሎ ሲጉኢንቲ ኢስ ኦን ላስትዶ ትሬስስ ቶ ሃራሞስ ኤን ላ ኮንሶላ para configurar el dispositivo:

  • Configurar un nombre para el dispsotivo.
  • Configurar una contraseña para root.
  • Conectar el Edison a una red WIFI.

Cuando te conectas por primera vez se te pedira hace log in. "Root" y presiona "Enter" ን ይጻፉ። ቬራስ "root@edison" lo cual meaninga que te encuentras en el directorioio root.

Ahora que ya te encuentras listo para teclear comandos ፣ ይመዝገቡ ፦

configure_edison --setup

Presiona enter y posteriormente የይለፍ ቃሉን ይሰጥዎታል እና አዲስ መግቢያ ያስገቡ። ሉኦጎ ቴ ፔራራ አንድ ቁጥር ለፓል ኤል ዲስፖሲቶቮ (que en realidad es un alias mas que un nombre) ፣ un nombre y da enter ያስገቡ።

የመጨረሻውን ቀይ ቀለም WIFI ያዋቅሩ። El móudlo escaneara el lugar y deteará las redes WIFI disponibles, el numero number 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 enter y te mostrará los parámetros de tu red WIFI ን ያስገቡ።

Ya estamos listo para configurar el Entorno de Desarrollo Integrado (IDE) para empezar con la programación. En nuestro caso será… ¡Python!

ደረጃ 4 - Usando Python Para Programar ኤል ኤዲሰን

ኡሳንዶ ፓይቶን ፓራ ፕሮግራማር ኤል ኤዲሰን
ኡሳንዶ ፓይቶን ፓራ ፕሮግራማር ኤል ኤዲሰን
ኡሳንዶ ፓይቶን ፓራ ፕሮግራማር ኤል ኤዲሰን
ኡሳንዶ ፓይቶን ፓራ ፕሮግራማር ኤል ኤዲሰን

ኤል ኤዲሰን pu prog ፐሮግራም usando el IDE de Arduino, sin embargo aqui usaremos Python.

Al tratar con Python y hardware, necesitamos usar la biblioteca "MRAA" para interactuar con los pines GPIO. MRAA es un biblioteca esqueleto de bajo nivel para comunicarse con los GPIO's en plataformas GNU / Linux y es ተስማሚ con casi todas las placas basadas en Linux utilizadas. ፓራ ኢሎ ቅደም ተከተሎች እና ጭነቶች።

ኤን tyቲ ፣ ቀደም ሲል ተርሚናል ያስቀመጡት (puedes ocupar el editor vi o nano por ejemplo) en el archivo que gestiona los paquetes de Linux /etc/opkg/base-feeds.conf lo siguiente:

  • src/gz ሁሉም
  • src/gz edison
  • src/gz core2-32

የድህረ -ገፅ ጓርዳ ኤል አርሲቮ እና አክታሊዛ ላ ሊስታ ዴ ፓኬቲስ እስክሪቢንዶ

opkg ማሻሻል

አሆራ ቫሞስ ኢንስታላር ጊት ፣ ይመዝገቡ

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 ~/edison-scripts al PATH

  • አስተጋባ 'PATH = $ PATH: ~/edison-scripts' >> ~/.profile
  • ምንጭ ~/. መገለጫ

አሆራ ejecutaremos los siguientes comandos:

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

¡ዝርዝር! Ya debemos de tener configurado correctamente Python en el Edison. Para probar lo anterior ejecutaremos el código anexado en este paso ("prueba.py") usando FileZilla. Para ello abriremos FileZilla en la PC (Lo debiste de haber descargado) y en el campo de "Servidor", "usuario", "contraseña" y "Puerto" escribimos la IP de tu edison (revisalo escribiendo ifcong en tu edison) ፣ ኤል usuario (root) ፣ 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" al አቃፊ "ስር"።

አሆራ ይመዘገባሉ ፣ desde tu ኤዲሰን ያ ኤ ላ ላቡካሲዮን “ሥር” ኤል ኮማንዶ ሲጉኢንተ ለፓራ ejecutar el código።

ፓይዘን prueba.py

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

¡ፍሊሲዳዴስ! Ejecutado correctamente un código en phyton para tu ኤዲሰን አለው። ኤዲሰን ኡስታን ፓርቶን ፣ ፔሮ አንቴስ እስክሪብሬሞስ እና ፕሮባሬሞስ ኤል ኮዲጎ ዴ ፓይቶን ለፔስትራስተር ሮስቶሮስ በ nuestra ፒሲ…

ደረጃ 5 - Detectando Rostros Con OpenCV

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

El Intel Edison no tiene una interfaz de salida de video, por lo que para probar que el código que escribiremos en Python funciona a la perfección probaremos el código para correr en nuestra PC y posteriormente lo migraremos al 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. በፒ.ሲ.ፒ.

  1. ፓይዘን 2.7 ን በ nuestra ፒሲ ላይ ያውርዱ
  2. አውርድ OpenCV versión 3.3.0
  3. በ C: / opencv / build / python / 2.7 / x86 y copia el arhivo cv2.pyd al directorio de python C: / Python27 / Lib / የጣቢያ-ጥቅሎች።
  4. Instala pip ፣ mas info en el siguiente enlace
  5. Instala numpy escribiendo el comando de python -m pip install -የተጠቃሚ ቁጥር

ፓራ verificar que todo funciona correctamente ይመዝገቡ ወደ ተርሚናል ዴ ፓይዘን ዴ ቱ ፒሲ እና ይግቡ:

  • አስደንጋጭ አስመጣ
  • ማስመጣት cv2

Ambos comandos respectivamente deben de responder ningún mensaje de error (osea ናዳ) ፣ indicando que las bibliotecas se han importado correctamente።

Ahora descarga el archivo "3_detectaRostrosOjos.py" ፣ abre una terminal de Python en tu PC y corre el programa። Este programa vamos debe de activar la webcam de tu PC y detear rostros y ojos tal y como en la imágen, pasa salir del programa presiona la tecla ESC.

እነሆ 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 - አንቴስ ደ ሊጋር አል ኮዲጎ ኤ ኤዲሰን… ¡ቴኦሪያ ዴ Funcionamiento

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

ላ detección de rostros es un caso muy específico del reconocimiento de objetos. Hay muchos enfoques para el reconocimiento facial. ኃጢአት መከልከል ፣ ሎስ አንዶስ ሎስ ዶስ ማስ comunes

Segmentación basada en color: En esta técnica, la cara segmenta según el color de la piel. ላ entrada de este algoritmo suele ser una imagen en formato de colores RGB, mientras que en la etapa de procesamiento la cambiamos a los formatos HSV o YIQ. En este proceso, cada píxel es clasificado como un píxel del color de la piel o un píxel sin color de la piel. ላ razón detrás del uso de otros modelos de color que no sean RGB es que a veces RGB no puede distinguir los colores de la piel en diferentes condiciones de luz. Esto mejora meansativamente al usar otros modelos de color. ኖሶትሮስ ምንም usaremos ግምት algoritmo

በባህሪያት ላይ የተመሠረተ እውቅና: Esta es la técnica que si usaremos para este instructable. En esta técnica buscamos ciertas características, y en base a eso hacemos el reconocimiento. El empleo de “haar በባህሪያት ላይ የተመሠረተ ካሴድ” para la detección de rostros es un método eficaz de detección de objetos propuesto por Paul Viola y Michael Jones en su artículo” የተሻሻለ ቀለል ያሉ ባህሪያትን በመጠቀም ፈጣን ነገርን መለየት”del año 2001. Es un enfoque basado en el aprendizaje automático en donde la“cascade function”se entrena contra un conjunto de imágenes positivas y negativas. El algoritmo requiere 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, se utilizan las “haar feature” que se muestran en la figura. Una una “haar features” deben estar entrenados para la cara, ojos, sonrisa, etc. ላ biblioteca OpenCV contiene un conjunto de clasificadores predefinidos. Estos están disponibles en la carpeta C: / opencv / build / etc / haarcascades።

ደረጃ 7: Rostros Con OpenCV En Intel Edison ን ፈልግ

Detectando Rostros Con OpenCV En Intel ኤዲሰን!
Detectando Rostros Con OpenCV En Intel ኤዲሰን!
Detectando Rostros Con OpenCV En Intel ኤዲሰን!
Detectando Rostros Con OpenCV En Intel ኤዲሰን!

Vamos a instalar la biblioteca numpy y openCV en el Intel Edison, para ello escribimos los siguientes comandos desde la terminal del ኤዲሰን:

  • opkg ዝማኔ
  • opkg ማሻሻል
  • opkg python-numpy python-opencv ጫን

Verifica que todo se haya instalado correctamente. ፓራ ኤሎ ve ላ ላ ተርሚናል ዴ ፒቶን ዴዴ ቱ አርዱዲኖ ኤዲሰን እና ይመዝገቡ-

  • አስደንጋጭ አስመጣ
  • ማስመጣት cv2

Si cada uno de estos comandos no nos reporta ningún mensaje, todo se encuentra instalado a la perfección.

Ahora vamos a configurar la fuente de video de donde el Intel ኤዲሰን ሊራ ሎስ ሮስትሮስ። “አይ ፒ ዌብካም” መተግበሪያን በስማርትፎን ማውረድ። Hecho lo anterior accede a la app y ve a "Ajustes de IP Webcam"/"Preferencias de video"/"Resolución de las fotos" y dejamos el parámetro a 640x480. በዚህ ጉዳይ ላይ ኢንቴል ኤዲሰን ቀለል ያለ መረጃ የለም።

በዚህ መተግበሪያ ውስጥ ‹አይፒ ዌብካም› ን ዝቅ በማድረግ ‹Iniciar servidor ›ን ጠቅ ያድርጉ። Ahora, desde tu smartphone smartphone debes de poder ver la camara encendida (como si fuera a tomar foto) y una dirección IP abajito. Dicha dirección IP en tu navegador web de la PC y deberas ver el video en 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 ተጨባጭ) en tu PC. Usa FileZilla para pasar ambos códigos a una misma localidad de tu Edison (por ejemplo en el አቃፊ ሥር) y ejecuta el código de python con el comando:

ፓይዘን tres.py

የኤስዲሰን ዕዳዎች ተርሚናል ዴ ዴ ላ ላ ዲሬሲሲዮን አይፒ (IP IP te te) “IP Webcam” (es la misma que escribiste en el navegador de tu PC para conectarte) y dale enter. እንደ ቴስ እስፕሪቶቶ ዕዳዎች ዴ ቬል ኤል ሜንሴጄ “ሮስትሮ ዲታዶ” በኤን ተርሚናል ዲ ቱ ኤዲሰን እና “ሮስትሮ ምንም ዳታዶዶ” በመሰረቱ አንድ ፒኖዎች un ሮስትሮ እና በዌብካም ደ ቱ ሴሉላር። Asimismo si se detea un rostro tu Intel Edison debe de hacer girar el servomotor.

የሚመከር: