Анализ изображения с помощью фреймворка EASYOCR
Сама модель распознавания состоит из 3 основных компонентов:
- Извлечение признаков(resnet)
- Маркировка последовательности (LSTM)
- Декодирование (CTC)
Данный фреймворк обладает довольно большим инструментарием поддерживаемых языков, более 80, как утверждает разработчик.
Далее я разберу пример работы данного фреймворка на простом примере извлечения текста из изображения.
Для запуска необходимо установить torch
Easyocr
И импортировать его
Для начала анализа изображения нужно загрузить модель чтения для определенных языков в память
После этого делаем ссылку на файл данные с которого хотим прочитать. Для данной демонстрации я использовал изображение в формате jfif и jpg, но фреймворк также поддерживает и png.
При дефолтном запуске данного метода вернутся не только проанализированные строки, но и координаты текстовой области, а также уровень уверенности.
Используя координаты текстовой области, мы довольно легко можем визуализировать ее.
Далее предоставляю скрипт отрисовки текстовой области, в нем я использую библиотеку PIL для отрисовки границ.
Что меня порадовало в данном фреймворке? Он довольно неплохо воспринимает записи под углом, как в данном случае.
При работе с данным фреймворком довольно важно качество анализируемого изображения, т.к., в противном случае, не исключены ошибки в анализе и опечатки. Из довольно частых ошибок, которые я встречал, это ошибочная подстановка буквы Д вместо А или же наоборот. На мой взгляд данный фреймворк не очень подходит для работы с документацией или с изображениями с объемным текстом, скорее это оцифровка каких-то небольших фрагментов изображения, таких как машинные номера, дорожные знаки, содержащие текст, маркировка и тому подобное.
Ссылка разработчика на github: https://github.com/JaidedAI/EasyOCR