Поиск препятствий на пути в 2D-изображении - PullRequest
3 голосов
/ 15 мая 2011

Какой подход вы бы порекомендовали для поиска препятствий в 2D-изображении?

Вот некоторые ключевые моменты, которые я придумал до сих пор:

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

Возможно, добавление еще одной камеры и вычисление трехмерного изображения (как это делает Kinect) будет работать, но это не будетбегите так гладко, как мне нужно.

Чтобы проиллюстрировать проблему;Робот может ездить на левой или правой стороне тротуара.На следующем рисунке левая сторона является правильным выбором: enter image description here

1 Ответ

2 голосов
/ 17 мая 2011

Если вы знаете, как выглядит путь, это в значительной степени проблема классификации .Получите кучу изображений пути на разных расстояниях, освещенности и т. Д. И вручную пометьте землю на каждом изображении.Используйте эти помеченные данные для обучения классификатора, который классифицирует каждый пиксель как «дорога» или «не дорога».В зависимости от текстуры дороги это может быть так просто, как классификация значений RGB (или HSV) каждого пикселя или использование обратной проекции гистограммы OpenCv (т.е. cv::CalcBackProjectPatch()).

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


В некоторой степени за пределами вопроса самый простой способ - добавитьдополнительные датчики («бросайте больше оборудования в проблему!») и непосредственно измеряйте трехмерное положение препятствий.В порядке предпочтения:

  1. Microsoft Kinect : дешево, просто и эффективно.Из-за окружающего инфракрасного излучения он работает только в помещении.
  2. Сканирующий лазерный дальномер: Чрезвычайно точный, простой в настройке и работающий снаружи.Также очень дорогой (~ 1200–10 000 долларов США в зависимости от максимального диапазона и частоты дискретизации).
  3. Стереокамера: Не так хорошо, как Kinect, но работает снаружи.Если вы не можете позволить себе готовую стереокамеру (~ $ 1800), вы можете сделать приличную стереокамеру с помощью USB-камер.

Обратите внимание, что профессиональные камеры стереозрения могут быть очень быстрыми с использованием специального оборудования (Stereo On-Chip, STOC).Программная стереосистема также достаточно быстра (10-20 Гц) на современном компьютере.

...