Какой лучший маркер в видео для распознавания?

В настоящее время я создаю автоматическую обработку синхронизации между видеодорожкой (исходящей от камеры) и звуковыми дорожками (исходящими от микрофона). Для этого я планирую создать небольшое веб-приложение, которое отобразит clapper со своим смартфоном (Ex: Iphone) и испустит определенный бит, когда я буду сниматься. После этого я выполню небольшое приложение OpenCV (JavaCV на самом деле), которое обнаружит изображение, на котором мой смартфон отобразил clapper. Мне остается только найти конкретный бип для синхронизации двух дорожек.

Здесь вы можете увидеть (http://vimeo.com/47002882) и здесь (http://vimeo.com/46213073) видео, которые мы уже построены и синхронизированы вручную. Основываясь на этом контексте (расстояние, освещение и т.д. Предыдущих видео) Что для вас, лучшая вещь (форма, цвет или другое), которые можно обнаружить почти все время? И какую трансформацию я должен использовать?

Вы должны представить себе, что я покажу вам clapper с моего смартфона с камерой, которая будет помещена в пять-семь метров от меня.

Я построил первый базовый clapper (http://jsbin.com/zuqumiso/45/) и использовал обработку видео с помощью OpenCV следующим образом:

Кадр → преобразование RGB в GREY → GaussianBlur → AdaptativeThreshold → Преобразование Hought (стандартное) для обнаружения строк.

Но он эффективен только тогда, когда мой смартфон находится на расстоянии тридцати сантиметров от камеры...

Ответ 1

Учитывая очень маленький размер экрана вашего телефона в видео, я не думаю, что вы сможете автоматически обнаружить любой стандартный маркер (например, QR-коды, круги или шахматная доска), отображаемые на телефоне.

Если бы я был вами, я бы попробовал гораздо более простой подход. Я бы начал с отображения полноэкранного мигающего черно-белого рисунка на телефоне. Если телефон держится разумно устойчивым, это должно позволить обнаружить мигающую область как область, где отклонение интенсивности является самым высоким на нескольких последовательных кадрах. Затем, для синхронизации аудио/видео, я бы одновременно выдавал бип и превращал полноэкранный рисунок в определенный цвет (например, ярко-красный или ярко-зеленый). Опять же, этот переход от черного/белого к полностью насыщенному цвету должен быть обнаружен довольно легко, путем обнаружения разрыва насыщенности цвета на отмеченной ранее области мигания.

Возможно, это не так, как вы были, когда задавали этот вопрос в первую очередь, но, учитывая ваши жесткие ограничения на расстояние между телефонами и камерами, я не думаю, что есть другой способ.

Ответ 2

Большинство алгоритмов изображения работают, смотря на переходы (aka; edge). Поскольку ваша камера является RGB-камерой, идеальным детектируемым краем будет край, который будет виден для всех цветов.

Самый простой способ - использовать простой QR-код. Его края легко обнаружить, и вы можете даже различать несколько кодов.

Форма и цвет имеют тенденцию быть немного более непостоянными, чем QR-коды.