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 на пристрої використовується запис фреймів у локальну базу даних, що підвищує приватність.
Кейс: AR-путівник у музеї. Для одного з музеїв ми інтегрували VPS на базі Immersal. Після сканування трьох залів (загальна площа 400 кв.м) та оптимізації серверної частини, час локалізації зменшився з 800 мс до 250 мс, а точність сягнула 3 см. Це дозволило відвідувачам отримувати анотації над кожним експонатом без затримок.
Як побудувати візуальну карту для VPS?
- Зйомка приміщення з перекриттям кадрів не менше 60%, рівномірним освітленням та повним покриттям маршрутів користувачів.
- Завантаження відео на сервер Immersal або іншого провайдера.
- SfM обробка: 30–120 хвилин, після чого отримуємо mapId.
- Перевірка точності: тестова локалізація в контрольних точках.
Якщо інтер'єр змінюється — перескануємо змінені зони та мерджимо з існуючою картою через консоль провайдера. Ми гарантуємо, що фінальна карта забезпечить стабільну локалізацію навіть при частковому перекритті камери.
Який 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.







