Inhaltsverzeichnis:

Detección De Rostros Con Arduino Intel Edison - Gunook
Detección De Rostros Con Arduino Intel Edison - Gunook

Video: Detección De Rostros Con Arduino Intel Edison - Gunook

Video: Detección De Rostros Con Arduino Intel Edison - Gunook
Video: Seguidor facial con Arduino 2024, Juli
Anonim
Erkennung von Rostros mit Arduino Intel Edison
Erkennung von Rostros mit Arduino Intel Edison

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 puquean de paranum ser tratados por un ordenador. Actualmente, los mejores algoritmos para tales tareas se basan en redes convolucionales, las cuales generalmente procesan Miles of Imágenes de Rostros Humanos mediante el uso de aprendizaje Supervisado para entrenar el algoritmo que identificarado el objeto. Sündenembargo, kein vamos ein 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 en aarport cientificos y 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. un procesamiento y una imágen de salida. Intel Edison ist ohne Videointerface, mit Ejecutaremos und Skript von Python auf einem neuen PC. Luego, después del funcionamiento Exitoso del código auf dem PC, modificaremos el código para correrlo und 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.

Lieferungen

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

HARDWARE

  • 1 Laptop/PC.
  • 1 Placa Arduino Intel Edison.
  • 2 Kabel USB Micro-B.
  • 1 Smartphone mit App "IP-Webcam".
  • 1Servomotor sg 90.

SOFTWARE

  • Intel Flash-Tool Lite V5.2.4
  • Kitt
  • FileZilla-FTP
  • Bild Yocto Poky (V25.5-15)
  • VS-Code
  • Python 2.7
  • OpenCV-Version 3.3.0
  • Numpy
  • Libreria MRAA
  • Windows-Treiber für das Intel Edison-Modul (Se descargan encuanto se conecta la placa).
  • Archivos dll von Windows (Pueda ser que te falten al momento de instalar OpenCV en tu laptop).

Schritt 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

El módulo de hardware Intel Edison lo podemos encontrar tres presentaciones:

  • La placa de desarrollo creada por Intel kompatibel mit Arduino (es la que usamos en este Tutorial).
  • Una placa Mini-Breakout (con el móudlo ya montado) kompatibel mit dem Arduino-Erweiterungsboard.
  • El módulo Intel Edison en su estado nativo (Aquí requerimos fabricar nuestra propia PCB).

Sie sind mit Arduino kompatibel und flexibel und kompatibel für Interaktionen mit anderen Aktuatoren und Sensoren. El Intel Edison, ein Unterschied zwischen den anderen Plätzen von Arduino mit UNO oder MEGA, die ein Betriebssystem haben, ist ein Beispiel für ein Linux-Lamada-Yocto.

Sehen Sie sich die Musik an und verbinden Sie sich mit den Kabeln USB Micro-B von Arduino Edison und einem neuen 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.

Der USB-Micro-B-Anschluss mit 2 Nummern, der für 5V-Versorgung verwendet wird, für die Verwendung von IDE-Arduino, Vorlesungen/Beschreibungen für Flash-Speicher und für Ethernet- und USB-Verbindungen.

Der USB-Micro-B-Anschluss ist mit einer neuen 3er-Nutzung für den Zugriff auf SSH und die neueste Edison-Version ausgestattet.

Una vez conectado dejemos que se instalen die Treiber von Windows. Posteriormente revisamos en el Admsinistrador de dispositivos de Windows si reconoce dos puertos:

  • El Puerto COM virtuell von Intel Edison
  • El Puerto Serial COM del Intel Edison.

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

Schritt 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

Una vez que tu dispositivo esta correctamente deletado de la PC, debes flashearlo with a imagen de Linux. Für die Verwendung von Flash-Voraussetzungen von Intel: Flash Tool Lite und USB-Micro-B-Anschluss mit Nummer 2 (vorher).

1. Abre la herramienta "Flash Tool Lite" und Anschluss an den PC.

2. Haz clic 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 clic en "Start to flash", die automatische Herramienta-Descomprimirá-Archivierung und die Empezará-Unterlage für das Bild von Linux und Intel Edison.

4. Se te pedirá desconectar y volver a conectar el Kabel USB-Kabel 2, hazlo.

5. El rechteckige Ladung debe de llegar al 100%. Liste! Sie flashen mit Intel Edison.

Jetzt können Sie das Bild von "Linux Yocto Poky" installieren, um eine Konfiguration von Intel Edison zu ermöglichen.

Schritt 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 ist ein SSH- und Telnet-Client, der von Simon Tatham für Windows-Plattformen verwendet wird. Vamos a usar la conexión serial aqui.

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

Abre PUTTY und luego, selecciona el botón "Serial" und ingresa el nummero de puerto COM del Edison. Posteriormente anota la velocidad en baudios a la que se comunicara el Edison con tu equipo, beschreibe 115200. Finalmente presiona abrir para empezar la comunicación con el dispositivo.

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

  • Configurar a nombre para el dispsotivo.
  • Configurar una contraseña para root.
  • Verbinden Sie el Edison mit einem roten WIFI.

Cuando te conectas por primera vez set te pedira hace log in. Beschreiben Sie "root" und presiona "Enter". Veras "root@edison" lokale Bedeutung für Encuentras im Verzeichnis root.

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

configure_edison --setup

Presiona enter y posteriormente escribe ein Passwort 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 konfigurieren mit rotem WIFI. El móudlo escaneara el lugar y Detectará las redes WIFI disponibles, escribe el numero de la opción de la red Detectada la que te vas a conectar y posteriormente te pedirá el password de la red, escríbelo y presiona enter.

Liste! Ya debes de estar conectado al 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.

Es ist eine Liste für Konfigurationen und Entorno de Desarrollo Integrado (IDE) für Empezaren mit Programmen. En nuestro caso será … Python!

Schritt 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 ist ein Programmierer und eine IDE von Arduino, ein Embargo für Python.

Al tratar mit Python und Hardware, notwendig für die Biblioteca "MRAA" für Interaktion mit Pines GPIO. MRAA ist eine biblioteca esqueleto de bajo nivel para comunicarse con los GPIO's und Plattformen GNU / Linux ist kompatibel mit Casi todas Las Placas Basadas und Linux-Anwendungen. Para ello procederemos a instalarla.

En Putty, vete a la terminal y escribe (puedes ocupar el editor vi o nano por ejemplo) und 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 y currentiza la lista de paquetes escribiendo:

opkg-Upgrade

Ahora vamos a instalar git, beschreibe:

opkg installieren git

Ahora vamos ein installiertes Repository von GitHib und el Edison:

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

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

  • echo 'Export PATH=$PATH:~/edison-scripts' >> ~/.profile
  • Quelle ~/.profile

Ahora ejecutaremos los siguientes comandos:

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

Liste! Sie können Python und Edison korrigieren. 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) und el campo de "Servidor", "usuario", "contraseña" und "Puerto" escribimos la IP de tu edison (revisalo escribiendo ifcong en tu edison), el usuario (root), tu password und 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 Ordner "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 Meilen. y se Apaga 2 Milisegundos.

Felicidades! Hat eine Korrektur eines Codes und ein Phyton für Edison. Ahora ya estamos listo para procesar imágenes en nuestro Edison usando Python, pero antes escribiremos y probaremos el código de Python para Detectar Rostros en nuestra PC…

Schritt 5: Detectando Rostros Con OpenCV

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

El Intel Edison ist kein Video-Interfaz-Interfaz, für Probar-Codes und Python-Funktionen, die eine perfekte Probaremos-Funktion haben, die für PC-Korrektur und später für Migraremos von Edison geeignet ist.

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 und neue Computadora. Por lo que vamos a realizar estos pasos en nuestra PC:

  1. Descargar Python 2.7 auf dem neuen PC
  2. Descargar OpenCV Version 3.3.0
  3. Ve al Directory en donde se extrajo OpenCv y posicionate de C:\opencv\build\python\2.7\x86 y copia el arhivo cv2.pyd al Directory 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 enter:

  • numpy importieren
  • CV2 importieren

Ambos comandos respektivamente 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 ein Terminal von Python und PC und entsprechenden Programmen. 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! Pasemos al siguiente paso que es correr est código desde nuestro Intel Edison y activar un motor a pasos cada vez que Detecte un rostro.

Schritt 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 Gesichtsbehandlung. 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. Das Entrada de este algoritmo suele ser una imagen en format de colores RGB, mientras que en la etapa de procesamiento la cambiamos und los formatos HSV oder YIQ. En este proceso, cada píxel es clasificado como ein píxel del color de la piel oder ein píxel sin color de la piel. La razón detrás detrás de uso de otros de coloro que no sean RGB es que a veces RGB keine puede distinguir los colores de la piel und verschiedene condiciones de luz. Esto mejora significativamente al usar otros modelos de color. Nosotros no usaremos este algoritmo

Merkmalsbasierte Erkennung: 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 a método eficaz detección de objetos propuesto por Jones Vienola yí Schnelle Objekterkennung mit einer verstärkten Kaskade einfacher Funktionen " de año 2001. Es ist eine automatische Basis und eine automatische Aktivierung der "Kaskadenfunktion", die gegen eine Verbindung von positiven und negativen Bildern gerichtet ist. 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 ein entrenar el modelo para extra 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 debajo de un rectángulo debajo de la suma de píxeles debajo de un rectángulo negro. Los "haar Features" deben estar entrenados para la cara, ojos, etc. Die Biblioteca OpenCV enthält eine Kombination aus clasificadores predefinidos. Estos están disponibles en la carpeta C:\opencv\build\etc\haarcascades

Schritt 7: Detectando Rostros Con OpenCV En Intel Edison

Detectando Rostros Con OpenCV En Intel Edison!
Detectando Rostros Con OpenCV En Intel Edison!
Detectando Rostros Con OpenCV En Intel Edison!
Detectando Rostros Con OpenCV En Intel Edison!

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

  • opkg-Update
  • opkg-Upgrade
  • opkg installiere python-numpy python-opencv

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

  • numpy importieren
  • CV2 importieren

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 Edison leera los rostros. Nutzen Sie die App "IP-Webcam" für Ihr Smartphone. Hecho lo anterior accede a la app und ve a "Ajustes de IP Webcam"/"Preferencias de video"/"Resolución de las fotos" und dejamos el parámetro a 640x480. Es ist ein Notar, der mit Intel Edison Simplemente ohne Ziel für die Verarbeitung von Bildern, die für den Arbeitsspeicher geeignet sind, geeignet ist (1 GB RAM).

In der App "IP Webcam" klicken Sie auf den Boton inferior "Iniciar servidor". Ahora, desde tu smartphone debes de poder ver la camara encendida (como si fuera a tomar foto) und eine direkte IP-Abajito. Escribe dicha dirección IP und tu navegador web de la PC und deberas ver el video in vivo, in mi caso salgo yo sentado trabajando.

Ahora descarga el código "tres.py" und el archivo "haarcascade_frontalface_default.xml" (Los dos códigos los puedes encontrar en los archivos del paso aktuell) auf dem PC. Usa FileZilla para pasar ambos códigos a una misma localidad de tu Edison (por ejemplo en el folder root) und 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 el navegador de tu PC para conectarte) und dale enter. Si todo es correcto debes de ver el mensaje "Rostro Detectado" en la terminal de tu Edison y "Rostro no Detectado" en base a si pones a rostro and la webcam de celular. Asimismo si se Detecta un rostro to Intel Edison debe debe de hacer girar el servomotor.

Empfohlen: