Быстрый трекинг ик светодиодов

Обсуждаем рождающиеся мысли и результаты экспериментов.

Быстрый трекинг ик светодиодов

Сообщение Севостьянов Петр » 26 янв 2010, 17:37

День добрый!
У меня есть задача по отслеживанию позиции ик светодиодов с камеры. В конечном итоге должно получиться что-то на подобии wii но только с дополнительными наворотами (возможность настройки в основном, +расширяемость).

Логично, что для такой задачи обрабатывать видео программно (на компьютере) очень глупо т.к. узкое место это пересылка видеопотока, а для моей задачи нужно слать всего 50(fps)*2(координаты)*2(байта на коорд.)*n(точек).

Еще очень важно достигнуть высокой актуальности информации т.е. получать данные в комп. моложе 30мс.

Собственно вопрос:
Может ли мне подойти готовые решения?
- CMUCAM
- Surveyor SRV-1 Blackfin Camera
Хватит ли их по скоростям? Нужно получить 50fps.
Есть ли какие-нибудь другие похожие решения?

Заранее всем большое спасибо!
Севостьянов Петр
 
Сообщения: 12
Зарегистрирован: 26 янв 2010, 17:12
Откуда: Воронеж
Skype: sevostianov_petr
прог. языки: Delphi HLSL

Re: Быстрый трекинг ик светодиодов

Сообщение =DeaD= » 26 янв 2010, 17:43

Наверное так - камера + АЦП + выделенный процессор.

А что за ИК-светодиоды всенаправленные и достаточно яркие?

Добавлено спустя 1 минуту 51 секунду:
CMUCam разрешение маловато вроде, а Blackfin дорого.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Быстрый трекинг ик светодиодов

Сообщение Севостьянов Петр » 26 янв 2010, 17:47

Со светодиодами проблем нет, их есть много разных и по направленности и по частоте и но интенсивности
+ дистанция <3 метров, так что тут все ок. Естественно + фильтры на камеры для отсечения видимого. Это тоже в изобилии.

$195.00 за "Surveyor SRV1 Blackfin Camera" это не так страшно. Конечно минус что их только из за моря.

У CMUCAM 352x288. По идее того вполне должно хватить при том, что у wii около 100x80 а точности они достигают из-за вычисления центра облака пикселей.
Я подобное пробовал. Действительно работает очень здорово.
Последний раз редактировалось Севостьянов Петр 26 янв 2010, 17:55, всего редактировалось 1 раз.
Севостьянов Петр
 
Сообщения: 12
Зарегистрирован: 26 янв 2010, 17:12
Откуда: Воронеж
Skype: sevostianov_petr
прог. языки: Delphi HLSL

Re: Быстрый трекинг ик светодиодов

Сообщение =DeaD= » 26 янв 2010, 17:55

Ну тогда надо AndreiSk спросить, он тут спец по Blackfin'у :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Быстрый трекинг ик светодиодов

Сообщение MiBBiM » 26 янв 2010, 18:13

это что же получается, с вебкой 640*480*30 fps по точности можно горы свернуть?
Последний раз редактировалось MiBBiM 26 янв 2010, 18:16, всего редактировалось 1 раз.
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

Re: Быстрый трекинг ик светодиодов

Сообщение Севостьянов Петр » 26 янв 2010, 18:16

>>это что же получается, с вебкой 640*480*30 fps по точности можно горы свернуть?
если бы не её гадкая оптика, бессовестное MJPEG сжатие и задержка до 5 кадров )))
Севостьянов Петр
 
Сообщения: 12
Зарегистрирован: 26 янв 2010, 17:12
Откуда: Воронеж
Skype: sevostianov_petr
прог. языки: Delphi HLSL

Re: Быстрый трекинг ик светодиодов

Сообщение AndreiSk » 26 янв 2010, 18:59

По поводу Blackfin,
в общем зависит от алгоритма. Если 500МГц Blackfin BF537 сумеет обработать это облако пикселей за требуемое время, будет хорошо. Мое IMHO: не сумеет.
С Blackfin камеры можно взять:
160x120=60fps
320x240=15fps
640x480=7.5fps
То есть реально вы возьмете только на 160x120.
При этом оптика у blackfin так себе, я настроил на метр, в принципе видно.
Смотрите, в шкафу стоит новый робот, он светится в ИК диапазоне (шарп 10-80 см).
Но Blackfin его не видит. Зато видит вебкамера с ноутбука.
IMHO, ловить ИК-светодиод будет необычно трудной задачей.
Вложения

video_sb_2.wmv [ 330.49 КиБ | Просмотров: 2195 ]

20100126174751.PNG
картинка 320x240 с blackfin
20100126174751.PNG (207.29 КиБ) Просмотров: 2897
Аватара пользователя
AndreiSk
 
Сообщения: 2639
Зарегистрирован: 23 апр 2009, 17:03
Откуда: Москва, Самара
прог. языки: C#

Re: Быстрый трекинг ик светодиодов

Сообщение =DeaD= » 26 янв 2010, 19:03

Наверное на Blackfin'е просто хороший отсекающий ИК-фильтр стоит.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Быстрый трекинг ик светодиодов

Сообщение AndreiSk » 26 янв 2010, 19:08

Не знаю :(
Все как то с видимым диапазоном работаю :roll:
Аватара пользователя
AndreiSk
 
Сообщения: 2639
Зарегистрирован: 23 апр 2009, 17:03
Откуда: Москва, Самара
прог. языки: C#

Быстрый трекинг ик светодиодов

Сообщение Севостьянов Петр » 26 янв 2010, 19:21

По поводу того что Blackfin не видит ик есть 2 версии
1 - действительно стоит фильтр отрезающий ик.
2 - матрица не чувствительна к ик (но я сомневаюсь)
у первой версии есть 2 варианта по поводу расположения фильтра
1 - приклеен к объективу (тогда он просто снимается)
2 - приклеен к матрице (встречал такое у одной вебкамеры от микрософт. попытка снять фильтр увенчалась расколом матрицы).
Если есть Blackfin по рукой не могли бы вы заглянуть под объектив.
Севостьянов Петр
 
Сообщения: 12
Зарегистрирован: 26 янв 2010, 17:12
Откуда: Воронеж
Skype: sevostianov_petr
прог. языки: Delphi HLSL

Re: Быстрый трекинг ик светодиодов

Сообщение Michael_K » 26 янв 2010, 19:29

=DeaD= писал(а):Наверное на Blackfin'е просто хороший отсекающий ИК-фильтр стоит.

Сто процентов. Кремний видит ИК сильно лучше зелененького.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Про алгоритм

Сообщение Севостьянов Петр » 26 янв 2010, 19:33

пробег по пикселям.
__если пиксель больше порога
____если есть "зарегистрированная" маркер поблизости (на расстоянии менее предположительного радиуса маркера(светодиода))
____(тут пробег по маркерам (их от 0 до 4 будет обычно)).
______да - добавляем пиксель к маркеру (с учетом веса)
________marker[k].x += x*W (где W - это вес т.е. превышение яркости пикселя над порогом)
________marker[k].y += y*W
________marker[k].W += W
______нет - создаем новый маркер.

пробег по маркерам
__marker[i].x = marker[i].x / marker[i].W
__marker[i].y = marker[i].y / marker[i].W

отправка marker[*].xy в порт компьютера.
Севостьянов Петр
 
Сообщения: 12
Зарегистрирован: 26 янв 2010, 17:12
Откуда: Воронеж
Skype: sevostianov_petr
прог. языки: Delphi HLSL

Re: Быстрый трекинг ик светодиодов

Сообщение Myp » 26 янв 2010, 19:42

3 вариант: ИК фильтр в дешовых объективчиках в виде напыления на линзе
легко можно определить даже по фотографии если объектив отливает красноватым или желтоватым цветом.

красивая по цветам картинка с блэкфин чётко говорит о хорошем фильтре.
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Про скорости

Сообщение Севостьянов Петр » 26 янв 2010, 21:04

AndreiSk
по поводу алгоритма с "облаками" как считаете потянет на 50 fps?
(алгоритм выше)
Какие для сравнения алгоритмы по сложности у вас работали на каких скоростях.
например просто поиск максимума по кадру 160х120 сколько дает на вскидку?

<<<<С Blackfin камеры можно взять:
160x120=60fps>>>>

т.е. он 1/60 сек читает данные с видеоматрицы?
или матрица "готовит" эти данные столько?
как построен процесс работы с кадром?
___как я понимаю в контролере крутится бесконечный цикл с проверкой переменной выхода.
___в цикле вызывается функция копирования данных из камеры в паять(или обращение напрямую к памяти камеры)
__так ли это?
расскажите пожалуйста о процессе работы контролера в Blackfin.

Самое важное забыл спросить!
С какой скоростью может Blackfin общаться с компьютером по com-порту в процессе работы? (не станет ли это узким местом)
Севостьянов Петр
 
Сообщения: 12
Зарегистрирован: 26 янв 2010, 17:12
Откуда: Воронеж
Skype: sevostianov_petr
прог. языки: Delphi HLSL

Re: Быстрый трекинг ик светодиодов

Сообщение MiBBiM » 26 янв 2010, 21:31

успевает протолкнуть wii, успеет и Blackfin.
очень упрощенно скорость передачи можно посчитать как LaTeX: amount=\frac{bods}{k*10}, где LaTeX: amount - количество посылок в секунду, LaTeX: k - количество байт в посылке.
или по-другому:
LaTeX: bytes=\frac{bods}{fps*10}, где LaTeX: fps - кол-во кадров в секунду, LaTeX: bytes - количество байт на кадр
LaTeX: bods - кол-во бод в секунду, стандартные значения - 9600 или 115200
Tomorrow will be. Better
Аватара пользователя
MiBBiM
 
Сообщения: 1866
Зарегистрирован: 29 окт 2007, 18:11
Откуда: Пермь
прог. языки: Brainfuck/Basic/Delphi/C++/Lisp/x86asm/JavaScript

След.

Вернуться в Идеи

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 42