Реалізація детекції об'єктів у мобільному застосунку

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

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1735 послуг
Реалізація детекції об'єктів у мобільному застосунку
Середній
~1-2 тижні
Часті запитання

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

Етапи розробки

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

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    495

Реалізація детекції об'єктів у мобільних додатках

Детекція об'єктів на мобілі — це не просто «знайти та обвести». Це також frame-to-frame трекінг, коректна проекція bounding box на preview шар, обробка перекриваючих детекцій та управління продуктивністю при 30 FPS відеопотоці. Остання часто стає вузьким місцем.

Вибір моделі: YOLO vs SSD vs NanoDet

На мобілі працюють три основні сімейства:

  • MobileNet SSD — класика, відмінна підтримка TFLite Task Library та ML Kit. На Pixel 7: 18–25 ms на 320×320. COCO mAP: ~23–27.
  • YOLOv8n/YOLOv5n — найкращий баланс точність/швидкість у 2024. Після конвертації в TFLite або Core ML: 22–40 ms залежно від розміру входу. COCO mAP: 37+.
  • NanoDet — для дійсно слабких пристроїв, <10 ms на Snapdragon 665.

Для real-time відео на сучасних Android флагманах використовуйте YOLOv8n з GPU делегатом. Для офлайн фото на широкому спектрі пристроїв використовуйте MobileNet SSD v2.

Bounding Box: проекція на камеру

Найпоширеніша візуальна помилка: bounding box не збігається з об'єктом на preview. Причина: модель отримує ресайзене введення (наприклад, 320×320), а camera preview — 1920×1080 з AspectFill або AspectFit. Перерахуйте координати з врахуванням масштабу та відступів.

На iOS з AVCaptureVideoPreviewLayer:

let converted = previewLayer.layerRectConverted(fromMetadataOutputRect: normalizedRect)

VNDetectedObjectObservation повертає boundingBox в нормалізованих координатах (0..1, y знизу). Перед проекцією на UIKit-координати інвертуйте Y-ось: CGRect(x: box.minX, y: 1 - box.maxY, width: box.width, height: box.height).

На Android з CameraX + ImageAnalysis: результати детекції в координатах вхідного зображення, preview в координатах PreviewView. Використовуйте MappingUtils із ML Kit або обраховуйте трансформацію вручну через матрицю.

Трекінг між кадрами

Детектування на кожному кадрі дороговартісне. Правильний підхід: детекція раз на N кадрів (зазвичай кожні 5–10), між кадрами — трекінг через SORT або ByteTrack, або вбудований iOS VNDetectRectanglesRequest з ObjectTrackerObservation.

ML Kit Object Detection & Tracking підтримує трекінг з коробки через .enableMultipleObjects() та .enableClassification(). Кожен об'єкт, що трекується, отримує стабільний trackingID—дозволяючи відображення інформації про об'єкт без мерцання при втраті/появленні в кадрі.

NMS (Non-Maximum Suppression) — важливий параметр. За замовчуванням iouThreshold = 0.5. Якщо об'єкти перекриваються в кадрі (наприклад, упаковані товари на конвеєрі), знизьте до 0.3–0.35. Інакше детектор «склеює» сусідні об'єкти в один.

Реальний кейс

Програма для підрахунку людей в черзі через статичну камеру (планшет на стійці). YOLOv8n, TFLite, GPU делегат на Android 11+. Проблема: щільні черги (>8 людей) детектор пропускав людей у центрі—перекриття >60%. Рішення: знизили nmsThreshold до 0.3, додали minDetectionConfidence = 0.4 (vs 0.5). Хибні пропуски впали з 31% на 9%. Додатково: переучили модель на кадрах з перекриттям через Roboflow датасет.

Часові рамки

Інтеграція детекторної моделі з проекцією preview та NMS тюнінгом: 1–2 тижні. Fine-tune на кастомних класах + інтеграція: 2–3 тижні. Вартість розраховується індивідуально.