Taula de continguts:
- Subministraments
- Pas 1: Conectar El Intel Edison a La PC
- Pas 2: Flasheando El Intel Edison
- Pas 3: Configurant El Intel Edison (Primeros Pasos)
- Step 4: Usando Python Para Programar El Edison
- Pas 5: Detectant Rostros amb OpenCV
- Step 6: Antes De Llegar Al Code En Edison… ¡Teoria De Funcionamiento
- Pas 7: Detectant Rostros amb OpenCV a Intel Edison
- Pas 8: Muéstramelo Funcionant…
Vídeo: Detecció de Rostros amb Arduino Intel Edison: 8 Steps
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
El processament d’imatges o la visió per computadora és un d’esos camps que requereixen enormes cantitats d’investigació degut a que involucra mètodes per adquirir, processar, analitzar i comprendre les imatges del món real amb la fi de producció d’informació numèrica o simbòlica per a què pugui ser tractats per un ordinador. Actualment, els millors algoritmes per a contes tareas es basen en redes neuronales convolucionals, les quals normalment processen miles de imatges de rostres humans mitjançant l’ús d’aprenentatge supervisat per entrenar l’algoritme que identifica l’objecte buscat. 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 qual cosa serà gràcies a l'arduo treball de la comunitat de científics i desenvolupadors que aportarà, actualitzarà i mantindrà el codi, ja compte amb un rico set de carcaterisitiques que podem implementar fàcilment per a la detecció i reconeixement d’imatges.
A pesar de que OpenCV es troba escrit en C ++ orientat a objectes, aquest suporta múltiples idiomes i nosaltres vamos a usar Python com a nostre llenguatge de programació per realitzar la detecció de rostres. Típicament, una aplicació de processament d’imatges té una imàgen d’entrada, un processament i una imatge de sortida. Intel Edison no té una interfície de vídeo, per lo que executem el script de Python en el nostre PC. Luego, després del funcionament exitoso del codi a la PC, modificarem el codi per corregir a l’Edison. Les coses s’aclariran quan haurem de implementar la pràctica. El nostre objectiu es realitza la detecció de rostres i, si es detecta, realitza alguna acció.
Subministraments
El material que es requereix per dur a terme aquest tutorial és:
HARDWARE
- 1 portàtil / PC.
- 1 Placa Arduino Intel Edison.
- 2 cables USB micro-B.
- 1 telèfon intel·ligent amb l'aplicació "Càmera web IP".
- 1servomotor sg 90.
PROGRAMARI
- Eina Intel Flash Lite V5.2.4
- MUNTATGE
- FileZilla FTP
- Imágen Yocto Poky (V25.5-15)
- Codi VS
- Python 2.7
- Versió OpenCV 3.3.0
- Gronxador
- Libreria MRAA
- Drivers de Windows per al mòdul Intel Edison (Se descargan en cuanto se conecta la placa).
- Archivos dll de Windows (Pueda ser que falten al moment d’instal·lar OpenCV en el teu portàtil).
Pas 1: Conectar El Intel Edison a La PC
El mòdul de maquinari Intel Edison ho podem trobar en tres presentacions:
- La placa de desenvolupament creada per Intel compatible amb Arduino (és la que usem en aquest tutorial).
- Una placa mini-breakout (amb el mòbil ja muntat) compatible amb la placa d’expansió d’Arduino.
- El mòdul Intel Edison en el seu estat natiu (Aquí es requereix fabricar la nostra pròpia PCB).
Us us la placa d’expansió compatible amb Arduino degut a la flexibilitat i compatibilitat per interactuar amb altres actuadors i sensors. El Intel Edison, a diferencia de les altres places d'Arduino com UNO o MEGA corre un sistema operatiu, en aquest cas un imàgen Linux llamada Yocto.
Tal i com es mostra en la imàgen connectarem els dos cables USB micro-B del Arduino Edison a la nostra laptop. Fijate bien que el interrupor (marcado con el número 1 en la imágen), està apuntant cap a baix, si no es troba en dicha posició el Arduino Edison permanecerà apagat.
El conector USB micro-B marcat amb el número 2 es fa servir per a l'alimentació de 5V, programació utilitzant l'IDE Arduino, lectura / escriptura en la memòria flash i ús d'Ethernet a través de USB.
El conector USB micro-B marcat amb el número 3 s'utilitza per accedir per SSH al nostre Edison.
Una vegada connectat deixem que s'instal·lin els controladors de Windows. Posteriorment revisem a l'administrador de dispositius de Windows i reconegueu dos ports:
- El port COM virtual de Intel Edison
- El puerto serial COM de Intel Edison.
Havent revisat l’anterior, procedim al següent pas, apareix a Intel Edison amb la imatge de Linux.
Pas 2: Flasheando El Intel Edison
Una vegada que el vostre dispositiu està correctament detectat per l'ordinador, els debes es llueixen amb una imatge de Linux. Per això utilitzarem l’eina flash proveïda per Intel: Flash Tool Lite i el conector USB micro-B marcat amb el número 2 (ver paso anterior).
1. Obre l’eina "Flash Tool Lite" i connecta el teu dispositiu al 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. Després de fer clic a "Start to flash", l'eina descomprimirà automàticament l'arxiu i començarà a subir l'imatge de Linux a l'Intel Edison.
4. Se te pedirá desconectar y volver a conectar el cable USB cable 2, hazlo.
5. El rectangle de càrrega ha d’arribar al 100%. ¡Listo! Ja flasheaste tu Intel Edison.
Ara que ja hi ha instal·lat l'imatge "Linux Yocto Poky" ja podem començar a configurar l'Intel Edison.
Pas 3: Configurant El Intel Edison (Primeros Pasos)
Després de llampar amb èxit al teu Edison, ara configurarem el dispositiu, per fer-ho servir a la terminal PuTTY. PuTTY és un client SSH i telnet, desenvolupat originalment per Simon Tatham per a la plataforma Windows. Vamos a usar la conexión serial aqui.
Antes d'obrir la terminal de PuTTY, obre el "Administrador de dispositius" i anota el número de port corresponent per al COM de l'Edison (no el virtual). Aquest valor ho utilitzarem per inicialitzar la comunicació.
Abre PUTTY y luego, selecciona el botó "Serial" i s'introdueix el número de port COM de Edison. Posteriorment s’anota la velocitat en baudios a la que es comunica l’Edison amb el seu equip, escriu 115200. Finalment es preveu obrir per començar la comunicació amb el dispositiu.
Una vegada que estàs al terminal de PuTTY pots executar comandos per configurar el teu Edison. El següent és un llistat tareas que farem en la consola per configurar el dispositiu:
- Configurar un nom per al dispsotiu.
- Configurar una contrasenya per a root.
- Connecta l'Edison a una WIFI vermella.
Quan t’has connectat per primera vegada, se t’ha fet la sessió. Escriu "root" i presiona "Enter". Veras "root @ edison" el que significa que es troben en el directori root.
Ahora que ja us trobeu llestos per a comandaments clars, escriviu:
configure_edison --setup
Presiona enter i posteriorment escriviu una contrasenya i 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.
Finalment, heu de configurar una WIFI vermella. El mòudlo escaneja el lloc i detectarà les redissenyades WIFI disponibles, s’escriu el número de l’opció de la detecció vermella que es pot connectar i posteriorment et pedirà la contrasenya de la vermella, escrivint i presiona enter.
¡Listo! Ja estàs connectat al WIFI. Mostrarà una pantalla al navegador amb el vostre hostame i la vostra direcció IP. Asimismo pots revisar més paràmetres de la teva connexió escrivint:
ifconfig
Presiona i mostra els paràmetres del teu WIFI vermell.
Ja estem preparats per configurar l'Entorn de Desenvolupament Integrat (IDE) per començar amb la programació. En nuestro caso será … ¡Python!
Step 4: Usando Python Para Programar El Edison
L'Edison pot programar-se utilitzant l'IDE d'Arduino, sense embarcar-se en utilitzar Python.
Al tractar amb Python i hardware, necessitem utilitzar la biblioteca "MRAA" per interactuar amb els pins GPIO. MRAA és una biblioteca esquelet de baix nivell per comunicar-se amb els GPIO en plataformes GNU / Linux i és compatible amb gairebé totes les places basades en Linux utilitzades. Per a ell procedirem a instal·lar-la.
En Putty, vete a la terminal y escribe (pots ocupar l'editor vi o nano per exemple) en l'arxiu que gestiona els paquets de Linux /etc/opkg/base-feeds.conf el següent:
- src / gz all
- src / gz edison
- src / gz core2-32
Posteriorment guarda l'arxiu i actualitza la llista de paquets escrivint:
actualització opkg
Ahora vamos a instalar git, escriviu:
opkg install git
Ahora vamos a instalar un repositorio de GitHib en el Edison:
git clone https://github.com/drejkim/edison-scripts.git ~ / edison-scripts
Ara afegirem ~ / edison-scripts al PATH:
- echo 'export PATH = $ PATH: ~ / edison-scripts' >> ~ /.profile
- font ~ /.perfil
Ahora executem els següents comandaments:
- resizeBoot.sh
- installPip.sh
- installMraa.sh
¡Listo! Ja hem tingut configurat correctament Python a l'Edison. Per provar l'execució anterior del codi anexat en aquest pas ("prova.py") mitjançant FileZilla. Per a obrir FileZilla a la PC (Lo debiste de haber descargado) y en el campo de "Servidor", "usuario", "contraseña" y "Puerto" escriví l'IP de la vostra edició (revisar-se escrivint ifcong en la vostra edició), el usuari (root), la teva contrasenya i finalment al camp del port escrivint 22, ja que és el que generalment s’utilitza per a connexions SSH.
Una vegada connectat transmetre l'arxiu "prueba.py" a la carpeta "root".
Ahora escribe, des del teu Edison i en la ubicació "root" el següent comandament per executar el codi.
python prueba.py
Debem observar com el LED 13 incloent 2 milisegundos. y se apaga 2 milisegundos.
¡Felicitats! Ha executat correctament un codi en phyton per al teu Edison. Ara ja estem a punt per processar imatges al nostre Edison utilitzant Python, però abans d’escriure i provar el codi de Python per detectar rostres al nostre PC …
Pas 5: Detectant Rostros amb OpenCV
El Intel Edison no té una interfície de sortida de vídeo, per lo que per provar que el codi que escriu en Python funciona a la perfecció probarà el codi per corregir en el nostre PC i posteriorment el migrarem a Edison.
El nostre objectiu es realitza la detecció de rostres i, si es detecta, realitza alguna acció.
Antes de començar necessitem tenir instal·lat Python i OpenCv a les nostres computadores. Per lo que vamos a realizar estos pasos en nuestro PC:
- Descarregueu Python 2.7 a la nostra PC
- Descarregar versió OpenCV 3.3.0
- Veieu el directori on es troba l'OpenCv extra i poseu-vos en C: / opencv / build / python / 2.7 / x86 i copieu l'arxiu cv2.pyd al directori de python C: / Python27 / Lib / site-packages.
- Instala pip, mas info en el següent enllaç
- Instala numpy escrivint l'ordre de python -m pip install --user numpy
Per verificar que tot funciona correctament a la terminal de python del vostre PC i introduïu:
- importar numpy
- importar cv2
Ambos comandos respectivamente han de respondre ningún mensaje de error (osea nada), indicant que les biblioteques s’han importat correctament.
Ahora descarrega l'arxiu "3_detectaRostrosOjos.py", obre una terminal de Python al teu PC i corre el programa. Este programa vamos debe activar la webcam del 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, ¡felicitats! Passem al següent pas que es corregeix aquest codi des del nostre Intel Edison i activem un motor a passos cada vegada que detectem un rostre.
Step 6: Antes De Llegar Al Code En Edison… ¡Teoria De Funcionamiento
La detecció de rostres és un cas molt específic del reconeixement d’objectes. Hi ha molts enfocaments per al reconeixement facial. Sin embargo, vamos a discutir los dos mas comunes:
Segmentació basada en color: En aquesta tècnica, la cara es segmentarà segons el color de la pell. La entrada d’aquest algoritme suele ser una imatge en format de colors RGB, mentre que en l’etapa de processament els cambis als formats HSV o YIQ. En aquest procés, cada píxel es classifica com un píxel del color de la pell o un píxel sense color de la pell. La raó detràs de l’ús d’altres models de color que no sean RGB és que a vegades RGB no pot distingir els colors de la pell en diferents condicions de llum. Això millora significativament a utilitzar altres models de color. Nosotros no usaremos este algoritmo
Reconeixement basat en funcions: Aquesta és la tècnica que utilitzeu per a aquesta instrucció. En aquesta tècnica buscem ciències característiques, i en base a això fem el reconeixement. L’ocupació de "haar feature-based cascade" per a la detecció de rostres és un mètode eficaç de detecció d’objectes proposat per Paul Viola i Michael Jones en el seu article " Rapid Object Detection using a Boosted Cascade of Simple Features "de l'any 2001. És un enfocament basat en l'aprenentatge automàtic en què la" funció cascada "entra contra un conjunt d'imatges positives i negatives. 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 aquest propòsit, es farà servir les "haar feature" que es muestren en la figura. Cada una de les figures és un valor únic obtingut a restar la suma de píxels debat d’un recte blanc de la suma de píxels debat d’un recte negre. Los "haar features" han d’estar entrenats per a la cara, ulls, sonrisa, etc. La biblioteca OpenCV conté un conjunt de classificadors predefinits. Aquests estan disponibles a la carpeta C: / opencv / build / etc / haarcascades
Pas 7: Detectant Rostros amb OpenCV a Intel Edison
Vam instal·lar la biblioteca numpy i openCV a l'Intel Edison, per escriure els següents comandos des del terminal d'Edison:
- actualització opkg
- actualització opkg
- opkg instal·la python-numpy python-opencv
Verifica que tot se haya instal·lat correctament. Per a ell a la terminal de Python des del teu arduino Edison i escribe:
- importar numpy
- importar cv2
Si cada un d’aquests comandaments no reportem cap missatge, tot es troba instal·lat a la perfecció.
Ahora vamos a configurar la fuente de video de donde el Intel Edison leera los rostros. Descarregueu el vostre telèfon intel·ligent a l’aplicació "Càmera web IP". Vaig accedir a l'aplicació anterior a "Ajustes de IP Webcam" / "Preferències de vídeo" / "Resolució de les fotos" i deixarem el paràmetre a 640x480. Es aqui quan es comença a notar que l'Intel Edison simplement no està destinat al processament d'imatges degut a la poca quantitat de RAM que posa (1GB de RAM).
A l'aplicació "IP Webcam", feu clic al botó inferior "Iniciar servidor". Ahora, des del teu smartphone debes de poder ver la camara encendida (com si fora a prendre foto) i una direcció IP abajito. Escribe dicha dirección IP en el teu navegador web de la PC i hauries de veure el vídeo en viu, en el meu cas salvi jo sentit treballant.
Ahora descarrega el codi "tres.py" i l'arxiu "haarcascade_frontalface_default.xml" (Els dos codis es poden trobar en els arxius del pas actual) al teu PC. Usa FileZilla per passar ambdós codis a una mateixa localitat del teu Edison (per exemple en el folder root) i executar el codi de python amb el comandament:
python tres.py
Des de la terminal del teu Edison debes de veure un missatge "Dame la dirección IP" aquí inserta la IP que et dóna "IP Webcam" (és la mateixa que escriu al navegador del teu PC per connectar-te) i dale enter. Si tot és correcte debes de veure el missatge "Rostro detectado" en la terminal de tu Edison i "Rostro no detectat" en base a si pones un rostre en la webcam de tu celular. Asimismo si se detecta un rostro tu Intel Edison ha de fer girar el servomotor.
Recomanat:
Llum LED d'escriptori intel·ligent - Il·luminació intel·ligent amb Arduino - Espai de treball Neopixels: 10 passos (amb imatges)
Llum LED d'escriptori intel·ligent | Il·luminació intel·ligent amb Arduino | Espai de treball de Neopixels: ara passem molt de temps a casa estudiant i treballant virtualment, per què no fer que el nostre espai de treball sigui més gran amb un sistema d’il·luminació personalitzat i intel·ligent basat en els LEDs Arduino i Ws2812b. Aquí us mostro com construir el vostre Smart Llum LED d'escriptori que
Detecció de zombis Mussol de seguretat intel·ligent (aprenentatge profund): 10 passos (amb imatges)
Zombie Detection Smart Security Owl (Deep Learning): Hola a tothom, benvinguts a T3chFlicks. En aquest tutorial de Halloween, us mostrarem com donem un toc fantasmagòric a un clàssic mundà de la llar: la càmera de seguretat. Com ?! Hem creat un mussol de visió nocturna que utilitza el processament d’imatges per fer un seguiment de la gent
Fermall de vidre de quars amb detecció de so i música amb pati de circuit Express Circuit: 8 passos (amb imatges)
Fermall de cristall de quars amb detecció de so i música amb parc infantil Circuit Express: aquest fermall reactiu al so es fa mitjançant un circuit de pati express, cristalls de quars a granel barats, filferro, cartró, plàstic trobat, un passador de seguretat, agulla i fil, cola calenta, tela, i diverses eines. Aquest és un prototip, o primer esborrany, d'aquest
Rellotge despertador intel·ligent - Intel Edison - Iot RoadShow - São Paulo: 4 passos
Rellotge despertador intel·ligent - Intel Edison - Iot RoadShow - São Paulo: una de les grans virtuts de qui viu o treballa en una gran ciutat és la gestió del temps. Avui en dia els viatges són constants i, com que el trànsit és un dels principals factors. Pensant-hi, he creat una petita aplicació que utilitza la integració amb Google M
Plantilla de detecció intel·ligent portàtil: 13 passos (amb imatges)
Plantilla de detecció intel·ligent portable: entendre l'orientació i la distribució de la força exercida pels peus pot ser extremadament útil per prevenir lesions i avaluar i millorar el rendiment en diverses activitats. Buscant millorar la meva tècnica d’esquí i amb afició a