Помогают защитить Большой Барьерный Риф с TensorFlow на Kaggle Присоединяйтесь вызов

Оптическое распознавание символов (OCR)

Оптическое распознавание символов (OCR) - это процесс распознавания символов на изображениях с использованием компьютерного зрения и методов машинного обучения. Это справочное приложение демонстрирует, как использовать TensorFlow Lite для распознавания текста. Он использует комбинацию модели обнаружения текста и модель распознавания текста в качестве трубопровода OCR для распознавания текста символы.

Начать

Если вы новичок в TensorFlow Lite и работаете с Android, мы рекомендуем изучить следующий пример приложения, которое поможет вам начать работу.

Пример Android

Если вы используете платформу, кроме Android, или вы уже знакомы с API , TensorFlow Lite , вы можете загрузить модели из TF Hub .

Как это работает

Задачи OCR часто разбиваются на 2 этапа. Во-первых, мы используем модель обнаружения текста для обнаружения ограничивающих рамок вокруг возможных текстов. Во-вторых, мы загружаем обработанные ограничивающие рамки в модель распознавания текста для определения конкретных символов внутри ограничивающих рамок (нам также необходимо выполнить не максимальное подавление, преобразование перспективы и т. Д. Перед распознаванием текста). В нашем случае обе модели взяты из TensorFlow Hub и являются квантованными моделями FP16.

Тесты производительности

Номера тестов производительности создаются с помощью инструмента , описанного здесь .

Наименование модели Размер модели Устройство Процессор GPU
Обнаружение текста 45.9 Мб Pixel 4 (Android 10) 181,93 мс * 89,77 мс *
Распознавание текста 16.8 Мб Pixel 4 (Android 10) 338,33 мс * Не указано **

* Использовано 4 нитки.

** эта модель не может использовать делегат графического процессора, так как нам нужны операторы TensorFlow для его запуска

Входы

Модель детектирования текста принимает 4-D float32 тензор (1, 320, 320, 3) в качестве входных данных.

Модель распознавания текста принимает 4-D float32 тензор (1, 31, 200, 1) в качестве входных данных.

Выходы

В модели обнаружение возвращается текст 4-D float32 тензор формы (1, 80, 80, 5) , как ограничивающий прямоугольник и 4-Д float32 тензора формы (1,80, 80, 5) , как счет обнаружения.

Модель распознавания текста возвращает 2-D float32 тензора формы (1, 48) в качестве индексов отображения в список алфавита «0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ»

Ограничения

  • Текущая модель распознавания текста обучена с использованием синтетических данных с английскими буквами и цифрами, поэтому поддерживаются только английский.

  • Модели недостаточно универсальны для OCR в условиях дикой природы (например, случайные изображения, сделанные камерой смартфона в условиях слабого освещения).

Поэтому мы выбрали 3 логотипа продуктов Google только для того, чтобы продемонстрировать, как выполнять распознавание текста с помощью TensorFlow Lite. Если вы ищете готовый к употреблению продукции класса OCR продукт, вы должны рассмотреть Google ML Kit . ML Kit, который использует TFLite внизу, должен быть достаточным для большинства случаев использования OCR, но в некоторых случаях вы можете создать собственное решение OCR с TFLite. Вот несколько примеров:

  • У вас есть собственные модели TFLite для обнаружения / распознавания текста, которые вы хотели бы использовать.
  • У вас есть особые бизнес-требования (например, распознавание перевернутых текстов) и вам необходимо настроить конвейер OCR.
  • Вы хотите поддерживать языки, не охваченные ML Kit
  • На ваших целевых пользовательских устройствах не обязательно установлены сервисы Google Play.

использованная литература