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

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

Направления AI-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1414
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    980
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1240
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    696
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    982

AR-приложение должно понять окружение за миллисекунды: где пол, где стены, что за предметы в кадре, как падает свет. Без этого виртуальный объект «плавает» в воздухе, не отбрасывает тени и выглядит неестественно. Термин Scene Understanding объединяет фундамент, на котором строится весь AR-опыт. Мы с этим работаем уже 10+ лет и видели проекты, где occlusion «сломал» UX — дорогостоящие ошибки на этапе прототипирования. Финансовые риски при некорректном scene understanding могут составлять до 60% бюджета AR-проекта.

Что такое scene understanding и почему это важно?

Scene understanding объединяет несколько CV-задач: детекцию плоскостей, оценку глубины, семантическую сегментацию и оценку освещения. Каждая из них критична для реалистичного AR. Например, без корректной глубины occlusion — виртуальный объект не сможет прятаться за реальными предметами. Сравните: LiDAR даёт глубину с точностью ±1–2 см, а monocular depth — ±5–10 см, что в 5 раз хуже на близких дистанциях. Поэтому для сценариев с мелкими объектами обязателен 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 недель. Полное semantic понимание сцены с кастомными категориями: 10–16 недель. Стоимость рассчитывается индивидуально — свяжитесь с нами, чтобы обсудить ваш проект. Получите консультацию: оценим за один день. Для детальной оценки вашего сценария свяжитесь с нашими инженерами.