реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Навигация по мигающим маркерам, Как засечь в движении.
count_enable
сообщение Jul 21 2017, 13:55
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 310
Регистрация: 28-01-13
Из: Лондон
Пользователь №: 75 384



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

Следующим этапом будет определение позиции по трём известным маякам, но пока хочу сделать надёжную засечку маркеров даже если они сдвинулись на пару пикселей.
Go to the top of the page
 
+Quote Post
_pv
сообщение Jul 21 2017, 16:04
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



а не надо искать разницу от мигания в том же месте раз оно так быстро меняется,
картинки пропустить через полосовые фильтры по времени для трёх разных частот, натянуть на них какой-нибудь полином/сплайн - получатся траектории движения светодиодов по картинке, в зависимости от времени.
ну а раз производная по времени уже посчитана для всей картинки, можно её использовать для грубой оценки где примерно находятся светодиоды чтобы не всю картинку обсчитывать, а только в некоторой окресности светодиодов.
Go to the top of the page
 
+Quote Post
count_enable
сообщение Jul 23 2017, 08:44
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 310
Регистрация: 28-01-13
Из: Лондон
Пользователь №: 75 384



Спасибо, хорошая мысль.

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

Если не затруднит, посоветуйте статьи о 3d позиционировании по маркерам, как триангулировать свою позицию и как лучше размещать маркеры.
Go to the top of the page
 
+Quote Post
_pv
сообщение Jul 23 2017, 09:53
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



если смотреть на видео как на трехмерный набор данных яркости с временной третьей осью, то если посчитать преобразование Фурье с движущимся окном на какой-то одной частоте (полосовой фильтр) вдоль этой третьей оси, получится облако точек вокруг траектории светодиода [x,y,t] , на которые наименьшими квадратами можно натянуть какой-нибудь сплайн, который заодно и шумы/размер пятна светодиода отфильрует/усреднит.
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Aug 22 2017, 00:44
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



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

Цитата
Задача: найти визуальные маркеры и определить позицию камеры по ним.
В статике засечь маркеры тривиально. Проблемы начинаются при резких движениях камеры, когда выключение СИД попадает на один пиксель, а включение его на соседний, или даже через 2-3. Сейчас оно решается перебором "в лоб" ближайшего окружения последнего известного положения маркера, медленно и не очень надёжно. Частота диодов и кадровая частота весьма стабильны и отвечают задаче, частоту могу замерить за 4 импульса маркера. Как можно элегантно решить задачу?
Элегантно можно решить задачу, только правильно её поставив.
Мне кажется, что Вы не совсем хорошо понимаете, что Вам нужно.
Вот с этого и надо было бы начать.


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Aug 22 2017, 06:10
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



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.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th April 2024 - 04:27
Рейтинг@Mail.ru


Страница сгенерированна за 0.01386 секунд с 7
ELECTRONIX ©2004-2016