สารบัญ:

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
การตรวจจับ De Rostros Con Arduino Intel Edison
การตรวจจับ De Rostros Con Arduino Intel Edison

ขั้นตอนของรูปภาพจากการมองเห็น por computadora es uno de esos campos que requiere enormes cantidades de investigación debido a que involura métodos para adquirir, procesar, analizar y comprender las imágenes del mundo ser 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 identto que idente. การคว่ำบาตรจากบาป ไม่มีจำนวนเมตร en tantos lios en este คำแนะนำในการใช้งาน una biblioteca de código abierto de visión por computadora llamada OpenCV la cual gracias al arduo trabajo de la comunidad de cientificos, ความจริงแล้ว 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ínapicamente โปรแกรมสำเร็จรูป ยกเลิกกระบวนการ y una imágen de salida Intel Edison no tiene una interfaz ของวิดีโอ, จากเดิม ejecutaremos el script de Python en nuestro PC. Luego, después del funcionamiento exitoso del código en la PC, ดัดแปลงแก้ไขสำหรับ correrlo en el Edison. Las cosas se aclararán cuando hagamos la Impalación práctica. Nuestro objetivo es realizar la detección de rostros y, si se detecta, realizar alguna แอ็กชัน.

เสบียง

El วัสดุ que requerimos สำหรับ llevar a cabo este กวดวิชา es:

ฮาร์ดแวร์

  • แล็ปท็อป/พีซี 1 เครื่อง
  • 1 ปลาคา Arduino Intel Edison
  • 2 สาย USB micro-B.
  • แอพสมาร์ทโฟน 1 ตัว "IP Webcam"
  • 1เซอร์โวมอเตอร์ sg 90.

ซอฟต์แวร์

  • เครื่องมือ Intel Flash Lite V5.2.4
  • PuTty
  • FileZilla FTP
  • ภาพ Yocto Poky (V25.5-15)
  • รหัส VS
  • Python 2.7
  • OpenCV เวอร์ชัน 3.3.0
  • Numpy
  • Libreria MRAA
  • ไดรเวอร์ของ Windows สำหรับโมดูล Intel Edison (ดาวน์โหลดและใช้งานร่วมกัน)
  • ไฟล์เก็บถาวรสำหรับ 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 และ La PC
Conectando El Intel Edison และ La PC
Conectando El Intel Edison และ La PC
Conectando El Intel Edison และ La PC
Conectando El Intel Edison และ La PC
Conectando El Intel Edison และ La PC

มาตรฐานฮาร์ดแวร์ Intel Edison lo podemos en contrar en tres presentaciones:

  • ข้อมูลทั่วไปเกี่ยวกับ Intel compatible con Arduino (es la que usamos en este tutorial)
  • Una placa mini-breakout (con el móudlo ya montado) บอร์ดขยายที่เข้ากันได้กับ Arduino
  • การใช้งาน Intel Edison en su estado nativo (Aquí requerimos fabricar nuestra propia PCB).

การใช้งานร่วมกันได้กับ Arduino debido a la flexibilidad y compatibilidad para interactiveuar con otros actuadores y sensores. El Intel Edison, ความแตกต่างจากการใช้งาน Arduino como UNO o MEGA ที่เชื่อมโยงกับระบบปฏิบัติการ, en este caso una imágen Linux llamada Yocto.

ใช้งานได้หลากหลาย เชื่อมต่อ รูปภาพ เชื่อมต่อ สายเคเบิล USB micro-B เดล 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 permanecerá อะปากาโด

อุปกรณ์เชื่อมต่อ USB micro-B กับหมายเลข 2 ใช้งานสำหรับ 5V, โปรแกรมใช้งานและ IDE Arduino, บรรยาย/เขียนและบันทึกความทรงจำ ใช้อีเทอร์เน็ตและ USB

อุปกรณ์เชื่อมต่อ USB micro-B สำหรับอุปกรณ์พกพา 3 ตัวสำหรับ acceder สำหรับ SSH และ Edison

Una vez conectado dejemos que se ติดตั้งไดรเวอร์ของ Windows การแก้ไขหลังและการดูแลระบบของ Windows si reconoce dos puertos:

  • El puerto COM virtual del Intel Edison
  • El puerto serial COM เดล 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

Una vez que tu dispositivo esta correctamente detectado por la PC, debes flashearlo กับอิมเมจของ Linux สำหรับการใช้งานแฟลชสำหรับ Intel: Flash Tool Lite และตัวเชื่อมต่อ USB micro-B ที่มีหมายเลข 2 (เวอร์ชันก่อนหน้า)

1. Abre la herramienta "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 คลิก "Start to flash", la herramienta descomprimirá automáticamente el archivo y empezará a subir la imágen de Linux และ Intel Edison.

4. Se te pedirá desconectar และ volver a conectar el cable USB cable 2, hazlo.

5. El rectangulito de carga debe de llegar al 100%. ¡ลิสโต! ใช่ flasheaste สำหรับ Intel Edison

Ahora que ya tienes instalada la imágen "Linux Yocto Poky" และ podemos empezar การกำหนดค่าจาก Intel Edison

ขั้นตอนที่ 3: กำหนดค่า El Intel Edison (Primeros Pasos)

กำหนดค่า El Intel Edison (Primeros Pasos)
กำหนดค่า El Intel Edison (Primeros Pasos)
กำหนดค่า El Intel Edison (Primeros Pasos)
กำหนดค่า El Intel Edison (Primeros Pasos)
กำหนดค่า El Intel Edison (Primeros Pasos)
กำหนดค่า El Intel Edison (Primeros Pasos)

คำอธิบายของ 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 puerto cortoiente para el COM del Edison (ไม่มี el เสมือน) Este valor lo usaremos para inicializar la comunicación. ความกล้าหาญ

Abre PUTTY และ luego, selecciona el botón "Serial" และ ingresa el número de puerto COM del Edison เบื้องหลัง anota la velocidad en baudios a la que se comunicara el Edison con tuequipo, escribe 115200 Finalmente presiona abrir para empezar la comunicación con el dispositivo.

Una vez que estas en la terminal de PuTTY ส่งถึงปลายทาง comandos para configurar tu Edison. Lo siguiente es un listado tareas que haremos en la consola para กำหนดค่า el dispositivo:

  • กำหนดค่า un nombre para el dispsotivo
  • กำหนดค่า una contraseña para root
  • Conectar el Edison และ WIFI สีแดง

Cuando te conectas por primera vez se te pedira hace เข้าสู่ระบบ กำหนด "root" และ presiona "Enter" Veras "root@edison" lo cual significa que te encuentras en el directorio root.

Ahora que ya te encuentras listo para teclear comandos อธิบายว่า:

configuration_edison --setup

Presiona enter y posteriormente ระบุ un password 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

Finalmente te pedira กำหนดค่าด้วย WIFI สีแดง ข้อมูลทั่วไปเกี่ยวกับการตรวจสอบและการตรวจสอบ las redes WIFI disponibles, escribe el numero de la opción de la red detectada la que te vas a conectar y posteriormente te 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 และ tu dirección IP. Asimismo puedes revisar más parametros de tu conexión คำบรรยาย:

ifconfig

Presiona เข้าสู่ y te mostrará los parametros de tu red WIFI

Ya estamos listo para configurar el Entorno de Desarrollo Integrado (IDE) สำหรับโปรแกรมควบคุม สด caso será … ¡Python!

ขั้นตอนที่ 4: Usando Python Para Programar El Edison

โปรแกรม Usando Python Para โปรแกรม El Edison
โปรแกรม Usando Python Para โปรแกรม El Edison
โปรแกรม Usando Python Para โปรแกรม El Edison
โปรแกรม Usando Python Para โปรแกรม El Edison

โปรแกรม El Edison สำหรับโปรแกรมที่ใช้กับ IDE ของ Arduino, การห้ามส่งสินค้ากับ Python

อัลตราตาร์กับ Python และฮาร์ดแวร์, จำเป็นใช้ la biblioteca "MRAA" สำหรับโต้ตอบกับ los pines GPIO MRAA ที่มีอยู่แล้วในสมุดบัญชีที่ใช้งานได้กับทุกอุปกรณ์สำหรับการทำงานร่วมกันของ GPIO en plataformas GNU / Linux y es ที่เข้ากันได้สำหรับพื้นที่ใช้งานและการใช้งาน Linux Para ello ขั้นตอนการติดตั้ง

ใน 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 เอดิสัน
  • src/gz core2-32

Posteriormente guarda el archivo y actualiza la lista de paquetes คำบรรยาย:

opkg อัพเกรด

Ahora vamos a instalar git อธิบายว่า:

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:

  • echo 'export PATH=$PATH:~/edison-scripts' >> ~/.profile
  • ที่มา ~/.profile

Ahora ejecutaremos ลอส ซิกิเอนเตส comandos:

  • ปรับขนาดBoot.sh
  • installPip.sh
  • installMraa.sh

¡ลิสโต! Ya debemos de tener กำหนดค่าแก้ไข Python en el Edison สำหรับปัญหาก่อนหน้า ejecutaremos el código anexado en este paso ("prueba.py") ใช้ FileZilla สำหรับ ello abriremos FileZilla บนพีซี (Lo debiste de haber descargado) และ en el campo de "Servidor", "usuario", "contraseña" y "Puerto" escribimos la IP de tu edison (แก้ไข escribiendo ifcong en eltu edison), 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" โฟลเดอร์อัล "root"

Ahora อธิบาย, desde tu Edison y en la ubicación "root" el comando siguiente para ejecutar el código.

หลาม prueba.py

Debemos de observar como el LED 13 ล้อมรอบ 2 milisegundos. y se apaga 2 มิลลิเซกันดอส

¡เฟลิซิดาดส์! มีการแก้ไขใน código en phyton para tu Edison Ahora ya estamos listo para procesar imágenes en nuestro Edison usando Python, pero antes escribiremos y probaremos el código de Python สำหรับการตรวจจับ rostros และ 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 interfaz 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 และ posteriormente lo migraremos al Edison.

Nuestro objetivo es realizar la detección de rostros y, si se detecta, realizar alguna แอ็กชัน.

Antes de empezar necesitamos tener instalado Python และ OpenCv en nuestras computadora. Por lo que vamos a realizar estos pasos en nuestra PC:

  1. Descargar Python 2.7 en nuestra PC
  2. ดาวน์โหลด OpenCV เวอร์ชั่น 3.3.0
  3. ไดเรกทอรีทั้งหมดสำหรับ OpenCv y posicionate en C:\opencv\build\python\2.7\x86 y coopia el arhivo cv2.pyd al directorio de python C:\Python27\Lib\site-packages
  4. Instala pip, mas info en el siguiente enlace
  5. Instala numpy escribiendo el comando de python -m pip ติดตั้ง --user numpy

การยืนยัน สิ่งที่ต้องทำ funciona แก้ไข อธิบาย en la terminal de python de tu PC y da enter:

  • นำเข้า numpy
  • นำเข้า cv2

Ambos comandosเรสซิเดนท์ 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" ย่อมาจาก Python บนคอมพิวเตอร์และโปรแกรมอื่นๆ Este programa vamos debe de activar la webcam de tu PC y detectar rostros y ojos tal y como en la imágen, ทำงานที่โปรแกรม presiona la tecla ESC.

Si lo lograste, ¡ felicidades! ทางเลือกที่มากกว่า การเข้าถึง que es correr este código desde nuestro Intel Edison และ 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 เอน เอดิสัน… ¡Teoria De Funcionamiento!
Antes De Llegar Al Código เอน เอดิสัน… ¡Teoria De Funcionamiento!

La detección de rostros es un caso muy específico del reconocimiento de objetos. Hay muchos enfoques para el reconocimiento ใบหน้า การคว่ำบาตรบาป vamos a discutir los dos mas comunes:

Segmentación basada en สี: 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 จากรูปแบบต่างๆ HSV o YIQ ในกระบวนการทำงาน, cada píxel es clasificado como un píxel del color de la piel o un píxel sin color de la piel. ทางเลือกที่ดีที่สุดสำหรับรุ่นต่างๆ ของ color que no sean RGB es que a veces RGB no puede distinguir los colores de la piel en diferentes condiciones de luz. Esto mejora significativamente al usar otros modelos de color. เพิ่มเติม Nosotros ไม่มี 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 reconocimiento. El empleo de "haar feature-based cascade" para la detección de rostros es un método eficaz de detección de objetos ผลงานศิลปะ " การตรวจจับวัตถุอย่างรวดเร็วโดยใช้ Cascade Boosted Cascade of Simple Features " del año 2001. Es un enfoque basado en el aprendizaje automático en donde la "cascade function" se entrena contra un conjunto de imágenes positivas y negativas. El algoritmo requiere de muchas imágenes positivas (en nuestro caso estas son imágenes de caras) และ 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 features" deben estar entrenados para la cara, o. พจนานุกรม 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 และ Intel Edison!
Detectando Rostros Con OpenCV และ Intel Edison!
Detectando Rostros Con OpenCV และ Intel Edison!
Detectando Rostros Con OpenCV และ Intel Edison!

ติดตั้งโดยบรรณานุกรมจำนวนมากและ openCV en el Intel Edison, para ello escribimos los siguientes comandos desde la terminal del Edison:

  • opkg update
  • opkg อัพเกรด
  • opkg ติดตั้ง python-numpy python-opencv

ตรวจสอบ que todo se haya instalado correctamente. Para ello ve a la terminal de Python desde tu arduino Edison y อธิบาย:

  • นำเข้า numpy
  • นำเข้า cv2

Si cada uno de estos comandos no nos reporta ningún mensaje, todo se encuentra instalado a la perfección.

Ahora กำหนดค่าวิดีโอจาก Intel Edison และ los rostros จากสมาร์ทโฟน descarga la app "IP Webcam" ก่อนหน้านี้ใช้แอป "Ajustes de IP Webcam"/"Preferencias de video"/"Resolución de las fotos" และ dejamos el parametro 640x480 เริ่มต้นจากการทำงานร่วมกันกับ Intel Edison ง่ายไม่มีปลายทางสำหรับขั้นตอนการทำงานภาพตามวัตถุประสงค์ของ RAM que posee (1GB ของ RAM)

ในแอป "IP Webcam" และคลิก en el boton ที่ด้อยกว่า "Iniciar servidor" Ahora, desde tu สมาร์ทโฟน debes de poder ver la camara encendida (como si fuera a tomar foto) และ 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" และไฟล์เก็บถาวร "haarcascade_frontalface_default.xml" (Los dos códigos los puedes encontrar en los archivos del paso actual) บนพีซี Usa FileZilla สำหรับ pasar ambos códigos a una misma localidad de tu Edison (สำหรับโฟลเดอร์รูทของโฟลเดอร์) y ejecuta el código de python con el comando:

หลาม tres.py

ปลายทางที่ปลายทาง 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) และ dale enter Si todo es correcto debes de ver el mensaje "Rostro detectado" en la terminal de tu Edison y "Rostro no detectado" ที่ฐาน si pones un rostro en la webcam de tu celular Asimismo si se detecta un rostro tu Intel Edison debe de hacer girar el เซอร์โวมอเตอร์

แนะนำ: