Інтеграція ML Kit у мобільний застосунок: практичний досвід
Ми інтегруємо ML Kit Google у мобільні застосунки для машинного навчання: розпізнавання тексту, облич, об'єктів та інших AI-функцій. На практиці клієнти часто приходять із задачею: «Потрібен сканер чеків, який працює на Android та iOS з точністю >95%». За уявною простотою ML Kit ховаються нюанси, які з'ясовуються тільки в продакшні — від повороту зображення до різниці в швидкості на бюджетних пристроях. Ми зібрали реальний досвід впровадження, щоб ви не наступали на ті ж граблі.
Часті проблеми при роботі з ML Kit
Готові API (Text Recognition v2, Face Detection, Barcode Scanning) працюють коректно, якщо дотримуватися вимог до вхідного зображення. Face Detection з FaceDetectorOptions.PerformanceMode.ACCURATE на Android повертає результати за 80–150 ms на Pixel 6, але на бюджетних пристроях із Snapdragon 680 — вже 400+ ms. Якщо використовувати FAST-режим, точність падає при повороті голови більше 30°.
На iOS MLKitFaceDetection через VisionImage(image:) втрачає орієнтацію зображення, якщо не виставити image.orientation явно з UIImage.imageOrientation. Краш не відбувається — просто обличчя не детектуються, коли телефон повернутий горизонтально.
З кастомними TFLite-моделями через CustomImageLabeler важливо правильно упакувати metadata. Без TFLiteMetadataHelper модель не знає нормалізацію входу — потрібно або додати metadata через flatbuffers, або вказувати нормалізацію вручну через CustomRemoteModel options.
Чому on-device часто вигідніше за cloud?
On-Device працює офлайн, швидше та без витрат на API-виклики. Cloud — точніший для складних випадків (багатомовний OCR, нестандартні шрифти). Як зазначають у документації Google, Cloud API може бути на 10-15% точнішим для складних кейсів, але On-Device швидший у 2-3 рази. Для більшості B2C-застосунків оптимальна гібридна схема: on-device як основний шлях, cloud як fallback при низькій впевненості. Так ми отримали 94% точність на стандартних чеках без доплат за хмарні запити.
Як ми впроваджуємо ML Kit: кейс розпізнавання чеків
Кейс із практики: застосунок для сканування чеків. ML Kit Text Recognition v2 on-device давав 94% точність на стандартних касових чеках, але на термопапері з вицвілим текстом — 67%. Додали preprocessing через CIFilter (підвищення контрасту, бінаризація) перед передачею в VisionImage — точність зросла до 89% без переходу в Cloud API.
Для Android інтеграція йде через BarcodeScanning.getClient() або TextRecognition.getClient(TextRecognizerOptions.DEFAULT_OPTIONS). Моделі завантажуються автоматично через Play Services при першому запуску — це потрібно враховувати в UX: перший інференс може зайняти кілька секунд, поки модель не завантажена. Використовуємо ModuleInstallClient для явного preload при онбордингу.
Для кастомних моделей — FirebaseModelDownloader з ModelDownloadType.LOCAL_MODEL_UPDATE_IN_BACKGROUND. Модель оновлюється в фоні, застосунок використовує поточну версію до наступного запуску.
Як уникнути типових помилок інтеграції? Покрокова інструкція
- Перевірте
image.orientationна iOS — інакше детекція обличчя зламається при зміні орієнтації телефону. - На Android використовуйте
ModuleInstallClientдля попереднього завантаження моделей, щоб уникнути затримки першого інференсу. - Для кастомних TFLite-моделей обов'язково пакуйте metadata через
TFLiteMetadataHelper, інакше нормалізація буде невірною. - Тестуйте на 5-10 реальних пристроях різних виробників — швидкість інференсу може відрізнятися в 3 рази.
- Впроваджуйте fallback-логіку: при низькій впевненості on-device відправляйте запит у Cloud API (якщо задача критична).
Підтримувані API ML Kit
| API | Режим | Платформи |
|---|---|---|
| Text Recognition v2 | On-Device | Android, iOS |
| Face Detection | On-Device | Android, iOS |
| Barcode Scanning | On-Device | Android, iOS |
| Image Labeling | On-Device + Cloud | Android, iOS |
| Object Detection & Tracking | On-Device | Android, iOS |
| Translation | On-Device | Android, iOS |
| Custom Model (TFLite) | On-Device | Android, iOS |
Що входить в інтеграцію ML Kit під ключ
Ми передаємо повний пакет результатів:
- Аудит поточної архітектури та вибір оптимального API (готовий vs кастомний)
- Інтеграція SDK ML Kit з налаштуванням передобробки зображень
- Тестування на 10+ пристроях (різні версії ОС, виробники)
- Документація інтеграції та конфігурації
- Навчання команди роботі з моделями
- Гарантія на 6 місяців після здачі
Процес і терміни
Аудит вимог → вибір API (готовий vs кастомний) → інтеграція SDK → налаштування preprocessing → тестування на цільових пристроях → налаштування моніторингу точності в продакшні.
Інтеграція одного готового API під ключ (наприклад, Barcode Scanning або Face Detection) — 2–4 робочих дні, вартість від 350$. Кастомна TFLite-модель з preprocessing та fallback-логікою — 1–2 тижні, вартість від 1200$. Вартість розраховується індивідуально.
Додаткові деталі
Ми маємо 5+ років досвіду в мобільній розробці та понад 20 реалізованих AI-проектів. Наша команда готова оцінити ваш проєкт безкоштовно — пишіть, і ми підберемо оптимальне рішення.Ми реалізували ML Kit у 15+ проєктах, включаючи фінтех та ритейл, і гарантуємо точність не менше 90% на етапі приймання. Зв'яжіться з нами для оцінки вашого проєкту — підберемо оптимальне рішення під ваші задачі.







