3 votos

¿Cómo puedo sincronizar la velocidad de fotogramas de dos cámaras web? ¿Es posible?

Pretexto

Actualmente estoy jugando con visión estereoscópica (dos cámaras que capturan imágenes simultáneamente) para mi proyecto de robot aficionado. Hay algunos rasgos que son importantes a la hora de procesar las imágenes capturadas para el estéreo, y el más importante de todos es que las imágenes se capturen exactamente al mismo tiempo (también conocido como sincronización de fotogramas o genlock ).

Las cámaras robóticas dedicadas con sincronización incorporada pueden ser realmente caras, por lo que, al igual que muchos otros aficionados, quiero aprovechar el precio/rendimiento que se encuentra en las cámaras web de consumo de gama media y alta.

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

Soy un principiante en electrónica, especialmente para señales digitales de alta velocidad, pero puedo programar MCUs basados en atmel. Resulta que tengo dos viejas cámaras logitech pro 9000, y abrí una de ellas para ver su interior (ver foto abajo).

Logitech Pro 9000 PCB Front side

Logitech Pro 9000 PCB Back side

Preguntas

Lo que quiero saber es qué buscaría en el tablero que pueda ser usado para retroalimentar/hackear tal genlock?

Mi idea ingenua es que simplemente desactivando el cristal del oscilador de una cámara y conectando desde la otra, arrancarían y funcionarían exactamente con el mismo reloj y quizás esto también daría lugar a fotogramas sincronizados. ¿Es esta idea realista? ¿Por qué/por qué no?

Todas las buenas ideas y sugerencias son bienvenidas.

Gracias

2voto

WhatRoughBeast Puntos 20870

Me temo que es casi seguro que no tendrás suerte. Tu "idea ingenua" no está mal como punto de partida, pero los detalles son asesinos. En primer lugar, el cristal es sólo parte de un circuito oscilador que está contenido en el ASIC de SunPlus. No es seguro que la señal de reloj resultante aparezca realmente fuera del ASIC, aunque probablemente se envíe a la cámara. Si puedes encontrar ese reloj, en teoría puedes hacer un circuito buffer que envíe un reloj a la placa esclava. El problema es que probablemente no puedas introducir la señal recibida en las conexiones de cristal del ASIC. (Tal vez puedas, tal vez no, depende del circuito.) Pero si puedes, esto sólo bloquea los relojes de píxeles en las dos placas, y no garantiza que los cuadros estén sincronizados.

En una suposición, cada placa tiene una combinación RC que es usada por el ASIC para producir una señal POR (power on reset), y si puedes encontrar eso podrías ser capaz de generar una señal que es enviada a la placa esclava, y ambas placas comenzarían en el mismo estado más o menos al mismo tiempo.

Esto, en teoría, haría lo que quieres. Digo en teoría. No hay manera de determinar en este momento lo que el software del controlador en el PC receptor hace a los internos del ASIC, y usted tendría que conseguir el controlador para configurar ambas cámaras más o menos simultáneamente. Y no tengo ni idea de cómo lo harías. Puedes descargar los drivers de Logitech e intentar hacer ingeniería inversa del código. Mucha suerte. Tampoco es probable que ni Logitech ni Sunplus publiquen los detalles del ASIC.

Así que, realmente no puedo recomendar esto como un proyecto de inicio.

0voto

StormShadow Puntos 156

Hay que utilizar el enfoque hardware-software. Piensa en cómo se hacen las películas. Siempre tienen esa cosa de aplausos, que comienza cada escena. Utilizan ese dispositivo para sincronizar todas las cámaras y el equipo de sonido.

Creo que la única manera es utilizar algún tipo de luz estroboscópica o algo visual con lo que las cámaras puedan sincronizarse.

Sincronizar sólo el reloj en los dispositivos puede no funcionar, podría haber diferentes firmware / línea de tuberías de procesamiento, e incluso si el tiempo en los dispositivos pasa de la misma manera, un dispositivo podría tomar un poco más de tiempo, que el otro para procesar el marco, por lo que tendría un retraso constante entre dos cámaras

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X