Школа 2009
Школа
Организационный комитет
Программный комитет
Направления работы школы
Основные даты
Регистрация и заявка
Конкурс
Конкурсные работы
Организационный взнос
Программа школы
Материалы школы
Участники школы
Организационная информация
Культурная программа
Фотогалерея





Забыли пароль?
Ещё не зарегистрированы? Регистрация
Сейчас на сайте находятся:
1 гость
RSS-ленты новостей
rss20.gif

Портал был создан при финансовой поддержке Российского гуманитарного научного фонда (РГНФ), проект № 07-04-12140в.

(c) "Информационные технологии и письменное наследие", 2008-2020

Автоматическая классификация шрифта старопечатных текстов PDF Печать E-mail
Автор(ы): Владимир Сергеевич Южиков   
25.09.2009 г.
 
The article describes an approach of font classification for old-printed texts and manuscripts. This is necessary if we have an unknown antique book and want to determine the printing press, place and time of issue, etc. The proposed approach is based on partitioning the page into rows and letters, and then makes a consistent comparison with the available font samples. Also the technique for the automatic font samples generating is described.

Введение

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

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

·        Каждый образец шрифта должен иметь метаинформацию, такую как: типография, город/страна, год издания и т.д.

·        Должна быть возможность легкого занесения в базу данных нового образца шрифта.

·        Выдача результатов должна быть ранжированной по каждому пункту метаинформации. Например:

o       Типография - «Краков» (87%), «Кирилл и Мефодий» (75%);

o       Год издания - 1764 (95%), 1795 (84%); ...

·        Классификация шрифта не должна занимать много времени.

Обзор литературы

Описываемая проблема относится к классу задач распознавания образов, а именно - OFR (Optical Font Recognition). Эта область сейчас активно развивается и находит свое применение во многих коммерческих продуктах, таких как FineReader, CunieForm и многих других. К сожалению, классификатор шрифтов входящий в состав этих систем, не подходит для решения нашей задачи, т.к. «заточен» под весьма узкую область - подобрать наиболее подходящую гарнитуру и стиль начертания из очень ограниченного набора. Обычно это: моноширинный шрифт (Courier), шрифт с засечками (Times New Roman), шрифт без засечек (Arial), плюс их подмножества: bold и italic. Для задачи распознавания текстов (OCR) большего и не требуется, потому что подавляющее число современных документов используют вышеперечисленные шрифты.

Обратимся к литературе - в публикациях встречаются два основных подхода к распознаванию шрифта:

Выделение глобальных признаков из текстовых блоков, таких как слова, строки и их дальнейший анализ. Это позволяет определять стиль начертания шрифта (bold, italic), его размер, наличие засечек. Как правило, такой подход не требует базы образцов, может определять несколько основных классов шрифтов и не зависит от языка (в большинстве случаев), что делает его оптимальным для использования в системах распознавания текста OCR.

К примеру, в работе Shi, Pavlidis [1] для распознавания шрифта используется ряд глобальных для всей страницы признаков, таких как: гистограмма распределения длин слов (в пикселях), величина межстрочных, межбуквенных интервалов. Yong Zhu [2] предлагает распознавание шрифта, основанное на  анализе текстуры изображения всей страницы. Для извлечения этих признаков используется многоканальный фильтр Габора.

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

В работе Cooperman'а [3] исследуются оценки свойств шрифта для систем OCR. В качестве детекторов этих свойств используются локальные признаки, такие как: наличие засечек, плотность и т.д. В работе Zramdini, Ingold [4] предлагается статистический подход для решения задачи классификации шрифта, основанный на выделении локальных признаков. Схожий метод используется и в работе [5]

Предварительная обработка

Старопечатный и, в особенности, старинный рукопечатный (hand-writing) текст имеет ряд особенностей, которые не позволяют напрямую применить методы, предлагаемые в публикациях по OFR. В частности, межбуквенные и межстрочные расстояния варьируются в достаточно широких пределах даже на одной странице. Кроме того, текст имеет большое количество важных для классификации шрифта диакртических элементов, на страницах часто есть рисунки, пометки. Также изображение содержит дефекты, вызванные длительным хранением, которые можно условно разделить на 2 типа. К первому отнесем дефекты самих страниц книги, появившиеся в результате долгого хранения, действия влажности,  температуры, поражения грибком отдельных страниц, выцветание букв, неравномерный цвет бумаги, крупные и мелкие пятна и т.д. Ко второму типу можно отнести дефекты, возникшие при оцифровке, это: неравномерная яркость и контрастность изображения (часто проявляется при съемке цифровым фотоаппаратом), просвечивание надписей с обратной стороны листа, цифровой шум. Пример такого изображения показан на Рисунке 1.

yuzhikov_kazan_fig1.jpg

Рисунок 1. Фрагмент старинного текста (Синодик Зилантова монастыря, Национальный архив Республики Татарстан)

 

Все эти особенности могут помешать процессу классификации шрифта. В связи с этим, изображение необходимо предварительно обработать и подготовить. Для этого воспользуемся алгоритмами, описанными в [6] - в результате их работы имеем бинарное изображение (оно состоит только из черных и белых пикселей), очищенное от шумов и помех, а также повернутое на необходимый угол, если страница при оцифровке была не параллельна краю сканирующего устройства. Далее с помощью метода, предложенного в [7], выделяем текстовый блок. Небольшие неточности в определении границ текста, которые возникают на сложных изображениях, можно не принимать во внимание, потому что наша цель - это не распознавание текста, поэтому потеря некоторых букв на границах практически не повлияет на конечный результат. Итог предварительной обработки показан на Рисунке 2.

yuzhikov_kazan_fig2.jpg     

Рисунок 2. Предварительная обработка изображения

 

Сопоставление шрифта

Обозначим пиксели бинарного изображения как Aij, где i=1..x, j=1..y, где x и y - ширина и высота соответственно. Пиксели вне текстовых блоков примем за белые, т.к. рисунки и картинки для нашей задачи не важны. Обозначим dres как разрешение сканирования в dpi.

Пусть образец шрифта - это набор шаблонов букв, входящих в его состав, в количестве примерно равным числу букв данного алфавита (почему «примерно», будет объяснено ниже). Пиксели шаблона буквы из образца шрифта обозначим как yuzhikov_forml1.jpg, z=1..k, где k - количество шаблонов в образце шрифта, i=1..mz, j=1..nz, где mz и nz - ширина и высота шаблона соответственно (Рисунок 3).

yuzhikov_kazan_fig3.jpg

Рисунок 3. Вид шаблона буквы

 

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

yuzhikov_forml2.jpg,

где i=1, 2,..., mz, j=1, 2,..., nz, yuzhikov_forml3.jpg - среднее значение пикселей в шаблоне (вычисляемое только один раз), yuzhikov_forml4.jpg - среднее значение элементов изображения A в области, совпадающей с текущим положением B, а суммирование ведется по всем парам координат, общим для A и B. Коэффициент корреляции меняется от -1 до 1 и не зависти от изменения масштаба амплитуд A и B.

Итоговая корреляция для образца шрифта будет определяться как:

yuzhikov_forml5.jpg

Образец шрифта (или несколько образцов) с максимальным коэффициентом корреляции будет являться наилучшим соответствием со шрифтом неизвестной страницы.

 

Сегментация изображения на строки и буквы

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

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

yuzhikov_forml6.jpg,  где j=1..y

После этого сгладим полученную проекцию путем усреднения каждого элемента вектора с его соседними значениями. Результат показан на Рисунке 4.

yuzhikov_kazan_fig4.jpg

 

 

 

 

 

  Рисунок 4. Выделение строк

Далее выделяются строки по тем непрерывным полосам, где значение ωj > λline, где λline - некоторый коэффициент. Затем из полученных строк аналогичным образом выделяются отдельные буквы. Для части символов, которые содержат неодносвязные области (например, буква «Ы») могут быть неправильно определены границы. Но это мало влияет на конечный результат, т.к. для классификации шрифта достаточно использования только части букв.

 

Обучение

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

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

Для страниц обучающей выборки делаются этапы предварительной обработки и выделения строк/символов описанные выше. Выделенные буквы запоминаются как шаблоны. Поскольку средняя страница старопечатного текста содержит, как правило, 200-1000 символов, следовательно, столько же мы получим и шаблонов букв. Соответственно, для каждого символа, в среднем, мы имеем 6-30 шаблонов в каждой странице. Такое большое количество нежелательно, поэтому необходимо сократить их число. Это будем делать в два этапа. На первом мы попарно сравниваем все выделенные шаблоны с помощью функции корреляции, использованной выше. Если для очередной пары значение коэффициента меньше λequal, то одну из копий удаляем.

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

 

Заключение

Была описана методика для автоматической классификации шрифта старопечатного текста, предложены алгоритмы и методы для сегментации изображения на строки и символы. Описана методика для автоматического формирования образца шрифта.

Алгоритмы и подходы были реализованы в виде программной системы. На конференции также будет продемонстрирована работа самой системы и полученные практические результаты.

 

Литература

[1] H. Shi and T. Pavlidis, "Font Recognition and Contextual Processing for More Accurate Text Recognition," ICDAR'97, pp. 39-44, Ulm, Germany, Aug. 1997.

[2] Yong Zhu, Font Recognition Based on Global Texture Analysis. IEEE Transactions PAMI. October 2001 (vol. 23 no. 10) pp. 1192-1200.

[3] R. Cooperman, "Producing Good Font Attribute Determination Using Error-Prone Information," SPIE, vol. 3,027, pp. 50-57, 1997.

[4] A. Zramdini and R. Ingold, "Optical Font Recognition Using Typographical Features," IEEE Trans. Pattern Anal. Machine Intell., vol. 20, no. 8, pp.877-882, 1998.

[5] A. Schreyer, P. Suda and G. Maderlechner, "Font Style Detection in Documents Using Textons", Proc. of 3rd IAPR Document Analysis Systems Workshop, Nagano, Japan, 1998.

[6] Соловьев В.Д., Южиков В.С. Автоматизированная система обработки и реставрации изображений старопечатных текстов и рукописей. Вестник КГТУ им. Туполева. Вып.3. - Казань: Из-во КГТУ, 2006. - с.28-30

[7] В.С. Южиков. "Сегментация изображений страниц древних рукописей". Сборник трудов конференции "RCDL-2007". Переславль-Залесский. Том 1, c. 236-240, 2007

[8] Р. Гонсалес. Цифровая обработка изображений. Москва: Техносфера, 2005. - с. 996-997.
 
« Пред.   След. »