¿Cómo puedo sincronizar la tasa de cuadros de dos cámaras web? ¿Es incluso posible?

2

Pretext

Actualmente estoy jugando con visión estéreo (dos cámaras que capturan imágenes simultáneamente) para mi proyecto de pasatiempo de robot. Hay algunas características que son importantes al procesar las imágenes capturadas para estéreo, y la más importante de todas es que las imágenes se capturan exactamente al mismo tiempo (también conocido como sincronización de cuadros o genlock ). / p>

Las cámaras de robot dedicadas con sincronización incorporada pueden ser muy caras y, al igual que muchos otros aficionados, quiero aprovechar el precio / rendimiento que se encuentra en las cámaras web de consumidores de nivel medio a alto.

Esto funciona muy bien para una cámara, pero se descompone cuando se trabaja con estéreo debido a la falta de genlock. Así que decidí ver si sería posible piratear una cámara web de un consumidor y adaptar un genlock de bricolaje de alguna manera.

Soy un principiante en electrónica, especialmente para señales digitales de alta velocidad, pero puedo programar MCU basadas en atmel. Resulta que tenía dos cámaras Logitech Pro 9000 antiguas y abrí una para echar un vistazo al interior (ver la foto a continuación).

Preguntas

Lo que quiero saber es qué buscaría en el tablero que podría usarse para actualizar / hackear un genlock de este tipo.

Mi ingenua idea es que al deshabilitar simplemente el cristal del oscilador de una cámara y al conectarse desde la otra, arrancarían y operarían exactamente en el mismo reloj y tal vez esto también daría como resultado cuadros sincronizados. ¿Es esta idea realista? ¿Por qué / por qué no?

Cualquier buena idea y sugerencia es bienvenida.

Gracias

    
pregunta Lennart Rolland

2 respuestas

2

Me temo que estás casi sin suerte. Tu "idea ingenua" no es mala como punto de partida, pero los detalles son asesinos. Primero, el cristal es solo parte de un circuito de oscilador contenido en el ASIC SunPlus. No es seguro que la señal del reloj resultante en realidad aparezca fuera del ASIC, aunque probablemente se envíe a la cámara. Si puede encontrar ese reloj, en teoría puede hacer un circuito de búfer que envíe un reloj a la placa esclava. El problema es que probablemente no pueda simplemente enviar la señal recibida a las conexiones de cristal ASIC. (Quizás puedas, quizás no, depende del circuito). Pero si puedes, esto solo bloquea los relojes de píxeles en las dos placas, y no garantiza que los cuadros estén sincronizados.

En una conjetura, cada placa tiene una combinación RC que utiliza el ASIC para producir una señal POR (reinicio de encendido), y si encuentra que puede generar una señal que se envía al esclavo tablero, y ambos tableros comenzarían en el mismo estado más o menos al mismo tiempo.

Esto, en teoría, haría lo que quieras. Lo digo en teoría. No hay forma de determinar en este punto, eliminar lo que el software del controlador en la PC receptora hace a los elementos internos de ASIC, y tendría que hacer que el controlador configure ambas cámaras de forma más o menos simultánea. Y no tengo idea de cómo harías eso. Puede descargar los controladores de Logitech e intentar realizar una ingeniería inversa del código. Mucha suerte. Tampoco es probable que Logitech ni Sunplus publiquen los detalles de ASIC.

Por lo tanto, realmente no puedo recomendar esto como un proyecto de inicio.

    
respondido por el WhatRoughBeast
0

Tienes que usar el enfoque de hardware-software. Piensa en cómo hacen películas. Siempre tienen esa cosa que aplaude, que comienza cada escena. Están utilizando ese dispositivo para sincronizar de forma real todas las cámaras y el equipo de sonido.

Creo que la única forma es usar algún tipo de luz estroboscópica o algo visual que las cámaras puedan sincronizar.

Es posible que la sincronización del reloj en los dispositivos no funcione, podría haber una línea de tubería de procesamiento / firmware diferente, e incluso si el tiempo en los dispositivos pasa de la misma manera, un dispositivo puede demorar un poco más que el otro para procesar el marco. por lo que obtendrías un retraso constante entre dos cámaras

    
respondido por el pks

Lea otras preguntas en las etiquetas