Разработка мобильного приложения для сканера визиток
Задача выглядит просто: сфотографировал визитку — получил контакт в адресной книге. На практике между снимком и правильно заполненным 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 и сканирования. Гарантируем результат — зафиксируем точность распознавания в ТЗ.







