Inhoudsopgave:

Detectie van Rostros met Arduino Intel Edison - Ajarnpa
Detectie van Rostros met Arduino Intel Edison - Ajarnpa

Video: Detectie van Rostros met Arduino Intel Edison - Ajarnpa

Video: Detectie van Rostros met Arduino Intel Edison - Ajarnpa
Video: Leap Motion SDK 2024, November
Anonim
Detectie De Rostros Con Arduino Intel Edison
Detectie De Rostros Con Arduino Intel Edison

El procesamiento de imágenes o la visión por computadora es uno de esos campos que requiere cantidades de investigación debido een que involucra métodos para adquirir, processar, analizar y comprender las imagenes del mundo realsim el fin de fin de bido ser tratados por un ordenador. Actualmente, los mejores algoritmos para tales tareas se basan en redes neuronales convolucionales, las cuales generalmente processan miles de imagens de rostros humanos mediante el uso the aaprendizaje supervisado para entrenar el algoritmo que identificado el objeto busdo el objeto busdo. Sin embargo, no vamos a meternos en tantos lios en este instructable y usaremos un biblioteca de código aabierto de visión por computadora llamada OpenCV la Cual gracias al arduo een comunidad de cientificos y que desarrolladores con un rico set de carcaterisiticas que podemos implementar facilmente para la detección y reconocimiento de imagenes.

Een pesar de que OpenCV se encuentra escrita en C++ orientado en objetos, est soporta multipel idiomas y nosotros vamos a usar Python como nuestro lenguaje de programación para realizar la detección de rostros. Típicamente, une proces a tientalción de rostros. een proces en een beeld van salida. Intel Edison heeft geen interfaz de video, por lo que ejecutaremos el script de Python en 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 detecta, realizar alguna acción.

Benodigdheden

Het materiaal dat u nodig heeft voor een cabo este-tutorial:

HARDWARE

  • 1 laptop/pc.
  • 1 Placa Arduino Intel Edison.
  • 2 kabels USB micro-B.
  • 1 smartphone met app "IP Webcam".
  • 1 servomotor sg 90.

SOFTWARE

  • Intel Flash-tool Lite V5.2.4
  • Stopverf
  • FileZilla FTP
  • Afbeelding Yocto Poky (V25.5-15)
  • VS-code
  • Python 2.7
  • OpenCV-versie 3.3.0
  • Numpy
  • Libreria MRAA
  • Stuurprogramma's voor Windows voor de Intel-edison-module (Ontwerp en sluit aan op placa).
  • Archivos dll de Windows (Pueda ser que te falten al momento de instalar OpenCV en tu laptop).

Stap 1: Verbind El Intel Edison met een La PC

Verbind El Intel Edison met La PC
Verbind El Intel Edison met La PC
Verbind El Intel Edison met La PC
Verbind El Intel Edison met La PC
Verbind El Intel Edison met La PC
Verbind El Intel Edison met La PC

El módulo de hardware Intel Edison over de mogelijkheden en de volgende presentaties:

  • La placa de desarrollo gemaakt door Intel-compatibel met Arduino (deze handleiding is beschikbaar in de VS).
  • Una placa mini-breakout (met móudlo ya montado) compatibel met uitbreidingskaart van Arduino.
  • El módulo Intel Edison en su estado nativo (Aquí requerimos fabricar nuestra propia PCB).

U gebruikt een compatibele uitbreidingskaart met Arduino debido en flexibele compatibiliteit en compatibiliteit met andere actuadores en sensoren. El Intel Edison, een andere versie van Arduino-como UNO of MEGA corre un sistema operativo, en is een voorbeeld van een Linux-versie van Yocto.

Veel meer informatie over het aansluiten van afbeeldingen en kabels USB micro-B van Arduino Edison een nieuwe laptop. Fijate bien que el interrupor (marcado con el número 1 en la beeld), este apuntando hacia abajo, si no se encuentra en dicha posición el Arduino Edison permanecerá apagado.

USB-micro-B-connector met nummer 2 en het gebruik van 5V, programma's voor gebruik en IDE Arduino, lectuur/beschrijven van flash-geheugen en gebruik van Ethernet en USB-poorten.

El conector USB micro-B marcado met nummer 3 gebruikt voor toegang door SSH en nieuwe Edison.

U kunt verbinding maken met het installeren van stuurprogramma's voor Windows. Latere herzieningen en admsinistrador de dispositivos de Windows si reconoce dos puertos:

  • El Puerto COM virtuele del Intel Edison
  • El Puerto seriële COM del Intel Edison.

Herziening van het voorafgaande, gevolgde proces, flashear en Intel Edison met afbeelding van Linux.

Stap 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

Als u een correctie voor de pc wilt vinden, kunt u deze flashen met een afbeelding van Linux. Voor het gebruik van een nieuwe flash-versie door Intel: Flash Tool Lite en USB-micro-B-connector met nummer 2 (ver paso anterior).

1. Lees meer over "Flash Tool Lite" en sluit aan op de pc.

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

3. Klik op de klik op "Start to flash", de herramienta descomprimirá automáticamente el archive y empezará a subir la imagen de Linux en el Intel Edison.

4. Maak een verbinding met een aangesloten kabel USB-kabel 2, hazlo.

5. Elk recht van 100%. Lijst! Je flasheste naar Intel Edison.

U hebt een geïnstalleerde afbeelding van "Linux Yocto Poky" en kunt u configureren en configureren door Intel Edison.

Stap 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 is een client voor SSH en telnet, oorspronkelijk gemaakt door Simon Tatham voor plataforma Windows. Vamos a usar la conexión serial aqui.

Antes de abrir la terminal de PuTTY, abre el "Administrador de dispositivos" en anota el número de puerto correspondiente para el COM del Edison (geen el virtual). Este valor lo useremos para inicializar la comunicación.

Abre PUTTY en luego, selecciona el botón "Serial" en ingresa el número de puerto COM del Edison. Later wordt een bericht van de 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.

U kunt kijken naar de terminal van PuTTY die u kunt configureren voor Edison. Hieronder vindt u een lijst met beschikbare gegevens:

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

U kunt zich aanmelden om in te loggen. Escribe "root" en presiona "Enter". Veras "root@edison" lokale betekenis van de encuentras en el directorio root.

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

configure_edison --setup

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

Finalmente te pedira configurar una rode WIFI. Het is mogelijk om het wachtwoord en het wachtwoord van de rode, escríbelo y presiona enter in te voeren.

Lijst! Ya debes de estar conectado al WIFI. De meest recente pantalla en 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 to mostrará los parámetros de tu red WIFI.

U kunt een lijst maken met de configuratie van Entorno de Desarrollo Integrado (IDE) voor empezar met het programma. En nuestro caso será … ¡Python!

Stap 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 maakt gebruik van programma's en IDE van Arduino, leg een embargo op Python.

Al tratar met Python en hardware, nodig om de bibliotheek met "MRAA" te gebruiken voor interactie met de dennen GPIO. MRAA is een bibliothecaris van de algemene informatie over GPIO's en plataformas GNU / Linux en is compatibel met alles wat met basadas en Linux-utilizadas te maken heeft. Para ello procederemos a instalarla.

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

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

Later wordt het archief bewaard en geactualiseerd:

opkg-upgrade

Ahora vamos een geïnstalleerde git, beschrijf:

opkg installeer git

Ahora vamos een installatie van een repositorio de GitHib en el Edison:

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

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

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

Ahora ejecutaremos los siguientes comandos:

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

Lijst! Ya debemos de tener configurado correctamente Python en el Edison. Para probar lo anterior ejecutaremos el codigo anexado en este paso ("prueba.py") gebruikt FileZilla. Para ello abriremos FileZilla en la PC (Lo debiste de haber descargado) en de campo de "Servidor", "usuario", "contraseña" en "Puerto" escribimos la IP de tu edison (revisalo escribiendo ifcong en tu edison), el usuario (root), tu wachtwoord y finalmente en el campo del puerto escribiremos 22, ya que es el que generalmente se emplea para conexiones SSH.

Maak een verbinding met het archief van "prueba.py" in de map "root".

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

python prueba.py

De waarnemingen van de LED 13 en 2 mijlpalen. y se apaga 2 milisegundos.

Gefeliciteerd! Heeft ejecutado correctamente un código en phyton para tu Edison. Een overzicht van de procesmatige beeldvorming en nuestro Edison gebruikt Python, pero antes escribiremos en probaremos el codigo de Python para detectar rostros en nuestra PC…

Stap 5: Detectando Rostros Con OpenCV

Detectando Rostros met OpenCV
Detectando Rostros met OpenCV
Detectando Rostros met OpenCV
Detectando Rostros met OpenCV

El Intel Edison heeft geen 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 en posteriormente lo migraremos al Edison.

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

Voorbereidingen nodig om te installeren Python en OpenCv en nuestras computadora. Voor een realizar estos pasos en nuestra PC:

  1. Download Python 2.7 en nuestra PC
  2. Download OpenCV versie 3.3.0
  3. Ve al directorio en donde se extrajo OpenCv y posicionate en C:\opencv\build\python\2.7\x86 y copia el arhivo cv2.pyd al directorio de python C:\Python27\Lib\site-packages.
  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 voer in:

  • import numpy
  • import cv2

Ambos komt overeen met het antwoord op de fout (osea nada), indicando que las bibliotecas se han importado correctamente.

Ahora descarga el archive "3_detectaRostrosOjos.py", abre una terminal de Python en tu PC en corre el programa. Este programma van het activeren van de webcam van de PC en het detecteren van rostros en het zien van beelden, pasen van programma's van tecla ESC.

Si lo lograste, gelukwensen! Pas de volgende stap aan die overeenkomt met de nieuwe versie van Intel Edison en activeer de motor en de detectie van de rostro.

Stap 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 detectie van de rostros en van een bijzondere keuze van de reconocimiento de objetos. Hay muchos enfoques para el reconocimiento gezichtsbehandeling. 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. Het is een goed voorbeeld van een afbeelding en een formaat van RGB-kleuren, een voorbeeld van een proces van verwerking van cambiamo's en een formaat van HSV of YIQ. En este proceso, cada píxel es clasificado como un píxel del colour de la piel o un píxel sin color de la piel. De verschillende kleuren van de verschillende kleuren van RGB en van RGB en van RGB zijn niet onderscheiden van de kleuren van de kleuren en verschillende voorwaarden van de luz. Esto mejora significativamente al usar otros modelos de color. Nosotros no usaremos este algoritmo

Op functies gebaseerde herkenning: dit is een les die u kunt gebruiken om instructie te geven. 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 the detección de objetos propuesto by Paul Snelle objectdetectie met behulp van een versterkte cascade van eenvoudige functies in 2001. Dit is een bron van automatische detectie van de "cascadefunctie" en kan worden gecombineerd met positieve afbeeldingen en negatieve effecten. El algoritmo requiere de veel beelden van positivas (en nuestro caso estas son imágenes de caras) en veel beelden van negativas (que geen contienen imágenes de caras). Een partir de ello vamos a entrenar el modelo para extraer las características de cada imagegen. Para este propósito, se utilizan las "haar feature" que se muestran en la figura. Cada voor las figuras en valor único obtenido al restar la sum de pixeles debajo de un rectángulo blanco de la suma debajo de un rectángulo negro. Los "haar features" deben estar entrenados para la cara sona, ojos, etc. La biblioteca OpenCV contiene un conjunto de clasificadores predefinidos. Alle beschikbare items op het tapijt C:\opencv\build\etc\haarcascades

Stap 7: Detectando Rostros Con OpenCV En Intel Edison

Detectando Rostros Met OpenCV En Intel Edison!
Detectando Rostros Met OpenCV En Intel Edison!
Detectando Rostros Met OpenCV En Intel Edison!
Detectando Rostros Met OpenCV En Intel Edison!

Geef een instalar la biblioteca numpy y openCV en Intel Edison, para ello escribimos los siguientes comandos desde la terminal del Edison:

  • opkg-update
  • opkg-upgrade
  • opkg installeer 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:

  • import numpy
  • import cv2

Dit is wat u kunt doen om het volgende te doen.

Ahora is een configuratie van de video van de donde en Intel Edison leera los rostros. En tu smartphone download app "IP Webcam". Hecho lo anterior access a la app y ve a "Ajustes de IP Webcam"/"Preferencias de video"/"Resolución de las fotos" en dejamos el parámetro a 640x480. Er is een notariële opgave van Intel-edison-simulatie geen está destinado destinado el procesamiento debido a la poca cantida de RAM que posee (1GB van RAM).

En la app "IP Webcam" da klik en el boton inferieur "Iniciar servador". Ahora, desde tu smartphone debes de poder la camara encendida (como si fuera a tomar foto) en una dirección IP abajito. Escribe dicha dirección IP en tu navegador web de la PC en deberas ver el video en vivo, en mi caso salgo yo sentado trabajando.

Ahora downloadt de code "tres.py" en het archief "haarcascade_frontalface_default.xml" (Los dos códigos los puedes encontrar en los archivos del paso actual) en tu PC. Usa FileZilla voor pasar ambos códigos a un misma localidad the tu Edison (door ejemplo en el folder root) en ejecuta el código de python met el comando:

python tres.py

Desde la terminal de tu Edison debes des un mensaje "Dame la dirección IP" aquí inserta la IP que to da "IP Webcam" (es la misma que escribiste en el navegador de tu PC para conectarte) y dale enter. Dit is correct voor de mensaje "Rostro detectado" en la terminal de tu Edison en "Rostro no detectado" en baseert een si pones op de rostro en de webcam de tu celular. Asimismo si se detecta un rostro tu Intel Edison debe de hacer girar el servomotor.

Aanbevolen: