Компьютер читает

Текст в компьютер мы вводим с помощью клавиатуры. А если нужно ввести журнальную статью, реферат, книгу, наконец? Сомнительное удовольствие перепечатывать сотни страниц. Тем более, что во многих случаях ввести большой текст можно с помощью сканера. Правда, сканер, считывая страницу, создает файл в графическом формате, то есть в виде картинки - набора черных и белых точек. Сканер ничего не знает о буквах, словах, алфавитах и языках - буквы для него неотличимы от рисунков. Он одинаково отсканирует и фотографию из семейного альбома, и текст из журнала. Если вы захотите поменять в таком тексте (в картинке) букву "а" на букву "о", то вам придется это делать в специальном графическом редакторе, стирая и рисуя отдельные точки, составляющие буквы. А вам-то нужен файл в формате текстового редактора. Иными словами, текст, который вы можете быстро и легко исправлять, редактировать, цитировать. "Учат" компьютер читать картинку с текстом (переводить его из одного формата в другой) специальные программы - системы оптического распознавания символов. О том, как они это делают, мы писали несколько лет назад (см. "Наука и жизнь" номер 11, 1993 г.). Но прогресс в компьютерном мире развивается стремительно, и свидетельство тому появление новых и более совершенных программ-"распознавалок". О них рассказывает А. Абраменко - менеджер компании Abbyy. Заметим, что Abbyy - создатель одной из лучших программ распознавания текста. А основы оригинальных методов были заложены еще в студенческих работах нынешних сотрудников компании.

Четкое изображение - меньше ошибок

Представьте себе, как трудно учителю научить ребенка читать, если текст в книжке напечатан нечетко, расплывчато, на каждой букве приходится спотыкаться, выяснять ее. То же самое и с компьютером. Системы оптического распознавания символов - OCR (optical character recognition) - не любят "грязные" тексты. Чем качественнее мы отсканируем для них документ, тем меньше ошибок допустит "ученик". Сделать это на хорошем аппарате несложно. В сканере есть три ручки, с помощью которых можно управлять процессом сканирования. Первая из них - яркость. Если "фотография" получится очень светлой (высокая яркость), то символы на ней в тонких перешейках будут иметь разрывы, и буква "о" превратится в букву "с". А на темной "фотографии" (низкая яркость) соседние буквы склеятся друг с другом, и будет сложно понять, где начинается одна буква и заканчивается другая. В большинстве систем OCR есть модуль автоматического подбора яркости, но, если вы не удовлетворены результатом его работы, установите яркость вручную.

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

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

Читаем по слогам

После того как сканер передал изображение в систему OCR, установленную в компьютере, начинается процедура сегментирования. Если документ положен в сканер с наклоном или вообще перевернут вверх ногами, программа его выправляет. Анализируя изображение, система OCR делит его на участки. Одни будут преобразовываться в текст; другие (в которых, например, располагаются картинки) будут оставлены без изменений; третьи участки содержат таблицы, поэтому при их обработке включатся специальные модули. В большинстве систем распознавания возможна как автоматическая сегментация, так и ручная. Допустим, программа ошиблась в анализе структуры документа, выделила таблицу как картинку - вы можете откорректировать результат. Далее разбитый на участки документ поступает на распознавание.

Распознавание - ядро любой системы OCR. От его качественной работы, то есть малого количества допущенных ошибок, зависит время, которое придется потратить на их исправление. Если ошибок будет слишком много, то польза автоматизированного ввода вообще становится сомнительной: проще набрать текст, чем исправлять бесконечные ошибки. Распознавание текста начинается с выделения на изображении (или его части) строк, затем слов и наконец символов. Каждый символ идентифицируется. Система OCR хранит знания о символах в виде эталонов, с которыми сравнивает выделенный объект. Наиболее подходящий эталон и будет соответствовать нашему символу.

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

Обычно система распознавания сохраняет связь между распознанным текстом и исходным изображением. Как только вы становитесь курсором на слове, в другом окне вы видите часть картинки, с которой выделенное слово было распознано. Это очень удобно, так как можно проверять ошибки, не доставая листа из сканера. Результатом работы системы распознавания становится документ в текстовом формате. Вы можете оставить или изменить оформление документа: шрифты, картинки, разбивку на столбцы, таблицы. Затем вы либо сохраняете файл в одном из стандартных форматов, либо экспортируете напрямую в MS Word, MS Excel и в другие программы.

Так выглядят этапы работы системы распознавания. Время, которое вы сейчас потратили на чтение их описания, больше, чем потребуется для их распознавания в ОСR. Сканирование одной страницы длится 15-40 секунд, распознавание - 30 секунд, то есть страница текста вводится в компьютер за одну минуту. Система OCR может работать в пакетном режиме: сначала сканируются все листы, а затем запускается распознавание, которое может работать круглосуточно, без перерывов.

Ищем кошку в темной комнате

Как мы отличаем одну букву от другой, стол от стула, собаку от кошки? Без ответа на этот вопрос невозможно и искусственную систему научить различать объекты. Наблюдая за человеком и животными, ученые выдвинули гипотезу об используемых "живыми системами" принципах распознавания предметов. А затем применили эти принципы при проектировании компьютерных программ. Первыми на этом пути считаются исследования М. Мински и П. Уинстона в Массачусетском технологическом институте в конце 60-х _ начале 70-х годов. В России этими вопросами занимались в НИЦ электронной и вычислительной техники (НИЦЭВТ). В 1977 году группой исследователей под руководством А. Шамиса (ныне сотрудника компании ABBYY) были сформулированы важнейшие принципы распознавания: целостность, целенаправленность и адаптивность.

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

Второй принцип - целенаправленность. Распознавание строится как процесс выдвижения и доказательства или опровержения гипотез. Например, услышав шорох в углу темной комнаты, мы делаем предположение, что это кошка. И пытаемся опровергнуть нашу догадку или подтвердить ее. Мы говорим себе: "Если это кошка, то у нее должны быть голова кошки, лапы кошки, кошачий хвост и она должна мяукать". Когда мы разглядим в темноте все перечисленные части и удостоверимся, что они соответствуют нашим представлениям о кошке, мы "распознаем" кошку. Таким образом, мы не просто наблюдали объект, а вначале выдвинули гипотезу о том, что он собой представляет, и начали целенаправленно искать черты, присущие этому объекту.

Такова природа процесса распознавания, которое, по сути, не что иное, как классификация. В систему заложены описания эталонов (или классов), и исследуемый объект соотносится с одним из них. Система не может распознать объект вообще, она только может сказать, относится ли он к одному из известных ей классов. И если да, то к какому именно. И третий принцип - адаптивность, способность системы самообучаться. Когда человек разбирает непонятное слово, написанное незнакомым почерком, он находит похожие закорючки в других, уже прочитанных словах и запоминает, как автор письма пишет, например, букву "д". Затем возвращается к вызвавшему затруднение слову и читает его, обладая уже новыми знаниями о написании конкретных букв данным почерком. Эти три принципа делают живые организмы идеальными системами распознавания, способными идентифицировать сотни объектов за считанные доли секунды. И если использовать те же принципы при построении искусственных систем, можно рассчитывать на высокие результаты. Разница в том, что человеческий мозг совершает эту работу с помощью сложных биохимических реакций, а компьютер - путем вычислений.

Прочтите рукопись мою

Распознавание печатных текстов компьютером - область, сегодня достаточно хорошо исследованная. Существующие системы обладают высокой точностью распознавания: более 99,9% на текстах хорошего и среднего качества печати, и спор между компьютерными программами идет за сотые доли процентов. Что же касается распознавания рукописного текста, то качественный рывок еще впереди. Хотя уже есть несколько отработанных направлений. Во-первых, это системы распознавания форм, заполненных печатными буквами от руки (анкеты, бюллетени, накладные, чеки и т. д.), которые применяются во многих областях. Например, всем уже хорошо известны машиночитаемые формы налоговых деклараций и анкеты Пенсионного фонда.

Во-вторых, распознавание раздельных рукописных букв, написанных особым пером на специальном экране (touch-screen), широко применяется в карманных компьютерах и электронных записных книжках. Эти распознающие системы показывают достаточно высокую точность, приближающуюся к точности клавиатуры.

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

Почему непросто распознать слитный текст? Дело в том, что в этой задаче на распознавание приходится лишь 30%, а остальные 70% лежат в области понимания компьютером смысла документа. Приведем простой пример. Допустим, вы изучили буквы бразильского языка, знаете правила составления слов и их произношения. Теперь включите радио и попробуйте за бразильским диктором записать текст. В лучшем случае вам удастся "распознать" не более 30%. Это происходит потому, что вы не понимаете смысла того, что говорит диктор. Решить задачу распознавания слитного текста с высоким результатом можно будет, только когда компьютер, сможет понимать смысл предлагаемого текста. Нужно создать модель представления о мире и заложить ее в компьютер. И тогда можно будет выпускать качественно новые системы распознавания рукописных слитных текстов, а также решать близкие задачи: распознавание звучащей речи, машинный перевод.

А. АБРАМЕНКО.


Как компьютер, вернее, программа отличает одну букву от другой? Традиционно существует три метода распознавания (или типа классификаторов): шаблонные, признаковые и структурные. Шаблонные классификаторы преобразуют исходное изображение символа в набор точек и затем накладывают его на шаблоны, имеющиеся в базе системы. Шаблон, имеющий меньше всего отличий, и будет искомым. У этих систем достаточно высокая точность распознавания дефектных символов (склеенных или разорванных). Недостаток - невозможность распознать шрифт, хоть немного отличающийся от заложенного в систему (размером, наклоном или начертанием). Признаковые классификаторы по каждому символу вычисляют набор чисел (признаков). И сравнивают эти наборы. Но так как набор признаков никогда полностью не соответствует объекту, то заведомо часть информации о символе будет теряться. Структурные классификаторы хранят информацию о топологии символа. Например, буква "о" описывается как непрерывная кривая, не имеющая пересечений. Этот способ тоже имеет свои недостатки: как только вы представите "разорванную" из-за дефектов печати букву "о", она уже не подойдет под свое описание и может быть распознана как "с" или "п". Программисты российской компании ABBYY разработали оригинальные технологии, улучшающие качество распознавания. Идея нового способа хранения знаний о букве - структурно-пятенный эталон - впервые появилась на свет в студенческих работах Д. Яна, К. Анисимовича и П. Сенаторова.

Он лишен недостатков, присущих шаблонным и структурным системам (высокая чувствительность к начертаниям и дефектам символов), и объединяет их достоинства. В структурно-пятенном эталоне изображение представляется в виде пятен, связанных парными отношениями. Наглядно это можно представить себе в виде теннисных шаров, нанизанных на резиновый жгут. Шары могут сдвигаться относительно друг друга. Такую связку подвижных шаров можно "натянуть" на различные изображения одного символа, и система становится менее зависимой от шрифтов и дефектов. Технология распознавания с помощью структурно-пятенных эталонов получила название "фонтанное преобразование" (от английского font - шрифт).

Система оптического распознавания текста "FineReader Рукопись", разработанная российской компанией ABBYY, применяется для обработки Анкеты Пенсионного фонда и налоговых деклараций. Точность распознавания (прочтения) - до 99,9%.


http://ocrai.narod.ru E-Mail: ocrai@narod.ru последнее обновление: 26;11;2000



Hosted by uCoz