Hacer que una cámara me siga

9

Quiero grabar algunas conferencias que daré el próximo semestre. Tengo una cámara de video y puedo cambiar su dirección usando un servo de algún tipo. Sin embargo, no tengo idea de cómo detectar dónde estoy. Yo llevando algún dispositivo de transmisión estaría bien. Principalmente, la sensibilidad debería poder determinar si estoy en el lado izquierdo o derecho de la habitación, pero no necesito mucho más que eso.

kasterma
fuente
1
La forma más fácil sería usar una computadora y una cámara web. La computadora ejecuta el seguimiento del movimiento a lo largo de la cabeza y los hombros, luego controla el servo. El algoritmo de seguimiento es tan simple como buscar la media de la ubicación de los píxeles con el mayor cambio ... ¿O no tiene una computadora disponible?
Chris H
@ Chris H, si tiene información sobre un programa funcional tan fácilmente disponible, creo que sería una respuesta perfecta.
Kortuk
Bueno, no conozco ninguno específicamente, pero considera OpenCV. Puede aplicar un recorte y luego una función de seguimiento de movimiento. Recortar es solo para asegurarse de no recoger otras cosas en movimiento. Debería llegar a unas 100 líneas de código en total. Probablemente sea más fácil codificarlo usted mismo que configurar y aprender otro programa, especialmente dado que necesita interactuar con un motor después.
Chris H
¿Podría alguien decirme cuál es la forma correcta de actuar si se dan dos respuestas igualmente válidas? ¿Elijo uno al azar para ser la respuesta?
kasterma
@kasterma: Sí, aunque si implementaras uno en lugar de otro, elegiría eso. Siempre puedes votarlos a ambos.
Nick T

Respuestas:

9

Podría usar algunos LED IR simples, luego también podría colocar una serie de receptores IR, solo funcionarían fotodiodos IR simples, con un ángulo de visión estrecho.

Si los coloca alrededor de la base de la cámara y luego hace que un microcontrolador lea cuál tiene la mejor señal, puede apuntar la cámara hacia la fuente IR.

Suena complicado, pero es muy simple y no requiere una computadora. El hardware es fácil de hacer, aunque probablemente encontrará en entornos ruidosos (luz brillante) que querrá modular su IR para alejarse del ruido de banda ancha que recibe.

Kortuk
fuente
He intentado esto en realidad, funciona a menos que haya grandes ventanas.
Chris H
@ Chris H, una ventana grande es solo un desafío para mí para obtener un emisor IR más brillante. A menudo, la modulación puede ayudar significativamente con el problema IR de fondo de la luz solar o las luces fluorescentes.
Kortuk
Esto suena como una solución muy buena, no sé a qué te refieres cuando sugieres que module mi IR. ¿Quiere decir que debería pulsar el LED IR a una frecuencia conocida y luego intentar detectar solo esa frecuencia con el receptor?
kasterma
@kasterma, sí, eso es lo que quiero decir. Pulsa el LED IR a 40 KHz, por ejemplo, y luego haces un filtro a 40 KHz en los receptores para ignorar el IR de banda ancha que emiten el Sol y las luces. Es posible que deba ajustar la frecuencia para evitar la frecuencia que emiten sus luces fluorescentes. puede probarlo sin esta modulación primero para ver si cumple con las especificaciones, ya que es más fácil de hacer.
Kortuk
He visto esto hecho con una Nintendo Wii. Muy genial. +1
tyblu
7

Lo que está buscando puede estar relacionado con el "seguimiento de blobs". Es una técnica de uso común en robótica y procesamiento de visión.

Dependiendo de sus habilidades de programación, puede usar OpenCV (bibliotecas de visión por computadora de código abierto) disponibles en C ++ y Python. Otros idiomas pueden tener bibliotecas que admiten el seguimiento de blobs. Creo que LabVIEW y Matlab también tienen bibliotecas para apoyar esto.

En general, la configuración será una computadora que procese el video y encuentre un blob (usted) de un color en particular. Luego puede usar la información de la posición del blob en el marco de la cámara para determinar dónde apuntar la cámara. Si, por ejemplo, maneja el servo en la cámara con un Arduino (o cualquier otro microcontrolador), puede enviar comandos a través del puerto serie para actualizar la posición deseada de la cámara. Cuando la gota deja alguna "caja" deseada en el centro del marco.

Si lo desea, puede hacer un seguimiento más inteligente implementando alguna combinación de control proporcional, integral y derivado (PID, si está buscando en Internet), para tratar de mantenerse centrado en el marco, pero esto puede ser más de lo que necesita para su aplicación.

Editar: Un poco de búsqueda arrojó este resultado: Aplicaciones creativas . Esta es más o menos la solución que expliqué.

mjcarroll
fuente
44
Es hora de comprar algunas camisas de "colores únicos".
Nick T
2
Tras una consideración adicional, creo que la solución de Kortuk y user1498 de LED y sensores IR sería un enfoque más robusto. Esto es cierto debido al punto que Nick T plantea, el espacio de color ya está bastante lleno, por lo que elegirlo sería difícil.
mjcarroll
eso suena como un ingeniero retrocediendo de un problema.
Kortuk
@Kortuk, no necesariamente retrocediendo. Todavía creo que mi solución puede ser la "mejor", en lo que respecta a un sistema totalmente autónomo (sin sensores externos, no más hardware que el que se indica explícitamente en la declaración del problema). En cuanto a la facilidad de implementación y la robustez (los algoritmos de visión son algo complicados), creo que su solución sería mucho mejor.
mjcarroll
Sabía lo que querías decir, creo que la solución de hardware es más autónoma, pero hay una gran compensación para ambos.
Kortuk
3

El uso de uno o más LED IR podría permitir que una cámara como un controlador wi te rastree

russ_hensel
fuente
2

Suena como un trabajo ideal para un Kinect y algún software de procesamiento: puede separar temas con la información 3D, tiene motores de giro horizontal y vertical y una salida de video.

Martin Thompson
fuente
1
Estoy de acuerdo en que este puede ser el más sencillo pero no el más barato
Matt Williamson, el
2

Por eso se inventaron los estudiantes de posgrado. Estoy seguro de que eventualmente podría hacer esto electrónicamente, pero tendrían que haber muchas conferencias antes de que valga la pena hacerlo en comparación con tener a alguien con cerebro manejando la cámara.

Olin Lathrop
fuente
Además, la cerveza es más barata que la electricidad.
Óptimo cínico
0

Soy la persona que hizo esta pregunta, y realmente me gusta tanto la respuesta de OpenCV como la respuesta dirigida por IR y jugaré con ambas. En este punto, ambos tienen algunos problemas para mí: mi pedido de IR se está retrasando y mi cámara web no está dispuesta.

Siendo ese el caso, mi ojo se posó en un LV-Maxsonar EZ con el que compré para jugar hace un rato. Realmente nunca llegué a eso, pero ahora parece que podría dar lugar a una solución decente aquí. Soy la única persona que se mueve frente a la sala, por lo que no necesito interferencia ni computadora.

Este dispositivo proporciona mediciones de distancia en una dirección específica. Si esta distancia cambia, alguien se movió delante de ella, y la cámara debería moverse en la dirección que apunta el sensor.

kasterma
fuente
0

Mira el devkit PrimeSense (los creadores de Kinect)

El fabricante lanzó los controladores de Windows y Unix de Kinect (y DevKit) aquí: http://www.openni.org/

goodguys_activate
fuente
0

El seguimiento de las salpicaduras de IR (y el filtrado desde la cámara, el acuerdo de insolación de la sala) le brinda a usted y a los estudiantes una buena oportunidad de trabajo de ADR que los ayuda a usted y a su contexto elegido en la zona cero. Dicho esto, probablemente habría sacado de una aplicación de cámara web incluida bien revisada en Cnet.com (u otro lugar crítico, Amazon, Soporte de Acer o de otro tipo) o Camtasia y la había usado según las instrucciones.

Thrangalucchian
fuente
0

Observe el movimiento , específicamente, la función de seguimiento de movimiento .

Joe Frazier
fuente
Me interesaría saber más sobre el movimiento, pero solo darnos un enlace a un sitio web no proporciona una respuesta, proporciona la referencia para una respuesta. ¿Qué es el movimiento, qué hace?
Kortuk