Умные роботы — уже реальность: ищем печати на сканах с помощью ML

image-loader.svg

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

Если в сфере B2C искусственный интеллект уже давно и прочно занял свои позиции, то в последнее десятилетие он стал активно использоваться и в B2B-сегменте. Например, там ИИ всё чаще помогает оценивать контрагентов и риски или определяет вероятность увольнения сотрудника или ухода клиента.

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

Статья написана при поддержке Кристины Виролайнен, технического эксперта компании UiPath.

Как устроен AI Centre

AI Center — решение, которое позволяет использовать ML-модели из коробки. Посмотрим подробнее, как всё это устроено.

AI Center предлагает несколько видов ML-моделей:  

  • Преднастроенные модели UiPath;

  • Партнерские модели;

  • Клиентские модели.

Список готовых моделей представлен ниже. Модели, на которые стоит обратить внимание выделены красными прямоугольниками. Сегодня мы будем приводить пример на основе модели поиска объектов.

image-loader.svg

На основе данных моделей можно создавать ML-навыки, с которыми в свою очередь можно работать так же, как с другими активностями в UiPath. Важно, что AI Center можно развернуть не только в облаке, но и локально в вашем контуре. 

Чтобы использовать ML-навык в процессе, нам нужна активность MLSkill: чтобы навык появился в списке доступных, он должен быть активным в вашем AI Center.

image-loader.svg

Как создать навык и сделать его активным?

Как мы уже говорили, навык базируется на ML-пакете. То есть для создания навыка ничего кроме ML-пакета не нужно.

В самом AI Center список навыков выглядит следующим образом: он содержит название навыка; название пакета, из которого этот навык создан; версию пакета и информацию о том, активен ли навык.

image-loader.svg

Что подразумевается под версией пакета?  

Каждый раз, когда мы обучаем модель, мы получаем новую версию ML-пакета.

На схеме это выглядит так:

image-loader.svg

Для обучения нам нужен DataSet и наш пакет. Процесс обучения называется pipeline. Результатом выполнения будет ML-пакет версии +1. 

Работа с моделью по идентификации объектов

Давайте посмотрим на конкретном примере, как обучать модель по идентификации объекта в документе. Изначально она обучена на известном датасете СОСО, в котором есть более 3 млн различных изображений для идентификации 80 объектов. Мы можем использовать этот пакет без обучения: если на его основе создадим навык, этот навык сможет находить на нашем изображении кошек, собак и другие 78 объектов. Но конкретную печать в документе он найти не сможет. 

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

Подробная инструкция по подготовке датасета есть на сайте UiPath — https://docs.uipath.com/ai-fabric/lang-es/v0/docs/object-detection.

Для подготовки изображения для датасета его нужно разметить в любом средстве аннотации. Для этого можно использовать опенсорсный бесплатный инструмент Label Img. В его интерфейсе мы указываем, где конкретно на документе находится наша печать. И инструмент автоматически создает XML-файл с разметкой.

image-loader.svg

Таким образом нужно разметить 10 разных изображений. Все изображения с соответствующей XML-разметкой размещаем в одной папке. 

Теперь обучим нашу модель.

В AI Center нам нужно создать новый пакет — выберем его из доступных:

image-loader.svgimage-loader.svgimage-loader.svgimage-loader.svg

Теперь, когда мы создали наш пакет, нам нужно загрузить DataSet.

Для этого в меню Datasets нажимаем кнопку upload folder и выбираем папку с нашими изображениями и их разметкой.

image-loader.svg

После загрузки датасет выглядит так: он содержит изображения и файлы разметки.

image-loader.svg

Теперь нам нужно запустить обучение модели на нашем датасете. Для этого идем в меню Pipelines. И нажимаем Create new.

image-loader.svg

Тип pipeline — full pipeline run. В качестве пакета выбираем созданными нами пакет. В качестве датасета только что загруженный датасет. И запускаем обучение.

image-loader.svg

Каждое запущенное обучение создает новую версию для нашего пакета.

После успешного выполнения мы либо создаем новый навык, либо выбираем новую версию пакета в нашем уже существующем навыке.

Как это выглядит в RPA-процессе

В нашем процессе мы используем активность MLSkill, в котором в качестве параметров выбираем наш навык. На вход активности дается путь до изображения, на выходе мы получаем json с результатом.

image-loader.svg

Для отображения результатов мы используем Action Center — создаем задачу пользователю, и в этой задаче отображаем наше изображение и результат: найдена печать или нет.

Приведем несколько примеров результатов. Напомним, что эта модель обучалась на 10 примерах.

image-loader.svgimage-loader.svg

В случае, когда мы видим похожую круглую печать, модель определяет её с более низкой степенью уверенности, в данном случае — 39%:

image-loader.svg

И, конечно, если печати совсем нет на документе, модель способна это понять:

image-loader.svg

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

RPA и машинное обучение помогают работать с документами

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

© Habrahabr.ru