- PVSM.RU - https://www.pvsm.ru -

Классификация документов: гайд для обхода граблей

Привет. Меня зовут Степанян Альберт (albert.stepanyan@beorg.ru [1]), и я  бегун по граблям  разработчик компании ООО «Биорг» отдела R&D.

Классификация документов: гайд для обхода граблей - 1

Зачем нужна классификация в машинном обучении?

У всех на слуху библейское изречение «отделять зерна от плевел» и его грубый аналог «отделять мух от котлет». В обычной жизни мы также сталкиваемся с необходимостью разделять схожие предметы. В машинном обучении задача разделить объекты по определенным классам, например, «зерна» и «плевелы», называется классификация. Классификация лежит в основе современных технологий искусственного интеллекта и играет ключевую роль в машинном обучении.

Постановка проблемы

Перед коллективом была поставлена задача решить проблему классификации изображений документов.

Надо было добиться высоких значений метрик в разделении документов на 12 классов, таких как:

  • COLLAGE -- несколько документов на одном листе, как правило Паспорт+ВУ, либо Паспорт+СНИЛС

  • DLIC -- водительское удостоверение

  • EPTS -- электронный ПТС

  • IPSS -- загран РФ

  • PSS -- паспорт РФ

  • PTS -- бумажный ПТС

  • QUEST -- анкеты на получение кредита

  • SNILS -- СНИЛС, а также форма АДИ-РЕГ

  • SOPD -- согласие на обработку персональных данных

  • STS -- СТС

  • TREG -- временная регистрация

  • OTHER -- сюда попадают все изображения, не относящиеся ни к какому из вышеперечисленных классов

    Классификация документов: гайд для обхода граблей - 2

Как решали задачу?

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

В классическом подходе правильный выбор признаков, на основе которых строится модель - ключевой фактор успеха в ML. А в нейросетевом подходе - выбор архитектуры.

Но что делать, если ни один из выбранных признаков не дает заметного преимущества? В таких случаях на помощь приходит идея объединить различные признаки — конкатенация, которая позволяет совместить разные типы информации и повысить эффективность обучения.

В нашей работе мы использовали линейный классификатор на основе объединения классических признаков с нейросетевыми признаками.

В качестве классических признаков была выбрана пространственная пирамида (Spatial pyramid pooling), где в каждой ячейке пирамиды вычисляется сумка визуальных слов (Bag Of Visual Words).

Классификация документов: гайд для обхода граблей - 3

В качестве нейросетевых признаков использовали признаки с предпоследнего слоя сети ResNet-50, предобученной на датасете ImageNet.

Классификация документов: гайд для обхода граблей - 4

В чем нюанс

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

Несмотря на несбалансированность классов в тестовом датасете, удалось достичь высоких результатов — взвешенный F1-скор составил 0.99.

Классификация документов: гайд для обхода граблей - 5

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

Классификация документов: гайд для обхода граблей - 6

Одним из ключевых требований была быстрая работа модели на CPU. В ходе эксперимента выяснили, что время инференса, осуществляемого фреймворком PyTorch, не соответствует требованиям. Поэтому приняли решение сконвертировать обученную модель в формат OpenVINO.

Классификация документов: гайд для обхода граблей - 7

В результате мы успешно решили задачу классификации предоставленных документов, которая полностью соответствовала целевым показателям (SLA) по времени обработки и качеству классификации. 

Вывод

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

Ожидаем, что его можно будет успешно применить и к другим наборам данных.

Дополнительные материалы:

Evaluation of Deep Convolutional Nets for Document Image Classification and Retrieval [2]

A Fully Visual Based Business Document Classification System [3]

Fine-grained Classification of Identity Document Types with Only One Example [4]

Автор: Albertino_S

Источник [5]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/openvino/424059

Ссылки в тексте:

[1] albert.stepanyan@beorg.ru: mailto:albert.stepanyan@beorg.ru

[2] Evaluation of Deep Convolutional Nets for Document Image Classification and Retrieval: https://adamharley.com/icdar15/harley_convnet_icdar15.pdf

[3] A Fully Visual Based Business Document Classification System: https://www.academia.edu/23204923/A_fully_visual_based_business_document_classification_system

[4] Fine-grained Classification of Identity Document Types with Only One Example: https://pub.inf-cv.uni-jena.de/pdf/simon2015finegrained.pdf

[5] Источник: https://habr.com/ru/articles/923828/?utm_source=habrahabr&utm_medium=rss&utm_campaign=923828