Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Rastreo de rostro con movimiento horizontal / vertical con raspberry pi

Con un poco de esfuerzo, he descubierto que controlar dos servomotores para permitir que una cámara web se mueva / se incline mientras rastrea una cara en tiempo real usando el raspberry pi no es tan imposible como parece a primera vista. Con algunos ajustes cuidadosos y optimización de código, pude permitir que el pi se mantuviera al día con dos servos mientras ejecutaba la detección de rostros OpenCV a 320 × 240 buscando un perfil derecho, perfil izquierdo y cara frontal y ajustando los servos más rápido que una vez por segundo .

Paso 1:Adquiera el hardware.

Cosas necesarias:

Una frambuesa pi:el modelo A funcionará bien, tengo el modelo B original que tiene las mismas especificaciones que el nuevo modelo A (red menos).
Un soporte de giro / inclinación
Dos servos
Un cable GPIO Ribbin
Una cámara web compatible con Pi:utilicé un Logitech C210

Suponiendo que ya tiene una raspberry pi y una cámara web, el hardware adicional le costará alrededor de $ 25

Paso 2:prepara tu raspberry pi.

Asegúrate de estar usando el RaspbianOS oficial (la versión hard-float) y que esté actualizado.
Es posible que desees overclockear tu raspberry pi. Lo hice a 800 mhz. Cuanto más alto vaya, más rápido será el reconocimiento facial, pero menos estable puede ser su pi.

Instale OpenCV para python:sudo apt-get install python-opencv
Obtenga el maravilloso servocontrolador servoblaster para raspberry pi de Richard Hirst:aquí

Puede descargar todos los archivos como un archivo zip y extraerlos a una carpeta en algún lugar del pi.
Para instalar el controlador del servo blaster, abra una terminal y un CD en el directorio donde extrajo los archivos del servoblaster
ejecute el comando:make install_autostart

Es posible que desee hacer que el servoblaster se agote y dejar de enviar señales al servo después de un segundo si no se está moviendo.
Para hacer esto, agregue la siguiente línea a / etc / modules:servoblaster idle_timeout =1000

inicie servoblaster con el siguiente comando:sudo modprobe servoblaster

La siguiente tarea es hacer que la cámara funcione como se esperaba:

En primer lugar, muchas gracias a Gmoto por encontrar esto y señalarlo, fue la última pieza del "pi" para que todo funcione sin problemas; tienes que ajustar algunos parámetros en el módulo uvcvideo para que todo funcione bien.
Es decir, ejecuta estos comandos:

rmmod uvcvideo
modprobe uvcvideo nodrop =1 tiempo de espera =5000 quirks =0x80

Deberá ejecutarlo cada vez que reinicie si planea ejecutar el programa de seguimiento facial o, alternativamente, agregar los parámetros a / etc / modules como lo hizo con el ajuste de tiempo de espera del servoblaster.

Paso 3:arma tu equipo

Construya los soportes de panorámica / inclinación según las instrucciones y conecte los servos.
Coloque su cámara en la parte superior del soporte (acabo de usar cinta) y conéctela a su puerto usb raspberry pi.
Estaba puede alimentarlo sin un concentrador USB, pero es posible que desee obtener un concentrador USB con alimentación y pasar por eso.

Paso 4:Conexión de los servos

Servoblaster considera que servo-0 es lo que está conectado a GPIO 4 y servo-1 es lo que está conectado a GPIO-17.
Los servos tienen tres cables, uno es rojo que es Vin / positivo, uno es marrón o negro que es tierra / negativo y el otro es control.
usando el cable plano (y en mi caso algún cable conector atascado en los agujeros) conecte el cable de control para cada servo al pin correcto. El código asume que el servo-0 controlará el movimiento de izquierda a derecha y el servo-1 controlará el movimiento de arriba hacia abajo de la cámara; así que conéctelos de esta manera.

Ahora parecería ser de sentido común que el Vin para los servos vendría de los pines de 5v del GPIO y la tierra para los servos vendría de los pines de tierra de GPIO, pero esto no funcionó en mi caso porque usé un servo más grande para la base. El gran servo extrajo más potencia de la que el pi estaba dispuesto a suministrar. Sin embargo, pude alimentar mi servo de inclinación más pequeño sin problemas. Además, Richard Hirst, que hizo servoblaster, parece dar a entender que puede conducir varios servos pequeños con el GPIO 5v. También me enteré de que hay algunos fusibles en mi versión del pi que luego se quitaron relacionados con esos pines de alimentación. Mi instinto me dice que podrías alimentar dos servos más pequeños desde esos pines en un pi más nuevo. Si no puede, esto es lo que tendrá que hacer:

Necesitará algún tipo de fuente de alimentación externa que sea capaz de manejar una carga pesada de 5v-6v:utilicé la que está incorporada en un arduino, pero cualquier fuente de alimentación de 5 voltios debería funcionar; los servos están clasificados para hasta 6v. El pin de 5v en una fuente de alimentación de computadora, un cargador de pared de 5v-6v, algunas baterías en paralelo; Lo que te venga bien. Una vez que tenga su fuente externa, simplemente conecte las líneas positivas y negativas de los servos al lado positivo y negativo de su fuente de energía, luego conecte la tierra (negativa) de su fuente de energía externa a un pin de tierra en el raspberry pi GPIO.

Paso 5:Ejecute el programa

He adjuntado la secuencia de comandos de Python a este artículo, se llama PiFace.py para ejecutarlo solo en un CD en su ubicación en la terminal y escriba:python PiFace.py

Aquí hay algunos videos míos en acción.

Para más detalles:Rastreo de rostro Pan / Tilt con Raspberry Pi


Proceso de manufactura

  1. Leer temperatura con DS18B20 | Raspberry Pi 2
  2. Monitoreo de temperatura en Raspberry Pi
  3. Medición de temperatura con RASPBERRY PI
  4. Supervisión de la temperatura con Raspberry Pi
  5. La integración de los datos del sensor con el microprocesador Raspberry Pi
  6. Sensor de seguimiento de línea con RPi
  7. Detectar rayos con una Raspberry Pi
  8. Seguimiento de Raspberry Pi Ball
  9. Alarma de agua frambuesa pi 2 con t cobbler plus
  10. Rastreo de rostro con movimiento horizontal / vertical con raspberry pi
  11. Los mejores accesorios para tu Raspberry Pi