Найти в Дзене
186 подписчиков

🔍 Что такое ArUco-маркеры?


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

Технически, каждый ArUco-маркер представляет собой уникальную двоичную матрицу определенного размера, например, 4x4, 5x5 и т.д. Эти размеры определяют количество бит информации, содержащейся в маркере, что влияет на количество уникальных идентификаторов и устойчивость к шуму. Благодаря своей уникальной структуре и ориентации, ArUco-маркеры позволяют не только идентифицировать объект, но и точно определить его положение и ориентацию относительно камеры.

📚 Необходимые библиотеки

Для работы с ArUco-маркерами в Python необходимо установить следующие библиотеки:

opencv-contrib-python: Расширенная версия OpenCV, включающая дополнительные модули, такие как cv2.aruco, необходимый для работы с ArUco-маркерами. Стандартный пакет opencv-python не содержит этих модулей.
pip install opencv-contrib-python

fpdf: Библиотека для создания PDF-файлов, используемая при генерации маркеров для печати, при помощи прилагаемого скрипта вы сможете быстро сгенерировать ArUco маркеры нужного размера и распечатать их.

pip install fpdf
👐 Репозиторий с кодом: GitHub - https://github.com/stepanburmistrov/aruco_create_and_detect

🔧 Обнаружение маркеров

В файле Aruco_detect.py представлен пример функции, которая выполняет обнаружение ArUco-маркеров на изображении. Основные шаги функции:

Загрузка и предварительная обработка изображения: Изображение конвертируется в градации серого для улучшения производительности алгоритма обнаружения.

Настройка параметров обнаружения: Используется конкретный словарь маркеров (например, DICT_5X5_1000) и параметры обнаружения из cv2.aruco.DetectorParameters_create().

Обнаружение маркеров: Функция aruco.detectMarkers() ищет маркеры на изображении и возвращает координаты их углов и идентификаторы.

Отображение результатов: Обнаруженные маркеры визуализируются с помощью aruco.drawDetectedMarkers(), позволяя проверить корректность работы алгоритма.

🔧 Создание маркеров

Файл Aruco_PDF.py содержит код для генерации и сохранения ArUco-маркеров в виде изображений и подготовки PDF-документа для печати. Основные возможности:

Генерация индивидуальных маркеров: Используя функцию aruco.drawMarker(), можно создавать маркеры с заданным идентификатором и размером.

Сохранение маркеров: Сгенерированные маркеры сохраняются в формате JPG для последующего использования.

Создание PDF для печати: С помощью библиотеки fpdf маркеры размещаются на странице формата A4 с указанными размерами, что упрощает процесс печати и подготовки к использованию.

📢 Скоро в курсе по компьютерному зрению!

Рад сообщить, что в ближайшее время в курсе по компьютерному зрению выйдет новый модуль, посвященный работе с ArUco-маркерами.
В этом модуле вы узнаете:
Структура, принципы работы и математический аппарат, лежащий в основе их обнаружения и декодирования.
Реализация проектов с использованием ArUco-маркеров, включая управление роботами, дополненную реальность и трекинг объектов.


Не упустите возможность расширить свои знания и навыки в области компьютерного зрения! Следите за обновлениями и присоединяйтесь к нашему курсу.

✨ Успехов в ваших проектах с ArUco-маркерами!
2 минуты
108 читали