В настоящее время я отчаянно пытаюсь обнаружить объект (робота) на основе 2D-лазерного сканирования (другого робота). На следующих двух изображениях синяя стрелка соответствует положению лазерного сканера и указывает на объект, который я хотел бы обнаружить.
Поскольку это в основном 2D-изображение, мой первый подход заключался в поиске некоторых реализаций OpenCV, таких как HoughLinesP
или LSDDetector
, чтобы обнаружить линии. К сожалению, поскольку OpenCV больше фокусируется на «реальных» изображениях с «реальными» линиями, этот подход не работает с облаками точек, насколько я правильно понял. Еще одна известная библиотека - это библиотека облаков точек, которая, с другой стороны, больше ориентирована на трехмерные облака точек.
Мой текущий подход состоит в том, чтобы сегментировать лазерные сканирования, а затем использовать некоторую итеративную реализацию C ++ для определения ближайшей точки (ICP), чтобы найти шаблон двумерного облака точек в лазерных сканированиях. Поскольку я не так хорошо знаком с обнаружением объектов и всем этим приятным, я совершенно уверен, что есть более сложные решения ...
Есть ли у вас какие-либо предложения?
Спасибо заранее :)