Реализация распознавания текста (OCR) в мобильном приложении

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.
Разработка и поддержка любых видов мобильных приложений:
Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Реализация распознавания текста (OCR) в мобильном приложении
Средняя
~3-5 рабочих дней
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1052
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    445

Реализация распознавания текста (OCR) в мобильном приложении

OCR на мобиле — одна из наиболее зрелых задач с хорошим набором готовых инструментов. Нативные решения (Vision на iOS, ML Kit на Android) закрывают большинство случаев. Сложности начинаются там, где текст нестандартный: рукопись, выцветший чек, отражения, искажённая перспектива.

Выбор инструмента

iOS Vision frameworkVNRecognizeTextRequest. Работает полностью on-device, поддерживает 18+ языков, в том числе кириллицу. recognitionLevel = .accurate даёт лучшее качество, recognitionLevel = .fast — быстрее в 2–3 раза. На iPhone 12 при .accurate — 180–350 ms на A4-фото.

ML Kit Text Recognition v2 — кроссплатформенный (iOS + Android), on-device. Поддерживает латиницу, кириллицу, деванагари, CJK-символы. На Android через TextRecognition.getClient(TextRecognizerOptions.DEFAULT_OPTIONS).

Tesseract через SwiftyTesseract (iOS) или tess-two (Android) — когда нужна кастомная тренировка под специфический шрифт или язык. Медленнее нативных API в 3–5 раз, но гибче.

Для стандартных задач (документы, визитки, ценники) — Vision / ML Kit достаточно. Для специфических задач (медицинские бланки с нестандартными шрифтами) — Tesseract с дообученной моделью.

Preprocessing: от этого зависит 40% точности

VNRecognizeTextRequest и ML Kit принимают CGImage / InputImage — но качество входного изображения критично.

Типовой preprocessing pipeline:

  1. Конвертация в grayscale — снижает шум от цветовых артефактов JPEG
  2. Коррекция яркости/контраста через CIColorControls (iOS) или ColorMatrix (Android)
  3. Binarization (Otsu threshold) — помогает при неравномерном освещении
  4. Deskew — коррекция перспективы и наклона

Коррекция перспективы (документ снят под углом): на iOS VNDetectRectanglesRequest находит контур документа, CIPerspectiveCorrection выпрямляет. На Android — аналогично через Bitmap + Matrix.setPolyToPoly.

Кейс: приложение для сканирования накладных. ML Kit v2 без preprocessing давал 78% точность на полевых условиях (освещение склада, мятые листы). После Otsu binarization + perspective correction — 94%. Особенно помогло при распознавании номеров накладных с матричным шрифтом.

Real-time распознавание vs фото

Для реального времени (наводишь камеру, текст распознаётся на лету — как в Google Lens) нужна адаптация пайплайна:

  • Снизить разрешение до 720p или меньше
  • На iOS: VNRecognizeTextRequest запускаем в VNSequenceRequestHandler каждые 3–5 кадров, не на каждом
  • Буферизация результатов: показываем предыдущий результат, пока идёт инференс нового кадра
  • Стабилизация текста между кадрами: сравниваем IoU bounding box-ов, если >0.7 — это тот же текст

На Android ML Kit в STREAM_MODE сам управляет частотой — не перегружает pipeline.

Постобработка: текст ≠ данные

Распознать текст и получить полезные данные — разные задачи.

Для номеров телефонов, email, дат — используем NSDataDetector (iOS) или Patterns (Android) поверх распознанного текста. Для структурированных документов (ИНН, СНИЛС, номер паспорта) — regex с проверкой контрольных цифр.

Для таблиц и форм: ML Kit v2 возвращает TextBlock → TextLine → TextElement с координатами каждого. Группируем по Y-координате строки (±5px) для реконструкции структуры таблицы.

Сроки

OCR для фото с preprocessing и постобработкой данных — 3–5 рабочих дней. Полноценный документ-сканер с real-time режимом, коррекцией перспективы и экспортом — 1–2 недели. Стоимость рассчитывается индивидуально.