Mục lục:

Detección De Rostros Con Arduino Intel Edison: 8 bước
Detección De Rostros Con Arduino Intel Edison: 8 bước

Video: Detección De Rostros Con Arduino Intel Edison: 8 bước

Video: Detección De Rostros Con Arduino Intel Edison: 8 bước
Video: Detección y seguimiento de rostros con OpenCV + Python + Arduino Uno 2024, Tháng bảy
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 bởi computadora es una de esos campos que Prayere enormes cantidades de Invesación debido a que involucra métodos para adquirir, procesar, analizar y comprender las imágenes del mundo real con el fin de productionir para queaciónanlicarica o simbóued ser tratados bởi un ordenador. Actualmente, los mejores algoritmos para Stories tareas se basan en red neuronales concolucionales, las cuales generalmente procesan miles de imágenes de rostros humanos mediante el uso de aprendizaje supervisado para entrenar el algoritmo que Idificara el objeto buscado. Cấm vận tội lỗi, không có vamos a meternos en tantos lios en este có thể hướng dẫn y usaremos una biblioteca de código abierto de visión bởi computadora llamada OpenCV la cual gracias al arduo trabajo de la comunidad de cientificos y desarrolladores que a mantieonen, ya có ydenta con un rico set de carcaterisiticas que podemos implementar securemente para la detección y recnocimiento 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. Tomicamente, una aplicación de procesamiento de imá un procesamiento y una imágen de salida. Intel Edison no tiene una interfaceaz de video, por lo que ejecutaremos el script de Python en nuestro PC. Luego, Desué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 deta, realizar alguna acción.

Quân nhu

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

PHẦN CỨNG

  • 1 máy tính xách tay / PC.
  • 1 Placa Arduino Intel Edison.
  • 2 cáp USB micro-B.
  • 1 điện thoại thông minh ứng dụng "IP Webcam".
  • 1servomotor sg 90.

PHẦN MỀM

  • Công cụ Intel Flash Lite V5.2.4
  • PuTTy
  • FileZilla FTP
  • Imágen Yocto Poky (V25.5-15)
  • Mã VS
  • Python 2.7
  • OpenCV Versión 3.3.0
  • Numpy
  • Libreria MRAA
  • Trình điều khiển của Windows para el módulo Intel Edison (Se descargan en cuanto se conecta la lasa).
  • Archivos dll de Windows (Pueda ser que te falten al momento de instalar OpenCV en tu laptop).

Bước 1: Conectando El Intel Edison a La PC

Conectando El Intel Edison một chiếc PC La
Conectando El Intel Edison một chiếc PC La
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 phần cứng Intel Edison lo podemos encontrar en tres presentaciones:

  • La Saga de desarrollo creada bởi con Arduino tương thích với Intel (es la que usamos en este tutorial).
  • Bo mạch mở rộng tương thích con el móudlo ya montado (con el móudlo ya montado) con la mở rộng tương thích với Bo de Arduino.
  • El módulo Intel Edison en su estado nativo (Aquí requerimos Fabricar nuestra propia PCB).

Yo usare la lasa de expansión tương thích con Arduino debido a la flexibilidad y tương hợpbilidad para tương tác con otros actuadores y cảm giác. El Intel Edison, a diferencia de la otras Sabre de Arduino como UNO o MEGA Corre un sistema operativo, en este caso una imágen Linux llamada Yocto.

Tal y como se muestra en la imágen conectaremos los dos cáp USB micro-B del Arduino Edison một máy tính xách tay nuestra. Fijate bien que el ngắt (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.

El conector USB micro-B marcado con el numro 2 sẽ sử dụng tại alimentación de 5V, programación useizando el IDE Arduino, lectura / escritura en la memoria flash y uso de Ethernet a través de USB.

El conector USB micro-B marcado con el número 3 se useiza para acceder bởi SSH a nuestro Edison.

Una vez conectado dejemos que se instalen los driver de Windows. Posteriormente revisamos en el Admsinistrador de dispositivos de Windows si renoce dos puertos:

  • El puerto COM virtual del Intel Edison
  • El puerto nối tiếp COM del Intel Edison.

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

Bước 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 detado por la PC, debes flashearlo con a imagen de Linux. Para esto usaremos la herramienta flash provista bởi Intel: Flash Tool Lite y el conector USB micro-B marcado con el numberro 2 (ver paso anterior).

1. Abre la herramienta "Flash Tool Lite" y conecta tu dispositivo a la PC.

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

3. Después de hacerects en "Bắt đầu nhấp nháy", la herramienta descomprimirá automáticamente el archivo y empezará a subir la imágen de Linux en el Intel Edison.

4. Se te pedirá desconectar y volver a conectar el cable Cáp USB 2, hazlo.

5. El directangulito de carga debe de llegar al 100%. ¡Listo! Xin lỗi bạn vì Intel Edison.

Ahora que ya tienes instalada la imágen "Linux Yocto Poky" ya podemos empezar a configurar el Intel Edison.

Bước 3: Cấu hình 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 es un cliente SSH y telnet, desarrollado originalmente bởi Simon Tatham para la plataforma Windows. Vamos a usar la conexión serial 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 (không có el ảo). Este valor lo usaremos para inicializar la comunicación.

Abre PUTTY y luego, selecciona el botón "Serial" e ingresa el número de puerto 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.
  • Gốc Configurar una contraseña para.
  • Conectar el Edison một WIFI không có màu đỏ.

Cuando te conectas por primera vez se te pedira hace đăng nhập. Đăng ký "root" y presiona "Enter". Veras "root @ edison" lo cual siga que te encuentras en el directorio root.

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

config_edison --setup

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), escribe un nombre y da enter.

Finalmente te pedira configurar una red WIFI. El móudlo escapeneara el lugar y detará las tái tạo WIFI phân giải, escribe el numro de la opción de la red detada la que te vas a conectar y posteriormente te pedirá el password de la red, escríbelo y presiona nhập.

¡Listo! 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 escribeiendo:

ifconfig

Presiona nhập y te mostrará los parámetros de tu red WIFI.

Ya estamos listo para configurar el Entorno de Desarrollo Integrado (IDE) para empezar con la programación. En nuestro caso será… ¡Python!

Bước 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 se puede programar usando el IDE de Arduino, sin cấm vận aqui usaremos Python.

Al tratar con Python y phần cứng, necesitamos usar la biblioteca "MRAA" para tương tác con los pines GPIO. MRAA es un biblioteca esqueleto de bajo nivel para comunicarse con los GPIO's en plataformas GNU / Linux y es con casi todas las coroas basadas en Linux Operatingizadas. Para ello procedureeremos a instalarla.

En Putty, cựu biên tập viên 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 tất cả
  • src / gz edison
  • src / gz core2-32

Posteriormente Guarda el archivo y realityiza la lista de paquetes escribeiendo:

nâng cấp opkg

Ahora vamos a instalar git, escribe:

opkg cài đặt 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 'export PATH = $ PATH: ~ / edison-scripts' >> ~ /.profile
  • nguồn ~ /.profile

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" escripimos la IP de tu edison (revisalo escribeiendo ifcong en tu edison), el usuario (root), bạn mật khẩu y finalmente en el campo del puerto escripiremos 22, ya que es el que generalmente se emplea para conexiones SSH.

Una vez conectado transfiere el archivo "prueba.py" al thư mục "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! Có ejecutado correctamente un código en phyton para tu Edison. Ahora ya estamos listo para procesar imágenes en nuestro Edison usando Python, pero antes escripiremos y probaremos el código de Python para detar rostros en nuestra PC…

Bước 5: Detectando Rostros Con OpenCV

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

El Intel Edison no tiene una interfaceaz de salida de video, por lo que para probar que el código que escripiremos en 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 deta, 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. Descargar Python 2.7 en nuestra PC
  2. Descargar OpenCV versión 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-pack.
  4. Instala pip, mas info en el siguiente enlace
  5. Instala numpy escribeiendo 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:

  • nhập khẩu
  • nhập cv2

Ambos comandos respectivamente deben de responseer 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 Corre el programma. Este Programa vamos debe de activar la webcam de tu PC y detar rostros y ojos tal y como en la imágen, pasa salir del programma presiona la tecla ESC.

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

Bước 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 recnocimiento de objetos. Hay muchos enfoques para el renocimiento mặt. Cấm vận tội lỗi, 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 colres 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 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 differenceir los colores de la piel en diferentes condiciones de luz. Esto mejora sigativamente al usar otros modelos de color. Nosotros không có usaremos este algoritmo

Nhận dạng dựa trên tính năng: Esta es la técnica que si usaremos para este có thể hướng dẫn. En esta técnica buscamos ciertas características, y en base a eso hacemos el recnocimiento. El empleo de "haar feature-based cascade" para la detección de rostros es un método eficaz de detección de objetos propuesto bởi Paul Viola y Michael Jones en su artículo " Phát hiện đối tượng nhanh chóng bằng cách sử dụng một tầng tăng cường các tính năng đơn giản "del año 2001. Es un enfoque basado en el aprendizaje automático en donde la" hàm tầng "se entrena contra un obsunto de imágenes Posvas y negativas. El algoritmo preferere de muchas imágenes Posvas (en nuestro caso estas son imágenes de caras) y muchas imágenes negativas (que no contienen imágenes de caras). A Partr de ello vamos a entrenar el modelo para extraer las características de cada imágen. Para este propósito, se utizan 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 directángulo blanco de la suma de píxeles debajo de un directángulo negro. Los "haar đặc trưng" deben estar entrenados para la cara, ojos, sonrisa, v.v. La biblioteca OpenCV contiene un affunto de clasificadores predefinidos. Estos están disponibles en la thảma C: / opencv / build / etc / haarcascades

Bước 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 escribeimos los siguientes comandos desde la terminal del Edison:

  • cập nhật opkg
  • nâng cấp opkg
  • opkg cài đặt 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:

  • nhập khẩu
  • nhập cv2

Si cada una 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. En tu smartphone descarga la app "IP Webcam". Hecho lo trước gia nhập ứng dụng là "Ajustes de IP Webcam" / "Preferencias 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á Destinynado para el procesamiento de imágenes debido a la poca cantidad de RAM que posee (1GB de RAM).

En la app "IP Webcam" da click en el boton thua kém "Iniciar servidor". Ahora, desde tu smartphone debes de poder ver la camara encendida (como si fuera a tomar foto) y una dirección IP abajito. Đăng ký dicha dirección IP en tu navegador web de la PC y 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 real) en tu PC. 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:

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 escripiste en el navegador de tu PC para conectarte) y dale enter. Si todo es correcto debes de ver el mensaje "Rostro Detado" en la terminal de tu Edison y "Rostro no Detado" en base a si pones un rostro en la webcam de tu celular. Asimismo si se Deta un rostro tu Intel Edison debe de hacer girar el servomotor.

Đề xuất: