Skip to content

Mirckos/OCR_donor_tests

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

Описание задачи

Организация, взаимодействующая с донорами крови, ведет учет активности доноров. Они присылают фото справок из пунктов сдачи крови, а работники организации вручную перепечатывают данные из этих справок в свои таблицы в формате csv. К этим данным относятся: дата сдачи крови, вид донорства (для каких целей сдается кровь), тип донации (безвозмездный или нет). Задача - автоматизировать процесс оцифровки необходимых данных из фотографий и сканов справок. Для проведения этой работы, организация предоставила примеры справок и получаемых из них таблиц (в количестве 16 штук).
Цель
Разработать алгоритм оцифровки данных из таблиц, напечатанных на медицинских справках формы 405-05у.

Алгоритм решения

Подготовка фотографии и распознавание на ней всех символов.

  1. Загрузка фотографии справки
  2. Проверка ее размера. Если размер меньше 800px по ширине, то производится rescale фотографии с сохранением пропорций до 3000px по ширине.
  3. Распознавание всех символов на фото с помощью easyOCR. На выходе получается массив данных, содержащий распознанные строки.

Поиск и выделение полезных данных в виде таблицы.

  1. В распознанном тексте ищутся только такие строки, в которых последовательно расположены записи, соответствующие дате, типу донорства и количеству сданной крови. Проверка на соответствие проводится с помощью регулярных выражений.
  2. Найденные строки сшиваются в таблицу.
  3. Даты обрабатываются таким образом, чтобы из них получить день, месяц и год.
  4. Вид сданной крови и тип донорства также определяются с помощью регулярных выражений.
  5. Из очищенных и отфильтрованных данных (дата, вид крови и тип донации) формируется таблица в формате pd.DataFrame..

Расчет точности работы алгоритма.

  1. Из двух таблиц - предсказанной и реальной вытаскиваются "похожие" записи и склеиваются попарно для дальнейшего расчета метрики. Критерий "похожести" - это одинаковые первые три символа в дате донации.
  2. Все ячейки попарно сравниваются. Сравнение поэлементное: точность для одной ячейки рассчитывается как отношение правильно распознанных символов к общему их числу.
  3. Точность детектирования документа - это усредненная точность по всем ячейкам таблицы.

Итог работы

Описанный алгоритм обеспечил среднюю точность распознавания таблиц (accuracy) - 56%. Половина документов распознана более, чем на 70%.

About

Donor ocr project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published