
Не секрет, что многофункциональный редактор ContentReader PDF является технологическим наследником популярного решения компании ABBYY – FineReader PDF. После модификации исходного продукта его новую историю на российском рынке пишет Content AI. Между тем, легендарному редактору PDF в этом году исполнилось 30 лет. И это достойный повод, чтобы вспомнить, как все начиналось и как развивался продукт, ставший незаменимым инструментом для всех, кто работает с документами.
Для полного погружения мы смогли найти ноутбук IBM ThinkPad T61 c Windows XP, установили на него все версии FineReader с 1 по 12 (14 и 15 версии грузили на Windows 10) и сделали аутентичные скриншоты.
Пристегнитесь, запускаем машину времени через три…два…один.

В былые времена на Хабре уже выходил материал, посвященный истории создания FineReader. В статье речь шла про зарождение идеи продукта и первые шаги в его становлении. В этом же тексте мы сосредоточимся на том, какие новые фичи появлялись в продукте по мере его 30-летнего развития, и как ему удалось удерживать многолетнее лидерство в распознавании и обработке документов.
1993: FineReader 1.0
Невероятно, но факт. FineReader появился на свет благодаря другому продукту BIT Software (первое название ABBYY), внутри которого уже работали электронные словари Lingvo (подробнее об этом читайте в уже упомянутом выше материале). Как говорится, сначала было слово… Вернее продукт Lingvo Systems.

Эта разработка российских инженеров была предназначена для работы с текстами на иностранных языках. Софт осуществлял базовый перевод текста с отсканированного документа. Фактически в Lingvo Systems были объединены функции четырех разных продуктов: распознавателя символов AutoR компании Ocrus, корректора Litera компании INT, переводчика Transaid (впоследствии Stylus-Promt) и словаря Lingvo.
Больше всего претензий было к качеству распознавания. К тому же диапазон возможностей программы был сужен из-за того, что система могла работать только со знакомыми шрифтами, а изучение нового занимало много времени.

Постепенно пришло осознание – нужен свой собственный OCR. Давило не только техническое несовершенство продукта, но и рынок: эти технологии не были чем-то диковинным в России — ряд научных организаций уже вел разработку систем распознавания символов. И все же команда BIT Software, несмотря на отсутствие опыта и экспертизы в этой области, решила не ждать, а инициировать свой проект. Причем дедлайны поставили самые жесткие: 4-5 месяцев от старта до релиза.
Основой технологического решения стали приобретенные наработки внештатного ученого. Однако чтобы довести продукт до пригодного к использованию состояния, пришлось серьезно потрудиться.
Проблема №1: портирование кода с MS DOS на Windows.
Проблема №2: ограниченное число поддерживаемых форматов (в изначальном варианте технология поддерживала только несжатый BMP, один из простейших форматов изображений).
Проблема №3: отсутствие готовых описаний символов и инструментов для их создания. Вот тут-то и было сломано больше всего копий. Для обучения системы необходимо было работать с большим количеством объемных текстовых файлов, в которых в псевдографическом виде были прочерчены обобщенные контуры символов. Их полагалось править и улучшать прямо в этом файле в обычном текстовом редакторе. В эту ручную кропотливую работу максимально был погружен сам Давид Ян, основатель ABBYY.
В итоге в середине 1993 года команда смогла выпустить продукт в намеченный срок.

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

Были обозначены три приоритета: сокращение количества ошибок при распознавании, независимость от шрифта (омнифонтовость) и многоязычность. Чтобы перейти на качественно новый уровень в работе над продуктом, стали привлекать ученых-теоретиков и профессиональных лингвистов.
В новом релизе, выпущенном в 1995 году, появилась поддержка русского и английского языков, призванных, в первую очередь, качественно обрабатывать научно-технические тексты, многие из которых содержат терминологию на латинице. Именно с этого момента словарная поддержка стала одним из главных преимуществ технологии распознавания ABBYY.

Удалось победить и проблему «неприятия» незнакомых шрифтов. Теперь для этого не требовалось отдельной настройки. Программа научилась самостоятельно распознавать символы любых размеров и очертаний. Кроме того, FineReader 2.0 стал первой омнифонтовой программой, поддерживающей кириллицу. Справились и с большим количеством ошибок. Программа гораздо лучше сохраняла форматирование и по тем временам имела просто рекордную точность работы.
С выпуском второй версии связана удивительная история из разряда везет тому, кто везет. Впервые она была рассказана в уже упомянутом материале. Советуем прочитать.


1996: FineReader 3.0

Едем дальше. Если вторая версия ожидаемо получилась успешнее первой, то требования к следующему релизу были еще выше. К этому времени удалось разработать принципиально новые технологии, благодаря которым команда смогла догнать конкурентов по основным функциональным возможностям. Программа поддерживала почти 30 моделей различных печатных устройств, в том числе ведущие продукты Hewlett-Packard, для работы с которыми требовались собственные разработки HP.

FineReader 3.0 еще на порядок увеличил скорость распознавания на современных версиях ПО за счет использования MMX-инструкций. А главным прорывом стала точность распознавания одноязычного текста. Причем, сравнение нескольких продуктов показало, что уровень точности даже выше, чем у некоторых игроков международного рынка.

1998: FineReader 4.0
Следующий, четвертый выпуск, состоялся в 1998 году, через 2 года после предыдущего релиза, и включал целую серию обновлений.

Все это время усилия разработки были сосредоточены на повышении качества распознавания. Несмотря на то, что по этому показателю FineReader и так был одним из лидеров рынка, продукту было куда расти. В новом релизе было заявлено о сокращении количества ошибок при распознавании печатных текстов в 1,5-2 раза, а при распознавании рукопечатных текстов – в 2-3 раза.
Еще один шаг вперед в функциональности продукта – увеличение количества распознаваемых языков. Программа стала настоящим полиглотом. FineReader 4.0 был способен обрабатывать тексты на 40 языках, а для 11 из них имелись полнофункциональные модули проверки орфографии Lingvo Corrector. По оценке экспертов того времени, по этому показателю продукт стал вторым в мире после OCR Recognita компании Caere, признанного лидера в разработке OCR-решений.
Точность распознавания возросла в 1,5 – 2 раза по сравнению с FineReader 3.0. Улучшенное распознавание документов плохой печати (распечатки с матричных принтеров, пишущих машинок, ксерокопии, факсы) достигалась благодаря применению принципов целостного целенаправленного адаптивного (самообучающегося) восприятия.

Другие новшества релиза – возможность работы программы в фоновом режиме и поддержка нескольких процессоров, что дало хороший буст в производительности. Кроме того, это позволило создать серверное решение и осуществлять обработку документов в потоке. Также заявлялось о том, что скорость распознавания может достигать 140 тыс. стандартных страниц в сутки. Интересно, что в этот период формируется линейка продуктов семейства FineReader. Некоторые доживут до наших дней примерно в том же виде (в контексте решаемых пользовательских задач), другие со временем трансформируются в независимые решения.
В середине-конце 90-х обобщенно FineReader можно назвать многофункциональной системой оптического распознавания символов, в которую входили продукты, ориентированные для решения разных задач в разных сегментах. Например, FineReader Light была предназначена для производителей оборудования (OEM-партнеров), FineReader Рукопись – для ввода форм, заполненных от руки печатными буквами, FineReader Банк – для ввода финансовых документов, FineReader Toolkit – ранние версии современного FineReader SDK.

Ближе всего к современному ABBYY FineReader PDF можно считать FineReader Standard, предназначенный для домашнего использования и FineReader Professional для организаций. Их основная функциональность – распознавание печатных текстов. Но версия для бизнеса дополнительно позволяет автоматизировать ввод шаблонных документов. И ровно отсюда начинается история другого знакового продукта ABBYY – FlexiCapture. Собственную версию этого продукта, ориентированного на задачи российского рынка, – ContentCapture – мы также выпустили в 2022 году.
2000: FineReader 5.0
На исходе XX века вышел FineReader 5.0. Этот релиз принципиальным образом отличался от предшествующей четверки, прежде всего за счет модернизированного движка на основе нового протокола обмена данными.

Это позволило пойти еще дальше в повышении точности и качества распознавания данных. Почти 100% результата удавалось достичь еще в версии 4.0, но это касалось только материалов хорошего качества. В этом же релизе программа существенно выросла при распознавании документов низкого качества и документов с достаточно сложной структурой и большим количеством элементов – изображений, таблиц, графических объектов.

Секрет успеха – во внедрении структурно-дифференциального и контурного классификатора. Первый позволил разъединять слитые пары символов (например, rn вместо m) и идентифицировать близкие по начертанию символы. Второй определял общие очертания символа в декоративных шрифтах. Все это позволило программе успешно распознавать подстрочные индексы, простые химические формулы, вертикальный текст и картинки в ячейках таблиц. Важная фича пятого релиза – доступное в офисной версии приложение Formulator, служащее для автоматического заполнения сканированных форм.
Росло и количество распознаваемых языков. В этой версии оно достигло 176. В добавление к лингвистическим системам появились и компьютерные. FineReader 5.0 научился распознавать исходный код на Basic, C/C++, COBOL, Fortran, Java и Pascal.

В ABBYY тогда признавали, что на выпуск версии ушли колоссальные усилия: в общей сложности 80 человеко-лет.
2002: ABBYY FineReader 6.0
Начиная с шестой версии в название продукта официально включено наименование компании – ABBYY FineReader 6.0.

Презентуя релиз, генеральный директор Сергей Андреев отметил, что именно в этой итерации продукт «вплотную приблизился к цели, которую мы ставили перед собой, когда еще только начинали заниматься разработкой OCR-систем: создать программу, которая способна не только точно распознать текст, но и сохранить макет документа при экспорте — шрифты, картинки, таблицы».
Основные изменения коснулись внутреннего устройства программы. Стоит ли говорить, что в очередной раз повысилась точность распознавания? Внедрение новых алгоритмов адаптивной бинаризации и фильтрации текстуры обеспечило повышение точности распознавания документов сложного дизайна. Теперь продукт «считывал» тексты на цветном фоне, а также материалы, разбитые на колонки, написанные цветными шрифтами.
За счет анализа структуры документа удалось добиться ее полного сохранения и точного воспроизведения сложных элементов верстки при распознавании.

В шестом релизе появился широкий пакет инструментов для работы с файлами PDF. Пользователи получили возможность открывать их, распознавать текст, редактировать его и сохранять в нужных форматах с учетом разных шрифтов, уже встроенных в программу. Здесь же стало возможным корректно сохранять оформление в формате HTML. Благодаря поддержке расширения CSS FineReader точно воссоздавал оформление исходного документа при сохранении в HTML: колонки, картинки, шрифты, таблицы.
Перспективная для дальнейшего развития новинка – морфологический поиск. В FineReader 6.0 появилась возможность искать среди всех распознанных страниц пакета те, которые содержат заданное слово или фразу.

Среди других новшеств – поддержка многопроцессорной работы, распознавание штрих-кодов, заполнение форм.

2004: ABBYY FineReader 7.0
При разработке следующей – седьмой – версии, вышедшей в 2004 году, основные усилия компании были направлены на усовершенствование технологии распознавания.

В этот период многие разработчики OCR бились над повышением точности «прочтения» документов со сложной структурой и версткой. Например, где цветной текст напечатан на цветном фоне, под текстом размещены изображения, или же документ отсканирован в режиме низкой контрастности.
В ABBYY FineReader 7.0 точность распознавания, по результатам внутреннего тестирования, увеличилась примерно на 30-35% по сравнению с предыдущей версией.
В рамках этих же испытаний установлено, что точность при сохранении исходного оформления документов выросла на 25%. Этого удалось добиться за счет внедрения нового структурного классификатора и усовершенствованных алгоритмов адаптивной бинаризации и фильтрации структуры. На 45% улучшилась точность распознавания PDF-файлов. В текущей версии FineReader использует для проверки результата распознавания текстовый слой PDF-файла.

С каждым следующим выпуском развивается интеграция продукта с решениями Microsoft Office. Так, «семерка» встраивалась в Microsoft Office Word 2003 и позволяла работать с результатами распознавания непосредственно внутри текстового редактора с помощью привычных инструментов. При этом пользователь мог сравнивать текст с увеличенным изображением оригинала, отображаемым в соседнем окне. Это стало возможным благодаря поддержке формата XML.
Также стал доступен и новый сценарий использования PowerPoint. FineReader 7.0 позволял быстро преобразовать распечатку слайдов презентаций в редактируемый вид и сохранить ее в формате ppt для создания новой презентации.

to be continued...