Съдържание:

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
Detección De Rostros Con Arduino Intel Edison
Detección De Rostros Con Arduino Intel Edison

El procesamiento de imágenes o la visión por computadora es uno de esos campos que requiere enormes cantidades de investición debido a que involucra métodos para adquirir, procesar, анализ y comprender las imágenes del mundo real con el fin de producir informació numérica numérica ser tratados por un ordenador. Всъщност, los 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 superviado 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 ci Scientificos y desarrolladores que aportan, actualizan cdi manti con un rico set de carcaterisiticas que podemos implementar facilmente para la detección y reconocimiento de imágenes.

A pesar de que OpenCV e encuentra escrita en C ++ orientado a objetos, este soporta múltiples idiomas y nosotros vamos a usar Python como nuestro lenguaje de programción para realizar la detección de rostros. Típicamente, una aplicación deámá deámáné demántéra, un procesamiento y una imágen de salida. Intel Edison няма връзка с видеофайлове, с които можете да изтриете скрипта на Python на компютъра. 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.

Консумативи

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

ХАРАКТЕРИСТИКИ

  • 1 лаптоп/компютър.
  • 1 Placa Arduino Intel Edison.
  • 2 кабела USB micro-B.
  • 1 приложение за смартфон „IP уеб камера“.
  • 1 сервомотор sg 90.

СОФТУЕР

  • Инструмент Intel Flash Lite V5.2.4
  • PuTTy
  • FileZilla FTP
  • Imágen Yocto Poky (V25.5-15)
  • VS код
  • Python 2.7
  • Версия на OpenCV 3.3.0
  • Numpy
  • Libreria MRAA
  • Драйвери за Windows за модул Intel Edison (Изтеглете го и го свържете с плаката).
  • Архивиране на DLL за Windows (Pueda ser que te falten al momento de instalar OpenCV en tu лаптоп).

Стъпка 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

Направете хардуер на Intel Edison, за да настроите и представите:

  • La placa de desarrollo creada за Intel съвместим с Arduino (es la que usamos en este tutorial).
  • Уникален мини-пробив (con el móudlo ya montado) съвместим с разширителна платка de Arduino.
  • Електронният модул Intel Edison е на разположение (Aquí requerimos fabricar nuestra propia PCB).

Yo usare la placa de expansión съвместим с Arduino debido a la flexibilidad y compatiblebilidad за взаимодействие с otros actuadores y sensores. El Intel Edison, отличителна черта на Arduino, която е UNO или MEGA, съответстваща на операционната система на Linux, както и на Linux, която е Yocto.

Разполагайте с това, че можете да го направите и да го свържете с кабели USB micro-B del Arduino Edison и нов лаптоп. 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 permanentcerá apagado.

Електрическият конектор USB micro-B marcado с ел. Номер 2 се използва за алиментарно обслужване на 5V, програмиране на използване на IDE Arduino, лектура/escritura и запаметяване на флаш и използване на Ethernet през USB.

Конекторът USB micro-B marcado с ел нумеро 3 се използва за достъп до SSH и най-новия Edison.

Не можете да инсталирате драйвери за Windows. Posteriormente revisamos en el Admsinistrador de dispositivos de Windows si reconoce dos puertos:

  • Вижте COM виртуална част от Intel Edison
  • Пулсиран сериен COM от Intel Edison.

Habiendo revisado lo anterior, procedemos al siguiente paso, flashhear el Intel Edison с лайн образ на Linux.

Стъпка 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 detectado por la PC, debes flashhearlo with a image de Linux. За да използвате усъвършенстваната флаш провизия на Intel: Flash Tool Lite и конектор USB micro-B marcado с ел. Номер 2 (отпред).

1. Абре ла херрамиента "Flash Tool Lite" и свързване, което разполага с 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. Отказ от хакер кликнете върху „Започнете да мигате“, най -добре да компенсирате автоматичното архивиране и император и да го замените с Linux и Intel Edison.

4. Вземете кабел за свързване и свързване към кабел USB кабел 2, хасло.

5. El правоъгълник на carga debe de llegar ал 100%. Листо! Проявете Intel Edison.

Предлагаме ви да инсталирате "Linux Yocto Poky" и да настроите импезатор на Intel Edison.

Стъпка 3: Конфигурирайте El Intel Edison (Primeros Pasos)

Конфигурирайте El Intel Edison (Primeros Pasos)
Конфигурирайте El Intel Edison (Primeros Pasos)
Конфигурирайте El Intel Edison (Primeros Pasos)
Конфигурирайте El Intel Edison (Primeros Pasos)
Конфигурирайте El Intel Edison (Primeros Pasos)
Конфигурирайте El Intel Edison (Primeros Pasos)

Después de flashhear con éxito tu Edison, ahora configuraremos el dispositivo, para ello vamos a usar la terminal PuTTY. PuTTY е клиент на SSH и telnet, дезарлажира оригиналното от Simon Tatham за плата Windows. Vamos a usar la conexión сериен aqui.

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

Abre PUTTY y luego, изберете „Serial“и въведете пуерто 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 Edison. Lo siguiente es un listado tareas que haremos en la consola para configurar el dispositivo:

  • Configurar un nombre para el dispsotivo.
  • Конфигуратор за контрасен за root.
  • Конектор на Едисон с червен WIFI.

Cuando te conectas por primera vez se te pedira hace login. Escribe "root" y presiona "Enter". Veras "root@edison" е локално значим que te encuentras en el direktorio root.

Ahora que ya te encuentras listo para teclear comandos, напишете:

configure_edison --setup

Presiona enter y posteriormente escribe un password and 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.

Окончателно конфигуриране на педиатър с червен WIFI. El móudlo escaneara el lugar y detectará las redes WIFI разполага, напишете 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.

Листо! 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

Предложете да влезете в мострата на лос парметрос от червения WIFI.

Ya estamos listo за конфигуриране на Entorno de Desarrollo Integrado (IDE) за empezar con la programación. En nuestro caso será… ¡Python!

Стъпка 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

Ел Едисън е програмен потребител, използващ IDE de Arduino, грешно ембарго, което използва usaremos Python.

Ал тратар с хардуер на Python, необходим за използване на библиотека "MRAA" за интерактивни конзоли GPIO. MRAA е библиотека, която е свързана с байо нивела за комуникацията, с която GPIO предлага плата GNU / Linux и е съвместим с всички приложения, използвани в Linux. 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 всички
  • src/gz edison
  • src/gz core2-32

Posteriormente guarda el archivo y actualiza la lista de paquetes escribiendo:

ъпгрейд на opkg

Ahora vamos a instalar git, напишете:

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:

  • echo 'експорт PATH = $ PATH: ~/edison-scripts' >> ~/.profile
  • източник ~/.профил

Ahora 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), 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.

Фелицидади! Има 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 y probaremos el código de Python para detectar rostros en nuestra PC…

Стъпка 5: Открийте Rostros Con OpenCV

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

El Intel Edison не е свързан с интерфейса на видеоклипа, който показва lo pro que el código que escribiremos в 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 detecta, realizar alguna acción.

Antes de empezar necesitamos tener instalado Python y OpenCv en nuestras computadora. Por lo que vamos a realizar estos pasos en nuestra PC:

  1. Изтеглете Python 2.7 на вашия компютър
  2. Изтеглете версия на OpenCV 3.3.0
  3. Всички директори и дондета се екстрайоват с OpenCv и разполагат с C: / opencv / build / python / 2.7 / x86 y copia el arhivo cv2.pyd в директория на python C: / Python27 / Lib / site-пакети.
  4. Instala pip, mas info en el siguiente enlace
  5. Instala numpy escribiendo el comando de python -m pip install -потребител numpy

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

  • внос numpy
  • импортиране на 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 of Python en tu PC y corre el program. Este програма 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 correr este código desde nuestro Intel Edison и активира un motor a pasos cada vez que detecte un rostro.

Стъпка 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. Грешно ембарго, можете да обсъдите 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 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 или 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 адрознение los colores de la piel en diferentes condiciones de luz. Esto mejora signifikativemente al usar otros modelos de color. Nosotros no usaremos este 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 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ículo " Бързо откриване на обекти с помощта на усилена каскада от прости функции "del año 2001. Es un enque basado en el aprendizaje automático en donde la" cascade function "е entrena contra un unanto 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. 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 и т.н. La biblioteca OpenCV съдържа un unanto de clasificadores predefinidos. Estos están разполага с en la carpeta C: / opencv / build / etc / haarcascades

Стъпка 7: Открийте Rostros Con OpenCV и Intel Edison

Detectando Rostros Con OpenCV и Intel Edison!
Detectando Rostros Con OpenCV и Intel Edison!
Detectando Rostros Con OpenCV и Intel Edison!
Detectando Rostros Con OpenCV и 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
  • ъпгрейд на opkg
  • opkg инсталирайте 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:

  • внос numpy
  • импортиране на 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 Edison leera los rostros. Изтеглете смартфона от приложението „IP уеб камера“. Предварително се присъединете към приложението „Ajustes de IP Webcam“/„Preferencecias de video“/„Resolución de las fotos“y dejamos el parámetro a 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 (1GB de RAM).

В приложението „IP уеб камера“, за да кликнете върху по -нисък „Iniciar servidor“. Ahora, desde tu smartphone debes de poder ver la camara encendida (como si fuera a tomar foto) и una dirección IP abajito. Опишете директния IP адрес на tu navegador web de la PC и 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 actual) en tu PC. Usa FileZilla за pasar ambos códigos и 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. 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 un rostro en la webcam de tu celular. Асимизмът ще се открие и ще се разгърне Intel Edison debe de hacer girar el servomotor.

Препоръчано: