Как изучать те еврейские общины, от которых осталось лишь заброшенное кладбище да пара метрических книг в провинциальных архивах?

Наиболее полно исследовать то, что есть.

Описание кладбища — кропотливая и долгая ручная работа, состоящая из многих этапов: сбор материала в поле (фотографии надгробий, тексты эпитафий, карта кладбища), последующая обработка, сверка, каталогизация и анализ.

А что будет, если попробовать сделать это с помощью технологий компьютерного зрения?

Наши данные
Коллекция Давида Ноевича Гобермана из архива центра «Петербургская иудаика» Европейского университета (1950 — 1960-е гг.)

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

Материалы экспедиций центра «Сэфер» (2018−2019 гг.)

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


Карта мест, где была собрана коллекция фотографий:
Ограничения данных
и их влияние на качество распознавания
Может быть несколько надгробий

Номера надгробий

Надгробие может быть изображено не полностью
Мы не считаем полноценным для расшифровки текст, в котором меньше одной строки
Фотографии могут быть слишком размытыми/яркими/темными

Надгробие может быть наклонено или сфотографировано под углом
Отклонение текста от горизонтальной линии даже на 5° ухудшает распознавание
Нечитаемый текст эпитафии

Надгробий может не быть

Наивный Разведывательный подход
С чего мы начинали работу над проектом
1
Познакомились с системами оптического распознавания текстов (OCR)
Мы начали изучать принципы работы сервисов оптического распознавания символов от компаний Google и Yandex.
2
Протестировали распознавание
Из изображений, для которых уже есть
расшифрованный текст, сделали выборку из 100 фотографий, запустили OCR и подсчитали метрики сходства с эталонным текстом. Из 100 картинок выборки хорошие результаты получились только для 12.
3
Сделали выводы
Сформировали список причин, по которым могут ухудшаться результаты распознавания текста. Например, наклон текста, лишние предметы в кадре, способ нанесения текста на надгробие. Составили план работы с изображениями.
Содержание проекта
Классификация
Распознавание текста
эпитафии
Задачи
Инструменты
Системы оптического распознавания
Фильтры
Сегментация
Яндекс.Толока
Нейронная сеть
Классификация
Распознавание текста эпитафии
Задачи
Яндекс.Толока
Инструменты
Системы оптического распознавания
Фильтры
Сегментация
Нейронная сеть
Яндекс.Толока
Нейронные сети
Системы оптического распознавания
Яндекс.Толока: как просить людей помочь

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

Мы разместили в Толоке два вида заданий. В первом необходимо было проверить фотографии на соответствие следующим требованиям:

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

С помощью Яндекс. Толоки мы получили два набора изображений:

  • прошедшие классификацию
  • прошедшие классификацию и сегментацию.
Эти данные легли в основу обучающей и тренировочной выборки для двух нейронных сетей — по классификации и сегментации фотографий соотвественно.

Задача 1: Классификация
Мы использовали стандартный классификатор библиотеки Tensorflow. Точность классификации получалась ~ 0,6 после порядка 30 эпох. Эпоха — одна итерация в процессе обучения, включающая предъявление всех примеров из обучающего множества и проверку качества обучения на контрольном множестве.
Мы также попробовали использовать одну из новейших архитектур нейронных сетей EfficientNet. Результаты оказались неудовлетворительными: для тонкой настройки сети набор изображений слишком неоднородный.


Задача 2: Сегментация
Для этой задачи мы использовали нейронную сеть UNet c базовыми и ручными настройками. Хорошего результата удалось достичь с базовыми.
Для обучения нейросети использовались 1120 изображений — все доступные нам фотографии.
Точность классификации по результатам обучения составила 93%.
Это достойный результат, который позволяет рассчитывать на достаточно хорошее распознавание текстов надгробий.

Google Cloud Vision API и Yandex Vision
Для распознавания текста в сервисах OCR используется языковая модель, обученная на определенном корпусе текстов. Модель выбирается автоматически или указывается в конфигурации.

Сервис выделяет найденный текст на изображении и группирует его по уровням: слова в строки, строки в блоки, блоки в страницы.
В ответе указывается достоверность (confidence) распознавания символов — уверенность сервиса в результате. Например, значение «confidence: 0.9 412 244 558» означает, что с вероятностью в 94% текст распознан корректно.

Плохо распознаются:
— рукописный текст и художественные шрифты;

— вертикальный текст;
— произвольный набор букв и чисел (автомобильные номера);

— когда каждый символ пишется в отдельной ячейке (анкеты);

- короткие слова и числа в ячейках таблицы;

- очень крупный текст.

Первые «разведывательные» результаты подсчета метрик оказались неудовлетворительными — мы начали думать, что с этим делать.
Фильтры
Чтобы улучшить результаты распознавания сервисами OCR, мы пробовали применять фильтры, повышающие качество фотографий или «читаемость» символов и стандартные фильтры преобразований.
Не все из них давали положительные результаты. Более того, часто в ответах Яндекса оказывались слова вроде
«цена», «уборка», «недорого».
Оценка эффективности нашей работы
Результаты
Мы пришли к выводу, что для применения и качественной настройки UNet нужно отдельно классифицировать изображения Сэфера и Гобермана.
Рассчитанные метрики представлены для изображений, размеченных толокерами. В дальнейшем можно обучать нейросеть на более качественном датасете, с изображениями, отобранными в соответствии с нашими рекомендациями, основанными на личном опыте.


Предсказанные маски натренированной сети UNet
(Accuracy = 0.9, Loss = 0.23)
Метрики
Как без знания языка понять, насколько похожи два текста?
Для этого существуют различные метрики определения сходства текста.

Для измерения качества распознавания и соответствия текста эталонному мы использовали три методики:
расстояние Левенштайна, меру схожести Жаккара и расстояние Хэмминга. Для презентации мы взяли традиционно используемую метрику — расстояние Левенштайна.

Расстояние Левенштайна
(или «редакционное расстояние», en. Levenshtein ratio) — мера, которая показывает сколько действий (вставка, удаление или замена одного символа другим) по редактированию одной строки нужно совершить, чтобы получить другую. Чем больше этот показатель, тем более корректно распознан текст.
Что получилось
1. Разобрались с краудсорсинговой платформой Яндекс. Толока и ускорили процесс классификации и сегментации нужных областей на фотографиях надгробий.

2. Сформировали требования к качеству изображений в датасете.

3. Определили, что значимое улучшение результатов распознавания показывают фильтры Tesseract Deskew и CLACHE (большое число опробованных других — нет).

4. Выявили условия улучшения качества работы
нейронной сети UNet.
Что можно сделать дальше
1. Нужна отдельная оптическая модель для классификации и сегментации отдельных символов текстов.

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

3. Язык эпитафий отличается от языка, на котором обучаются модели в универсальных OCR. Нужно адаптировать языковую модель к текстам, которые встречаются на надгробиях.

4. Обучать нейросеть на более качественной коллекции изображений, отобранной в соответствии с нашими рекомендациями.




Команда проекта
Алексей Артамонов
Куратор проекта, Яндекс
Екатерина Карасёва
Куратор проекта, ЕУСПб
Анна Булина
Консультант сервиса Яндекс.Толока
Дмитрий Серебренников
Менеджер проекта
Екатерина Алиева
Кира Коваленко
Татьяна Ткачёва
Айгуль Ашрафуллина
Ольга Савельева
Екатерина Тюрина
Юлия Аматуни

Проект «Еврейские надгробия» — один из четырех учебных групповых проектов
программы «Прикладной анализ данных» (ПАНДАН) Европейского университета совместно с Яндекс.


https://pandan.eusp.org/
Made on
Tilda