loading

Oooooooo, sincronización. Cómo arruinas cada foto de un salto.
Estás contando hasta cero y tu amigo se agacha en el suelo con el dedo en el disparador. Saltando en el aire con un salto glorioso, posas durante una fracción de segundo. Confías en tu habilidad, corres a tu amigo solo para descubrir que la foto se trata, una vez más, de un gran fracaso causado por el desfase entre pulsar del disparador y sacarse la foto.

Bueno, ¡no más! Usar Processing, OpenCV , y una cámara web de alta calidad, podrás sacar una foto de un salto perfecta.

* Hay unas limitaciones molestas (¡ve el último paso!)

Step 1: ¿Cómo Funciona?

La clave para este proyecto es usar las capacidades de reconocimiento facial de OpenCV. Cuando una persona está mirando hacia la cámara, el programa registra la cara. Este es un ejemplo que ya está disponible en la biblioteca de OpenCV que se ha modificado para este proyecto. El boceto (jerga de Processing que se refiere al código) analiza los fundamentos de los movimientos de personas. Si la cabeza va por encima de un cierto lugar en la pantalla y luego se produce un cambio en la dirección vertical (empezar a ir hacia abajo), la cámara web sacará automáticamente una imagen.

Step 2: Configurar Processing

En primer lugar, se necesita un ordenador que tenga instalado Processing. Processinges gratuito y de código abierto, por lo que ¡debes descargar e instalarlo en tu ordenador ahora mismo! Es una herramienta potente y cuenta con una comunidad muy activa de gente que lo usa.


También tendrás que instalar OpenCV y la biblioteca digital Simple-OpenCV para Processing. Si estás usando un Mac, puedes seguir las instrucciones de este instructable, o puedes seguir las de esta página web .

Step 3: Ejecutar El Código

Después de haber configurado y probado Processing y OpenCV, todo lo que tienes que hacer es ejecutar el boceto (jerga para el código--en inglés, es 'sketch').

Descargar y descomprimir el boceto

Si tienes una cámara web USB conectada al ordenador, el boceto debe cargarse automáticamente e integrarse con la cámara web. Al menos eso es lo que pasó conmigo. Espero que experimentes lo mismo.

Tendrás que chequear tanto las variables de anchura como las de altura en el boceto. Estas deben coincidir con la resolución de la cámara web que estás usando. Cuando saltes, querrás estar lo suficientemente lejos para que todo tu cuerpo quepa en el marco. Si se detecta tu cara, verás un punto rojo en la parte superior de la cámara. Salta alto para que tu cabeza aparezca en el marco. Si parpadea blanco y se escucha el sonido del obturador, pues se sacó una foto y se guardará en el archivo de la carpeta que contiene el boceto de Processing

Step 4: Problemas Y Críticas

Hay limitaciones con esta configuración. La principal es que para que se reconozca la cara por OpenCV, la cara hay que dirigirse a la cámara. Si no, no va a funcionar. La iluminación también es un problema. Me pareció que trabajar en una habitación con una cantidad razonable de luz natural funcionó mejor. Las habitaciones con poca luz produjeron imágenes de menor calidad y tuvieron una mayor probabilidad de no sacar una foto. Saltar enfrente de un fondo vacío también parecía hacer que funcionara mejor el reconocimiento facial. OpenCV de vez en cuando detectará objetos en el fondo como caras al azar.


Kinect probablemente produzca resultados más consistentes y al principio empecé con esto presente. Esto permite que tengas mucho control en sacar las fotos. Por ejemplo, si quisieras configurarlo de modo que solo se sacase una foto al reconocer una postura determinada, esto sería mucho más fácil con la tecnología de Kinect y su 'función de esqueleto' . Sin embargo, la resolución de la cámara a bordo de Kinect es bastante terrible. Por lo tanto, una cámara web adicional probablemente sería necesaria con Kinect.

About This Instructable

1,648views

11favorites

License:

Bio: I spend my time somewhere between engineering and art.
More by ElectricSlim:High Five Camera Sacar fotas de saltos perfectas automáticamente Controlling a 3D printer with hand gestures 
Add instructable to: