Satura rādītājs:

Atklājiet De Rostros Con Arduino Intel Edison: 8 soļi
Atklājiet De Rostros Con Arduino Intel Edison: 8 soļi

Video: Atklājiet De Rostros Con Arduino Intel Edison: 8 soļi

Video: Atklājiet De Rostros Con Arduino Intel Edison: 8 soļi
Video: SEMINARIO: APLICACIÓN DE ARDUINO PARA LA MEDICINA 2024, Novembris
Anonim
Atklājiet De Rostros Con Arduino Intel Edison
Atklājiet De Rostros Con Arduino Intel Edison

El processamiento de imágenes o la visión por computadora es uno de esos campos que requiere enormes cantidades de izmeklēšana debido a que involucra metétos para adquirir, processar, analizar y comprender las imágenes del mundo real con el fin de producir informationción numérica o sime poed ser tratados por un ordenador. Faktiski, los mejores algoritms para tales tareas se basan en redes neuronales convolucionales, las cuales generalmente processa miles de imágenes de rostros humanos mediante el uso de aprendizaje supervisado para entrenar el algoritmo que identifara 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 por computadora llamada OpenCV la cual gracias al arduo trabajo de la comunidad de cientificos y desarrolladores que aportan, factizanód y mantienen el mantra con un rico set de carcaterisiticas que podemos implementar facmente para la detección y reconocimiento de imágenes.

A pesar de que OpenCV encuentra escrita en C ++ orientated to objetos, este soporta pasttiples idiomas y nosotros vamos a usar Python como nuestro lenguaje de programción para realizar la detection de rostros. un procesamiento y una imágen de salida. Intel Edison nav pieejams video saskarnē, izmantojot Python skriptu un datoru. Reado, después del funcionamiento exitoso del código en la PC, modificaremos el código para korerlo en elison. Las cosas se aclararán cuando hagamos la implementación práctica. Nuestro objetivo es realizar la detección de rostros y, si se detecta, realizar alguna acción.

Piegādes

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

Aparatūra

  • 1 klēpjdators/dators.
  • 1 Placa Arduino Intel Edison.
  • 2 kabeļi USB micro-B.
  • 1 viedtālruņa lietotne "IP Webcam".
  • 1 servomotors sg 90.

PROGRAMMATŪRA

  • Intel Flash rīks Lite V5.2.4
  • PuTTy
  • FileZilla FTP
  • Imágen Yocto Poky (V25.5-15)
  • VS kods
  • Python 2.7
  • OpenCV versija 3.3.0
  • Rupjš
  • Libreria MRAA
  • Windows draiveri, kas paredzēti Intel Edison (Se descargan en cuanto se conecta la placa) metodēm.
  • Windows arhīvs (Pueda ser que te falten al momento de instalar OpenCV en tu laptop).

1. solis: Conectando El Intel Edison un La PC

Conectando El Intel Edison un La PC
Conectando El Intel Edison un La PC
Conectando El Intel Edison un La PC
Conectando El Intel Edison un La PC
Conectando El Intel Edison un La PC
Conectando El Intel Edison un La PC

Intel Edison aparatūras metodes, kas paredzētas encontrar en tres prezentācijām:

  • La placa de desarrollo izveidots ar Intel saderīgu Arduino (es la que usamos en este tutorial).
  • Ar placa mini-breakout (con el móudlo ya montado) saderīgs ar paplašināšanas dēli Arduino.
  • Intel Edison en su estado nativo (Aquí requerimos fabricar nuestra propia PCB) veids.

Jūs izmantojat plašu plašumu, kas ir saderīgs ar Arduino debido, elastību un saderību, lai mijiedarbotos ar otras darbības un sensora. In Intel Edison, Arduino como places de unere como UNO vai MEGA kore un system operativo, en este caso una imagen Linux llamada Yocto.

Tālāk ir redzams, kā savienot kabeļus USB micro-B del Arduino Edison un nuestra klēpjdators. Fantu 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.

Izmantojot USB micro-B marcado, 2 reizes tiek izmantots 5V, IDE Arduino programmas lietojums, lekcija/eskritūra un atmiņas zibspuldze, kā arī Ethernet savienojums ar USB.

Šajā USB micro-B marcado savienotājā ir 3 iespējas, kas pieejamas, lai piekļūtu SSH un jaunākajam Edisonam.

Una vez conectado dejemos que se instalen los drivers de Windows. Posteriormente revisamos en el Admsinistrador de Windows un reconoce dos puertos:

  • Puerto COM virtuālais Intel Edison
  • Iepriekšējais seriālais COM no Intel Edison.

Iepazīstieties ar priekšējo versiju, veiciet visas darbības, zibspuldzi un Intel Edison, izmantojot Linux attēlu.

2. solis: 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

Ja jums ir jāpārbauda, vai dators ir labots, tas tiek parādīts Linux displejā. Lai izmantotu zibatmiņu, kas pieejama Intel: Flash Tool Lite un savienotājs USB micro-B marcado con el numero 2 (ver paso anterior).

1. Abre la herramienta "Flash Tool Lite" un datora savienojums.

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

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

4. Noskatieties pedāli un atvienojiet konektoru ar USB kabeli 2, hazlo.

5. El taisnstūris de carga debe de llegar al 100%. Listo! Ir zibspuldze Intel Edison.

Ahora que ya tienes ir instalējis attēlu "Linux Yocto Poky", lai parādītu Intel Edison konfigurētāju.

3. darbība. Konfigurējiet El Intel Edison (Primeros Pasos)

Intel Edison konfigurācija (Primeros Pasos)
Intel Edison konfigurācija (Primeros Pasos)
Intel Edison konfigurācija (Primeros Pasos)
Intel Edison konfigurācija (Primeros Pasos)
Intel Edison konfigurācija (Primeros Pasos)
Intel Edison konfigurācija (Primeros Pasos)

Zibspuldzes ekrāns Edisonā, ahora configuraremos el dispositivo, para ello vamos and usar la terminal PuTTY. PuTTY ir klienta SSH un telnet tīkls, oriģināls Simona Tathama paraugs Windows platformai. Vamos a usar la conexión serial aqui.

Antes de abrir la terminal de PuTTY, abre el "Administrador de dispositivos" un anota el número de puerto korespondence para el COM COM Ed Edison (no el virtual). Este valor lo usaremos para inicializar la comunicación.

Abre PUTTY y luego, atlasiet "Serial" bototiku un izlasiet COM del Edison puerto. 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 Edison. Lo siguiente es un listado tareas que haremos en la consola para configurar el dispositivo:

  • Konfigurētājs un nombre para el dispsotivo.
  • Configurar una contraseña par sakni.
  • Conectar el Edison un sarkans WIFI.

Piesakieties, lai pieslēgtos. Ierakstiet "root" un nospiediet "Enter". Veras "root@edison" lo cual signa que te encuentras en el directorio root.

Ahora que ya te encuentras listo para teclear comandos, raksturojiet:

configure_edison -iestatīšana

Ievadiet un pēc tam ievadiet paroli un nuevamente ievadiet. Luego te pedira un nombre para el dispositivo (que en realidad es un alias mas que un nombre), escribe un nombre y da enter.

Pēdējā pedira konfigurācija bez sarkanā WIFI. El móudlo escaneara el lugar y detectará las redes WIFI disponibles, ecribe el number de la opción de la red detectada la que te vas a conectar y postteriormente te pedirá el password de la red, escríbelo y presiona enter.

Listo! Tas ir parādīts, izmantojot WIFI savienojumu. Te mostrará una pantalla en el navegador con tu hostame y tu directcción IP. Asimismo puedes revisar más parámetros de tu conexión escribiendo:

ifconfig

Ievadiet savu Wi -Fi modernajā los parámetros.

Ja vēlaties izveidot sarakstu ar Desarrollo Integrado (IDE) konfigurācijas programmu, programmēšanas programmā. En nuestro caso será… ¡Python!

4. solis: Usando Python Para Programar El Edison

Usando Python programmā El Edison
Usando Python programmā El Edison
Usando Python programmā El Edison
Usando Python programmā El Edison

El Edison se puede programme usando el IDE de Arduino, sin embargo aqui usaremos Python.

Izmantojot Python un aparatūru, ir nepieciešams izmantot biblioteka "MRAA" un GPIO mijiedarbību. MRAA ir un biblioteca esqueleto de bajo nivel para comunicarse con los GPIO's and plataformas GNU / Linux y es saderīgs ar casi todas las placas basadas en Linux utilizadas. Para ello procederemos a instalarla.

En Putty, vete a la terminal y escribe (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 all
  • src/gz edison
  • src/gz core2-32

Posteriormente guarda el archivo y aktualitāte la list de paquetes escribiendo:

opkg jauninājums

Ahora vamos un instalar git, aprakstiet:

opkg instalēt git

Ahora vamos un GitHib en Edison instalācija un repozitorijs:

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

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

  • echo 'export PATH = $ PATH: ~/edison-scripts' >> ~/.profile
  • avots ~/.profils

Ahora ejecutaremos los siguientes comandos:

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

Listo! Ya debemos de tener configurado correctamente Python en elison. Para probar lo anterior ejecutaremos el código anexado en este paso ("prueba.py") usando FileZilla. Para ello abriremos FileZilla en 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), el usuario (root), tu parole 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 folder "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 comar el LED 13 enciende 2 milisegundos. y se apaga 2 milisegundos.

Fel Felicidades! Vai ejecutado correctamente un código en phyton para tu Edison. Ahora ya estamos listo para processar imágenes en nuestro Edison usando Python, pero antes escribiremos and probaremos el código de Python detector rostros en nuestra PC …

5. darbība. Detectando Rostros Con OpenCV

Detektando Rostros ar OpenCV
Detektando Rostros ar OpenCV
Detektando Rostros ar OpenCV
Detektando Rostros ar OpenCV

Intel 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 korer en nuestra PC y posteriormente lo migraremos al Edison.

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

Antes de empezar necesitamos tener instalado Python y OpenCv en nuestras computadora. Lai uzzinātu vairāk par personālo datoru, skatiet:

  1. Lejupielādējiet Python 2.7 un visus datorus
  2. Lejupielādēt OpenCV versiju 3.3.0
  3. Ve al directorio en donde se extrajo OpenCv y pozicionate lv C: / opencv / build / python / 2.7 / x86 y copia el arhivo cv2.pyd al directorio de python C: / Python27 / Lib / site-package.
  4. Instalējiet pip, mas info en el siguiente enlace
  5. Instalējiet numpy, lai aprakstītu python -m pip instalāciju -lietotāja numpy

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

  • importēt numpy
  • importēt cv2

Ambos comandos respectivamente deben de responder ningún mensaje de error (osea nada), indicando que las bibliotecas se han importado correctamente.

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

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

6. solis: 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 enfoques para el reconocimiento sejas. Grēka 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. La entrada de este algoritmo suele ser una imagen en formato de colores RGB, mientras que en la etapa de processamien la cambiamos a los formatos HSV o YIQ. En este process, cada píxel es clasificado como un píxel del color de la piel o un píxel sin color de la piel. La razón detrás del uso de otros modeles of color que no sean RGB es que a veces RGB no puede differentir los colores de la piel en diferentes condiciones de luz. Esto mejora nozīmīgi nozīmē al usar otros modelos de color. Nosotros no usaremos este algoritmo

Uz funkcijām balstīta atpazīšana: 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 feature-based cascade" 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íc Ātra objektu noteikšana, izmantojot vienkāršu funkciju pastiprinātu kaskādi "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 pozitivas 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. 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, etc. OpenCV biblioteka satur iepriekšēju definīciju un klasifikāciju. Estos están disponibles en la carpeta C: / opencv / build / etc / haarcascades

7. darbība: atklājiet Rostros ar OpenCV un Intel Edison

Atklājiet Rostros ar OpenCV un Intel Edison!
Atklājiet Rostros ar OpenCV un Intel Edison!
Atklājiet Rostros ar OpenCV un Intel Edison!
Atklājiet Rostros ar OpenCV un Intel Edison!

Instalējiet bibliotēkas numura un OpenCV versiju Intel Edison, para ello escribimos los siguientes comandos desde la terminal del Edison:

  • opkg atjauninājums
  • opkg jauninājums
  • opkg instalēt python-numpy python-opencv

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

  • importēt numpy
  • importēt cv2

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

Ahora vamos ir konfigurētājs, kas nodrošina efektīvu video no Intel Edison leera los rostros. Lejupielādējiet viedtālruni no lietotnes "IP Webcam". Hecho lo anterior pievienojas lietotnei "Ajustes de IP Webcam"/"Preferencias de video"/"Resolución de las fotos" un dejamos el parámetro a 640x480. Ja jums ir notariāls process ar Intel Edison simplemente no está destinado para el processamiento de imágenes debido a la poca cantidad de RAM que posee (1GB de RAM), ir pieejams arī notārs.

Lai atvērtu lietotni "IP Webcam", noklikšķiniet uz "Iniciar servidor". Ahora, desde tu viedtālrunis debes de poder ver la camara encendida (como si fuera a tomar foto) un viena virziena IP abajito. Ierakstiet dicha directcción IP en navigācijas tīmekļa de la PC un 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 fact) un dators. Usa FileZilla para pasar ambos códigos a una misma localidad de tu Edison (por ejemplo en el folder root) y ejecuta el código de python con el comando:

pitons tres.py

Deside la terminal de tu Edison debes de ver un mensaje "Dame la directcción IP" iekļauj IP que te da "IP Webcam" (es la misma que escribiste en el navegador de tu PC para conectarte) y dale enter. Šī problēma ir labota, izmantojot "Rostro detectado" un Edisona termināli un "Rostro no detectado", kā arī tīmekļa vietnes un tīmekļa kameras pamatu. Kā to var atklāt un pārbaudīt Intel Edison de hacer girar el servomotor.

Ieteicams: