11 лет назад 10 мая 2008 в 17:59 60

Не только FineReader

Автор: Сергей Чернояров

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

НОВОЕ – ХОРОШО ЗАБЫТОЕ СТАРОЕ

За решение этой проблемы брались многие производители программного обеспечения, в том числе такие именитые, как Microsoft или ABBYY, и теперь на рынке представлен целый ряд продуктов – больших, профессиональных пакетов с богатыми возможностями, множеством функций и настроек. Такие пакеты удобны, обеспечивают приемлемое качество выходного текста, однако у них есть и недостатки: большие требования к оперативной памяти, пространству на жестком диске, некоторая неповоротливость и, наконец, весьма ощутимая цена. Но стоит ли их покупать, если большинством их возможностей вы никогда не воспользуетесь, а всю необходимую функциональность можно получить бесплатно?

Достойной альтернативой громоздким пакетам служит программа CuneiForm (www.cuneiform.ru). Лет десять назад она занимала ведущие позиции на рынке, ею даже комплектовались поставляемые в Россию сканеры HP, Mustek и других фирм, однако потом ее обошел ABBYY FineReader, и о программе почти забыли.

История соперничества этих приложений напоминает анекдот: руководитель проекта CuneiForm академик Арлазаров занимался распознаванием образов с конца семидесятых годов, FineReader же был написан двумя безвестными студентами-самоучками и очень быстро вытеснил CuneiForm с рынка, поскольку по всем статьям превосходил конкурента. Забвению программы способствовала и непомерная по отечественным меркам стоимость – за предыдущую версию на сайте разработчика (www.cgntv.com/products/price.htm) до сих пор просят от 3870 до 7470 рублей.

Недавно разработчики решили оживить проект, и 12 декабря 2007 года передали исходный код CuneiForm сообществу Open Source. Новая, двенадцатая версия программы позволяет сканировать документы с гибкой настройкой качества, поддерживает более двадцати языков распознавания и даже понимает смешанные русско-английские тексты.

ЗАПУСК И НАСТРОЙКА

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

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

Перед сканированием документа следует установить параметры программы, которые у CuneiForm довольно гибкие.

На вкладке “Сканирование” можно изменять разрешение, яркость, контрастность и прочее. Для документов, распечатанных на струйном или лазерном принтере, достаточно указать здесь разрешение в 300 dpi, при сканировании же книг с мелким шрифтом или газет на серой бумаге стоит поднять это значение до 600 dpi, иначе ошибок будет слишком много.

Диалог настроек можно вызывать автоматически перед каждым сканированием, однако в этот момент у него проявляется один недостаток – невозможность предварительного сканирования и, как следствие, невозможность выделить область сканирования мышью. Конечно, можно указать границы области вручную, но это довольно неудобно, поэтому приходится установкой флажка “Показывать TWAIN диалог” вызывать стандартный диалог сканирования, в котором этой проблемы нет. Однако если это сделать, настройки программы игнорируются, и сканирование проходит с параметрами, заданными в TWAIN диалоге. Еще один недостаток состоит в том, что настройки не всегда запоминаются, и их приходится устанавливать заново.

На вкладке “Разметка и распознавание” помимо прочих заслуживают упоминания опции “Матричный принтер” и “Факс” – их использование существенно повышает качество распознавания текста, отпечатанного этими устройствами.

Кроме того, здесь можно выбрать язык текста. По умолчанию программа устанавливает синтетический “Русско-английский”, удобный при распознавании двуязычных документов, однако если ваш текст написан только на одном из них – лучше выбрать конкретный язык, это существенно повысит качество.

Вкладка “Форматирование” позволяет установить шрифты, начертание и прочие параметры распознанного текста.

СКАНИРОВАНИЕ И РАСПОЗНАВАНИЕ

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

Как и в ABBYY FineReader, в CuneiForm имеется стадия “Разметка”, которая в первом слита со стадией распознавания и запускается автоматически. Здесь же разметку изображения нужно запустить вручную, после чего скорректировать блоки, перетаскивая их границы мышью.

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

При обработке книг обычно сканируют не отдельные страницы, а целый разворот за раз. ABBYY FineReader может автоматически разделить такой разворот на две страницы, а вот в CuneiForm такая возможность отсутствует. Кроме того, программа не может автоматически развернуть отсканированное изображение на 90 градусов, поэтому перед запуском авторазметки приходится делать это самостоятельно.

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

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

Распознавание происходит достаточно быстро. Если для чистоты эксперимента отключить словарный контроль, то CuneiForm распознает тысячу символов за 0,92 с, что на сорок процентов быстрее Fine Reader, у которого на то же самое уходит 1,29 с.

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

РЕЗУЛЬТАТЫ ТЕСТА

Как показало сравнительное тестирование, результаты распознавания у CuneiForm несколько хуже, чем у FineReader. В зависимости от разрешения превосходство FineReader различно, в среднем же он делает в три с половиной раза меньше ошибок, чем CuneiForm. Однако стоит отметить, что на высоких разрешениях число ошибок у обеих программ измеряется единицами.

Результаты распознавания можно улучшить, если преобразовать изображение в черно-белое, увеличить яркость и контрастность. Увеличение разрешения тоже помогает, однако оно может дать и противоположный эффект: неровности бумаги, помарки, “призраки” букв, напечатанных на обратной стороне листа, и прочие артефакты могут быть ошибочно приняты за символы, и CuneiForm поместит большое их количество в выходной текст, что осложнит его обработку.

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

Отчасти этот недостаток компенсируется наличием модуля пакетного распознавания, выполненного в форме отдельного приложения – Batch. Поскольку сам Batch сканировать документы не может, ему следует предоставить уже готовые изображения, которые можно отсканировать с помощью любого бесплатного просмотрщика изображений, например IrfanView (www.irfanview.com).

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

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

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

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

После завершения распознавания закройте Batch и создайте пустой текстовый файл в редакторе “Блокнот”. Впишите в файл строку вида “copy *.txt out.txt”, где out.txt – имя файла, в который следует поместить текст из всех остальных текстовых файлов. Сохраните файл с расширением bat или cmd и поместите его в каталог с распознанными текстами. Запустите его на выполнение двойным щелчком мыши – и через несколько мгновений в каталоге возникнет файл out.txt, содержащий текст из всех других текстовых файлов в каталоге – осталось только скопировать его в текстовый процессор, исправить ошибки и отформатировать.

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

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

Установка под Windows Vista

При установке под Windows Vista инсталлятор может выдать сообщение о неподходящей версии операционной системы, после чего откажется устанавливать программу. Однако на самом деле CuneiForm отлично работает под Vista – проблема кроется в самом инсталляторе.

Корректную установку можно провести следующим образом:

1. Когда появится сообщение об ошибке, перед его закрытием необходимо перейти в каталог C:\Users\Name\AppData\Local\Temp (где Name – ваше имя пользователя), найти папку, в которую распаковались файлы установки (обычно это длинное нечитаемое имя из тридцати шести символов), и скопировать их в другое место.

2. Открыть скопированный файл CuneiForm v12 Master.msi с помощью редактора Orca (up.spbland.ru/files/07121512) и удалить строку в разделе Launch Condition.

После сохранения файл можно запускать на установку, которая на этот раз проходит корректно.

Устранение ошибки TWAIN

При работе с некоторыми моделями сканеров может возникать ошибка передачи данных со сканера. Для ее устранения следует перейти в каталог C:\Windows и отредактировать файл face.ini, заменив строку TWAIN_TransferMode=memory-buffered на TWAIN_TransferMode=memory-native.

Тестовая система и методика тестирования

Сканер: Mustek 1200 UB+

Версия CuneiForm: 12

Версия FineReader: 6.0

ОС: Windows Vista Ultimate

Для тестирования использовалось два вида документов: книга с мелким шрифтом и документ, распечатанный на лазерном принтере. Участок текста сканировался в FineReader и CuneiForm 12, после чего количество ошибок распознавания пересчитывалось на тысячу символов. Всего было проделано три серии тестов с разрешением 150, 300 и 600 dpi.

Распознавание текста программами CuneiForm и Abbyy FineReader

Ошибок на 1000 символов
Исходный материал CuneiForm Abbyy FineReader
150 dpi 300 dpi 600 dpi 150 dpi 300 dpi 600 dpi
Распечатка на лазерном принтере 10,84 0,63 0,21 2,92 0,00 0,00
Книжный лист 21,89 8,27 4,38 5,84 3,40 0,97