УДК 004.932

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

Мельников Виталий Андреевич – кандидат экономических наук, доцент кафедры Экономической информатики и информационных технологий Челябинского государственного университета.

Аннотация: Статья представляет архитектуру конвейера для автоматического распознавания и получения информации из документов удостоверяющих личность. Входное изображение должно быть определенного формата и размера, а документ должен занимать не менее 70% площади изображения. Конвейер состоит из нескольких этапов: получение входного изображения, детектирование наличия документа и его типа, определение угла документа и его поворот, сегментация документа и восстановление геометрии, поиск текстовых полей и распознавание найденных текстовых блоков. Для выполнения этих задач используются различные сверточные нейронные сети, такие как MobileNet V2 и YOLO v8.

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

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

Рассмотрим требования к изображению попадающему на конвейер. входное изображение должно быть в формате jpg, png, gif, webp, обязательно обладать 3 цветовыми каналами в формате RGB. Размер изображения желательно не меньше 640х640 пикселей. С меньшим размером картинки качество результата работы конвейера сильно снижается. Документ на изображении должен занимать не менее 70% площади и быть представлен в одном экземпляре на изображении.

На рисунке 1 представлена блок-схема работы конвейера обработки документов.

1

Рисунок 1. Блок-схема работы конвейера обработки документов.

Рассмотрим каждый из пунктов конвейера подробнее:

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

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

  1. Определение угла документа на изображении и его поворот. На этом этапе производится определение, под каким углом находится документ на изображении, а именно 0 градусов, 90 градусов, 180 градусов, 270 градусов. Это является задачей классификации. 

В качестве фича-векторного слоя используется сеть MobileNet V2, обученная классифицировать углы поворота документа на изображении. В случае, если зафиксирован угол отличный от 0, производится поворот всего изображения таким образом, чтобы документ находился горизонтально, и текст читался слева направо. Результат работы данного этапа - изображение, расположенное горизонтально, и читаемый текст.

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

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

Восстановление производится следующим образом: маска, выданная сегментатором, описывает контур найденного документа и может иметь произвольную форму. Это может быть и 5-ти, и 6-тиугольник. Далее граничные точки маски приводятся к форме четырехугольника. А затем путем применения преобразований восстановления перспективы производится восстановление формы до прямоугольника.

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

  1. Поиск текстовых полей в документе. На данном этапе происходит поиск текстовых полей в документе и их классификация. За детекцию текстовых полей отвечает сеть YOLO v8. На вход сети подается изображение документа размером 640х640х3 в формате RGB. Результатом работы данного этапа являются координаты прямоугольников, описывающих текстовые блоки, и классы текстовых блоков. Если текстовых блоков найти не удалось, то сразу переходим к проверкам на подлог документа.
  2. OCR найденных изображений слов. На данном производится распознавание найденных текстовых фрагментов документа. В качестве модели распознавания текста можно использовать любую готовую модель OCR, например EasyOCR, или же подготовить ее самостоятельно.

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

Список литературы

  1. A Gentle Introduction to YOLOv8 [Электронный ресурс] / Mukilan. - Режим доступа: https://wandb.ai/mukilan/wildlife-yolov8/reports/A-Gentle-Introduction-to-YOLOv8--Vmlldzo0MDU5NDA2 (дата обращения: 21.06.2023).
  2. Дообучение EasyOCR [Электронный ресурс] // Habr. - Режим доступа: https://habr.com/ru/articles/691598 (дата обращения: 25.11.2021).
  3. MobileNet: меньше, быстрее, точнее [Электронный ресурс] // Habr. - Режим доступа: https://habr.com/ru/articles/352804 (дата обращения: 01.11.2021).

Интересная статья? Поделись ей с другими: