Розробка мобільного застосунку для сканера візиток
Задача виглядає просто: сфотографував візитку — отримав контакт в адресній книзі. На практиці між знімком і правильно заповненим CNContact — ланцюжок, в якому ламається все, що може зламатися: погане освітлення, нестандартні шрифти, двомовні візитки, вертикальна орієнтація тексту на японських картках. Ми розробляємо під ключ сканери візиток, які справляються з цими проблемами та дають точність розпізнавання понад 95%.
Що сканування візиток дає бізнесу?
Сканування візиток вирішує три задачі: миттєве введення контактів без ручного набору, автоматичне збагачення CRM та виключення помилок «людського фактору». В середньому один контакт вводиться за 3 секунди замість 30 — це економить 27 секунд на кожній візитці. Для менеджера, який обробляє 50 візиток на тиждень, вивільняється понад 20 годин на рік, що при середній ставці 500 руб/год дає економію 10 000 руб на місяць.
Проблеми, які ми вирішуємо
-
Якість знімка. Більшість користувачів фотографує візитку «як попало»: під кутом, у русі, при поганому світлі. Наша система автоматично детектує картку через
VNDetectRectanglesRequest(iOS) абоObjectDetector(ML Kit), випрямляє перспективу (CIPerspectiveCorrection), підвищує контраст і робить знімок тільки коли картка займає >60% кадру та стабільна 0.5 секунди. Ручний захват ми не використовуємо — він дає на 30% більше браку. -
Розпізнавання тексту в складних умовах. На iOS використовуємо
VNRecognizeTextRequestвід Apple (офлайн, 18 мов). На Android — ML Kit Text Recognition v2 (офлайн, латиниця + кирилиця + CJK). Для максимальної точності підключаємо Google Cloud Vision або AWS Textract — вони повертають структурований вивід з bounding box. Порівняння підходів:
| Характеристика | Vision (iOS) | ML Kit (Android) | Cloud API |
|---|---|---|---|
| Робота офлайн | Так | Так | Ні |
| Мови | 18 | Латин., кирил., CJK | 200+ |
| Точність на простих | 98% | 97% | 99.5% |
| Швидкість | 0.5–1 с | 0.5–1 с | 1–3 с (мережа) |
| Вартість | Безкоштовно | Безкоштовно | $1.50/1000 стор. |
Vision швидший і простіший, але на складних шрифтах Cloud API виграє на 2-3%. Вибір залежить від вимог до офлайн-режиму.
- Парсинг неструктурованого тексту. OCR видає масив рядків, а не поля контакту. Ми використовуємо регулярні вирази для телефонів та email, а для імен та посад — NER (CoreML для iOS,
nlpв ML Kit для Android). Двомовні візитки (українська/англійська) обробляємо окремо: визначаємо мову кожного рядка черезNLLanguageRecognizerі застосовуємо різні правила парсингу.
Детальніше про техніку парсингу
Для підвищення точності ми комбінуємо детерміновані правила (телефони, email) з навченими моделями NER. На iOS використовується CoreML модель, навчена на корпусі з 10 000 візиток. На Android — ML Kit Entity Extraction, яка підтримує 6 категорій. Це дозволяє коректно витягувати імена навіть у нестандартних форматах (наприклад, "John M. Smith Jr.").Як ми досягаємо точності 95%+?
Точність забезпечується комбінацією етапів:
| Умова зйомки | Точність Vision | Точність Cloud API |
|---|---|---|
| Рівне освітлення | 98% | 99.5% |
| Відблиск або тінь | 70% | 85% |
| Дрібний шрифт (<8pt) | 85% | 92% |
| Нестандартний шрифт | 80% | 95% |
Для критичних випадків ми рекомендуємо гібридний підхід: on-device для швидкого попереднього перегляду, хмарний для фінальної верифікації. Згідно з документацією Apple Vision, on-device розпізнавання має точність до 98% при хорошому освітленні.
З нашої практики: кейс
Реалізували сканер для торгової компанії з 150+ менеджерами. Стек: iOS — SwiftUI + Vision + CoreData, Android — Jetpack Compose + ML Kit + Room. Окрема складність — інтеграція з AmoCRM через REST API. Після сканування менеджер підтверджує поля в інтерфейсі, дані летять в угоду за 2 секунди. Ручне введення виключено. Підсумок: швидкість обробки однієї візитки — 5 секунд, економія 25 годин на місяць на одного менеджера. Інвестиції в розробку окупилися за 2 місяці.
Процес роботи
- Аудит: які мови, чи потрібен офлайн, інтеграція з CRM або тільки з контактами пристрою.
- Проєктування: архітектура модулів (захват → корекція → OCR → парсинг → редагування → експорт).
- Реалізація: пишемо з урахуванням best practices (коригування перспективи, авто-захват, NER).
- Тестування: на наборі з 100+ реальних візиток різної якості та форматів.
- Деплой: публікація в App Store / Google Play, налаштування push-сповіщень (APNs/FCM), deep linking.
Що входить в роботу
- Вихідний код застосунку (iOS/Android/Flutter) з документацією.
- Доступи до репозиторію (Git) та CI/CD (GitHub Actions / GitLab).
- Дві ітерації тестування з нашим набором візиток.
- Навчання команди замовника роботі з адмін-панеллю та експортом.
- Гарантія 3 місяці на баги, пов'язані з розпізнаванням.
Орієнтири за термінами
Сканер з Vision/ML Kit, базовим парсингом та збереженням у контакти — 2–3 тижні. З хмарним OCR, NER, підтримкою кількох мов та інтеграцією з CRM — 5–7 тижнів. Терміни уточнюємо на аудиті — отримайте консультацію безкоштовно.
Типові помилки при самостійній розробці
- Відсутність авто-захвату → користувач робить фото тремтячими руками → розпливчастий знімок.
- Використання лише регулярних виразів для парсингу → пропуск імен у нестандартному форматі.
- Ігнорування корекції перспективи → похилий текст розпізнається гірше на 20%.
Наша реалізація ефективніша, тому що ми комбінуємо on-device та cloud підходи, автоматизуємо якість знімків та використовуємо NER для надійного вилучення полів. Результат: точність 95%+ за будь-яких умов.
Зв'яжіться з нами, щоб обговорити ваш проєкт. Маємо 5+ років досвіду в мобільній розробці та понад 50 реалізованих проєктів у сфері OCR та сканування. Гарантуємо результат — зафіксуємо точність розпізнавання в ТЗ.







