Indholdsfortegnelse:

Detección De Rostros Con Arduino Intel Edison: 8 trin
Detección De Rostros Con Arduino Intel Edison: 8 trin

Video: Detección De Rostros Con Arduino Intel Edison: 8 trin

Video: Detección De Rostros Con Arduino Intel Edison: 8 trin
Video: Detección y seguimiento de rostros con OpenCV + Python + Arduino Uno 2024, Juli
Anonim
Detección De Rostros med Arduino Intel Edison
Detección De Rostros med Arduino Intel Edison

El procesamiento de 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, analyse and comprender las imágenes del mundo real con el fin the producir information information of sima ser tratados por un ordenador. Faktisk, mere omfattende algoritme for parale tales tareas se basan en redes neuronales convolucionales, las cuales generalmente processan miles de imágenes de rostros humanos mediante el uso de aprendizaje supervisado para 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 por computadora llamada OpenCV la cual gracias al arduo trabajo de la comunidad de cientificos y desarrolladores que aportan, actualizan y manton 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 aplicá un procesamiento y una imágen de salida. Intel Edison kan ikke bruge et videointerface, der kan bruges til at skifte Python -script til en ny 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 detecta, realizar alguna acción.

Forbrugsvarer

El materiale que requerimos para llevar og cabo este tutorial es:

HARDWARE

  • 1 bærbar/pc.
  • 1 Placa Arduino Intel Edison.
  • 2 kabler USB micro-B.
  • 1 smartphone med appen "IP -webcam".
  • 1 servomotorisk sg 90.

SOFTWARE

  • Intel Flash -værktøj Lite V5.2.4
  • PuTTy
  • FileZilla FTP
  • Billede af Yocto Poky (V25.5-15)
  • VS -kode
  • Python 2.7
  • OpenCV -version 3.3.0
  • Numpy
  • Libreria MRAA
  • Drivere til Windows til Intel Edison (Se download og cuanto se conecta la placa).
  • Arkiverer dll fra Windows (der kan ikke installeres OpenCV på din bærbare computer).

Trin 1: Tilslut El Edison til La PC

Tilslut El El Edison til La PC
Tilslut El El Edison til La PC
Tilslut El El Edison til La PC
Tilslut El El Edison til La PC
Tilslut El El Edison til La PC
Tilslut El El Edison til La PC

El -hardware til hardware Intel Edison kan bruges til at præsentere følgende:

  • La placa de desarrollo creada por Intel compatible with Arduino (es la que usamos and este tutorial).
  • Una placa mini-breakout (con el móudlo ya montado) kompatibel con la expansion Board de Arduino.
  • Intel -edisonen kan bruges som et naturligt produkt (krævede fabriksbestemte PCB -plader).

Du kan bruge udvidelsespladsen, der er kompatibel med Arduino debido a la fleksibilitet og kompatibilitet til interaktion med andre aktører og sensorer. El Intel Edison, en forskel på de forskellige placeringer af Arduino som UNO eller MEGA er en systematisk drift, og en este caso una imagen Linux llamada Yocto.

Du kan også se, hvordan du kan tilslutte kabler via USB-mikro-B fra Arduino Edison og en bærbar computer nu. 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 permanentecerá apagado.

USB-mikro-B-modulet kan bruges med 2 numre, der kan bruges til alimentation af 5V, programmer, der kan bruges til IDE-arduino, lektioner/escriturer til flash-hukommelse og brug af USB.

El-kontakt USB-mikro-B marcado med el-nummer 3 kan bruges til at tilslutte SSH og nuison Edison.

Du kan også installere drivere til Windows. Posteriormente revisamos and Elms Administrator for dispositivos of Windows and reconoce dos puertos:

  • El puerto COM virtuel af Intel Edison
  • El seriel COM med Intel Edison.

Habiendo revisado lo anterior, procedemos al siguiente paso, flashear el Intel Edison with the image of Linux.

Trin 2: Flashindstil El Intel Edison

Flash og El Intel Edison
Flash og El Intel Edison
Flash og El Intel Edison
Flash og El Intel Edison
Flash og El Intel Edison
Flash og El Intel Edison

Du kan bruge denne til at opdatere en pc med en flash -version til Linux. Til brug for flash-programmer, der er leveret af Intel: Flash Tool Lite og en USB-mikro-B-marcado, der kan bruges til nummer 2 (forinden).

1. Abre la herramienta "Flash Tool Lite" og kan bruges til pc'er.

2. Klik på Examinar og busca el archivo.zip de la imagen de Linux que descargaste (edison-image-ww25.5-15.zip).

3. Klik på "Start til at blinke", hvor computeren automatisk kan arkivere og oprette en del af Intel Edison.

4. Se, hvordan et kabel kan forbindes med et USB -kabel 2, farligt.

5. El rectangulito de carga debe de llegar al 100%. ¡Listo! Du kan hurtigt få Intel Edison.

Du kan også installere "Linux Yocto Poky" -programmer til konfiguration af Intel Edison.

Trin 3: Konfigurering af 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 er en klient SSH og telnet, der kan downloades af Simon Tatham til Windows. Vamos a usar la conexión serial aqui.

Antes de abrir la terminal de PuTTY, abre el "Administrador de dispositivos" og 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 og luego, vælg "Serial" og indtastning af numre i puerto COM del Edison. Posteriormente anota la velocidad en baudios a la que se comunicara el Edison con tu equipo, write 115200. Finalmente presiona abrir para empezar la comunicación con el dispositivo.

Du kan også bruge en terminal på PuTTY til at udføre en kommando for Edison. Følgende er en liste over værdier, der kan bruges til at konfigurere en disposition:

  • Konfigurer un nombre para el dispsotivo.
  • Konfigurer en contraseña for root.
  • Conectar el Edison med en rød WIFI.

Cuando te conectas por primera vez se te pedira hace log in. Skriv "root" og tryk "Enter". Veras "root@edison" lo cual betydning kan te encuentras og el directorio root.

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

configure_edison -opsætning

Presiona enter y posteriormente escribe un password y nuevamente presiona enter. Luego te pedira un nombre para el dispositivo (que en realidad es un alias mas que un nombre), write un nombre y da enter.

Endelig kan du konfigurere en rød WIFI. Du kan også opdage og opdage nye WIFI -funktioner, der kan bruges til at oprette en rød opdagelse, så du kan oprette en adgangskode til et rødt kodeord, indtaste og indtaste.

¡Listo! Ya debes de estar conectado al WIFI. Du kan kun bruge en hoste til din hostame og din IP -adresse. 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) for empezar con la programación. En nuestro caso será … ¡Python!

Trin 4: Usando Python til programmerer Edison

Usando Python til programmør El Edison
Usando Python til programmør El Edison
Usando Python til programmør El Edison
Usando Python til programmør El Edison

El Edison kan vise programmer til IDE de Arduino, som kan bruges i Python.

Al tratar med Python og hardware, der skal bruges af biblioteca "MRAA" til interaktion med GPIO. MRAA es un biblioteca esqueleto de bajo nivel para comunicarse with los GPIO's and plataformas GNU / Linux y es compatible con casi todas las placas basadas and Linux utilizadas. Para ello procederemos a instalarla.

En Putty, vete a la terminal y escribe (puedes ocupar el editor vi o nano por ejemplo) og el archivo que gestiona los paquetes de Linux /etc/opkg/base-feeds.conf lo siguiente:

  • src/gz alle
  • src/gz edison
  • src/gz core2-32

Posteriormente guarda el archivo and actualiza the list of paquetes beskriver:

opkg opgradering

Ahora vamos a installer git, beskriv:

opkg installere git

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

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

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

  • echo 'eksport PATH = $ PATH: ~/edison-scripts' >> ~/.profile
  • kilde ~/.profil

Ahora ejecutaremos los siguientes comandos:

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

¡Listo! 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), el 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 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 observar como el LED 13 enciende 2 milisegundos. y se apaga 2 milisegundos.

¡Felicidades! Har ejecutado correctamente un código en phyton para tu Edison. Du kan også finde en liste over procesbilleder og nuestroer Edison usando Python, men vi kan også skrive en beskrivelse af Python til detektorer på en ny PC …

Trin 5: Detectando Rostros Con OpenCV

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

El Intel Edison har ingen grænseflader til video, som kan bruges til at skrive en beskrivelse af Python -funktionalitet og til en perfekt løsning til en nyere pc og efterfølgende ændringer til Edison.

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

Antes de empezar necesitamos tener installere Python og OpenCv og nuestras computadora. Til at se en realiseringsproces til en ny pc:

  1. Download Python 2.7 og nuestra PC
  2. Download OpenCV version 3.3.0
  3. Ve al directorio og donde se ekstrajo OpenCv og posicionate da C: / opencv / build / python / 2.7 / x86 y kopi af arhivo cv2.pyd al directorio de python C: / Python27 / Lib / site-packages.
  4. Instala pip, mas info en el siguiente enlace
  5. Installer 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:

  • import numpy
  • import cv2

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

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

Si lo lograste, ¡felicidades! Pas på, hvad der skal gøres, kan korrigere en ny Intel -edison og aktivere en motor, der kan bruges til at registrere en rostro.

Trin 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 enfoques para el reconocimiento facial. Synd embargo, der er en diskutir 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 processamiento 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. La razón detrás del uso de otros modelos de color que no sean RGB es que a veces RGB no puede differir los colores de la piel and diferentes condiciones de luz. Esto mejora significativamente al usar otros modelos de color. Nosotros no usaremos este algoritmo

Funktionsbaseret anerkendelse: 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íco Hurtig genkendelse af genstande ved hjælp af en boostet kaskade af enkle funktioner "fra 2001. Det er en grundlæggende og automatisk brug af en" kaskadefunktion ", der kan bruges til at kombinere positive og negative ting. El algoritmo requiere de muchas imágenes positiveas (en nuestro caso estas son imágenes de caras) y muchas imágenes negativeas (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. La biblioteca OpenCV contiene un conjunto de clasificadores predefinidos. Estos están disponibles en la carpeta C: / opencv / build / etc / haarcascades

Trin 7: Opdag Rostros Con OpenCV og Intel Edison

Detectando Rostros Con OpenCV og Intel Edison!
Detectando Rostros Con OpenCV og Intel Edison!
Detectando Rostros Con OpenCV og Intel Edison!
Detectando Rostros Con OpenCV og Intel Edison!

Du kan også installere biblioteca og openCV på Intel Edison, som også kan beskrives i terminalerne i Edison:

  • opkg opdatering
  • opkg opgradering
  • opkg installer python-numpy python-opencv

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

  • import numpy
  • import cv2

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

Vi kan også konfigurere en video, der gør det muligt for Intel Edison at lære mere. En smartphone kan downloade appen "IP -webcam". Du kan også få adgang til en app med et "Ajustes de IP Webcam"/"Preferences for video"/"Resolución de las fotos" og et parametre på 640x480. Es aqui cuando comienzas a notar que el Intel Edison simplemente no está destinado para el processamiento de imágenes debido a la poca cantidad de RAM que posee (1 GB de RAM).

En la app "IP Webcam" da klik på el boton inferior "Iniciar servidor". Forhåbentlig kan du bruge din smartphone til at skrive ind på en camara encendida (som en del af billedet) og en direkte IP -adresse. Tilmeld dig en IP -adresse til en af vores PC's webbrowsere og videoer til videoer og videoer.

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) and tu PC. Usa FileZilla para pasar ambos códigos and una misma localidad de tu Edison (por ejemplo en el folder root) y ejecuta el código de python con el comando:

python tres.py

Desde 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. Hvis du vil have en korrekt oversigt over "Rostro detectado" og en terminal for din Edison og "Rostro no detectado", kan du basere og sende en websted til dit webcam. Asimismo si se detecta un rostro tu Intel Edison debe de hacer girar el servomotor.

Anbefalede: