roboforum.ru

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

Распознавание лестницы

Распознавание лестницы

Akuma » 18 янв 2012, 22:19

Здравствуйте, уважаемые пользователи! У меня возникла проблема:

Есть робот, конструктивно способный ездить по лестницам, но делает он это пока только с помощью оператора. Хотелось бы, что-бы это происходило автоматически, отсюда вытекает задача обнаружения лестницы. Для этого было решено использовать камеру и библиотеку OpenCV.

Вот мой вариант алгоритма:
1)Получаем кадр с камеры робота.
2)Накладываем на кадр свертку я ядром Щара(Тем самым выделяем горизонтальные линии и избавляемся от вертикальных)
3)Далее, используя преобразования Хафа, находим линии
4)Используя нейронную сеть, по расположению линий находим лестницу

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

Возможно кто-то уже сталкивался с подобными задачами. Подскажите какими альтернативными методами можно это реализовать? Или как избавится от описанных выше проблем, не меняя конструкцию робота?

Re: Распознавание лестницы

Aseris » 19 янв 2012, 01:55

Гусеницы что попадают в камеру можно программно вырезать - зарисовать белым например, или не анализировать их область.
Но с полосатыми обоями при таком примитиве проблемы будут :D

Размытые убрать - методом понижения разрешения, и увеличения контрастности изображения, либо выкидывать размытый кадр, либо принимать решение по серии кадров мажоритарным методом

Re: Распознавание лестницы

elmot » 19 янв 2012, 11:43

А как на счет пары УЗ дальномеров? Или одного, с наведением по вертикали? Если снизу на 20 см ближе чем сверху, значить ступенька пошла?

Re: Распознавание лестницы

Akuma » 19 янв 2012, 11:51

Aseris писал(а):Гусеницы что попадают в камеру можно программно вырезать - зарисовать белым например, или не анализировать их область.
Но с полосатыми обоями при таком примитиве проблемы будут :D

Гусеницы вырезать не могу, положение камеры может изменятся, следовательно и положение гусениц в кадре будет разным.

elmot писал(а):А как на счет пары УЗ дальномеров? Или одного, с наведением по вертикали? Если снизу на 20 см ближе чем сверху, значить ступенька пошла?

Пара УЗ дальномеров это уже изменение конструкции робота, а в моем случае просто нет такой возможности.

Re: Распознавание лестницы

Angel71 » 19 янв 2012, 11:56

Akuma писал(а):2)Накладываем на кадр свертку я ядром Щара(Тем самым выделяем горизонтальные линии и избавляемся от вертикальных)

:oops: а кто такой "Щара"?
зачем вам нейронки в данном случае?
п.с. в природе для растровых изображений алгоритмы векторизации есть.

Re: Распознавание лестницы

Aseris » 19 янв 2012, 12:13

Akuma писал(а):Гусеницы вырезать не могу, положение камеры может изменятся, следовательно и положение гусениц в кадре будет разным.


Тогда распознавайте гусеницы по цвету, или у вас они под цвет лестници?

Можно банально камерой на них не смотреть..., как я понимаю робот не выше 2-х метров... так что посмотреть вверх не, и пройтись по алгоритму "ты ли лестница?" не проблема :D

Плюс ширина гусениц и лестници разная а найти длину линии это по моему задача банальная.

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

Решений море

...Или это какая то игрушка с веб камерой ? :no:

Re: Распознавание лестницы

Angel71 » 19 янв 2012, 12:47

дануна. :) как буд-то камера сама по себе колбасится, а тушка робота сама по себе. есть информация о положении камеры и куда она в данный момент направлена, немного школьной гео/стереометрии и намана.


Rambler\'s Top100 Mail.ru counter