roboforum.ru

Технический форум по робототехнике.

Библиотека стереозрения

Библиотека стереозрения

Vorral » 14 сен 2010, 14:33

В архиве StereoVision 1.0beta.rar содержится пример использования библиотеки deepmeter.dll. Пример написан на Дельфи 7. В библиотеку подаётся два изображения 320х240(точнее указатели на него), а на выходе получаем КГ 320х240 для левого ракурса, никаких других данных вводить не требуется. Но без труда библиотеку можно запустить из любого языка программирования.

На входе в библиотеку нужно подать две матрицы 320x240хRGB(24бита) с левой и правой камеры.
На выходе будет матрица 320х240, где каждое значение будет равно либо 0(не найденно), либо от 1 до 50. Эти значения и будут говорить об удалённости каждого пикселя изображения от камеры. Перевести их в физические величины измерения нужно будет самостоятельно. Проще всего замерить опытным путём, т.к. оно зависит от стереобазы съёмки.


Требование к стереопарам:
1. Разрешение должно быть 320х240
2. Правильная последовательность ввода изображений в библиотеку(типа левую в левый, правую в правый).
3. Убрать дисторсию и любые другие геометрические искажения картинок.
4. Оси камер при съёмке должны быть параллельны.

Стереопары для тестов я брал в основном с http://vision.middlebury.edu/stereo/. Там у них убрали искажения и есть проверочные карты глубины, построенные с помощью структруированного света. А так же случайные из интернета.

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

Представлена картинка иллюстрирующая зависимость параллакса от расстояния. Т.е. градация измерения меняется с ростом расстояния.

Отредактирую "шапку" с более точным описанием и целями чуть позже. Ещё позже выложу теорию стереозрения. Появляющиеся проблемы/вопросы давайте писать в этой теме.
Вложения
12.jpg
stereo.JPG
disparity.JPG
disparity.JPG (8.42 КиБ) Просмотров: 2949
test8.JPG
test7.JPG
test6.JPG
test5.JPG
test4.JPG
test3.JPG
test2.JPG
test1.JPG
StereoVision 1.0beta.rar
(2.61 МиБ) Скачиваний: 0
Последний раз редактировалось Vorral 12 ноя 2010, 16:24, всего редактировалось 12 раз(а).

Re: Библиотека стереозрения

Виталий » 14 сен 2010, 15:49

А пробовали на других изображениях? Или только на этих?

Re: Библиотека стереозрения

Vorral » 14 сен 2010, 15:58

Само собой пробовал на большем числе(для теста у меня порядка 30 стереопар), алгоритм максимально универсален.

Re: Библиотека стереозрения

Виталий » 14 сен 2010, 16:13

А какие требования к стереопарам?
Что за коллекция изображений для теста?

Re: Библиотека стереозрения

Vorral » 14 сен 2010, 16:38

Требование к стереопарам:
1. Разрешение должно быть 320х240
2. Правильная последовательность ввода изображений в библиотеку(типа левую в левый, правую в правый).
3. Убрать дисторсию и любые другие геометрические искажения картинок.
4. Оси камер при съёмке должны быть параллельны.

Всё, на основе этого библиотека построит КГ 320х240, каждый пиксель которой либо будет равен 0(не найдено) либо от 1 до 50. 50 при этом это максимальная близость объекта к камерам.

Re: Библиотека стереозрения

Scorpio » 14 сен 2010, 17:03

А расстояние между камерами никак не учитывается? Здорово работает. Снимки на глаз почти не отличаются.

Re: Библиотека стереозрения

Vorral » 14 сен 2010, 17:12

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

Re: Библиотека стереозрения

Michael_K » 14 сен 2010, 17:20

А меня что-то не впечатлило :pardon:
По-моему, решена задача слишком "в лоб", и как мне кажется, еще есть, куда улучшать...
Качественно улучшать...

Re: Библиотека стереозрения

Vorral » 14 сен 2010, 17:26

Улучшать можно до бесконечности. Я так дальше и собираюсь делать. Но это лишь компонент, из системы. Сначала я планирую собрать мало мальски рабочую навигацию. А дальше, в зависимости от полученного опыта улучшать отдельные компоненты. Кстати, что значит решена в лоб? Если вы посмотрите остальные решения в этой области(кроме NASA'овских, но и у них есть существенные минусы) то быстро поймёте, что такой результат более чем приемлемый для данной задачи. :D Недостатки будут компенсироваться потоком таких КГ. Из этого потока и нужно будет устанавливать наиболее "устойчевые зоны", которые и пойдут на составление карты.

Re: Библиотека стереозрения

Scorpio » 15 сен 2010, 00:14

Увлекательная тема. Такую камерку думаю прикупить для экспериментов.

Re: Библиотека стереозрения

Vorral » 15 сен 2010, 11:33

Да, Minoru 3D хорошо подойдёт для стереозрения. Я уже где то писал про эту камеру. Стоить правда могла бы и поменьше. Но с текущими темпами "пропихивания" 3D на рынки развлечений(игры, кино), скоро должны появиться и альтернативные модели. Я пока сделал голову робота из двух одинаковых вебкамер chicony.
Вложения
18042010109.jpg

Re: Библиотека стереозрения

Vorral » 01 ноя 2011, 13:29

Написал свой алгоритм OpticalFlow. На примерах квадраты одного и того же цвета на разных изображениях считаются равными. Алгоритм универсален, поддерживает масштабирование, поворот, изменение освещённости. Работает в пять раз быстрее, чем стереозрение, о котором идёт речь выше :)
Вложения
aba05.JPG
aba04.JPG
aba03.JPG
aba02.JPG
aba01.JPG

Re: Библиотека стереозрения

Michael_K » 01 ноя 2011, 13:51

А что на выходе-то?
И еще не очень понятно, откуда эти квадраты берутся, что означает их цвет (или это просто "от балды"?) и т.п.

Re: Библиотека стереозрения

Vorral » 01 ноя 2011, 14:00

Всё просто. В алгоритм помещается два изображения 320х240. Цель алгоритма стандартна для OpticalFlow найти перемещение, особенных точек. Так вот центр каждого квадрата и есть особенная точка. Если квадраты на обоих изображениях одинакового цвета, значит они равны. Т.е. таким образом можно понять откуда и куда переместилась особенная точка. А если анализировать две стереопары, то и на каком расстояние она была в первом кадре и стала в следующем. Я и планирую использовать этот алгоритм как для стереозрения, так и для прослеживания изменений между кадрами, разнесёнными временем. Если сказать иначе отрисовывать внешний мир и положение робота на нём в реальном режиме времени, т.е. сделать навигацию для робота.

Re: Библиотека стереозрения

Vorral » 11 ноя 2011, 16:10

Объединил точки со схожими векторами движения в опорные зоны. Теперь возможно по таким зонам узнать такие характеристики как масштаб, угол поворота, смещение. В общем наконец началась геометрия :) .
Вложения
aba09.JPG
aba08.JPG
aba07.JPG
aba06.JPG
Последний раз редактировалось Vorral 10 мар 2022, 17:30, всего редактировалось 1 раз.


Rambler\'s Top100 Mail.ru counter