Estoy tratando de capturar video estéreo con 2 cámaras web USB Microsoft LifeCam Studio. Hasta ahora, el mejor enfoque que he encontrado es mi propia herramienta escrita con OpenCV para capturar secuencias de video de las cámaras en Ubuntu 14.04. Estoy usando un código VideoCapture muy simple ( fuente aquí ) y estoy tratando de ver al menos dos videos que están sincronizados entre sí.
Utilicé aplicaciones de cronómetro de Android ( UltraChron Stopwatch Lite y Stopwatch Timer ) en mi Samsung Galaxy S3 mini para darme cuenta de que las imágenes que veía no estaban sincronizadas (muestran una hora diferente en el cronómetro).
Los cuadros se sincronizan tal vez en el 50% del tiempo. Las diferencias de tiempo de cuadro que obtengo son de 0 a aproximadamente 300 ms con un promedio de aproximadamente 120 ms. Parece que la cantidad de tiempo de espera utilizado tiene muy poco efecto en la sincronización (lo mismo para 1000ms o 2000ms). Ejecuto FullHD pero bajar la resolución a 640x480 no tuvo ningún efecto.
Estoy tratando de grabar video estéreo con una configuración de bajo costo. Un resultado ideal sería una transmisión de video estéreo 100% sincronizada que tenga alrededor de 10 FPS. ¿Hay algún enfoque alternativo que resulte en una mejor sincronización?
EDITAR : en mi búsqueda de hardware de bajo costo, descubrí que probablemente sea posible piratear hardware básico ( enlace aquí ) e inyectar una sola señal de reloj en varios módulos de cámara simultáneamente para obtener la sincronización deseada. El tipo que hizo eso parece haber desarrollado su placa de cámara GENLOCK (llamada NerdCam1) e incluso una placa de cámara estéreo sincronizada que ahora vende por unos 200 €.
Sin embargo, tengo una habilidad casi nula para piratear hardware. Además, no estoy seguro de si dicha inyección de reloj es posible para resoluciones superiores al estándar NTSC/PAL (¿ya que parece ser una solución "analógica"?). Además, preferiría una opción de línea de base variable donde ambas cámaras no estarían soldadas en una sola placa.
También encontré esta publicación relacionada: Solución económica para disparar con múltiples (> 2) cámaras sincronizadas (¿genlock o LANC?)
Probablemente no logrará un resultado 100% perfecto con su configuración. Que los hayas sincronizado con una precisión de 1FPS es bastante sorprendente en realidad.
Las configuraciones estéreo profesionales utilizan el bloqueo de fotogramas en el hardware para garantizar que las cámaras graben en perfecta sincronización. Esto no es posible con cámaras web ordinarias. Si corrige el video grabado en la publicación, puede obtener una precisión de menos de 1/Grabación de FPS de un segundo, lo que puede ser suficiente dependiendo de su velocidad de fotogramas. Cuanto mayor sea su velocidad de fotogramas, menor será el desplazamiento.
Si las cámaras web ofrecen algún tipo de API de bajo nivel, es posible que pueda mejorar aún más los resultados, pero dudo que esté disponible, eso es algo que generalmente solo obtiene en cámaras industriales (bastante caras).
Editar: con respecto a su edición, Genlocking es el camino a seguir con casi cualquier aplicación de video si necesita una sincronización del 100% (o lo más cerca posible de eso, siempre tendrá un retraso de nano/microsegundo entre fotogramas).
Ya sea sincronizando videos que se muestran en una pared de pantallas (todas estas pantallas individuales deben mostrar la parte correcta del cuadro al mismo tiempo). O grabando con varias cámaras el mismo cuadro al mismo tiempo. La resolución no es un factor aquí.
Aunque el precio definitivamente lo es. ¿Tiene un presupuesto para este proyecto o es solo para propósitos de hobby? Definitivamente, hay cámaras (que no son de cine) que admitirían esto, aunque no son exactamente baratas como una cámara web. La solución más barata que se me ocurre es usar GoPro Stereo Rig. http://gopro.com/camera-accessories/dual-hero-system Esto le daría un presupuesto de 1000 $ en total (menos unos pocos centavos). No es exactamente barato, pero definitivamente asequible.
Y la GoPro también es una solución muy flexible. Puede disparar desde 3840x2160@15FPS hasta 848x480@240FPS. También es compatible con la salida HDMI sin procesar, lo que puede ser útil si se desea precisión de color o monitoreo en vivo de su sesión.
Una desventaja es que la GoPro tiene una lente de ojo de pez. Puede reducir la distorsión configurando el modo de visualización de la cámara en estrecho y utilizando este ingenioso truco de software , pero no se deshará por completo de él a menos que reemplace la lente .
Edición 2: si va a "construir su propia ruta electrónica", debería echar un vistazo al proyecto ArduCam. Es esencialmente un escudo para las populares placas Arduino. Te permite conectar varios módulos cmos como el OV5642 que es un sensor de 5MP que también se usa en el módulo de cámara Raspberry Pi.
De acuerdo con este hilo en el foro de RaspberryPi, estos módulos admiten genlocking. Si bien no es posible con los pines rotos en el módulo PiCam (aunque hay algunas ideas sobre cómo hacer genlocking con él en la última página), puede pedir estos módulos a un precio económico (25 $) en eBay y usarlos con la placa ArduCam. . Incluso si no conecta los módulos al mismo oscilador para hacer genlocking, debería obtener algunos resultados bastante buenos ya que trabaja bastante cerca del metal aquí, también la plataforma Arduino es muy fácil de usar.
Con una configuración de este tipo, podrías hacer un equipo 3D estéreo de 1080p por alrededor de 125 $. 50$ por los módulos cmosm, ~16$ por 2 clones de Arduino Uno y 60$ por 2 escudos ArduCam.
Kozuch
timonsku
Kozuch
timonsku
Kozuch
Kozuch