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 минуты
7 октября 2024
108 читали