Обновить

«Манускрипт. Распознать нельзя забыть: как мы научили нейросеть читать рукописи XIX века»

Уровень сложностиСредний
Время на прочтение6 мин
Просмотры5.4K
Всего голосов 22: ↑22 и ↓0+27
Комментарии34

Комментарии 34

Когда нейросеть учится читать рукописи XIX века, я вдруг понял, что мой почерк в блокноте XXI века тоже под угрозой распознавания. Жду, когда Manuscript OCR дойдёт до моих школьных конспектов — там тоже полно странных символов!

Ваши школьные конспекты — идеальный стресс-тест для модели! Если выдержим это, с рукописями XIX века точно справимся)

А почерк врача распознавать ваша нейросеть умеет ?

Пока на врачебный почерк нейросеть смотрит с уважением, но с осторожностью)
Мы выложили демо на https://manuscript.sfu-kras.ru/ — там можно потестировать промежуточную версию. Основной корпус — дореформенные рукописи, поэтому медтексты пока сложны. Но к декабрю выпустим стабильную версию библиотеки, и дообучить под медицину (в том числе с синтетикой) — не проблема.

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

Если посимвольно примерно половину символов инструмент распознает, то пословно - полный провал, конечно. Даже в печатном тексте, не говоря о рукописном.

Вот пример: метрическая книга начала 20 века. Почерк весьма читаемый, разборчивый. Результат - плачевный.

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

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

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

Я могу поделиться с вами ресурсом на тестирование вашего решения. Есть доступ к архивам, есть целевые сканы, распознавание которых востребовано, есть и тестировщики, которые смогут это проверять.

Более того, я прекрасно представляю как это всё можно монетизировать. Очередь на распознавание метрических книг, исповедных росписей и прочих генеалогических документов - стоит до горизонта.

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

Дайте доступ волонтерам - они ручками расшифруют и спасибо скажут :-)

Вы недооцениваете размеры архивов. Проекты по их индексации имеются, но нынешними темпами на это потребуются столетия.

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

Вручную разбирать абсолютно всё никто не будут, все ищут по большей части только конкретно их интересующие вещи, а это очень узкий пласт.

Волонтёры скажут спасибо даже если будут просто сканы доступны без распознавания, даже если не за бесплатно будет возможность сканировать по требованию как в библиотеках. Сейчас с этим сложности. И вдвойне сложности если это еще и соседние страны бывшие в СССР.

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

В этой очереди только люди, которые не могут платить, и архивы, которые не могут платить.

>> В этой очереди только люди, которые не могут платить

Не хочу вас разочаровывать, но такое явление, как "выкуп" сканов из архивов весьма развито. Буквально недавно лично участвовал в сборе, более чем на 50 000 рублей за одно конкретное дело.

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

Это частный случай, казус. Конечно, иногда такое бывает. Однако такой случай — очень необычный.

Если детекция мест, где на листе есть текст и графика, работает, то интересен такой кейс - перенос таких областей 1-в-1 в те же места просто на новый чистый лист и сохранение его так же картинкой.

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

Anno OCR умеет сохранять результаты в PDF/DJVU? А области с написанием не "слева направо"? Вообще это выглядит ровно как то, что мне нужно - ручная расчшифровка рукописей!

Ну и сорцы бы Anno OCR. По файлу вижу что там Python + Qt :-)

Да, мы применяли собственный софт — просто в моменте так было быстрее. По функциональности он близок к Label Studio, но у нас была возможность сразу «на коленке» дорабатывать интерфейс и добавлять нужные фичи. Например, мы прикрутили автокоррекцию через сайт «Славеница», чтобы ускорить расшифровку.

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

Ну я лично сразу буду смотреть как это прикрутить к DJVU :-) Потому что хочу поиск, да еще и в оффлайне. При этом полное распознавание не так важно: нужно очень точно распознавать названия деревень, например и иметь возможность искать по этим данным

Для такого рукописного текста не будет особо разницы что DJVU что PDF, сегментатору и там и там будет тяжко. А как контейнер для картинок - еще вопрос что использовать. у PDF есть как минимум Jpeg2000 для сжатия (если вы не планируете к чёрно-белому приводить, то душим растр разными способами и PDF с jpeg2k должен быть норм)

При наличии координат блоков текста/слов/букв, внедрить это что в DjVu что в PDF не должно составлять особого труда.

С DjVu конечно попроще, и там выбор есть использовать djvused или djvutoy

Нагенерировать файлики и просто внедрить

Формат там простенький

пришлось скриншотом, потому что разметку xml в спойлере хабр захотел скушать

тем же DjVuToy, кстати, можно и в PDF перегнать, получив результат как был в DjVu и с +/- таким же весом. Все же он более распространён и часто людям проще именно с ним.

к сожалению работает плоховато

Спасибо за интерес к нашему проекту! Да, сейчас на сайте размещена не самая свежая демонстрационная версия, ей уже несколько месяцев. По вашему примеру видно, что детекция работает довольно точно, и часть слов распознаётся корректно — но, конечно, мы видим, где нужно улучшать.

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

Я ещё не пробовал, очень интересуют такие проекты, пробовал Транскрибус, нейросетями - если скормить нейросетке Яндекса текст, то он наводняет его восприемниками и ревизиями - понятно как модель обучена. Если смогу поставить вашу прогу, то напишу сюда. Я тупой и не факт что справлюсь.

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

Буду признателен если отметите, есть живой интерес. Еще была статья про Яндекс архивы, там под моим комментарием с пожеланием когда-нибудь увидеть пусть платный, но публичный API, было некоторое количество заинтересованных хабровчан.

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

Увидеть бы отдельный сервис для распознавания рукописного ввода от Яндекса. Но его в доступе нет. Интересно почему?

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

А метрические книги распознавать пробовали ?

Да, пробовали — но с табличными документами всё действительно сложнее. Там важно не просто распознать слова, а правильно определить, к какой строке или колонке они относятся. А как вы знаете, в метрических книгах строки часто «гуляют». Сейчас система уже умеет делить текст на блоки, и мы постепенно доводим этот механизм до ума. Думаю, к декабрю получится добиться стабильного распознавания и таких форматов.

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

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

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

Этот проект в первую очередь ориентирован на рукописи XIX века — мы проверяем, насколько наши подходы жизнеспособны на сложных данных. Но мы тестировали и современные тексты, в том числе советского периода — базово они распознаются неплохо. В будущем библиотеку можно будет без проблем дообучить под нужную эпоху при наличии своих данных.

К декабрю планируем выпустить более стабильную версию и обязательно отметим всех, кто интересовался, здесь в комментариях. Пока можно посмотреть демо на сайте — https://manuscript.sfu-kras.ru/ — это версия трёхмесячной давности, но она уже неплохо показывает детекцию.

жизнеспособны на сложных данных

Советские газеты являются сложными данными по следующим признакам:

  • разрешение 90 dpi, то есть буквы мелкие, чтобы не воровали контент,

  • водяной знак сканирующей организации (обычно архив), чтобы не воровали контент,

  • контраст небольшой, потому что серая бумага.

В результате обычное распознавание через OCR программы не работает. Поэтому и возникает вопрос к вашему чудесному инструменту.

Работы  волонтёрского проекта fromThePage вы брали как есть? Там же размер картинок урезаный сильно (580x780). Толку от такого материала мало.

Да, сканы губернаторских отчётов Енисейской губернии мы действительно брали с FromThePage.

Похоже, вы имеете в виду уменьшенные изображения предпросмотра на сайте — там действительно всё сжимается до примерно 580×780.

Но если кликнуть на саму страницу отчёта, откроется полноразмерный скан. В большинстве случаев это файлы с разрешением от 1 до 2 тысяч пикселей по длинной стороне, вполне пригодные для обучения моделей.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации