Обнаружение куба с использованием C++ и openCV
В настоящее время я работаю над роботизированным проектом: робот должен захватить куб с помощью камеры Kinect, которая обрабатывает обнаружение куба и вычисляет координаты.
Я новичок в компьютерном зрении. Сначала я работал над статическим изображением квадрата, чтобы получить общее представление. Используя C++ и openCV, мне удалось получить углы (и их координаты x y-пикселя) квадрата, используя сглаживание (удаление шума), обнаружение границ (функция canny), обнаружение линий (преобразование Хафа) и пересечение линий (математический расчет) на упрощенная картинка (равномерный фон).
Регулируя некоторый порог, я могу добиться обнаружения углов, предполагая, что у меня есть только один квадрат и нет линейного элемента на заднем плане.
Теперь мой вопрос: есть ли у вас какие-либо указания / рекомендации / советы / литература по алгоритму распознавания куба?
То, что я нашел до сих пор, включает в себя обнаружение формы в сочетании с обнаружением текстуры и / или последовательностью обучения. Более того, в своих приложениях они часто используют вычисления на GPU/ параллелизацию, которых у меня нет...
Kinect также предоставил камеру глубины, которая дает расстояние пикселя от камеры. Может быть, я могу использовать это, чтобы обойти "сложную" обработку изображений?
Заранее спасибо.
1 ответ
OpenCV 3.0 с contrib включает в себя модуль surface_matching.
Камеры и аналогичные устройства с возможностью ощущения трехмерной структуры становятся все более распространенными. Таким образом, использование информации о глубине и интенсивности для сопоставления трехмерных объектов (или частей) имеет решающее значение для компьютерного зрения. Область применения варьируется от промышленного контроля до руководства повседневными действиями для людей с нарушениями зрения. Задача распознавания и оценки позы на дальних изображениях направлена на выявление и локализацию запрашиваемого трехмерного объекта произвольной формы путем сопоставления его с полученной базой данных.
http://docs.opencv.org/3.0.0/d9/d25/group__surface__matching.html