roboforum.ru

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

Универсальное зрение для навигации - естественные маяки

Универсальное зрение для навигации - естественные маяки

=DeaD= » 09 мар 2006, 14:00

Задача общая звучит так "ориентация в неподготовленном пространстве без взаимодействия с объектами".

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

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

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

Выявление в окружающем мире опознаваемых объектов и распознавание их в дальнейшем.

=DeaD= » 09 мар 2006, 14:15

Здесь самая большая проблема - обнаружение объектов, способных выполнять роль маяков и дальнейшая их идентификация на изображениях.

В принципе в OpenCV есть "FeatureDetector", но это скорее для датчиков движений визуальных, маловероятно, что таких "фич" на картинке будет достаточно для маяков (непонятна стабильность этих фич при рассмотрении их с разных сторон).

Какие здесь будут мысли?

lebaon » 09 мар 2006, 20:02

может попробовать распознать :?:
имеем базу контуров объектов, при встрече пытаемся распознать,
если не знаем то добавляем в базу, по стереопаре выделяем контуры
по контурам определяем дальность и направление на объект :idea:
контуры определить можно так
http://www.aimatrix.nm.ru/compression/PBCAlgorithm2.htm
а распознавать так
http://www.aimatrix.nm.ru/aimatrix/Recognition3D.htm
ну а дальность и сами знаете как :D

=DeaD= » 09 мар 2006, 20:56

lebaon писал(а):контуры определить можно так
http://www.aimatrix.nm.ru/compression/PBCAlgorithm2.htm
а распознавать так
http://www.aimatrix.nm.ru/aimatrix/Recognition3D.htm

Контуры определять - это и в OpenCV есть.

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

Сергей Мальцев » 09 мар 2006, 21:19

=DeaD= писал(а):Контуры определять - это и в OpenCV есть.

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


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

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

lebaon » 09 мар 2006, 21:20

ну нейросеть тогда, самообучающуюся 8) , я ж говорю,
незнакомый(нераспознанный) добавляем в базу и все,
база  будет пополнятся сама :!:  :D
а про опенсв -- ну надо посмотреть, что лучше работать будет,
просто опенсв в плиску не запихнешь :cry:

=DeaD= » 10 мар 2006, 09:54

lebaon писал(а):контуры определить можно так
http://www.aimatrix.nm.ru/compression/PBCAlgorithm2.htm


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


В поисках оригинального метода прочитал статью. Смеялся. Зачем в ней было писать столько много про микродвижения глаза, которые в конечном счете превратились в первую производную по изображению? :)

По части выделения контуров - не увидел ни одной новой мысли.

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

PS: Хотя с точки зрения кодирования есть конечно фишка, но учитывая неиспользовании информации с соседних пикселей - шансов на победу у этого алгоритма мало.

Сергей Мальцев » 10 мар 2006, 12:06

=DeaD= писал(а):
lebaon писал(а):контуры определить можно так
http://www.aimatrix.nm.ru/compression/PBCAlgorithm2.htm


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


В поисках оригинального метода прочитал статью. Смеялся. Зачем в ней было писать столько много про микродвижения глаза, которые в конечном счете превратились в первую производную по изображению? :)

По части выделения контуров - не увидел ни одной новой мысли.

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

PS: Хотя с точки зрения кодирования есть конечно фишка, но учитывая неиспользовании информации с соседних пикселей - шансов на победу у этого алгоритма мало.


:) Да уж и в правду производная, хорошо что заметил :) Так что пока этот алгоритм в сторону.

lebaon » 10 мар 2006, 16:59

ладно, проехали :)
а какой алгоритм в опенсв :?:

=DeaD= » 10 мар 2006, 18:12

lebaon писал(а):а какой алгоритм в опенсв :?:

Классика "Canny" точно есть, остальное не искал.

Вот инфа по нему:
http://homepages.inf.ed.ac.uk/rbf/HIPR2/canny.htm
http://en.wikipedia.org/wiki/Canny

lebaon » 10 мар 2006, 18:28

кстати, я вот подумал, а что если их скрестить :?:
всмысле то что я предлагал :?:
сначала по производной выделяем пиксели контуров,
затем определяем ЗАМКНУТЫЕ контуры,
ну а затем распознавание по пропорциям,
все шумы при этом отбрасываются :?:

=DeaD= » 10 мар 2006, 20:31

lebaon писал(а):ну а затем распознавание по пропорциям


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

lebaon » 10 мар 2006, 21:16

маяк это любой неповижный объект,
робот запоминает расположение объектов вокруг,
если расположение объекта изменилось,
то для него изменяется уровень подвижности,
например
0- стабильный объект,не перемещается длительное время
10- кот :D ,перемещается все время
как маяк используются объекты с малым уровнем подвижности
признаюсь, прочитал про это тут :oops:

=DeaD= » 10 мар 2006, 22:06

lebaon писал(а):маяк это любой неповижный объект

На таком уровне вообще проблем нет, ближе к реализации пожалуйста.

lebaon » 11 мар 2006, 18:28

так и написано, робот запоминает, где и что стоит,
если проезжая тут через пять минут он видит,
что что то сдвинулось, то для этого объекта он повышает уровень
подвижности и уже меньше учитывает его положение,
если он видит, что объект двигается сам,
то ему сразу повышается уровень подвижности до максимума :idea:


Rambler\'s Top100 Mail.ru counter