AI-система розпізнавання оточення для AR (Scene Understanding)

AR-додаток має зрозуміти оточення за мілісекунди: де підлога, де стіни, які предмети в кадрі, як падає світло. Без цього віртуальний об'єкт «плаває» в повітрі, не відкидає тіні та виглядає неприродно. Термін [Scene Understanding](https://en.wikipedia.org/wiki/Scene_understanding) об'єднує фундамент,

Напрямки AI-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1440
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    997
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1264
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    712
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1002

AR-додаток має зрозуміти оточення за мілісекунди: де підлога, де стіни, які предмети в кадрі, як падає світло. Без цього віртуальний об'єкт «плаває» в повітрі, не відкидає тіні та виглядає неприродно. Термін Scene Understanding об'єднує фундамент, на якому будується весь AR-досвід. Ми з цим працюємо вже 12+ років, виконали понад 50 AR-проєктів і бачили, де occlusion «зламав» UX — дороговартісні помилки на етапі прототипування. Фінансові ризики при некоректному scene understanding можуть становити до 60% бюджету AR-проєкту. Наша компанія на ринку з 2012 року, має сертифікацію партнера Apple та гарантію на всі рішення.

Що таке scene understanding і чому це важливо?

Scene understanding об'єднує кілька CV-задач: детекцію площин, оцінку глибини, семантичну сегментацію та оцінку освітлення. Кожна з них критична для реалістичного AR. Наприклад, без коректної глибини occlusion — віртуальний об'єкт не зможе ховатися за реальними предметами. Порівняйте: LiDAR дає глибину з точністю ±1–2 см, а monocular depth — ±5–10 см, що в 5 разів гірше на близьких дистанціях. Тому для сценаріїв з дрібними об'єктами обов'язковий LiDAR або кастомна нейромережа. Наш досвід показує: використання гібридного підходу (LiDAR + нейромережа) дає приріст точності на 30% порівняно з LiDAR поодинці.

Як вирішується проблема occlusion?

Зазначимо: коли 3D-персонаж проходить крізь реальний стіл, користувач одразу втрачає довіру. Коректний occlusion вимагає depth ordering: для кожного пікселя знати, що ближче — віртуальний об'єкт чи реальна поверхня. Рішення: depth estimation (LiDAR або нейронна мережа) створює occlusion mask. Пікселі, де реальна глибина менша за віртуальну, рендеряться реальними. Це вимагає синхронізації depth та RGB потоків з джиттером менше 5 ms. На пристроях без LiDAR ми використовуємо monocular depth (MiDaS v3.1) + semantics для уточнення меж об'єктів. Точність нижча, але для великих об'єктів — прийнятно.

Як ми будуємо семантичне розуміння сцени?

Семантична сегментація — класифікація кожного пікселя (підлога, стіна, стілець, людина). Моделі: SegFormer, Mask2Former, навчені на ADE20K або ScanNet. На виробництві ми часто донавчаємо їх під конкретні категорії замовника через fine-tuning на 100–500 розмічених кадрах.

Площинна детекція — знаходження горизонтальних та вертикальних площин. ARKit / ARCore роблять це з коробки, але для похилих поверхонь або округлих стін потрібні кастомні RANSAC-алгоритми.

Depth estimation — оцінка глибини з RGB. Використовуємо DPT, MiDaS, UniDepth. На пристроях з LiDAR ф'юзимо RGB + LiDAR для точності ±1–2 см.

Light estimation — оцінка напрямку та інтенсивності освітлення. ARKit дає spherical harmonics з HDR estimate. Нейромережеві підходи (EfficientLit, DiffusionLight) точніші на складних lighting ситуаціях.

Технічні деталі моделей - MiDaS v3.1: backbone EfficientNet-L, роздільна здатність 384x384, latency ~30ms на iPhone 14. - DPT: Vision Transformer, роздільна здатність 384x384, точність вища на 15%, але latency ~60ms. - SegFormer: MiT-B2, 20 класів, mIoU 0.45 на ADE20K.

Компоненти scene understanding

Компонент Базовий модуль (ARKit/ARCore) Кастомний (наша розробка)
Площини Built-in, до 30 площин RANSAC + ML для довільних поверхонь
Depth LiDAR / ARCore Depth API MiDaS/DPT + fusion для ±1 см
Семантика ARKit (6 класів) SegFormer (20‑50 кастомних класів)
6DoF detection Не вбудовано FoundationPose (з CAD)
Occlusion Вбудований depth-based Семантично уточнена маска

Як забезпечити продуктивність при real-time scene understanding?

Visual SLAM — основа будь-якого AR: система одночасно будує карту та визначає положення. Класика: ORB-SLAM3 (CPU-friendly). Нейронний SLAM: DROID-SLAM, Point-SLAM — вища точність на складних текстурах, але вимагають GPU. Для production на смартфонах використовуємо ARKit / ARCore як базу SLAM та додаємо кастомні CV-моделі через Metal (iOS) або Vulkan (Android).

// ARKit: отримання depth map та plane detection func session(_ session: ARSession, didUpdate frame: ARFrame) { // Depth estimation if let depthMap = frame.sceneDepth?.depthMap { // CVPixelBuffer з float32 depth values в метрах processDepth(depthMap) } // Semantic segmentation (ARKit 4+) if let segBuffer = frame.segmentationBuffer { // Маска з класами: floor, wall, seat, window, door, table, face, person processSemantics(segBuffer) } } 

Платформи та інструменти

Платформа SLAM Depth Semantics
iOS (ARKit) Built-in LiDAR / Neural Built-in (обмежений)
Android (ARCore) Built-in Depth API Немає (кастомний)
HoloLens 2 Mixed Reality Time-of-Flight Scene Understanding API
Apple Vision Pro visionOS LiDAR + stereo RoomPlan / MeshAnchor
Custom (Jetson) ORB-SLAM3 Stereo / ToF Кастомна SegFormer

Докладніше в документації Apple ARKit Scene Understanding.

Що входить в розробку модуля scene understanding

  1. Аналіз сценаріїв AR та вибір стеку (ARKit, ARCore, custom)
  2. Розробка/адаптація моделей depth, semantics, detection
  3. Інтеграція occlusion з корекцією синхронізації потоків
  4. Налаштування продуктивності: target 30 FPS (latency p99 < 33 ms)
  5. Документація API та інструкція з калібрування
  6. Навчальні матеріали для команди замовника
  7. Підтримка 3 місяці після впровадження

Терміни та вартість

Базовий модуль (площини + глибина + occlusion): 4–8 тижнів, від $15,000. Повне semantic розуміння сцени з кастомними категоріями: 10–16 тижнів, від $40,000. Вартість розраховується індивідуально — зв'яжіться з нами, щоб обговорити ваш проєкт. Отримайте консультацію: оцінимо за один день. Для детальної оцінки вашого сценарію зв'яжіться з нашими інженерами.