AI-вимірювання об'єктів по фото в мобільному додатку

Клієнт хоче виміряти довжину дивана по одній фотографії — без рулетки, без спеціального обладнання. Ми реалізували цю функцію в мобільних додатках з точністю до 2% за правильних умов. Наш досвід — 5+ років у розробці iOS/Android, 30+ проєктів з AR та computer vision. Пропонуємо рішення під ключ: від

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
AI-вимірювання об'єктів по фото в мобільному додатку
Складний
~1-2 тижні

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

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

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

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    896
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1003
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Клієнт хоче виміряти довжину дивана по одній фотографії — без рулетки, без спеціального обладнання. Ми реалізували цю функцію в мобільних додатках з точністю до 2% за правильних умов. Наш досвід — 5+ років у розробці iOS/Android, 30+ проєктів з AR та computer vision. Пропонуємо рішення під ключ: від вибору методу (LiDAR, SLAM або monocular depth) до інтеграції з вашим бекендом. Отримайте консультацію — оцінимо ваш проєкт за один день.

Який метод вимірювання обрати: LiDAR, SLAM чи monocular depth?

ARKit/ARCore (LiDAR або SLAM) — точний, але вимагає підтримки пристрою. iPhone 12 Pro і новіший з LiDAR дають точність 1–3 см на відстані до 5 метрів. ARCore на Android без LiDAR — гірший, похибка 3–8 см.

Monocular depth estimation — працює на будь-якому пристрої без LiDAR, використовує CNN для оцінки глибини по одному кадру. MiDaS, DPT, Depth Anything V2 — актуальні моделі. Точність помітно нижча за LiDAR-підхід, але для багатьох задач достатня.

Метод Точність Вимоги до пристрою Складність реалізації
LiDAR (ARKit/ARCore) 1–3 см iPhone 12 Pro+, iPad Pro Середня
SLAM (ARKit/ARCore) 3–8 см Пристрої з підтримкою ARKit/ARCore Середня
Monocular depth 5–15% Будь-який пристрій Висока (нейромережа)
// iOS: вибір методу залежно від можливостей пристрою func selectMeasurementMethod() -> MeasurementMethod { if ARWorldTrackingConfiguration.supportsSceneReconstruction(.mesh) { return .lidarARKit // iPhone 12 Pro+, iPad Pro } else if ARWorldTrackingConfiguration.isSupported { return .slamARKit // ARKit без LiDAR } else { return .monocularDepth // фолбек на CoreML-модель } } 

Що впливає на точність вимірювання?

Точність вимірювання безпосередньо залежить від умов зйомки: освітлення, текстура поверхні, відстань до об'єкта та кут нахилу камери. Білі стіни без текстур погіршують SLAM-трекінг, а високе освітлення може викликати пересвіти. Для стабільного результату необхідно:

  • Текстуровані поверхні (чорні, глянцеві об'єкти гірше детектуються)
  • Відстань до об'єкта не більше 5 м при LiDAR, 3 м при SLAM
  • Мінімізація динамічних об'єктів у кадрі
  • Правильне фокусування камери

Як ми реалізуємо вимірювання через ARKit

// Вимірювання відстані між двома точками в AR class ARMeasurementSession: NSObject, ARSessionDelegate { var arView: ARSCNView! private var startAnchor: ARAnchor? private var endAnchor: ARAnchor? func placePoint(at screenPoint: CGPoint) -> MeasurementPoint? { // Raycast від екрану в 3D світовий простір guard let query = arView.raycastQuery( from: screenPoint, allowing: .estimatedPlane, alignment: .any ) else { return nil } guard let result = arView.session.raycast(query).first else { return nil } let worldPosition = result.worldTransform.columns.3 // позиція в метрах return MeasurementPoint( position: SIMD3(worldPosition.x, worldPosition.y, worldPosition.z), confidence: result.targetAlignment == .horizontal ? .high : .medium ) } func calculateDistance(from start: MeasurementPoint, to end: MeasurementPoint) -> Measurement<UnitLength> { let diff = end.position - start.position let distanceMeters = Double(simd_length(diff)) return Measurement(value: distanceMeters, unit: .meters) } } 

Одна з поширених помилок — не враховувати, що raycast працює краще на добре текстурованих поверхнях. Біла стіна дає поганий результат SLAM tracking, AR-мітки починають «пливти».

Відображення вимірювання в AR

func addMeasurementLine(from start: SIMD3<Float>, to end: SIMD3<Float>, distance: String) { let midpoint = (start + end) / 2 // Лінія між точками let lineNode = SCNNode(geometry: createCylinder(from: start, to: end)) // Мітка з відстанню посередині let labelNode = SCNNode(geometry: SCNText(string: distance, extrusionDepth: 0.001)) labelNode.position = SCNVector3(midpoint.x, midpoint.y + 0.02, midpoint.z) labelNode.scale = SCNVector3(0.005, 0.005, 0.005) labelNode.constraints = [SCNBillboardConstraint()] // завжди обличчям до камери sceneRoot.addChildNode(lineNode) sceneRoot.addChildNode(labelNode) } 

Reference object підхід для вимірювання по фото

Без AR — потрібен об'єкт відомого розміру в кадрі. Банківська картка (85.6 × 53.98 мм) — зручний reference:

// Android: вимірювання через reference object class ReferenceObjectMeasurer { fun measureWithCard(bitmap: Bitmap, cardBoundingBox: RectF, objectBoundingBox: RectF): MeasurementResult { // Реальні розміри картки val cardRealWidth = 85.6f // мм val cardRealHeight = 53.98f // Пікселі → мм val pixelsPerMmHorizontal = cardBoundingBox.width() / cardRealWidth val pixelsPerMmVertical = cardBoundingBox.height() / cardRealHeight // Корекція на перспективне спотворення (спрощено) val correctionFactor = estimatePerspectiveCorrection( cardBoundingBox, imageDimensions = bitmap.width to bitmap.height ) return MeasurementResult( widthMm = (objectBoundingBox.width() / pixelsPerMmHorizontal) * correctionFactor, heightMm = (objectBoundingBox.height() / pixelsPerMmVertical) * correctionFactor, accuracy = MeasurementAccuracy.MODERATE // ±5-10% без калібрування ) } } 

Детекція картки в кадрі — через ML Kit Object Detection або YOLOv8-кастомний (нескладно навчити на 500 знімках карток в різних умовах).

Процес роботи: від ідеї до релізу

  1. Аналітика — вивчення бізнес-вимог, пристроїв аудиторії, необхідної точності.
  2. Проектування — вибір архітектури: нативний ARKit/ARCore або кроссплатформа, визначення методу вимірювання (LiDAR/SLAM/monocular depth).
  3. Реалізація — розробка MVP з базовим UI (дві точки, лінія), інтеграція з CoreML/ML Kit, налаштування калібрування.
  4. Тестування — перевірка точності на 10+ пристроях, в різних умовах зйомки, A/B тести.
  5. Деплой — підготовка до публікації в App Store та Google Play, оформлення документів, TestFlight/Firebase Distribution.
Етап Тривалість
Аналітика 1–2 дні
Проектування 1–2 дні
Реалізація MVP 3–5 днів (одна платформа)
Повноцінне рішення (iOS+Android) 1–2 тижні
Тестування та деплой 3–5 днів

Що входить в роботу

  • Архітектурна документація та опис API
  • Інтеграція з вашою CRM / бекендом через REST або GraphQL
  • Навчання вашої команди роботі з функцією
  • Технічна підтримка 3 місяці
  • Доступ до вихідного коду (з правом модифікації)
  • Сертифікати від Apple та Google (якщо потрібно)

Ми — сертифіковані розробники Apple та Google. Гарантуємо точність вимірювань відповідно до вимог App Store Review Guidelines (Section 4.2/5.1). За 5 років реалізували 30+ проєктів в e-commerce, будівництві та медицині.

Типові помилки при реалізації
  • Ігнорування підтримки пристроїв без LiDAR — користувачі отримують нульову точність.
  • Відсутність калібрування перспективних спотворень при reference object.
  • Використання стандартних моделей глибини без донавчання на предметній області.
  • Неврахування рекомендацій Apple для in-app purchase (якщо функція платна) — StoreKit 2.

Оцініть ваш проєкт — напишіть нам. Отримайте консультацію щодо вибору методу та термінів реалізації.

У статті використані матеріали monocular depth estimation та документації Apple ARKit.