roboforum.ru

Технический форум по робототехнике.
Текущее время: 18 фев 2025, 19:57

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 210 ]  На страницу 1, 2, 3, 4, 5 ... 14  След.
Автор Сообщение
 Заголовок сообщения: Универсальное зрение для навигации - 3D-реконструкция
СообщениеДобавлено: 09 мар 2006, 13:58 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Задача общая звучит так "ориентация в неподготовленном пространстве без взаимодействия с объектами".

Т.е. отвечаем на вопрос "где мы сейчас", "что вокруг нас за препятствия" и "как проехать в точку X".

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

Здесь мы обсуждаем задачу:

Определение расстояния до предметов и ладшафта (3D-реконструкция).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 мар 2006, 14:12 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
1.

Проблема специально названа 3D-реконструкция, а не стереозрение. Собственно почему именно стереозрение, а не motion-flow?

2.

В стереозрении и в любом другом зрении (в т.ч. motion-flow) есть принципиальные участки, которые тяжело сопоставлять между двумя кадрами (области однотонной закраски без теней и текстурированного освещения). Практически неизлечимая проблема.

3.

Как в motion-flow, так и в стереозрении есть задача составления векторного поля по двум кадрам. Знаю минимум два подхода к этом - первый основан на пирамидах изображений (в курсе что это?), второй на чистом сопоставлении фрагментов изображений и прямом нахождении векторов для каждой нужной точки. Я применял на практике второй способ.

Оба названных способа есть в OpenCV, хотя я не разобравшись в ней до конца, при той работе, сам написал процедуру получения векторного поля.

Какие еще есть способы?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 мар 2006, 15:27 
Не в сети

Зарегистрирован: 07 мар 2006, 16:14
Сообщения: 106
Откуда: Москва
Цитата:
1.

Проблема специально названа 3D-реконструкция, а не стереозрение. Собственно почему именно стереозрение, а не motion-flow?


Да, я думаю, нам нужно одновременно использовать различные подходы, для того чтобы максимально реконструировать сцену, с максимальной точностью. Но нужно решить с чего начать, я бы начал со стереозрения, но можно и параллельно работать. После испытания всех технологий нужно будет решить какие оставить в конечном варианте, а какие нет.

Цитата:
2.

В стереозрении и в любом другом зрении (в т.ч. motion-flow) есть принципиальные участки, которые тяжело сопоставлять между двумя кадрами (области однотонной закраски без теней и текстурированного освещения). Практически неизлечимая проблема.


Проблема действительно практически неизлечимая. Но можно попробовать использовать интерполяцию, с сохранением информации о не восстановленных данных, так как это может пригодиться для дальнейших алгоритмов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 мар 2006, 16:22 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Сергей Мальцев писал(а):
1. Да, я думаю, нам нужно одновременно использовать различные подходы, для того чтобы максимально реконструировать сцену, с максимальной точностью. Но нужно решить с чего начать, я бы начал со стереозрения, но можно и параллельно работать. После испытания всех технологий нужно будет решить какие оставить в конечном варианте, а какие нет.

2. Проблема действительно практически неизлечимая. Но можно попробовать использовать интерполяцию, с сохранением информации о не восстановленных данных, так как это может пригодиться для дальнейших алгоритмов.

1. Со стереозрения плохо начинать, потому что есть проблемы синхронизации (вроде в OpenCV как-то мимо этой проблемы разработчики прошли), но если их нам удастся побороть - я не против.

У человека стереозрение не работает на больших расстояних вроде бы, да и человек без 1 глаза ничего, живет себе, хотя и хуже немного.

Зато мы точно знаем - чтобы понять форму предмета мы любим его осматривать с разных сторон или крутить в руках, то есть motion-flow как раз более активно пользуем. Или я где-то неправ?

2. По поводу интерполяции и т.п. Как минимум нужно учесть фишку с картинки ниже. На картинке изображен срез с двух камер при фиксированной координате Y.

На ней фиолетовые кракозябры - распознаные участки (опознано расстояние до них, найдено соотв. на картинках).

Утверждается, что нераспознанный участок должен в этом случае лежать в розовом треугольнике. То есть для целей навигации мы можем и из неопознанных участков извлекать более менее точную информацию. Очевидно что чем меньше такие участки, тем более точная информация у нас будет по предполагаемым их положениям.


Вложения:
pic1.jpg
pic1.jpg [ 34.87 КиБ | Просмотров: 9406 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 мар 2006, 17:10 
Не в сети

Зарегистрирован: 07 мар 2006, 16:14
Сообщения: 106
Откуда: Москва
Цитата:
3.

Как в motion-flow, так и в стереозрении есть задача составления векторного поля по двум кадрам.


По моему, все же в стереозрении не нужны векторные поля, или может просто терминология другая. В стереозрении нужно сопоставление пар точек.

Цитата:
Знаю минимум два подхода к этом - первый основан на пирамидах изображений (в курсе что это?), второй на чистом сопоставлении фрагментов изображений и прямом нахождении векторов для каждой нужной точки. Я применял на практике второй способ.


С пирамидами изображений не знаком, по крайней мере с термином. Насколько я понял второй способ это нечто вроде корреляции? Вы, кстати, эпиполярные линии учитываете? Я постараюсь выложить некоторые страницы из книги Дэвид А. Форсайт, Джин Понс "Компьютерное зрение. Современный подход", посвященные этому вопросу. А вы книгу Хорна ?Зрение роботов? просматривали, она в сети есть. Там было по этому вопросу тоже много.

Цитата:
Оба названных способа есть в OpenCV, хотя я не разобравшись в ней до конца, при той работе, сам написал процедуру получения векторного поля.


Сегодня обнаружил, что работаю с не совсем свежей версией OpenCV, вроде как обновление летом прошлого года было. Какие функции там за это отвечают. Вроде в старой версии не припомню таких.


Надо бы еще поиск в итнернете сделать. Вроде задача распространненая, может кто исходники выложил.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 мар 2006, 17:41 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Сергей Мальцев писал(а):
По моему, все же в стереозрении не нужны векторные поля, или может просто терминология другая. В стереозрении нужно сопоставление пар точек.

По сути это тоже векторное поле, просто все вектора имеют координату X одного знака, а координату Y нулевую.

Сергей Мальцев писал(а):
С пирамидами изображений не знаком, по крайней мере с термином. Насколько я понял второй способ это нечто вроде корреляции? Вы, кстати, эпиполярные линии учитываете? Я постараюсь выложить некоторые страницы из книги Дэвид А. Форсайт, Джин Понс "Компьютерное зрение. Современный подход", посвященные этому вопросу. А вы книгу Хорна ?Зрение роботов? просматривали, она в сети есть. Там было по этому вопросу тоже много.

Компьютерное зрение, современный подход лежит дома, читаю потихоньку. Зрение роботов надо будет скачать.

Эпиполярные линии - это в смысле учет того, что соответствующее положение этого фрагмента на другом изображении может быть только в самом общем виде на некоторой кривой? Да разумеется, более того, я считаю что изображения обработаны так, что эта кривая есть горизонтальный отрезок.

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

CalcOpticalFlowHS
CalcOpticalFlowLK
CalcOpticalFlowBM
CalcOpticalFlowPyrLK

Это функции по OpticalFlow, но скорее всего их можно раздраконить и загнать в них учет тех самых эпиполярных линий, если я правильно понял что это такое.

Сергей Мальцев писал(а):
Надо бы еще поиск в итнернете сделать. Вроде задача распространненая, может кто исходники выложил.

Разумеется, но исходники мало кто выкладывает, в основном результаты и отчеты. Даже алгоритмы не всегда рассказаны.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 мар 2006, 17:51 
Не в сети

Зарегистрирован: 07 мар 2006, 16:14
Сообщения: 106
Откуда: Москва
Цитата:
Разумеется, но исходники мало кто выкладывает, в основном результаты и отчеты. Даже алгоритмы не всегда рассказаны.


Вот чего в SourceForge нашел, разбираться на долго хватит :)
http://sourceforge.net/search/?words=3d ... earch=soft


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 мар 2006, 18:04 
Не в сети

Зарегистрирован: 07 мар 2006, 16:14
Сообщения: 106
Откуда: Москва
Вот один, на первый взгляд, подходящий вариант:
http://people.csail.mit.edu/demirdji/do ... index.html


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 мар 2006, 19:49 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Сергей Мальцев писал(а):
Вот один, на первый взгляд, подходящий вариант:
http://people.csail.mit.edu/demirdji/do ... index.html

Некрасиво, что под Win32 все сделано, причем только под одну среду разработки - Visual Studio. А в целом нужно разбирать :)

В любом случае предлагаю делать добавки к OpenCV, а не брать библиотеки чужие цельные, иначе лоскутное одеяло получится вместо нормальной системы. Но алгоритм посмотреть само собой не помешает.

Сорцы скачал, будем смотреть. Только оно частично на ASM написано :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 мар 2006, 20:05 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
В целом надо сначала провести исследование состояния дел в этой области - сколько времени на это заложим?

Сразу выкину сюда список проектов из sourceforge.net отфильтрованный, их нужно будет разобрать между собой и прочесать на предмет идей и алгоритмов:

СТЕРЕОЗРЕНИЕ:

1.
http://sourceforge.net/projects/clone3d
3D object reconstruction based on several images

2.
http://sourceforge.net/projects/estereo
EStereo is a computer vision C++ library for real-time disparity estimation. The library contains various functions for dense stereo matching from 2 or 3 rectified images and 3D scene reconstruction.

3.
http://sourceforge.net/projects/kljh
Stereovision and multivision library Takes multiple image, detects and tracks points of interest, determines camera parameters and makes a basic 3D reconstruction or build a panorama.

4.
http://sourceforge.net/projects/mrhd
Software for creating Depth Maps and DEMs from image pairs taken using a Stereo Camera Rig. Currently works on images from Parallel Cameras. Create your own depth maps and 3d terrain from any images, such as NASA Mars Rover Image Pairs.

5.
http://sourceforge.net/projects/svfx
Stereo vision for special effects: The aim of the project is to implement a stereo vision algorithm based on color segmentation and graph cuts. It will be possible to extend the code to multicamera scene reconstruction.

6.
http://sourceforge.net/projects/argus3d
A small stereo vision library.

7.
http://sourceforge.net/projects/rodney
Rodney is an upper torso humanoid robot with stereo vision, speech recognition and a wide variety of body and head movements. This project is designed to be an open source repository for the software which comprises its control system.

8.
http://sourceforge.net/projects/stevision
Given a video feed consisting of a pair of stereo images to determine wat are the various objects in the scence and how far they are from the camera. This would ultimately be a visual navigation tool for robots.

9.
http://sourceforge.net/projects/binocle
The goal of this project is to develop a libray which implements functions related to stereovision and stereo-correlation. In other terms, whith two pictures of a same object taken from different angles, this library can generate a ZBuffer of the pictures.

Как будем делить? Если что - естерео я уже скачал :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 мар 2006, 20:15 
Не в сети
Безбашенный Теоретик
Аватара пользователя

Зарегистрирован: 07 янв 2006, 18:30
Сообщения: 1137
Откуда: Подмосковье
есть идея :idea:
скомбинировать стереозрение и оптикал флов, например на большой
дальности оптикал флов точнее, вот на него и упираться,
вблизи стереозрение точнее, вот и его испоьзовать,
вообщем переключать методы в зависимости от ситуации :roll:
еще можно сначала выделять контуры, по ним точность будет максимальна, а что в контур не вошло, то обрабатывать как обычно
с поправкой на имеющиеся данные( расстояния до контуров,
данные по расспазнаванию+опыт) :idea:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 мар 2006, 20:43 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
lebaon писал(а):
есть идея :idea:


Как бы это сказать...

Вроде и проигнорировать неприлично и ответить особо нечего :)

Это понятно, что любые методы можно комбинировать, используя методы более точные в конкретных условиях либо с большим весом, либо вообще забивая на другие методы.

Мы как раз, я думаю, сначала комбинированием и займемся, чтобы войти в тему, хотя может по ходу и чего своего придумаем.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 мар 2006, 21:14 
Не в сети
Безбашенный Теоретик
Аватара пользователя

Зарегистрирован: 07 янв 2006, 18:30
Сообщения: 1137
Откуда: Подмосковье
а по контурам :?:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 мар 2006, 21:27 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
lebaon писал(а):
а по контурам :?:

Все алгоритмы этой группы и так устроены таким образом, что они эту особую точность на контурах и без специальных доработок ловят.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 10 мар 2006, 12:47 
Не в сети

Зарегистрирован: 07 мар 2006, 16:14
Сообщения: 106
Откуда: Москва
Цитата:
Со стереозрения плохо начинать, потому что есть проблемы синхронизации (вроде в OpenCV как-то мимо этой проблемы разработчики прошли), но если их нам удастся побороть - я не против.

Что за проблемы с синхронизацией?

Цитата:
У человека стереозрение не работает на больших расстояних вроде бы, да и человек без 1 глаза ничего, живет себе, хотя и хуже немного.

Мне кажется что большие расстояния не очень нужны, по крайней мере на начальном этапе. А ты уверен что motion-flow на больших расстояниях хорошо работает?

Цитата:
Зато мы точно знаем - чтобы понять форму предмета мы любим его осматривать с разных сторон или крутить в руках, то есть motion-flow как раз более активно пользуем. Или я где-то неправ?


А вот тут точно не известно что при рассматривании с разных сторон используется больше. Это может использоваться стереозрением для запоминания максимальной информации о предмете.

Цитата:
2. По поводу интерполяции и т.п. Как минимум нужно учесть фишку с картинки ниже. На картинке изображен срез с двух камер при фиксированной координате Y.

На ней фиолетовые кракозябры - распознаные участки (опознано расстояние до них, найдено соотв. на картинках).

Утверждается, что нераспознанный участок должен в этом случае лежать в розовом треугольнике. То есть для целей навигации мы можем и из неопознанных участков извлекать более менее точную информацию. Очевидно что чем меньше такие участки, тем более точная информация у нас будет по предполагаемым их положениям.

Идея полезная, нужно будет ее учесть но для начала нужно посмотреть какие вообще результаты даст 3d реконструкция.
Еще есть соображение, что внутри области однородной закраски будет достаточно ровная поверхность, без резких выпадов, иначе бы скорее всего в силу освещения однородной закраски не было бы.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 210 ]  На страницу 1, 2, 3, 4, 5 ... 14  След.

Часовой пояс: UTC + 4 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO