ArUco-маркеры
ArUco-маркеры — это система синтетических квадратных маркеров, предназначенных для калибровки камер, оценки положения объектов в пространстве (позиционирования) и задач дополненной реальности. Каждый маркер представляет собой чёрно-белое изображение, состоящее из внешней чёрной рамки и внутреннего бинарного кода, который однозначно идентифицирует маркер в наборе. Технология относится к классу флаговых (fiducial) маркерных систем и широко применяется в робототехнике, компьютерном зрении и промышленной автоматизации.
История и происхождение
Система ArUco была разработана в 2014 году исследователями из Университета Кордовы (Испания) в рамках проекта Aplicaciones de la Visión Artificial (ARUCO). Название является аббревиатурой от Augmented Reality University of Cordoba. Первоначально технология создавалась для задач дополненной реальности, где требовалось быстро и точно определять положение камеры относительно заранее известных меток. В отличие от более ранних систем (например, ARToolKit или AprilTags), ArUco отличалась простотой генерации, высокой скоростью детекции и устойчивостью к искажениям перспективы.
С открытием исходного кода (библиотека aruco, позже интегрированная в OpenCV) система получила широкое распространение. В 2015 году ArUco была включена в состав модуля OpenCV contrib (opencv_contrib), что сделало её доступной для массового использования в инженерных и научных проектах.
Устройство и принцип работы
Структура маркера
ArUco-маркер имеет квадратную форму с фиксированным соотношением сторон 1:1. Внешняя чёрная рамка шириной в один бит (пиксель на изображении) служит для быстрого обнаружения границ маркера на изображении. Внутренняя область разделена на сетку, каждая ячейка которой может быть чёрной (0) или белой (1). Размер сетки определяет словарь маркеров — например, сетка 4×4, 5×5, 6×6 или 7×7 бит. Количество бит во внутренней области определяет максимальное количество уникальных идентификаторов.
Детекция и декодирование
Процесс распознавания ArUco-маркера на изображении включает несколько этапов:
- Бинаризация — преобразование цветного или серого изображения в чёрно-белое с помощью адаптивного порога.
- Поиск контуров — выделение замкнутых контуров, которые могут соответствовать квадратам.
- Фильтрация — отбрасывание контуров, не являющихся четырёхугольниками (например, треугольников или многоугольников с числом вершин, отличным от 4).
- Перспективное преобразование — коррекция искажений перспективы для приведения маркера к квадратному виду.
- Декодирование — считывание битовой матрицы внутренней области и проверка контрольной суммы (кода Хэмминга или циклического избыточного кода). Если код корректен, маркер считается найденным, и его идентификатор (ID) извлекается.
Позиционирование
Зная реальные физические размеры маркера (например, 10 см на 10 см) и его проекцию на изображении, система может вычислить положение камеры относительно маркера в трёхмерном пространстве (6 степеней свободы: три координаты и три угла поворота). Для этого используется метод решения задачи Perspective-n-Point (PnP) на основе соответствия четырёх углов маркера их проекциям.
Словари маркеров
ArUco использует предопределённые словари — наборы маркеров с заданными размерами сетки и минимальным расстоянием Хэмминга между кодами. Это обеспечивает устойчивость к ошибкам чтения (например, при частичном перекрытии или засветке). Наиболее распространённые словари:
- DICT_4X4_50 — 50 маркеров, сетка 4×4 бит.
- DICT_5X5_100 — 100 маркеров, сетка 5×5 бит.
- DICT_6X6_250 — 250 маркеров, сетка 6×6 бит.
- DICT_7X7_1000 — 1000 маркеров, сетка 7×7 бит.
- DICT_ARUCO_ORIGINAL — 1024 маркера, сетка 5×5 бит (оригинальный словарь из проекта ARUCO).
Количество маркеров в словаре ограничено ёмкостью кода: для сетки 4×4 — 2^16 = 65536 возможных комбинаций, но словарь включает только те, которые удовлетворяют критериям минимального расстояния Хэмминга (обычно 3 или 4 бита). Чем больше маркеров в словаре, тем выше вероятность ошибки при декодировании, поэтому для большинства задач достаточно 50–250 маркеров.
Применение
Калибровка камер
ArUco-маркеры используются для калибровки камер (определения внутренних параметров: фокусного расстояния, дисторсии, координат главной точки). Для этого на плоскую поверхность (например, лист бумаги) наклеивается сетка из нескольких маркеров с известным взаимным расположением. Система делает несколько снимков с разных ракурсов, находит маркеры и вычисляет параметры камеры. Этот метод проще, чем использование классической шахматной доски, так как не требует точного знания угловых точек.
Позиционирование в робототехнике
В мобильной робототехнике ArUco-маркеры размещаются на стенах, потолках или полу для навигации. Робот, оснащённый камерой, определяет своё положение относительно маркеров и корректирует траекторию движения. Например, в беспилотных летательных аппаратах (дронах) маркеры используются для автоматической посадки на платформу.
Дополненная реальность
В дополненной реальности ArUco-маркеры служат триггерами для отображения 3D-моделей или текстовой информации. При обнаружении маркера камера вычисляет его положение, и виртуальный объект рендерится поверх реального изображения. Этот подход применяется в образовательных приложениях, музеях и промышленных инструкциях.
Промышленная автоматизация
На производственных линиях ArUco-маркеры наносятся на детали, упаковки или транспортные тележки. Системы технического зрения считывают идентификаторы и отслеживают перемещение объектов, что позволяет автоматизировать сортировку, инвентаризацию и контроль качества.
Научные исследования
В лабораториях ArUco-маркеры используются для отслеживания движений объектов в экспериментах (например, в биомеханике или физике). Они также применяются для калибровки стереосистем и 3D-сканеров.
Преимущества и недостатки
Преимущества
- Простота генерации — маркеры можно распечатать на обычном принтере.
- Высокая скорость детекции — алгоритмы работают в реальном времени (до 30–60 кадров в секунду на современных процессорах).
- Устойчивость к искажениям — система корректно распознаёт маркеры под углами до 45–60 градусов.
- Открытость — исходный код доступен под лицензией BSD, что позволяет свободно использовать технологию в коммерческих и научных проектах.
- Масштабируемость — возможность создавать собственные словари для специфических задач.
Недостатки
- Чувствительность к освещению — при сильных бликах или глубоких тенях детекция может быть ненадёжной.
- Необходимость чёткого изображения — размытие, низкое разрешение или засветка камеры снижают точность.
- Ограниченная дальность — размер маркера должен быть достаточным для распознавания на заданном расстоянии (например, маркер 10×10 см уверенно читается с 5–7 метров при камере 1080p).
- Одноразовость кода — один маркер соответствует одному идентификатору; для изменения информации требуется замена физического маркера.
Сравнение с другими маркерными системами
| Система | Тип кодирования | Максимальное количество маркеров | Устойчивость к ошибкам | Скорость детекции |
|---|---|---|---|---|
| ArUco | Бинарный код с контрольной суммой | 50–1024 (в зависимости от словаря) | Высокая (код Хэмминга) | Высокая |
| AprilTag | Бинарный код с квадратичным кодом | 36–587 (в зависимости от семейства) | Очень высокая (код Рида-Соломона) | Средняя |
| ARToolKit | Бинарный код с шаблоном | 256 | Средняя | Средняя |
| QR-код | Многоуровневый код (Reed-Solomon) | 1 (один код) | Очень высокая | Низкая (требуется декодирование) |
ArUco занимает промежуточное положение: проще AprilTag, но быстрее QR-кода, что делает его оптимальным для задач реального времени.
Интересные факты
- Название «ArUco» происходит от испанского словосочетания «Aplicaciones de la Realidad Aumentada» (приложения дополненной реальности) и университета Кордовы.
- В 2021 году библиотека ArUco была включена в состав OpenCV 4.5.1, что упростило её использование в Python и C++.
- Маркеры ArUco могут быть цветными — внутренняя область может содержать оттенки серого или цветные пиксели, но это снижает устойчивость к освещению.
- Существуют модификации ArUco для работы с камерами с широкоугольными объективами (рыбий глаз), где требуется коррекция дисторсии.
Источники
- Garrido-Jurado, S., Muñoz-Salinas, R., Madrid-Cuevas, F. J., & Marín-Jiménez, M. J. (2014). Automatic generation and detection of highly reliable fiducial markers under occlusion. Pattern Recognition, 47(6), 2280–2292.
- OpenCV Documentation: Detection of ArUco Markers (docs.opencv.org).
- Romero-Ramirez, F. J., Muñoz-Salinas, R., & Medina-Carnicer, R. (2018). Speeded up detection of squared fiducial markers. Image and Vision Computing, 76, 38–47.
- Документация библиотеки OpenCV contrib (модуль aruco).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →