Внедрение VPS для точного AR на iOS и Android

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Внедрение VPS для точного AR на iOS и Android
Сложный
от 2 недель до 3 месяцев
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

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

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    860
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    747
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1163
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1036
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    970
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    564

GPS даёт 3–5 метров точности. Для AR-опыта в городской среде этого катастрофически мало: накладывать навигационные стрелки поверх конкретного входа в здание или показывать AR-аннотацию над нужной скульптурой в музейном дворе при 5-метровой погрешности невозможно. Мы реализуем Visual Positioning System (VPS) для мобильных AR-приложений под ключ — от сканирования помещения до интеграции SDK. С помощью VPS пользователь наводит камеру на окружающее пространство, алгоритм матчит кадр против предзаписанной визуальной карты и возвращает позицию с точностью до 10–30 сантиметров. Оценим ваш проект и подберём оптимальное решение.

Как VPS определяет положение?

Два этапа: mapping (оффлайн) и localization (онлайн, в реальном времени).

Этап Время выполнения Ресурсы
Mapping От 30 минут до 2 часов Телефон с камерой, сервер SfM
Localization 200–500 мс Сервер или устройство

Mapping. Помещение или уличная зона сканируется: оператор с телефоном или специализированным rig проходит по всей области, записывая видео. Из видео извлекаются ключевые кадры, запускается Structure from Motion (SfM) алгоритм — строится sparse point cloud и набор 6DOF поз камеры. Дескрипторы feature points (ORB, SuperPoint + SuperGlue для лучшей точности) индексируются в базе данных для быстрого поиска.

Localization. Телефон снимает кадр, отправляет на сервер (или обрабатывает локально на мощных устройствах). Алгоритм image retrieval находит ближайшие ключевые кадры из базы → PnP (Perspective-n-Point) вычисляет позу камеры → возвращает 6DOF transform. Всё это за 200–500 мс при серверной обработке. Для offline-localization на устройстве используется запись фреймов в локальную базу данных, что повышает приватность.

Как построить визуальную карту для VPS?

  1. Съёмка помещения с перекрытием кадров не менее 60%, равномерным освещением и полным покрытием маршрутов пользователей.
  2. Загрузка видео на сервер Immersal или другого провайдера.
  3. SfM обработка: 30–120 минут, после чего получаем mapId.
  4. Проверка точности: тестовая локализация в контрольных точках.

Если интерьер меняется — пересканируем изменённые зоны и мерджим с существующей картой через консоль провайдера. Мы гарантируем, что финальная карта обеспечит стабильную локализацию даже при частичном перекрытии камеры.

Какой SDK выбрать для VPS?

Провайдер Покрытие Offline Точность Применение
Google ARCore Geospatial API Города со Street View Нет ~10–30 см Городские AR-опыты
Immersal SDK Кастомные карты Да (device) ~2–5 см Закрытые пространства
Niantic Lightship VPS Lightship wayspots Нет ~10–20 см Мобильные AR-игры
Apple ARKit + GPS Outdoor, iOS only Частично ~1–3 м Быстрый прототип
Microsoft Azure Spatial Anchors Кастомные Нет ~1–5 см Интеграция с Azure

Для кастомных закрытых пространств (музей, офис, склад) лучше всего подходит Immersal — он обеспечивает точность в 10 раз выше, чем Apple ARKit + GPS в помещениях. Для городских AR-опытов на iOS и Android — ARCore Geospatial API или Niantic VPS. Azure Spatial Anchors хороши при интеграции с Azure-инфраструктурой заказчика.

Как интегрировать Immersal в нативное приложение?

Immersal предоставляет REST API для cloud localization и Unity SDK — последний нам неинтересен, работаем нативно.

iOS: HTTP запрос к https://api.immersal.com/localize с JPEG кадром и camera intrinsics → JSON-ответ с позой в системе координат карты → конвертируем в ARKit world space через матричное преобразование.

struct LocalizeRequest: Encodable {
    let token: String
    let fx, fy, ox, oy: Double  // camera intrinsics из ARCamera.intrinsics
    let image: String            // base64 JPEG
}
// Получаем mapToWorld matrix, применяем к ARSession.currentFrame

Android: аналогично через retrofit2 + moshi, camera intrinsics из CameraCharacteristics.

Локализацию запускаем не на каждом кадре (это 200 мс latency) — триггер при смене позиции на 1+ метр или при потере ARCore tracking.

Что входит в работу

  • Техническое задание с выбором провайдера и архитектуры.
  • Сканирование и построение визуальной карты для закрытых помещений.
  • Интеграция SDK в нативное iOS и/или Android приложение.
  • Документация API и инструкция по обновлению карты.
  • Тестирование точности и стабильности на целевых устройствах.
  • Поддержка после запуска в течение 1 месяца.

Сроки и стоимость

Интеграция ARCore Geospatial для городского AR-опыта: от 2 до 4 недель. Кастомная VPS с Immersal для закрытого помещения включая сканирование: от 4 до 8 недель. Собственный VPS-сервер на базе HLoc (hloc + SuperPoint + SuperGlue + Colmap) без внешних зависимостей: 3–5 месяцев. Стоимость рассчитывается индивидуально. Получите консультацию — мы подготовим предварительный расчёт. Закажите интеграцию VPS в ваше приложение.

Мы разрабатываем AR-решения для ритейла, музеев и промышленности. Свяжитесь с нами — обсудим вашу задачу и подберём оптимальное решение VPS.

Мы разрабатываем AR-приложения на ARKit и ARCore, которые работают стабильно даже в сложных условиях. Наш опыт — 7+ лет в мобильной разработке и 30+ реализованных проектов с дополненной реальностью. Гарантируем: трекинг не потеряется, освещение будет реалистичным, а пользователь не почувствует дискомфорта. Сертифицированные разработчики Apple и Google.

Почему трекинг теряется и как это исправить?

ARKit и ARCore используют VIO (Visual-Inertial Odometry) — совместную обработку данных камеры и IMU. Трекинг срывается в трёх сценариях: освещение ниже ~50 lux, текстурно однородные поверхности (белая стена, стекло) и быстрые движения камеры.

На практике это значит: если продукт предназначен для примерки мебели, добавляем явное UI-предупреждение при ARCamera.TrackingState.limited(.insufficientFeatures). Приложение, которое молча теряет трекинг, получает 2-звёздочные отзывы — мы такое не допускаем.

Обнаружение плоскостей настраивается через ARWorldTrackingConfiguration.planeDetection = [.horizontal, .vertical]. Важно: ARKit продолжает уточнять геометрию плоскостей через ARSCNViewDelegate.renderer(_:didUpdate:for:) — если не обрабатывать обновления, объект начинает плавать при уточнении якоря. Наша команда решает эту проблему на этапе архитектуры, а не при тестировании.

AR Foundation: кросс-платформа с нюансами

Unity AR Foundation — слой абстракции поверх ARKit и ARCore. Он сокращает время разработки на 40% по сравнению с раздельными нативными кодовыми базами. Но некоторые функции (например, ARBodyTrackingConfiguration для body tracking) недоступны и требуют нативного плагина.

Для React Native и Flutter прямой AR Foundation отсутствует. Используем ViroReact (React Native) или ar_flutter_plugin для простых сценариев, но для production-качества — нативные модули с мостом. Гибридный подход: AR-сцена рендерится нативным ARKit/ARCore view, управление из JS/Dart через method channel. Входит в нашу стандартную поставку.

Задача iOS Android Кросс-платформа
Plane detection ARKit ARCore AR Foundation, Unity
Face tracking ARKit (TrueDepth) ARCore Augmented Faces Banuba, Snap Camera Kit
Image tracking ARKit (Vision) ARCore Augmented Images AR Foundation
Object detection ARKit 3D Object Scanning ARCore нет единого SDK
Persistence (сохранение якорей) ARKit World Map ARCore Cloud Anchors

Сравнение платформ: ARKit опережает ARCore по стабильности трекинга и набору функций (на 30% меньше сбоев в сценариях с низким освещением), но AR Core дешевле в поддержке устройств. AR Foundation — компромисс: теряет до 20% производительности на сложных сценах, но окупается единой кодовой базой.

Try-on: примерка товаров через AR

Примерка очков, украшений, косметики — отдельный класс задач. Здесь нужен face tracking, а не plane detection.

ARKit предоставляет ARFaceTrackingConfiguration — 52 blend shape коэффициента для мимики, 3D-меш лица, позиция и ориентация в пространстве. Работает только на устройствах с TrueDepth-камерой (iPhone с Face ID).

Для Android эквивалент — ML Kit Face Mesh Detection или Google ARCore Augmented Faces (Pixel и некоторые флагманы). Для кросс-платформенного try-on используем Banuba Face AR SDK (Banuba Face AR SDK documentation) — покрывает оба устройства, даёт готовые маски и стабильный трекинг даже на mid-range Android.

Качество try-on критически зависит от 3D-моделей товаров. Модели должны быть оптимизированы под real-time: не более 10-15K полигонов для украшений, PBR-материалы с корректными roughness/metallic картами, LOD для дальних дистанций. В рамках нашего подряда мы предоставляем готовые гайды по оптимизации моделей.

Как добиться реалистичного освещения в AR?

ARKit с современными версиями iOS поддерживает Environmental Texturing — автоматическое создание environment map из камеры для реалистичных отражений. Включается через ARWorldTrackingConfiguration.environmentTexturing = .automatic. Без этого металлические и стеклянные материалы выглядят пластиково.

ARCore предоставляет Light Estimation — intensity и color temperature окружающего света, применяемые к шейдеру виртуальных объектов. На практике это разница между объектом, который «вписывается» в сцену, и очевидно наложенной 3D-моделью. Мы гарантируем, что финальное изображение не выдаёт виртуальности.

Что входит в работу

  • Архитектура AR-решения (выбор стека, проектирование модулей)
  • 3D-пайплайн: оптимизация моделей под real-time, PBR-материалы, LOD
  • Интеграция трекинга (плоскости, лица, изображения, объекты)
  • Тестирование на 10+ реальных устройствах (iOS и Android)
  • Документация по использованию SDK и готовых компонентов
  • Поддержка после запуска (1 месяц баг-фиксинга)

Сроки и оценка

Простая AR-сцена с размещением одной 3D-модели на плоскости — 1–2 недели. Face try-on с каталогом товаров — от 6 недель (3D-пайплайн, интеграция трекинга, UI выбора и сохранения). Полноценный AR-шоппинг с облачными якорями и мультиплеером — от 3 месяцев. Оценим проект за 1 день — пишите, обсудим вашу AR-идею.