Статья на Springer Link
Данный репозиторий содержит приложение для распознавания старопечатных книг, в которых используется церковнославянский шрифт. С помощью него можно получить текст из изображения страницы в редактируемом формате. Реализация включает в себя предварительную обработку (исправление перекоса, удаление шума и бинаризацию), сегментацию на строки, слова и символы, а также извлечение признаков и классификацию.
В папке nero
находится инструкция для пользователей и архив с собранным приложением. Для работы необходимо скачать этот архив, распаковать его и запустить установку nero_WINDOWS_v1.0_setup.exe
.
В папке notebooks
находится та же реализация сегментации, классификации и распознавания в виде .ipynb
файлов с примерами работы.
В качестве исходных данных взята коллекция болгарских старопечатных книг и периодических изданий 1806-1878 гг. национальной библиотеки Святых Кирилла и Мефодия. Для обучения и тестирования подготовлено два набора данных: с символами церковнославянского алфавита и надстрочными знаками. Первый набор содержит 39 символов и 3 знака препинания (точка, запятая и тире):
Для каждого класса не менее 200 примеров, все изображения приведены к размеру 28х28 пикселей. Общее количество - 9255. Заглавные буквы находятся в одном классе со строчными. Второй набор состоит из 10 классов:
Для каждого символа представлено не менее 150 примеров, общее количество - 1770, размер 16х16 пикселей.
Данные хранятся в формате .csv
в папке datasets
.
Оба датасета подготовлены из изображений страниц двенадцати книг («Христоития или Благонравие» 1837 г, «Кратко начертание на всеобщата история» 1836 г, «Слово, изказаное заради умирание» 1814 г и др.)
Для нейронных сетей, проводящих классификацию извлеченных символов церковнославянского алфавита, достигнута точность (accuracy) в 99,13% для первого датасета и 98,58% для второго.
Для оценки результатов работы алгоритма было отобрано 30 фрагментов страниц из различных книг, затем найдено отношение количества верно расставленных пробелов и верно распознанных букв и знаков к общему количеству символов. Полученный результат варьируется от 89% до 99% точности.