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 КиБ) Просмотров: 2781
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 раз(а).
Vorral
 
Сообщения: 873
Зарегистрирован: 11 сен 2008, 17:18
Откуда: Москва
прог. языки: Delphi
ФИО: Владислав

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

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

А пробовали на других изображениях? Или только на этих?
Все новости о моих проектах http://savethebest.ru
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

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

Сообщение Vorral » 14 сен 2010, 15:58

Само собой пробовал на большем числе(для теста у меня порядка 30 стереопар), алгоритм максимально универсален.
Vorral
 
Сообщения: 873
Зарегистрирован: 11 сен 2008, 17:18
Откуда: Москва
прог. языки: Delphi
ФИО: Владислав

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

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

А какие требования к стереопарам?
Что за коллекция изображений для теста?
Все новости о моих проектах http://savethebest.ru
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

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

Сообщение Vorral » 14 сен 2010, 16:38

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

Всё, на основе этого библиотека построит КГ 320х240, каждый пиксель которой либо будет равен 0(не найдено) либо от 1 до 50. 50 при этом это максимальная близость объекта к камерам.
Vorral
 
Сообщения: 873
Зарегистрирован: 11 сен 2008, 17:18
Откуда: Москва
прог. языки: Delphi
ФИО: Владислав

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

Сообщение Scorpio » 14 сен 2010, 17:03

А расстояние между камерами никак не учитывается? Здорово работает. Снимки на глаз почти не отличаются.
Аватара пользователя
Scorpio
 
Сообщения: 2669
Зарегистрирован: 30 сен 2008, 18:49
Откуда: Где-то в Латинской Америке

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

Сообщение Vorral » 14 сен 2010, 17:12

От расстояния между камерами зависит многое. В первую очередь коэффициент, который нужно будет разделить на значение каждого пикселя КГ, для того чтобы получить расстояние в физической величине(типа см, метры и т.д.).
Vorral
 
Сообщения: 873
Зарегистрирован: 11 сен 2008, 17:18
Откуда: Москва
прог. языки: Delphi
ФИО: Владислав

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

Сообщение Michael_K » 14 сен 2010, 17:20

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

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

Сообщение Vorral » 14 сен 2010, 17:26

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

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

Сообщение Scorpio » 15 сен 2010, 00:14

Увлекательная тема. Такую камерку думаю прикупить для экспериментов.
Аватара пользователя
Scorpio
 
Сообщения: 2669
Зарегистрирован: 30 сен 2008, 18:49
Откуда: Где-то в Латинской Америке

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

Сообщение Vorral » 15 сен 2010, 11:33

Да, Minoru 3D хорошо подойдёт для стереозрения. Я уже где то писал про эту камеру. Стоить правда могла бы и поменьше. Но с текущими темпами "пропихивания" 3D на рынки развлечений(игры, кино), скоро должны появиться и альтернативные модели. Я пока сделал голову робота из двух одинаковых вебкамер chicony.
Вложения
18042010109.jpg
Vorral
 
Сообщения: 873
Зарегистрирован: 11 сен 2008, 17:18
Откуда: Москва
прог. языки: Delphi
ФИО: Владислав

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

Сообщение Vorral » 01 ноя 2011, 13:29

Написал свой алгоритм OpticalFlow. На примерах квадраты одного и того же цвета на разных изображениях считаются равными. Алгоритм универсален, поддерживает масштабирование, поворот, изменение освещённости. Работает в пять раз быстрее, чем стереозрение, о котором идёт речь выше :)
Вложения
aba05.JPG
aba04.JPG
aba03.JPG
aba02.JPG
aba01.JPG
Vorral
 
Сообщения: 873
Зарегистрирован: 11 сен 2008, 17:18
Откуда: Москва
прог. языки: Delphi
ФИО: Владислав

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

Сообщение Michael_K » 01 ноя 2011, 13:51

А что на выходе-то?
И еще не очень понятно, откуда эти квадраты берутся, что означает их цвет (или это просто "от балды"?) и т.п.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

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

Сообщение Vorral » 01 ноя 2011, 14:00

Всё просто. В алгоритм помещается два изображения 320х240. Цель алгоритма стандартна для OpticalFlow найти перемещение, особенных точек. Так вот центр каждого квадрата и есть особенная точка. Если квадраты на обоих изображениях одинакового цвета, значит они равны. Т.е. таким образом можно понять откуда и куда переместилась особенная точка. А если анализировать две стереопары, то и на каком расстояние она была в первом кадре и стала в следующем. Я и планирую использовать этот алгоритм как для стереозрения, так и для прослеживания изменений между кадрами, разнесёнными временем. Если сказать иначе отрисовывать внешний мир и положение робота на нём в реальном режиме времени, т.е. сделать навигацию для робота.
Vorral
 
Сообщения: 873
Зарегистрирован: 11 сен 2008, 17:18
Откуда: Москва
прог. языки: Delphi
ФИО: Владислав

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

Сообщение Vorral » 11 ноя 2011, 16:10

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

След.

Вернуться в Алгоритмы

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

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

cron