جدول المحتويات:

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 Requièreces cantidades de enceración debido a que involucra métodos para adquirir، procesar، analizar y include las imágenes del mundo real con el fin de Productir information سر tratados por un ordenador. Actualmente، 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 supervisado para entrenar el algoritmo que identificara el objeto buscado. الحظر المفروض على الخطيئة ، لا فاموس a meternos en tantos lios en este التعليمات 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 el quo aportant ، con un rico set de carcaterisiticas que podemos applicationar facilmente para la detección y reocimiento 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. الأمم المتحدة معالجة الساليدا. Intel Edison no tiene una واجهة للفيديو ، من خلال إصدار كامل من برنامج 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 حد ذاته aclararán cuando hagamos la applicationación práctica. Nuestro objetivo es realizar la detección de rostros y، si se detección، realizar alguna acción.

اللوازم

El Material Que Requerimos para llevar a cabo este البرنامج التعليمي es:

المعدات

  • 1 كمبيوتر محمول / كمبيوتر شخصي.
  • 1 بلاكا اردوينو إنتل إديسون.
  • عدد 2 كبل USB micro-B.
  • 1 هاتف ذكي con la app "IP Webcam".
  • 1 محرك خادم SG 90.

البرمجيات

  • أداة إنتل فلاش لايت V5.2.4
  • PuTTy
  • FileZilla FTP
  • Imágen Yocto Poky (V25.5-15)
  • كود VS
  • بايثون 2.7
  • إصدار OpenCV 3.3.0
  • نومبي
  • Libreria MRAA
  • Drivers de Windows para el módulo Intel Edison (Se descargan en cuanto se conecta la placa).
  • Archivos dll de Windows (Pueda ser que te falten al momento de instalar OpenCV en tu laptop).

الخطوة 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 en tres presentaciones:

  • La placa de desarrollo creada من خلال Intel متوافق مع Arduino (es la que usamos en este التعليمي).
  • Una placa mini-Breakout (con el móudlo ya montado) متوافقة مع لوحة توسيع Arduino.
  • El módulo Intel Edison en su estado nativo (Aquí Requerimos fabricar nuestra propia PCB).

متوافق مع Arduino debido a la flexibilidad y synibilidad para التفاعلي بين أجهزة الاستشعار وأجهزة الاستشعار. شركة إنتل إديسون ، وهي عبارة عن مجموعة متنوعة من منصات Arduino ، UNO o MEGA corre un sistema operativo ، en este caso una imágen Linux llamada Yocto.

قم بتوصيل الكابلات مع كبلات التوصيل USB micro-B من Arduino Edison وهو كمبيوتر محمول من طراز nuestra. 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 micro-B marcado con el numero 2 se use para alimentación de 5V، programación utilizando el IDE Arduino، lectura / escritura en la memoria flash y uso de Ethernet a través de USB.

USB micro-B marcado مع استخدام número 3 حد ذاته لاستخدامه من خلال SSH و nuestro Edison.

Una vez conectado dejemos que se instalen los drivers de Windows. مراجعة لاحقة في برنامج Admsinistrador de Disitivos de Windows واستعادة التطبيقات:

  • إل بويرتو كوم الظاهري ديل إنتل إديسون
  • البورتو المسلسل كوم ديل إنتل اديسون.

Habiendo revisado lo anterior ، الإجراءات الخاصة بـ siguiente paso ، وميض من Intel Edison con la imagen de Linux.

الخطوة الثانية: Flasheando El Intel Edison

Flasheando إيل إنتل إديسون
Flasheando إيل إنتل إديسون
Flasheando إيل إنتل إديسون
Flasheando إيل إنتل إديسون
Flasheando إيل إنتل إديسون
Flasheando إيل إنتل إديسون

Una vez que tu detitivo esta التصحيح الاكتشاف من خلال الكمبيوتر الشخصي ، debes flashearlo مع صورة لينكس. يمكنك استخدام الفلاش المقدم من قبل Intel: Flash Tool Lite y el conector USB micro-B marcado con el numero 2 (ver paso anterior).

1. Abre la herramienta "Flash Tool Lite" و "Flash Tool Lite" و "Flash Tool Lite" و "جهاز كمبيوتر شخصي".

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 "ابدأ بالوميض"، la herramienta descomprimirá automáticamente el archivo y empezará a subir la imágen de Linux en el Intel Edison.

4. قم بتركيب جهاز كمبيوتر على كبل توصيل كابل USB 2 ، هازلو.

5. El rectangulito de carga debe de llegar al 100٪. ¡ليستو! يا فلاشيا تو إنتل اديسون.

Ahora que ya tienes instalada la imágen "Linux Yocto Poky" يمكنك استخدام برنامج تكوين Intel Edison.

الخطوة 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 detitivo، para ello vamos a usar la terminal PuTTY. PuTTY هو عميل SSH y telnet ، تم إصداره من Simon Tatham para la plataforma Windows. مسلسل Vamos a usar la conexión aqui.

Antes de abrir la terminal de PuTTY، abre el "Administrador de Disitivos" y anota el número de puerto. 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. لاحقة 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 detitivo.

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 detitivo:

  • Configurar un nombre para el dispsotivo.
  • Configurar una contseña para root.
  • كونكتار اديسون واي فاي احمر.

Cuando te conectas por primera vez se te pedira hace log in. Escribe "root" y presiona "Enter". Veras "root @ edison" لو cual المعنى que que te encuentras en el manageririo root.

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

config_edison - إعداد

أدخل كلمة المرور التالية ثم أدخل كلمة المرور. Luego te Pedira un nombre para el Disitivo (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 escaneara el lugar y detará las redes WIFI disponibles، escribe el numero de la opción de la red detonibles la que te vas a conectar y backiormente 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

دخول Presiona 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. سلسلة كازينو جديدة… ¡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

El Edison se puede programar usando el IDE de Arduino، sin block aqui usaremos Python.

Al tratar con Python y Hardware، necesitamos usar la biblioteca "MRAA" para Interactuar con los pines GPIO. MRAA es un biblioteca esqueleto de bajo nivel para comunicarse con los GPIO's en plataformas GNU / Linux y es متوافقة مع casi todas las placas basadas en Linux utilizadas. 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 all
  • src / gz edison
  • src / gz core2-32

الحماية اللاحقة:

ترقية opkg

Ahora vamos a instalar git، escribe:

opkg تثبيت git

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

استنساخ بوابة https://github.com/drejkim/edison-scripts.git ~ / edison-scripts

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

  • صدى 'export PATH = $ PATH: ~ / edison-scripts' >> ~ /. Profile
  • المصدر ~ /. Profile

Ahora ejecutaremos los siguientes comandos:

  • resizeBoot.sh
  • installPip.sh
  • تثبيت

¡ليستو! Ya debemos de tener configurado تصحيح Python en el Edison. الفقرة probar lo 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"، "contseñ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" المجلد "الجذر".

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 حد ذاتها apaga 2 ميليسيجوندوس.

¡فيليسيدادس! لديه تصحيح ejecutado un código en phyton para tu Edison. Ahora ya estamos listo para procesar imágenes en nuestro Edison usando Python، pero antes escribiremos and probaremos el código de Python para detectar rostros en nuestra PC …

الخطوة 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 interface 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 and posteriormente lo migraremos al Edison.

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

Antes de empezar necesitamos tener instalado Python y OpenCv en nuestras computadora. بور لو كيو فاموس a realizar estos pasos en nuestra PC:

  1. تحميل Python 2.7 en nuestra PC
  2. تحميل 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 -packs.
  4. Instala pip، mas info en el siguiente enlace
  5. تثبيت Instala Numpy Escribiendo El Comando de Python -m Pip - مستخدم Numpy

الفقرة verificar que todo funciona correctamente escribe en la terminal de python de tu PC y da enter:

  • استيراد numpy
  • استيراد السيرة الذاتية 2

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

Ahora descarga el archivo "3_detectaRostrosOjos.py"، abre una terminal de Python en tu PC and corre el programa. Este programa vamos debe de activear la webcam de to PC and detar rostros y ojos tal y como en la imágen، pasa salir del programa presiona la tecla ESC.

Si lo lograste ، ¡felicidades! يجب أن يكون هذا هو الحال بالنسبة لك ، حيث يتم تحديد الهدف الجديد من Intel Edison y Activar un motor a pasos cada vez que detective un rostro.

الخطوة 6: أنتي دي ليجار Al Código En Edison… ¡Teoria De Funcionamiento

أنتي دي ليجار آل كوديجو إن إديسون… ¡Teoria De Funcionamiento!
أنتي دي ليجار آل كوديجو إن إديسون… ¡Teoria De Funcionamiento!

La detección de rostros es un caso muy específico del Reconocimiento de objetos. Hay muchos enfoques para el recocimiento facial. حظر الخطيئة ، فاموس أ ديسكوتير لوس دوس ماس كومونيس:

Segmentación basada en color: En esta técnica، la cara se parta 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 o un píxel sin color de la piel. La razón detrás del uso de otros 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 دلالة على اللون. Nosotros no usaremos este algoritmo

الاعتراف القائم على الميزة: Esta es la técnica que si usaremos para este القابل للتوجيه. En esta técnica buscamos ciertas características، y en base a eso hacemos el restocimiento. El empleo de "haar feature-based cascade" para la detección de rostros es un método eficaz de detección de objetos propuesto Jones الاكتشاف السريع للأجسام باستخدام سلسلة معززة من الميزات البسيطة "del año 2001. Es un enfoque basado en el aprendizaje automático en el aprendizaje automático en donde la" cascade function "se entrena contrena 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" deben estar entrenados para la cara، ojos، sonrisa ، إلخ. La biblioteca OpenCV contiene un conjunto de clasificadores predefinidos. Estos están disponibles en la carpeta C: / opencv / build / etc / haarcascades

الخطوة 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
  • ترقية opkg
  • opkg تثبيت python-numpy python-opencv

Verifica que todo se haya instalado fixamente. الفقرة ello ve a la terminal de Python desde tu arduino Edison y escribe:

  • استيراد numpy
  • استيراد السيرة الذاتية 2

لا يوجد تقرير ، يجب عليك القيام به.

Ahora vamos a configurar la fuente de video de donde el Intel Edison leera los rostros. En tu smart descarga la app "IP Webcam". Hecho lo anterior ينضم إلى تطبيق "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á destinado para el procesamiento de imágenes debido a la poca cantidad de RAM que posee (1GB de RAM).

En la app "IP Webcam" انقر فوق en el boton أدنى "Iniciar servidor". Ahora، desde tu smartphones debes de poder ver la camara encendida (como si fuera a tomar foto) y una dirección IP abajito. Escribe 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 active) en tu PC. ملف الولايات المتحدة الأمريكية

بيثون 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 أدخل. Si todo es fixo debes de ver el mensaje "Rostro Discoverado" en la terminal de tu Edison y "Rostro no Detectado" en base a si pones un rostro en la webcam de tu celular. Asimismo سي حد ذاته مكتشفًا عن روسترو تو إنتل إديسون ديب دي هاسر محرك مؤازر.

موصى به: