Я пытаюсь захватить стереовидео с помощью 2 веб-камер Microsoft LifeCam Studio USB. До сих пор лучший подход, который мне удалось придумать, — это мой собственный инструмент, написанный с использованием OpenCV для захвата видеопотоков с камер в Ubuntu 14.04. Я использую очень простой код VideoCapture ( источник здесь ) и пытаюсь просмотреть как минимум два видео, синхронизированных друг с другом.
Я использовал приложения Android-секундомера ( UltraChron Stopwatch Lite и Stopwatch Timer ) на моем Samsung Galaxy S3 mini, чтобы понять, что мои просматриваемые изображения не синхронизированы (показывают другое время на секундомере).
Кадры синхронизируются, может быть, в 50% случаев. Разница во времени кадра, которую я получаю, составляет от 0 до примерно 300 мс, в среднем около 120 мс. Кажется, что количество используемого времени ожидания очень мало влияет на синхронизацию (то же самое для 1000 мс или 2000 мс). Я запускаю FullHD, но снижение разрешения до 640x480 не дало никакого эффекта.
Я пытаюсь записать стерео видео с помощью недорогой установки. Идеальным результатом был бы 100% синхронизированный стереовидеопоток со скоростью около 10 кадров в секунду. Существуют ли какие-либо альтернативные подходы, которые привели бы к лучшей синхронизации?
РЕДАКТИРОВАТЬ : В поисках недорогого оборудования я обнаружил, что, вероятно, можно взломать аппаратное обеспечение ( ссылка здесь ) и одновременно ввести один тактовый сигнал в несколько модулей камеры, чтобы получить желаемую синхронизацию. Парень, который сделал это, похоже, разработал свою плату камеры с GENLOCK (называемую NerdCam1) и даже плату синхронизированной стереокамеры , которую он сейчас продает примерно за 200 евро.
Тем не менее, у меня почти нулевые способности к аппаратному взлому. Также я не уверен, возможна ли такая инъекция тактовой частоты для разрешений выше стандарта NTSC/PAL (поскольку это похоже на «аналоговое» решение?). Кроме того, я бы предпочел вариант с переменной базовой линией, когда обе камеры не будут спаяны на одной плате.
Также нашел этот связанный пост: Дешевое решение для съемки с несколькими (> 2) синхронизированными камерами (генлок или LANC?)
Вы, вероятно, не добьетесь 100% идеального результата с вашей настройкой. То, что вы синхронизировали их с точностью до 1 кадра в секунду, на самом деле довольно удивительно.
Профессиональные стереоустановки используют аппаратную блокировку кадров, чтобы обеспечить идеальную синхронизацию записи с камер. Это невозможно с обычными веб-камерами. Если вы исправите записанное видео в посте, вы можете получить точность менее 1/RecordingFPS’th секунды, чего может быть достаточно в зависимости от вашей частоты кадров. Чем выше частота кадров, тем меньше будет смещение.
Если веб-камеры предлагают какой-то низкоуровневый API, вы можете улучшить результаты еще больше, но я сомневаюсь, что это доступно, обычно это то, что вы получаете только в (довольно дорогих) промышленных камерах.
Редактировать: Что касается вашего редактирования, Genlocking — это способ работать практически с любым видеоприложением, если вам нужна 100% синхронизация (или как можно ближе к этому, у вас всегда будет некоторая нано/микросекундная задержка между кадрами).
Это синхронизация видео, отображаемых на видеостене (все эти отдельные дисплеи должны отображать правильную часть кадра одновременно). Или запись несколькими камерами одного и того же кадра одновременно. Разрешение тут не при чем.
Хотя цена точно есть. У вас есть бюджет для этого проекта или это для хобби? Определенно есть (не кино) камеры, которые поддерживают это, хотя они не такие дешевые, как веб-камеры. Самым дешевым решением, которое я могу придумать, является использование GoPro Stereo Rig. http://gopro.com/camera-accessories/dual-hero-system Это даст вам общий бюджет в 1000 долларов (минус несколько центов). Не совсем дешево, но определенно доступно.
GoPro также является очень гибким решением. Вы можете снимать от 3840x2160@15FPS до 848x480@240FPS. Он также поддерживает необработанный выход HDMI, что может быть полезно, если требуется точность цветопередачи или мониторинг вашей съемки в реальном времени.
Недостатком является то, что GoPro имеет объектив типа «рыбий глаз». Вы можете уменьшить искажение, установив узкий режим просмотра камеры и используя этот изящный программный лайфхак , но вы не сможете полностью избавиться от него, если не замените объектив .
Редактировать 2: Если вы идете «построить свой собственный маршрут электроники», вам следует взглянуть на проект ArduCam. По сути, это экран для популярных плат Arduino. Он позволяет подключать несколько модулей cmos, таких как OV5642, который представляет собой 5-мегапиксельный датчик, который также используется в модуле камеры Raspberry Pi.
Согласно этой ветке на форуме RaspberryPi, эти модули поддерживают генлок. Хотя это невозможно с поломанными контактами на модуле PiCam (хотя есть некоторые идеи о том, как сделать генлок с ним на последней странице), вы можете заказать эти модули дешево (25 $) на ebay и использовать их с платой ArduCam. . Даже если вы не подключаете модули к одному и тому же генератору для выполнения генлока, вы должны получить довольно хорошие результаты, так как здесь вы работаете с довольно близким металлом, а платформа Arduino очень проста в использовании.
С такой настройкой вы могли бы потенциально сделать стерео 3D-установку 1080p примерно за 125 долларов. 50$ за модули cmosm, ~16$ за 2 клона Arduino Uno и 60$ за 2 шилда ArduCam.
Козуч
тимонску
Козуч
тимонску
Козуч
Козуч