«Давайте вместе продвигать человечество, сделав ИИ доступным для всех!»

Распознавание последовательностей на основе изображений является давней темой исследований компьютерного зрения. В этой статье исследователи исследовали проблему распознавания текста сцены, которая является одной из самых важных и сложных задач в распознавании последовательностей на основе изображений. Предлагается новая архитектура нейронной сети, которая объединяет извлечение признаков, моделирование последовательностей и транскрипцию в единую структуру. По сравнению с предыдущими системами для распознавания текста сцены, предлагаемая архитектура обладает четырьмя отличительными свойствами: (1) Это сквозное обучение, в отличие от большинства существующих алгоритмов, компоненты которых обучаются и настраиваются отдельно. (2) Он, естественно, обрабатывает последовательности произвольной длины, не включая сегментацию символов или нормализацию горизонтального масштаба. (3) Он не ограничен каким-либо предопределенным лексиконом и обеспечивает замечательную производительность как в задачах распознавания текста сцены без лексики, так и на основе лексики. (4) Он генерирует эффективную, но гораздо меньшую модель, которая более практична для сценариев реальных приложений. Эксперименты со стандартными тестами, включая наборы данных IIIT-5K, Street View Text и ICDAR, демонстрируют превосходство предложенного алгоритма над предшествующими уровнями. Кроме того, предложенный алгоритм хорошо справляется с задачей распознавания нот по изображениям, что, очевидно, подтверждает его универсальность.



Реализация

Я реализовал эту работу в Google Colab и выбрал тип среды выполнения как GPU, так как мне нужно сделать прогноз на основе предварительно обученной модели.

EasyOCR - это библиотека на Python, которая извлекает текст из изображений. Эта библиотека была разработана в 2019 году компаниями Baoguang Shi, Xiang Bai, Cong Yao. Это лучшая и используемая в настоящее время библиотека для извлечения текста из изображений.

Чтобы запустить EasyOCR, мы должны установить библиотеку, выполнив приведенную ниже команду, а затем она попросит вас перезапустить среду выполнения.

pip install easyocr

import matplotlib.pyplot as plt # это необходимые файлы заголовков.

импорт cv2

импорт easyocr

из pylab import rcParams

из IPython.display импорт изображения

rcParams [‘figure.figsize’] = 8,16

reader = easyocr.Reader ([‘en’]) # Это предварительно обученная модель, которая обнаруживает и распознает, а в скобках указан тип языка, на котором написан текст, который должен быть обнаружен. ‘En’ означает английский. Предварительно обученная модель сохраняется в переменной, называемой ридером.

Image («Image.jpg») # отображение входного изображения, через которое должен быть обнаружен текст

output = reader.readtext (‘Image.jpg’) # Предварительно обученная модель уже сохранена в переменной с именем reader. Вызов функции «readtext», которая фактически берет входное изображение и считывает текст из этого изображения. Я сохраняю вывод прочитанного текста в переменной с именем output.

Выход:

output # содержимое выходной переменной

[([[43, 87], [211, 87], [211, 131], [43, 131]], # Первая часть - координаты ограничивающего прямоугольника

«Спокойной ночи», # вторая часть - это текст, созданный на основе рисунка.

0.6844154000282288)] # Уверенность, с которой текст предсказывается или генерируется.

Благодарности и ссылки:

Этот проект основан на исследованиях / кодах из нескольких статей / репозиториев с открытым исходным кодом.

Часть обнаружения использует алгоритм CRAFT из этой статьи.



Модель распознавания - CRNN: