Моя цель для автономного робота, ориентированного на стену, с использованием камеры. Камера закреплена на роботе и обращена вниз, чтобы видеть стены и робот сверху. Использование преобразования Hough в роботизированной навигации
Подход, который я взял, что казалось самым простым из моего опыта было
- Threshold изображение, чтобы извлечь красные стены
- Выполните Канни край обнаружения
- Используйте преобразование поджилки обнаружить сильные линии от краев
, как показано ниже, после настройки параметров
Я хочу, чтобы робот двигался вперед и избегал «удара» красных стен. Проблема заключается в том, что на границе каждой стены на границе каждой стены обнаруживается несколько линий. Одна из моих идей заключалась в том, чтобы выполнить кластеризацию k-значений для группировки линий и поиска центров (средств) каждого кластера, но я не знаю количества ребер стены (и, следовательно, количество кластеров для ввода в алгоритм k-средних) Я буду в любое время в навигации по лабиринту (стены впереди, сзади, многократные перекрестки и т. Д.).
Любая помощь в поиске хорошего способа иметь постоянное расположение стены для сравнения местоположения робота (которое всегда фиксируется в каждом кадре изображения) в любое время при навигации по лабиринту будет с благодарностью. Я также открыт для любого другого подхода к этой проблеме.
Очевидный подход кажется мне просто отбросить любые найденные строки, если они близки по направлению и положению к более сильной линии, то есть пройти список строк и отбросить все, что похоже на более раннюю строку. Не нужно кластеризовать их, тем более, что эти строки будут иметь разные уровни достоверности, и вы не знаете их, только их относительный порядок, если вы используете преобразование opencv hough. – HugoRune