Реалізація розпізнавання та трекінгу об'єктів (Object Detection) в AR-додатку
Object tracking — це AR без маркерів. Система розпізнає реальний фізичний об'єкт за його 3D-формою та утримує AR-контент прив'язаним до нього при русі камери та самого об'єкта. Це складніше за image tracking, вимагливіше до hardware та значно обмеженіше за каталог — але саме це потрібно, коли наклеїти маркер неможливо або небажано.
ARKit Object Detection: сканування та розпізнавання
Pipeline ARKit складається з двох фаз.
Фаза 1: Сканування. ARObjectScanningConfiguration — спеціальна конфігурація лише для Xcode-утиліти сканування (Reality Composer або демо-додаток Apple). Користувач обходить об'єкт з усіх сторін, ARKit будує point cloud. Результат — файл .arobject (~1–50 МБ залежно від деталізації).
Фаза 2: Детектування. ARWorldTrackingConfiguration з detectionObjects = [arObject]. При детектуванні — renderer(_:didAdd:for:) з ARObjectAnchor. Anchor містить transform об'єкта в світовому просторі.
Критичне обмеження: ARKit Object Detection працює лише на пристроях A12+ і вимагає достатньої текстури об'єкта. Гладкі однотонні об'єкти (білий пластиковий корпус, скляна пляшка) не сканюються надійно. Features points потребують текстурних деталей, логотипів, написів.
Що добре трекується, а що ні
| Хороші кандидати | Погані кандидати |
|---|---|
| Іграшки з рисунками/деталями | Однотонні пластикові корпуси |
| Побутова техніка з панелями | Скляні/прозорі об'єкти |
| Промислове обладнання з маркуванням | Металеві полісовані поверхні |
| Коробки з упаковкою | М'які деформовані об'єкти |
| Автомобільні деталі | Об'єкти без постійної форми |
Скляні та дзеркальні поверхні принципово не підходять для visual feature tracking. Для них — лише маркери або LiDAR mesh matching.
Vuforia Model Targets: альтернативний підхід
ARKit Object Detection вимагає фізичного сканування об'єкта. Vuforia Model Targets — розпізнавання за CAD-моделлю (STEP, OBJ, FBX) без фізичного сканування. Це принципова різниця для промислового застосування, де CAD-дані вже є.
Vuforia Model Target Generator (desktop додаток) компілює базу даних з CAD-моделі. SDK на iOS/Android детектує об'єкт за силуетом та feature map, згенерованою з CAD. Точність позиціонування — до 5–10 мм при хорошому освітленні.
Ліцензія Vuforia Engine від $840/рік. Model Targets доступні в тарифі Engine+.
Object Tracking (рухомий об'єкт)
ARKit Object Detection фіксує статичний об'єкт. Трекінг рухомого об'єкта — принципово інша задача.
ARKit 2021+ підтримує ARTrackedRaycast для динамічної прив'язки, але для незалежно рухомого об'єкта (деталь конвеєра, рухаючийся робот) потрібен кастомний підхід:
- MediaPipe Object Detection (COCO SSD, EfficientDet) — bounding box об'єкта в 2D
- Depth estimation (LiDAR) → проектуємо 2D bounding box у 3D для отримання позиції
- AR-контент слідує за об'єктом з інтерполяцією (lerp) для плавності
Це значно складніше та менш точно, ніж Static Object Detection. Точність трекінгу деградує при швидкості руху > 0.5 м/с.
Практичний кейс
Додаток для сервісного центру: технік наводить на двигун автомобіля — ARKit розпізнає конкретну модель двигуна за .arobject, зверху з'являється схема з підписами до вузлів. Анотації прив'язані до конкретних точок у coordinate space об'єкта.
Складність: двигуни у реальному сервісі брудні, частково перекриті патрубками, з нагаром. Чистий еталонний .arobject не розпізнає брудний двигун. Рішення: сканувати кілька варіантів (чистий / з помірним забрудненням) і додавати всі до detectionObjects. ARKit вибере найкраще збіг.
Сроки
Базове object detection з одним об'єктом + статичні анотації — 1–2 тижні (включаючи сканування). Кілька об'єктів, анімовані анотації, інтеграція з базою даних — 3–5 тижнів. Vuforia Model Targets замість ARKit scan — аналогічні сроки плюс ліцензія. Вартість розраховується індивідуально.







