Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Навигация по мигающим маркерам
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Математика и Физика
count_enable
Задача из области визуальной навигации по маркерам. Есть 3 светодиода, пульсирующие с заданной частотой (150-200 Гц, у каждого своя). Есть хорошая быстрая камера, снимающая их. Задача: найти визуальные маркеры и определить позицию камеры по ним.
В статике засечь маркеры тривиально. Проблемы начинаются при резких движениях камеры, когда выключение СИД попадает на один пиксель, а включение его на соседний, или даже через 2-3. Сейчас оно решается перебором "в лоб" ближайшего окружения последнего известного положения маркера, медленно и не очень надёжно. Частота диодов и кадровая частота весьма стабильны и отвечают задаче, частоту могу замерить за 4 импульса маркера. Как можно элегантно решить задачу?
Уже просчитана "дельта" каждого кадра: т.е. можно бесплатно (в плане вычислений) найти все пиксели изменившиеся по сравнению с предыдущим кадром.

Следующим этапом будет определение позиции по трём известным маякам, но пока хочу сделать надёжную засечку маркеров даже если они сдвинулись на пару пикселей.
_pv
а не надо искать разницу от мигания в том же месте раз оно так быстро меняется,
картинки пропустить через полосовые фильтры по времени для трёх разных частот, натянуть на них какой-нибудь полином/сплайн - получатся траектории движения светодиодов по картинке, в зависимости от времени.
ну а раз производная по времени уже посчитана для всей картинки, можно её использовать для грубой оценки где примерно находятся светодиоды чтобы не всю картинку обсчитывать, а только в некоторой окресности светодиодов.
count_enable
Спасибо, хорошая мысль.

Не до конца понял только с полиномом. Представим для примера что снимаю на 1000 кадров\сек, а диод мигает с частотой 100 Гц. Я беру каждый 10 кадр и ищу яркую точку (для увеличения точности можно искать так же чёрную точку со сдвигом по фазе на 5 кадров). Но ведь для коротких последовательностей шум будет неизбежен, по любому у нас останется 3-4 кандидата на маркер. Я думаю брать евклидов ближайший к последней запомненной позиции маркера. Здесь я вижу несколько возможностей, но крутиться это будет на маломощной железке типа Raspberry Pi и надо думать так же о выч. сложности алгоритма.

Если не затруднит, посоветуйте статьи о 3d позиционировании по маркерам, как триангулировать свою позицию и как лучше размещать маркеры.
_pv
если смотреть на видео как на трехмерный набор данных яркости с временной третьей осью, то если посчитать преобразование Фурье с движущимся окном на какой-то одной частоте (полосовой фильтр) вдоль этой третьей оси, получится облако точек вокруг траектории светодиода [x,y,t] , на которые наименьшими квадратами можно натянуть какой-нибудь сплайн, который заодно и шумы/размер пятна светодиода отфильрует/усреднит.
Stanislav
Цитата(count_enable @ Jul 21 2017, 16:55) *
Задача из области визуальной навигации по маркерам. Есть 3 светодиода, пульсирующие с заданной частотой (150-200 Гц, у каждого своя). Есть хорошая быстрая камера, снимающая их.
Что есть "хорошая быстрая камера"?
Это датчик изображения с кадровым переносом, или всё же строчным? (Global или Rolling shutter)?

Цитата
Задача: найти визуальные маркеры и определить позицию камеры по ним.
В статике засечь маркеры тривиально. Проблемы начинаются при резких движениях камеры, когда выключение СИД попадает на один пиксель, а включение его на соседний, или даже через 2-3. Сейчас оно решается перебором "в лоб" ближайшего окружения последнего известного положения маркера, медленно и не очень надёжно. Частота диодов и кадровая частота весьма стабильны и отвечают задаче, частоту могу замерить за 4 импульса маркера. Как можно элегантно решить задачу?
Элегантно можно решить задачу, только правильно её поставив.
Мне кажется, что Вы не совсем хорошо понимаете, что Вам нужно.
Вот с этого и надо было бы начать.
Сергей Борщ
QUOTE
FreeTrack is a free optical motion tracking application for Microsoft Windows, released under the GNU General Public License. Its main function is inexpensive head tracking in computer games and simulations
...
Head motions are tracked with six degrees of freedom (6DOF), specifically; yaw, pitch, roll, left/right, up/down and forward/back. This is done by means of a video capture device, typically a webcam, which is placed in front of the user and tracks a rigid point model headpiece. This point model usually consists of infrared LEDs but can also be normal LEDs and even retroreflective material illuminated by a source of infrared light.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.