roboforum.ru

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


Универсальное зрение для навигации - 3D-реконструкция

Сообщение Сергей Мальцев » 15 май 2006, 16:30

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

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

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

Сообщение Сергей Мальцев » 15 май 2006, 16:35

Антон, как на счет разделения задач на данный момент.
Ты дорабатываешь свой корреляционный, я экспериментирую с динпрогом. Я пытаюсь доработать предложенный у Форсайта алгоритм, так чтобы он мог работать в большинстве случаев, и по максимуму использовал информацию с изображений.
Сергей Мальцев
 
Сообщения: 106
Зарегистрирован: 07 мар 2006, 16:14
Откуда: Москва

Сообщение Сергей Мальцев » 15 май 2006, 16:39

Поднял эту тему на сайте Лаборатории компьтерной графики:
http://forum.graphicon.ru/viewtopic.php?t=859
Сергей Мальцев
 
Сообщения: 106
Зарегистрирован: 07 мар 2006, 16:14
Откуда: Москва

Сообщение =DeaD= » 16 май 2006, 14:14

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

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

Сообщение Сергей Мальцев » 16 май 2006, 15:21

=DeaD= писал(а):
Сергей Мальцев писал(а):Антон, как на счет разделения задач на данный момент.
Ты дорабатываешь свой корреляционный, я экспериментирую с динпрогом. Я пытаюсь доработать предложенный у Форсайта алгоритм, так чтобы он мог работать в большинстве случаев, и по максимуму использовал информацию с изображений.

Да, всё так, только я сначала хочу добить проблему с подключением двух камер, а то нервные клетки, знаете ли... :(


ОК, давай пока с этим разбирайся.
Сергей Мальцев
 
Сообщения: 106
Зарегистрирован: 07 мар 2006, 16:14
Откуда: Москва

Сообщение Сергей Мальцев » 16 май 2006, 15:26

Разрисовал все проекции на камеры, сделал еще одно наблюдение.

Если разделить полученые изображения пополам по вертикали, и назвать половины, ближайшие к другому изображению стереопары (т.е., например, правую половину левой камеры) - внутренними половинами. А оставшиеся половины - внешними половинами, то получим следующее ограничение.

Если мы ищем пару для точки из внешней половины, то соответсвтующая ей точка может находиться только на внутренней половине второго изображения. Это строгое геометрическое ограничение.
Если ищется соответствие для точки из внутренней половины, то пара ей может быть найдена в любом месте второго изображения.
Сергей Мальцев
 
Сообщения: 106
Зарегистрирован: 07 мар 2006, 16:14
Откуда: Москва

Сообщение GraphD » 16 май 2006, 19:11

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

Это ограничение не нужно.
Когда мы построим эпиполярную кривую для заданной точки на левом кадре, то направление и начало поиска на этой кривой для правого кадра однозначно находятся - это та часть кривой, на которой может находится паная искомая точка.
GraphD
 
Сообщения: 157
Зарегистрирован: 01 окт 2005, 00:56
Откуда: С.-Петербург

Сообщение Сергей Мальцев » 17 май 2006, 09:49

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

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


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

Сообщение =DeaD= » 17 май 2006, 15:02

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

Сообщение GraphD » 17 май 2006, 19:52

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

Нарисовал, вот:
Вложения
epipol.gif
epipol.gif (18.46 КиБ) Просмотров: 2982
GraphD
 
Сообщения: 157
Зарегистрирован: 01 окт 2005, 00:56
Откуда: С.-Петербург

Сообщение Сергей Мальцев » 18 май 2006, 09:31

=DeaD= писал(а):Ну скажем не прямые, а лучи вроде бы...


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

Сообщение Сергей Мальцев » 18 май 2006, 10:15

На счет искажений камеры, так вроде как только бочкообразный эффект (дисторсия) есть. Так она без проблем удаляется. Или еще чего есть?
Сергей Мальцев
 
Сообщения: 106
Зарегистрирован: 07 мар 2006, 16:14
Откуда: Москва

Сообщение GraphD » 18 май 2006, 13:55

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

Вобще есть микрухи, которые это делают аппаратно и быстро. Но еще взаимная ориентация камер может иметь отступы от параллельности, так что проще, не парясь, откалибровать систему и учитывать все (нелинейные кстати) артефакты в ПО. ИМХО.
GraphD
 
Сообщения: 157
Зарегистрирован: 01 окт 2005, 00:56
Откуда: С.-Петербург

Сообщение Сергей Мальцев » 18 май 2006, 14:23

GraphD писал(а):
Сергей Мальцев писал(а):На счет искажений камеры, так вроде как только бочкообразный эффект (дисторсия) есть. Так она без проблем удаляется. Или еще чего есть?

Вобще есть микрухи, которые это делают аппаратно и быстро. Но еще взаимная ориентация камер может иметь отступы от параллельности, так что проще, не парясь, откалибровать систему и учитывать все (нелинейные кстати) артефакты в ПО. ИМХО.


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

Сообщение GraphD » 19 май 2006, 23:07

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

Хорошоб найти такой крепежный вариант камер, чтобы точно настраивать ориентацию (с точностью до пикселя), а потом строго фиксировалась вся система, намертво...
GraphD
 
Сообщения: 157
Зарегистрирован: 01 окт 2005, 00:56
Откуда: С.-Петербург

Пред.След.

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

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

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