Բովանդակություն:

Detección De Rostros Con Arduino Intel Edison: 8 քայլ
Detección De Rostros Con Arduino Intel Edison: 8 քայլ

Video: Detección De Rostros Con Arduino Intel Edison: 8 քայլ

Video: Detección De Rostros Con Arduino Intel Edison: 8 քայլ
Video: 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

Procesրագրի իմացության համար անհրաժեշտ է դիտարկել մի շարք պահանջներ, որոնք պահանջում են մեծ հետազոտություններ, որոնք ուղղված են գործընթացների, վերլուծությունների և վերլուծությունների, որոնք ներառում են բազմաթիվ տեղեկատվական աղբյուրներ ser tratados por un ordenador. Իրականում, մենք մեծացնում ենք հեքիաթները tareas se basan en redes neuronales convolucionales, las cuales generalmente processan miles de imágenes de rostros humanos mediante el uso de aprendizaje supervisado 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 for computadora llamada openCV la cual gracias al arduo trabajo de la comunidad de cientificos y desarrolladores y módigan փաստական, 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- ը չի կարող միացնել տեսանյութը, որը թույլ է տալիս 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 detea, realizar alguna acción.

Պարագաներ

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

HARDWARE

  • 1 նոութբուք/համակարգիչ:
  • 1 Placa Arduino Intel Edison:
  • 2 մալուխ USB micro-B:
  • «IP վեբ -տեսախցիկ» սմարթֆոնի 1 հավելված:
  • 1 սերվոմոտոր sg 90.

SOՐԱԳԻՐ

  • Intel Flash գործիք Lite V5.2.4
  • PuTTy
  • FileZilla FTP
  • Imágen Yocto Poky (V25.5-15)
  • VS ծածկագիր
  • Պիթոն 2.7
  • OpenCV տարբերակ 3.3.0
  • Չարաճճի
  • Libreria MRAA
  • Windows Editors- ի Intel Edison- ի վարորդները (Se descargan en cuanto se conecta la placa):
  • Archivos dll de Windows (Pueda ser que te te falten al momento de instalar Instalar en 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

Տեղեկատվական սարքավորումներ Intel Edison lo podemos encontrar en tres presentaciones:

  • Տեղադրեք տեղեկատվական տեխնոլոգիան Intel- ի հետ համատեղելի Arduino- ով (es la que usamos en este tutorial):
  • Una placa mini-breakout (con el móudlo ya montado) համատեղելի con la ընդլայնում Board de Arduino.
  • Տեղադրեք Intel Edison- ը ձեր բնական արտադրության մեջ (Aquí Requerimos fabricar nuestra propia PCB):

Դուք օգտագործում եք տարածքի համատեղելիությունը Arduino debido a la flexibilidad y compabilidad para interactuar con otros actuadores y sensores- ի հետ: El Intel Edison, որը տարբերվում է Arduino como UNO- ի կամ MEGA- ի համակարգային օպերացիոն համակարգից, որը թույլ է տալիս օգտագործել Linux- ի 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 se encuentra en dicha posición el Arduino Edison permanecerá apagado.

El conector USB micro-B marcado con el numero 2 se use use for alimentación de 5V, programaciónn use el 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-ը կօգտագործվի SSH- ի և Edison- ի միացման համար:

Una vez conectado dejemos que se instalen los վարորդների Windows. Posteriormente revisamos en el Admsinistrador de dispositivos de Windows si reconoce dos puertos:

  • El puerto COM վիրտուալ del Intel Edison
  • El puerto սերիական COM del Intel Edison.

Նախկինում վերանայեք այն, ինչ վերաբերում է ձեր ընթացակարգին, օգտագործեք 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

Այն կարող է օգտագործվել համակարգչի համար, որը թույլ է տալիս շտկել ձեր աշխատանքը համակարգչի միջոցով, ինչպես նաև Linux- ի պատկերով: Ֆայլեր, որոնք նախատեսված են Intel- ի համար. Flash Tool Lite և միակցիչ USB micro-B marcado con el numero 2 (ver paso anterior):

1. Լրացուցիչ տեղեկություններ «Flash Tool Lite» - ի և ձեր համակարգչի օգտագործման մասին:

2. Սեղմեք ֆայլը փորձարկելու և պահպանելու համար:

3. Después de hacer clic en "Start to flash", 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 USB cable 2, hazlo.

5. El rectangulito de carga debe de llegar al 100%: ¡Listo! Հավելյալ տեղեկություններ Intel Edison- ի մասին:

Այն թույլ է տալիս տեղադրել «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 dispositivo, para ello vamos a usar la terminal PuTTY- ի համար: PuTTY- ն հաճախորդների SSH և հեռագիր է, որոնք անհրաժեշտ են 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 puertorespondiente para el COM del Edison (ոչ էլ վիրտուալ): Este valor lo usaremos para inicializar la comunicación.

Abre PUTTY y luego, selecciona el botón «Serial» և ingresa el número de puerto COM del Edison: Հետևյալ տեղեկություններ, որոնք վերաբերում են Edison con tu equipo- ին, նշեք 115200. Վերջնական նախադրյալներ, որոնք կօգնեն մեզ տրամադրել իրենց կոմունիկացիաները:

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

  • Configurar un nombre para el dispsotivo- ի համար:
  • Կարգավորեք առանց արմատների հակասությունը:
  • Conectar el Edison և կարմիր WIFI:

Cuando te conectas por primera vez se te pedira hace մուտք գործեք: Նշեք «արմատ» և presiona «Մուտքագրեք»: Veras "root@edison" lo cual indica que te encuentras en el Directorio root.

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

configure_edison -կարգավորում

Presiona enter y posteriormente escribe un password y nuevamente presiona enter. Luego te pedira un nombre para el dispitivo (que en realidad es un alias mas que un nombre), escribe un nombre y da enter.

Վերջնականապես կարգավորեք կարմիր WIFI- ն: El móudlo escaneara el lugar y deteará las redes WIFI disponibles, escribe el numero de la opción de la red deteada la que te vas a conectar y posteriormente te pedirá el password de la red, escríbelo y presiona enter մուտքագրել:

¡Listo! Այլևս անհրաժեշտ է միացնել 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- ը:

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- ը կարող է օգտագործել ծրագիր IDE de Arduino- ի միջոցով, որն արգելում է օգտագործել 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, escribe:

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 ed/edison-scripts al PATH:

  • echo 'export PATH = $ PATH: ~/edison-scripts' >> ~/. պրոֆիլ
  • աղբյուր ~/. պրոֆիլ

Ahora ejecutaremos los siguientes comandos:

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

¡Listo! Հավելվածներ, թե ինչպես կարելի է կարգավորել Python- ը և Edison- ը: Նախքան ejecutaremos el código anexado en este paso («prueba.py») օգտագործումը FileZilla- ի միջոցով: Para ello abriremos FileZilla en la PC (Lo debiste de haber descargado) y el el campo de "Servidor", "usuario", "contraseña" y "Puerto" escribimos la IP de tu edison (revisalo escribiendo ifcong en tu edison), el usuario (արմատ), 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 «արմատ» el comando siguiente para ejecutar el código.

python prueba.py

Դիտեք այն LED 13 -ով, որը ծածկված է 2 միլիարդով: y se apaga 2 milisegundos.

¡Ֆելիսիդադներ Has ejecutado correctamente un código en phyton para tu Edison. Ինչ վերաբերում է Edison- ի և Python- ի օգտագործողի ցուցակին, այն կարող է նկարագրել ինչպես Python- ը, այնպես էլ համակարգչի կողմից հայտնաբերված ռոստրոսները:

Քայլ 5. Բացահայտեք Rostros Con OpenCV- ն

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

El Intel Edison- ը ոչ մի կերպ չի կարող դիտել տեսանյութը, այնուհետև այն կարող է ծառայել որպես Python ֆունկցիա և կատարելագործման հավանականություն, որը թույլ է տալիս համակարգչին միանալ Edison- ին:

Nuestro objetivo es realizar la detección de rostros y, si se detea, 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 և պատճենել cv2.pyd- ը ՝ Python C: / Python27 / Lib / կայք-փաթեթներ:
  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 and da enter:

  • ներմուծել numpy
  • ներմուծել cv2

Ambos comandos respectivamente deben de responder ningún mensaje de error (osea nada), նշելով, որ այն մատենագրված է, քանի որ նա կարող է ներմուծել ուղղումներ:

Ahora descarga el archivo "3_detectaRostrosOjos.py", օգտագործելով Python- ի տերմինալը և ձեր համակարգչի և համապատասխան այլ ծրագրերի տերմինալը: Այս ծրագիրը հնարավորություն է տալիս ակտիվացնել վեբ -տեսախցիկը ձեր համակարգչի համար և հայտնաբերել ռոստրոզը, ինչպես նաև այն օգտագործել իմ պատկերով, ինչպես նաև ծրագրել է ESC ESA:

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 detee 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 դեմքի. 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: Գունավոր RGB- ի ձևաչափը ներառում է պատկերներ, որոնք պարունակում են RGB գույնի ձևեր, ինչպես նաև HSV կամ YIQ ձևաչափի մշակման գործընթացներ: Այս գործընթացի շնորհիվ, դուք կարող եք ձեռք բերել հիմնական հատկությունները, որոնք վերաբերում են գույնի դե պիելին կամ գույնի դե պիելին: 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 տարբեր պայմաններ de luz. Esto mejora meaningativamente al usar otros modelos de color. Nosotros no usaremos este algoritmo

Խաղարկայինի վրա հիմնված ճանաչում. 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 yu Michael Joso Paulo " Օբյեկտի արագ հայտնաբերում ՝ օգտագործելով պարզ հատկանիշների խթանված կասկադ », 2001 թ. 2001 թ. 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 useizan 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 և այլն: OpenBV- ի գրադարանային գրականությունը կարող է կանխորոշված լինել: Estos están disponibles en la carpeta C: / opencv / build / etc / haarcascades

Քայլ 7: Բացահայտեք Rostros Con OpenCV- ն և Intel Edison- ը:

Բացահայտեք Rostros Con OpenCV- ը և Intel Edison- ը
Բացահայտեք Rostros Con OpenCV- ը և Intel Edison- ը
Բացահայտեք Rostros Con OpenCV- ը և Intel Edison- ը
Բացահայտեք 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

Եթե ցանկանում եք իմանալ, թե ինչպես կարելի է հաշվետվություն ստանալ, ապա պետք է կատարելագործել ձեր կատարած աշխատանքը:

Ahora vamos a configurar la fuente de video de donde el Intel Edison թույլ է տալիս պարզել ձեր սարքը: Ձեր սմարթֆոնը ներբեռնեք «IP վեբ -տեսախցիկ» հավելվածով: Hecho lo anterior accala a la app y ve a "Ajustes de IP Webcam"/"Preferencias de de video"/"Resolución de las fotos" y dejamos el parámetro a 640x480: Սա Intel- ի Edison պարզեցված նոտար է, որը նախատեսված չէ այն գործընթացների համար, որոնք թույլ են տալիս օգտագործել RAM- ի արագությունը (1 ԳԲ RAM):

«IP վեբ -տեսախցիկ» հավելվածում կտտացրեք «Iniciar servidor» ստորին հատվածին: Ստորև բերված է ձեր սմարթֆոնի դեբետը, որը թույլ է տալիս բարձրացնել ձեր սարքը (ինչպես նաև լուսանկարել ձեր լուսանկարը) և ուղղել IP հասցեով: Բաժանորդագրվի՛ր 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) en tu PC. Օգտագործեք FileZilla- ն ՝ օգտագործելով ambos códigos a una misma localidad de tu Edison- ը (կամ, օրինակ, թղթապանակի արմատից) և 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. Ինչ վերաբերում է «Rostro deteado» - ի տերմինալում գտնվող Edison y «Rostro no detector» - ին, ապա այն պետք է ուղղվի ձեր բջջային վեբ -տեսախցիկի հիման վրա: Asimismo si se detea un rostro tu Intel Edison debe de hacer girar el servomotor.

Խորհուրդ ենք տալիս: