Привет, Хабр! Снова на связи Кирилл Пронин, разработчик PIX RPA из PIX Robotics, со мной Александр Сулейкин, Founder DUC Technologies и сегодня мы с вами затронем тему «Что будет, если объединить OCR и GPT?».
Признайтесь честно, видели какие ужасные результаты распознавания выдают современные open source решения для кириллицы? Вряд ли из коробки, можно что-то использовать сразу в своих решениях роботизации и автоматизации. Но что же будет, если мы обучим модель не через стандартные методы машинного обучения, а через GPT? Каков будет результат? Стоит ли это исследовать и браться за реализацию? Обо всем подробно в этой статье.

Немножко вводных

Изначально, цель была в написании научной статьи, но поскольку тема довольно актуальная, а вряд ли кто-то из компаний смотрит ежегодные сборники статей РАН или других, поэтому мы пришли сюда и решили популяризировать эту историю. Цель работы – провести исследование и идентифицировать наиболее лучший общедоступный движок оптического распознавания OCR (Optical Character Recognition) в сравнении характеристик распознавания текста и обучения на основе взаимодействия с различными современными генеративными нейронными сетями типа GPT (Generative Pre-trained Transformer).

В статье описываются основные проблемы распознавания документов, методологии обучения OCR, возможные методы взаимодействия GPT и OCR, а также предоставляются результаты обучения и рекомендации использования, внедрения данных технологий.

Теперь про актуальность

Актуальность данного исследования обусловлена несколькими ключевыми факторами:

1)     Растущая потребность в эффективных системах оптического распознавания текста (OCR).

Современные технологии оцифровки документов и анализа текста требуют высокоточных и надежных OCR-решений. С уходом ведущих облачных движков распознавания с российского рынка в 2022 году, многие компании столкнулись с серьезными трудностями при переходе на отечественные аналоги. К сожалению, таких решений не так много.

В процессе поиска оптимальных инструментов, многие организации обратились к переобучаемым локальным программным пакетам, которые способны к улучшению и могут быть интегрированы в закрытые контуры компаний. Несмотря на это, точность распознавания и качество выходного текста для русскоязычного рынка все еще не соответствуют требованиям для серьезных решений, таких как IDP (Intelligent Document Processing).

2)     Развитие генеративных нейронных сетей (GPT).

Появление мощных языковых моделей, таких как GPT, открывает новые возможности для обучения и улучшения OCR-движков. Исследование взаимодействия между OCR и GPT может привести к значительному повышению эффективности распознавания текста.

Современные модели не только способны обрабатывать текст, но и поддерживают распознавание текста из изображений. Это подразумевает возможность применения технологий GPT для обучения систем OCR.

Кроме того, распознавание на базе GPT-моделей может предложить ряд преимуществ по сравнению с классическими методами. Например, такие модели могут добавлять контекст к распознанному изображению, учитывать фон и другие элементы, что открывает дополнительные возможности и варианты использования.

3)     Необходимость сравнительного анализа существующих OCR-решений.

Несмотря на большое количество доступных OCR-движков, их сравнительная оценка и выявление наиболее эффективных в сочетании с GPT-моделями остается актуальной задачей для российского рынка.

4)     Практическая значимость для различных отраслей.

Улучшение точности и скорости OCR-распознавания имеет важное значение для широкого круга приложений, включая оцифровку документов, обработку изображений, анализ текстовых данных и другие сферы, где требуется не только распознавание текста на изображениях, но и распознавание абсолютно любых объектов.

К современным проблемам распознавания

Чтобы разобраться в современных проблемах, важно сначала понять основные технологии. Оптическое распознавание символов (OCR) — это технология, которая позволяет преобразовывать различные документы, такие как сканированные бумаги, PDF-файлы или изображения, в редактируемые и поисковые данные. OCR помогает распознавать текст на изображениях и переводить его в формат, который может обрабатывать компьютер. Эта технология играет ключевую роль в автоматизации обработки документов и является важной частью более сложных систем, известных как Интеллектуальная обработка документов (IDP).

IDP — это более сложная система, которая включает в себя OCR, а также обработку естественного языка (NLP), машинное обучение и анализ данных. С 2022 года российские компании столкнулись с трудностями в использовании готовых IDP-технологий, большинство из которых являются импортными. По данным анализа рынка, около 30% компаний применяют готовые IDP-решения, что связано с цифровизацией бизнеса и ростом объемов данных.

Поскольку OCR является основой IDP, важно понимать все сложности, связанные с распознаванием изображений и документов. В настоящее время существует несколько открытых движков OCR, разработанных для общего использования. Хотя большинство из них поддерживают распознавание кириллических символов, точность их работы оставляет желать лучшего.

Приведем в пример таблицу точности распознавания «идеальных» документов по основным OCR движкам. (идеальный документ – это скриншот листа А4, сделанный в идеальных условиях без шума и дефектов). Эти данные взяты с сайтов производителей OCR-систем и движков, заявленные как точность распознавания визуально качественных документов.

OCR-система

Точность распознавания (в %)

Примечания

ABBYY FineReader

95-99%

Платное облачное решение.

Tesseract

90-95%

Бесплатное локальное

Readiris

89-95%

Платное локальное

Adobe Acrobat Integrated OCR

85-90%

Бесплатное локальное

Google Cloud Vision OCR

85-90%

Платное облачное решение.

Microsoft Azure Computer Vision

85-90%

Платное облачное решение.

Mango OCR

85-90%

Платное локальное

Yandex Vision

85-90%

Платное облачное решение.

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

OCR-система

Точность распознавания (в %)

ABBYY FineReader

75-90%

Tesseract

70-90%

Readiris

65-80%

Adobe Acrobat Integrated OCR

65-80%

Google Cloud Vision OCR

65-80%

Microsoft Azure Computer Vision

75-80%

Mango OCR

55-70%

Yandex Vision

65-80%

Таким образом, из представленного нашего анализа точности распознавания популярных решений можно сделать вывод, что облачные, локальные, платные и open-source решения обладают высокой степенью неточности распознавания символов. Причем важно отметить, что эти данные получены опытным путем использования. Если же в документе будут содержаться только латинские символы, то решения на базе движков – становятся на порядок лучше в качестве распознавания. И такого расхождения между «идеальными» документами и реальными – в документах на латинице – нет.

Объясняется это устаревшими данными обучения движков для распознавания.

Все базы (предобученные данные) движков оптического распознавания были разработаны на многие решения еще до 2022 года, активно изменяясь – обновлялись, однако, для российского рынка не доходили. Поэтому ситуация остается в полной стагнации, распознавание латинских символов улучшается, а кириллицы - нет. Только в последние годы отечественные IT- компании по-настоящему начали исследования в части развитии и улучшения OCR-технологий для кириллицы.

А какие методы обучения OCR вообще существуют?

Решение 1. Прямое использование возможностей движков (корректировка результата)

Исходные данные для распознавания — это скан документа в формате *.pdf. Сначала запускается распознавание по документу, далее получаем текстовый результат, оператор (человек) смотрит за качеством распознавания, и если оно не соответствует, то запускает исправление с помощью внутреннего инструмента корректировки распознавания (запретных символов).

Минусы: это процесс корректировки результатов вручную. Он не дает идеального результата после одной итерации, а лишь помогает справиться со сложностями в одном типе документов. Если же изменится печать или подпись на документе, процесс корректировки придется запускать заново. Процесс может быть достаточно трудозатратным.

Как итог, улучшается лишь определенная малая выборка документов.

Решение 2 – Случайная выборка текстов из документов, книг. (классическое машинное обучение на источниках)

На случайных выборках уже узнаваемых текстов модель обучится быстрее, и возможность улучшения будет простой. Исходные данные – это документ или картинка, текст которой уже имеется в символьном формате. После процесса распознавания, результат будет сравниваться с эталонным текстом, в случае несоответствия модели будут предоставлены корректировки. Оператору необходимо будет лишь настроить автоматизацию и самозапуск этого решения.

Минусы: это процесс корректировки, также не даст идеального результата после одной итерации, поможет справиться лишь в одном типе документов. Но на этом решении уже не нужно влияние человека, ведь процесс автоматизирован.

Решение 3 – Использование посимвольной раскадровки в обучении. (машинное обучение по локализированным и макетным источникам)

Данный способ базируется на популярном принципе обучения, включая в себя части нейронных технологий. Исходные данные – это большой документ, текст которого имеется в символьном формате.

В случае плохого распознавания, алгоритм или программа пользователя считает изображение документа и разделит его побуквенное представление в виде “A {122,144,166,170}”, где первый символ — это буква после распознавания, далее координаты левого верхнего угла начала буквы, и координаты правого нижнего угла конца буквы. Каждая буква будет показана решению по распознаванию. При следующем запуске, распознавание немного улучшится. Для лучшего результата рекомендуют использовать от нескольких тысяч итераций на один документ.

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

Решение 4 – Использование технологий GPT.

В последние годы, с развитием технологий генеративных нейронных сетей, решения за счет интеграции GPT в различные алгоритмы обучения стали очень популярны и легки. С каждым годом, таких решений становится все больше, и каждый путь решения описать в данной статье является невозможным, поэтому выделим в отдельной главе основные методы взаимодействия обучения OCR на основе GPT.

Как соединить GPT и OCR?

Все алгоритмы обучения на основе генеративных нейронных сетей можно разделить на 3 вида.

·       Интеграция перед запуском распознавания

·       Интеграция после запуска распознавания

·       Смешанная интеграция

Отсюда можно выделить 3 метода взаимодействия

1)     GPT – как технология создания текстов для обучения.

2)     GPT – как технология проверки качества распознавания.

3)     GPT – как технология создания текстов и проверки качества распознавания.

О последнем методе взаимодействия можно ознакомиться в статье «Обучение моделей распознавания с использованием языковых моделей типа GPT и программной роботизации» одного из авторов данной статьи.

Суть метода в разворачивании закрытого контура улучшения. В начале процесса GPT создает вымышленный текст документа. С помощью роботизации текст превращается в скриншот, оформленный по необходимым правилам с добавлением шумов, подписей и других визуальных дефектов изображения. Затем запускается распознавание текста, и если оно не соответствует результату – программный робот переобучает движок OCR по возможным технологиям.

Однако, современные генеративные нейронные сети получили поддержку обработки и распознавания текста, увеличили токены вопроса / ответа, и внедрили «контекст» общения, поддерживающий пересылку файлов любого формата, что дает большие возможности исследования обучения OCR-движков.

В рамках данного исследования будет использована интеграция GPT после запуска распознавания для проверки качества. В качестве данных будут выбраны 2 текстовых документа.

Далее предоставлены 2 документа, на основе которых будут реализованы все дальнейшие манипуляции по обучению, описанные в этой статье.

Первый документ - «идеализированный» это изображение, сохраненное из word выгрузки в pdf собственного отчета графика выручки одного из предприятий, исследуемого одним из авторов статьи. Изображение является идеальным, поскольку не обладает визуальными шумами, а текст, таблица и изображения предоставлены в высоком качестве. Деформации изображения отсутствуют. Ожидаемый результат распознавания по заявленным результатам распознавания из технической документации различных OCR-движков прогнозируется близким к 99%.

Идеализированный документ.
Идеализированный документ.

Далее предоставлен второй документ - «реальный» это изображение скана одного из заполненных счетов-фактуры. На данном изображении присутствуют все спецификации отчетной документации счета-фактур, таблицы, данные, а также наличие подписей, печатей. На предоставленном рисунке скрыты персональные данные, поскольку являются не публичными и результату отчета не подлежат. Хочется отметить, что в исследуемом изображении присутствуют визуальные шумы, дефекты бумаги, а также изображение является наклоненным, что тоже повлияет на результаты исследования. Ожидаемый результат распознавания, согласно технической документации, ожидается близким к 80%.

Реальный документ-скан
Реальный документ-скан

Далее будут выбраны тройка лучших генеративных нейронных сетей и тройка лучших движков оптического распознавания.

Заземлимся и выберем решения

Критерии для выборки OCR – решений, исходя из нашего опыта и понимания данной сферы, являются:

–       Общедоступность (open-source)

–       Простота переобучения

–       Локальность

–       Возможность интеграции с большинством приложений на разных фреймворках и языках программирования.

–       Ресурсоемкость

–       Скорость работы

–       Точность выдачи результата

Объектами исследования будут являться следующие движки:

1.     Tesseract 5, HP & Google.

2.     OCRopus, Google.

3.     GOCR (JOCR), Jörg Schulenburg.

Критерии для выборки GPT – решений являются:

–       Общедоступность (open-source)

–       Количество токенов для общения

–       Возможность изменения контекста (пересылка файлов)

–       Ресурсоемкость

–       Скорость работы

–       Точность выдачи результата

Объектами исследования будут являться следующие модели:

1.     You.com – Genius.

2.     OpenAI – ChatGPT 4o.

3.     Meta AI – LLaMA 3.2.

Представим технологию обучения

Улучшение распознавания будет строиться на алгоритме коррекции и обучения, в случае неправильного распознавания. Распараллеливание метода обучения, позволит быстрее производить цикл итерации.

Для начала рассмотрим простейшую архитектурную схему решения.

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

Далее распишем данный алгоритм по действиям.

1)     OCR получает на вход документ распознавания и выдает результат.

2)     Одновременно с началом выполнения 1 действия, GPT получает на вход тот же документ с промптом P1 о получении данных внутри документа. Представим промпт P1:

 «Представь, что ты ассистент по распознаванию текста из документа, в контексте прикреплен файл-изображение, необходимо предоставить результат распознавания всех внутренних символов, таблиц, рисунков и диаграмм. Результат предоставить в виде текста. В случае, если распознать символы не получится – предоставить похожий по смыслу результат.»

3)     После получения обоих результатов, производится лексическое сравнение результатов распознавания. В случае точности распознавания, близким к 99%, переобучение и корректировка не требуется. В противном случае, запускается действие 4.

4)     GPT получает на вход тот же документ с промптом о раскадровке каждого символа P2. Предоставим промпт P2:

«Представь, что ты ассистент по распознаванию текста из документа, в контексте прикреплен файл-изображение, необходимо предоставить результат в виде раскадровки каждого символа для дальнейшего переобучения OCR. На выходе представить результат в виде {Символ, который должен быть распознан; Координата верхнего левого угла по X начала изображения символа; Координата верхнего левого угла по Y начала изображения символа; Ширина изображения символа в пикселях; Высота изображения символа в пикселях; Номер страницы документа, на котором находится символ}. Например, П 1 2 4 0 0. В случае неточности изображения, пренебречь точностью расположения символа не более 2 пикселей.»

 На выходе GPT – должна представить результат такого вида.

S X Y W H P, где S – символ распознавания,
X – координата верхнего левого угла по Х,
Y – координата верхнего левого угла по Y,
W – ширина символа в пикселях,
H – высота символа в пикселях,
P – номер страницы документа распознавания.

Пример - П 1 2 4 4 0

5)     Полученный результат в виде посимвольной раскадровки предоставляется OCR решению на переобучение. Переобучение запускается на основе внутренних инструментов OCR движков.

Численные результаты обучения

Результаты обучения представим в виде сравнительной таблицы различных движков OCR и GPT решений. Качество распознавания будем высчитывать по формуле:

K=R(r) / R(a) * 100% ,

где K – качество распознавания,%

R(r) – количество распознанных символов в тексте,

R(a) – общее количество символов в тексте.

Результаты обучения предоставим в разбивке 3 временных промежутков для удобства анализа:

0 часов обучения модели распознавания, 24 часа, 72 часа и 168 часов.

Таблица результатов Tesseract 5 OCR:

Документ

 

Tesseract 5 OCR

Качество распознавания

GPT- модель

 0 часов обучения

24 часа обучения

72 часа обучения

168 часов обучения

Идеальный

(графическая выгрузка из pdf/ word – файла)

 

 

 

 

Genius (YouCom)

78 %

80 %

88 %

94 %

ChatGPT 4o (OpenAI)

78 %

80 %

85 %

88 %

LLaMA 3.2 (MetaAI)

78 %

80 %

85 %

90 %

Реальный

(скан документа с шумом, подписями и печатью)

 

 

Genius (YouCom)

45 %

53 %

68 %

84 %

ChatGPT 4o (OpenAI)

45 %

51 %

62 %

79 %

LLaMA 3.2 (MetaAI)

45 %

51 %

65 %

81 %

Таблица результатов OCRopus:

Документ

 

OCRopus

Качество распознавания

GPT- модель

 0 часов обучения

24 часа обучения

72 часа обучения

168 часов обучения

Идеальный

(графическая выгрузка из pdf/ word – файла)

 

 

 

 

Genius (YouCom)

80 %

85 %

90 %

98 %

ChatGPT 4o (OpenAI)

80 %

82 %

88 %

91 %

LLaMA 3.2 (MetaAI)

80 %

84 %

87 %

94 %

Реальный

(скан документа с шумом, подписями и печатью)

 

 

Genius (YouCom)

54 %

59 %

62 %

70 %

ChatGPT 4o (OpenAI)

54 %

 

56 %

 

59 %

 

62 %

 

LLaMA 3.2 (MetaAI)

54 %

 

57 %

 

60 %

 

64 %

 

Таблица результатов GOCR (JOCR):

Документ

 

GOCR (JOCR)

Качество распознавания

GPT- модель

 0 часов обучения

24 часа обучения

72 часа обучения

168 часов обучения

Идеальный

(графическая выгрузка из pdf/ word – файла)

 

 

 

 

Genius (YouCom)

82 %

88 %

91 %

92 %

ChatGPT 4o (OpenAI)

82 %

86 %

88 %

90 %

LLaMA 3.2 (MetaAI)

82 %

91 %

98 %

99 %

Реальный

(скан документа с шумом, подписями и печатью)

 

 

Genius (YouCom)

51 %

65 %

78 %

81 %

ChatGPT 4o (OpenAI)

51 %

 

59 %

69 %

77 %

LLaMA 3.2 (MetaAI)

51 %

 

69 %

75 %

83 %

К результатам численного исследования, также необходимо упомянуть, что при взаимодействиях различных GPT моделей с OCR движками, больше всего ошибок во время переобучения возникало у ChatGPT 4o, который принудительно завершал обучение или менял контекст общения, выдавая совершенно неожидаемые результаты.

Заключение

В рамках заключения, составим рекомендации для каждого случая применения оптического распознавания.

Для случаев использования OCR идеальных документов (графическая выгрузка из .pdf / .doc файлов) :

–       При отсутствии возможности обучения движков рекомендуется к использованию GOCR (JOCR) от автора Jörg Schulenburg, который показал наилучший результат «из коробки».

–       При наличии возможности обучения движков, рекомендуется к использованию GOCR (JOCR) от автора Jörg Schulenburg в связке с LLaMA 3.2 от Meta AI.

Для случаев использования OCR реальных документов (скан документа с шумом, подписями и печатями):

–       При отсутствии возможности обучения движков, рекомендуется к использованию OCRopus от Google, который показал наилучший результат «из коробки».

–       При наличии возможности обучения движков, рекомендуется к использованию Tesseract 5 от HP & Google в связке с Genius от You com.

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

Ну, а если не согласны с нашим исследованием, мнением, или же вы использовали другие решения в обучении оптического распознавания, чего мы не подсветили в статьи – то увидимся в комментариях.

Также принимаем заявки на другие интересные сообществу темы – пишите в комментариях, что было бы интересно исследовать.

Больше новостей в мире ИТ и ИИ в авторском телеграм-канале.

Как любят многие блогеры - подписывайтесь на канал меня и Александра, ставьте лайки, оставляйте комменты, увидимся в следующей статье!

Комментарии (1)


  1. mixsture
    17.06.2025 08:53

    Я бы скорее думал в сторону учета контекста соседних символов. И это идеологически очень похоже на работу GPT, как угадывание на основе серии данных на входе. Но входным токеном будет не слово, а визуальный глиф.
    Для обучения такой сети можно использовать дистилляцию с умных моделей - примерно также, как вы и OCR обучаете.