תוכן עניינים:

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

כל תהליך ההדמיה של מחשבים ועיבודים למחשבים הוא אחד מהשירותים הגדולים ביותר שיכולים לחקור את החקירה ולדרוש מידע על מידע, תהליכים, אנליזות ויצירות ser tratados por un ordenador. למעשה, אלקטרוניקה של אלגוריתמוס עבור סיפורי תורה יכולים לבסס מחדש neuronales convolucionales, las cuales generalmente processan miles de imágenes de rostros humanos mediante el uso de aprendizaje supervisado for entrenar el algoritmo que identifara 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 cientificos y desarrolladores que aportan, actualizan yenta 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. Típicamente una a processico un procesamiento y una imágen de salida. אינטל אדיסון לא יכולה ליצור ממשק וידאו, עבור תוכנת פיתון ותוכנת מחשב נייד. 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.

אספקה

חומר זה דורש הוראות למערכות הדרכה:

חוּמרָה

  • מחשב נייד/מחשב אחד.
  • 1 פלאזה ארדואינו אינטל אדיסון.
  • 2 כבלים USB micro-B.
  • אפליקציית סמארטפון אחת "מצלמת אינטרנט".
  • 1 servomotor sg 90.

תוֹכנָה

  • Intel Flash tool Lite V5.2.4
  • מֶרֶק
  • FileZilla FTP
  • Imágen Yocto Poky (V25.5-15)
  • קוד VS
  • פייתון 2.7
  • גרסת OpenCV 3.3.0
  • מגושם
  • ליבריה MRAA
  • מנהלי ההתקן של Windows עבור מודל Intel Edison (ניתן להוריד את הקובץ).
  • ארכיון dll של Windows (ניתן להשתמש בו כדי להתקין את OpenCV במחשב נייד).

שלב 1: חיבור 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 עבור אינטל תואם עם Arduino (es la que usamos en este הדרכה).
  • Una placa mini-breakout (con el móudlo ya montado) תואם con la expansion Board de Arduino.
  • Intel Intel Edison and su estado nativo (Aquí requerimos fabricar nuestra propia PCB).

ניתן להשתמש תואם הרחבה תואם את Arduino debido a la flexibilidad y compatibilidad para interactuar con otros actuadores y sensores. אל אינטל אדיסון, תכונות שונות של ארדואינו כמו UNO או MEGA corre un sistema operativo, en este caso una imágen Linux llamada Yocto.

כבל USB יכול להכיל כבלים 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 permanentecerá apagado.

מחבר USB micro-B מרקדו עם מספר 2 יכול להשתמש במכשיר 5V, תוכנת שימוש ב- IDE Arduino, הרצאות/תוכנות והזכרת פלאש ושימוש ב- Ethernet.

מחבר USB מיקרו- B מרקט עם מספר 3 ניתן להשתמש עבור SSH או Nuison Edison.

אם אתה יכול להתקין מנהלי התקנים של Windows. שיפוצים אחרונים של מנהל מערכת ההפצה של Windows:

  • El puerto COM וירטואלי של אינטל אדיסון
  • אל פורטו סדרתי COM del Intel Edison.

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

שלב 2: Flasheando El Intel Edison

פלאשנדו אל אינטל אדיסון
פלאשנדו אל אינטל אדיסון
פלאשנדו אל אינטל אדיסון
פלאשנדו אל אינטל אדיסון
פלאשנדו אל אינטל אדיסון
פלאשנדו אל אינטל אדיסון

אם אתה יכול לתקן את זה בפורמט המחשב האישי, אתה יכול להשתמש ב- flashearlo עם תמונה של לינוקס. ניתן להשתמש בשירותי הפלאש המפורסמים של אינטל: Flash Tool Lite וקונקטור USB micro-B מרכיב עם מספר 2 (ver paso anterior).

1. אפשר להשתמש בכלי "Flash Tool Lite" ובמחשב האישי שלך.

2. לחץ על Examinar y busca el archivo.zip de la imagen de Linux que descargaste (edison-image-ww25.5-15.zip).

3. לחץ על הקלקה "התחל להבזיק", להורדה של מערכת ההפעלה האוטומטית של ארכיון ועיצוב של לינוקס באינטל אדיסון.

4. ניתן לראות את החיבור והכבל של כבל USB 2 כבל USB.

5. El rectangulito de carga debe de llegar al 100%. ¡ליסטו! אני מבקש מהאינטל אדיסון.

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

שלב 3: הגדרת 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 הוא לקוח SSH ו- telnet, אשר הוזן במקור על ידי Simon Tatham עבור 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 porteo correspondiente para el COM del Edison (no el virtual). Este valor lo usaremos para inicializar la comunicación.

Abre PUTTY y luego, בחירת אל בוטון "סדרתי" והרשמה של מספר נטו COM del Edison. Posteriormente anota la velocidad en baudios a la que se comunicara el Edison con tu equipo, כתוב 115200. Finalmente presiona abrir para empezar la comunicación con el dispositivo.

Una vez que estas en la terminal de PuTTY puedes ejecutar comandos for configurar tu Edison. ניתן לראות את האפשרויות להלן:

  • תצורת un nombre para el dispsotivo.
  • תצורת una contraseña para root.
  • קונקטאר אל אדיסון WIFI אדום.

Cuando te conectas por primera vez se te pedira יכול להיכנס למערכת. כתוב "root" והיכנס "Enter". וראס "שורש@אדיסון" מספק משמעות רבה לשורש הבסיס.

Ahora que ya te encuentras listo for teclear comandos, כתוב:

configure_edison -setup

Presiona enter y posteriormente רשום un סיסמא y nuevamente presiona enter. Luego te pedira un nombre para el dispositivo (que en realidad es un alias mas que un nombre), כתוב un nombre y da enter.

הגדרת התצורה של WIFI אדומה. ניתן לראות את פרטי ה- WIFI החדשים, לרשום את מספר האפשרויות של האיתור האדום ולהתגבר על הסיסמה של האדום, ההרשמה וההזנה להיכנס.

¡ליסטו! Ya debes de estar conectado al WIFI. אתה יכול לרכוש את כל השירותים שלך עם ה- hostame והאתר שלך IP. Asimismo puedes revisar más parámetros de tu conexión escribiendo:

ifconfig

תוכל להזין את WIFI האדום.

אנו יכולים לרשום את התצורה של Entorno de Desarrollo Integrado (IDE) עבור empezar con la programación. En nuestro caso será… Python!

שלב 4: תוכנת תוכנת Usando Python אל אדיסון

מתכנת Usando Python עבור אל אדיסון
מתכנת Usando Python עבור אל אדיסון
מתכנת Usando Python עבור אל אדיסון
מתכנת Usando Python עבור אל אדיסון

תוכנת El Edison se puede usando el IDE de Arduino, פטיש אמברגו.

Al tratar con Python y hardware, necesitamos usar la biblioteca "MRAA" עבור אינטראקטיב עם GPIO. MRAA es un biblioteca esqueleto de bajo nivel para comunicarse con los GPIO's and plataformas GNU / Linux y es compatible con casi todas las placas basadas and 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 להלן:

  • src/gz הכל
  • src/gz edison
  • src/gz core2-32

אחורי שמירה על ארכיון בפועל של רשימות הפקטורים:

שדרוג opkg

Ahora vamos a git instalar, כתוב:

opkg להתקין git

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

שיבוט git https://github.com/drejkim/edison-scripts.git ~/edison-scripts

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

  • הד 'ייצוא PATH = $ PATH: ~/edison-scripts' >> ~/.profile
  • מקור ~/.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), סיסמא זו 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 כולל 2 milisegundos. y se apaga 2 milisegundos.

¡Felicidades! האם יש ejecutado correctamente un código en phyton para tu Edison. Ahora ya estamos listo fora processar imágenes and nuestro Edison usando Python, pero antes escribiremos and probaremos el código de Python for detar rostros and nuestra PC…

שלב 5: איתור Rostros Con OpenCV

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

אל אינטל אדיסון לא יכול ליצור ממשק וידאו, למחשב האישי ולמשלוחים של Python a la perfección probaremos for correr en nuestra PC and 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. עבור lo que que vamos realisar estos pasos en nuestra PC:

  1. הורד את Python 2.7 במחשב נייד
  2. הורד את גרסת OpenCV 3.3.0
  3. ניתן להשתמש ב- OpenCv ובמיקומים C: / opencv / build / python / 2.7 / x86 y kopia el arhivo cv2.pyd al directorio de python C: / Python27 / Lib / site-packages.
  4. Instala pip, mas info en el siguiente enlace
  5. התקנת numpy מתארת את כל הפתרונות של python -m pip להתקין -משתמש numpy

עבור verificar que todo funciona correctamente כתוב en la terminal de python de tu PC y da enter:

  • יבוא מסוחרר
  • יבוא 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 de Python en tu PC y corre el programa. Este programa vamos debe de activar la web web 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, fel felicidades! Pasemos al signuiente paso que es correr este código desde nuestro Intel Edison y activar 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 פנים. אמברגו של חטא, ואפשר להבחין בלוס dos mas comunes:

סגמנטציה של צבעים: 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 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 differir los colores de la piel en diferentes condiciones de luz. Esto mejora significativamente 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 enfoque basado en el aprendizaje automático en donde la" function cascade "se entrena contra un conjunto de imágenes positiveas and negativeas. El algoritmo requiere de muchas imágenes positiveas (en nuestro caso estas son imágenes de caras) y muchas imágenes negativeas (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 contiene un conjunto de clasificadores predefinidos. Estos estánibes en la carpeta C: / opencv / build / etc / haarcascades

שלב 7: איתור Rostros Con OpenCV באינטל אדיסון

זיהוי Rostros Con OpenCV ואינטל אדיסון!
זיהוי Rostros Con OpenCV ואינטל אדיסון!
זיהוי Rostros Con OpenCV ואינטל אדיסון!
זיהוי Rostros Con OpenCV ואינטל אדיסון!

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 וכתוב:

  • יבוא מסוחרר
  • יבוא 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. הורד את האפליקציה "מצלמת אינטרנט". Hecho lo anterior access to a app y ve a "Ajustes de IP Web"/"Preferencias de video"/"Resolución de las fotos" y dejamos el parámetro a 640x480. Es aqui cuando comienzas not notar que el Intel Edison simplemente no está destinado for el processamiento de imágenes debido a la poca cantidad de RAM que posee (1GB de RAM).

האפליקציה "מצלמת אינטרנט" מופיעה על ידי לחיצה על "פחות שירותים נחותים". Ahora, desde tu smartphone debes de poder ver la camara encendida (como si fuera a tomar foto) y una dirección IP abajito. רשום את כתובת ה- IP שלך באינטרנט ובאתר האינטרנט של מחשבים אישיים ויכולים לצפות בסרטונים ווידאו.

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) ו- tu PC. ארה"ב FileZilla עבור 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" aqui inserta la IP que te da "IP Web" (es la misma que escribiste en el navegador de tu PC for 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" ובסיסו ומעריכים את מערכת המצלמות ברשת. Asimismo si se detecta un rostro tu Intel Edison debe de hacer girar el servomotor.

מוּמלָץ: