Привет! Меня зовут Ольга Татаринова, я сооснователь агентства Epoch8.
Когда заказчик обратился к нам с задачей разработать систему для автоматизации процесса приемки грузов на склад, основными требованиями к системе были:
Используя технологии компьютерного зрения и машинного обучения, мы смогли создать систему автоматизированной инспекции груза, соответствующую всем указанным требованиям. И в данной статье мы расскажем о ней подробнее.
Инспекция груза проводится с помощью прямоугольной металлической конструкции, которую мы называем «стенд». На вершине каждой из сторон стенда закреплены камеры, обеспечивающие круговую съемку. Посередине конструкции установлены весы для взвешивания груза.
Когда на склад поступает новый груз, его размещают на весах и взвешивают, пока камеры делают снимки с каждой стороны. На экране стенда отображается информация о статусе выполнения операций системы (например: установка груза, сбор данных, снятие груза с весов).
Для правильной работы системы работник склада должен следовать сигналам на экране. Собранные данные затем сохраняются в системе и связываются с уникальным QR-кодом груза. После сбора и обработки данных груз снимают с платформы весов, и процесс инспекции на этом заканчивается.
Главным вызовом в создании нашей системы стала работа с данными. Компания стремительно развивается, устанавливая стенды на складах новых клиентов. С каждым новым клиентом будут появляться новые виды упаковок и дефектов, требующих распознавания. Мы осознавали, что наши модели должны будут становиться «умнее», чтобы выполнять работу правильно. А значит, нам необходима гибкая система, способная адаптироваться к постоянным изменениям, обучаясь на новых данных.
Для решения этой задачи мы выбрали ETL-библиотеку Datapipe, которая легла в основу нашего пайплайна обучения благодаря своим уникальным возможностям: трекингу зависимостей и инкрементальной обработке данных. С ее помощью мы проводим дообучение наших моделей на новых данных.
Трекинг зависимостей определяет, какие именно данные подверглись изменению, а инкрементальная обработка данных позволяет Datapipe обрабатывать только новые или обновленные данные и тем самым снижает нагрузку на систему и ускоряет работу пайплайна.
Пайплайн обработки данных системой выглядит так:
Когда груз поступает на склад, его идентифицируют путем сканирования QR-кода, и все дальнейшие данные: вес, тип упаковки, габариты, дефекты и так далее, — будут привязаны к этому коду. Так мы контролируем информацию о грузе на каждом этапе его обработки и транспортировки.
После взвешивания и фотосъемки изображения груза поступают в систему и отображаются на экране интерфейса администратора. Изображения обрабатывают двумя независимыми блоками моделей: для сегментации груза и для детекции дефектов.
После загрузки изображений в пайплайн системы, их подвергают обработке моделью сегментации, чтобы определить тип упаковки груза: картонные коробки, рулоны, деревянные ящики и так далее, — всё это называется классами упаковки.Основные классы упаковки делятся на микрокрассы и макроклассы.Микроклассы упаковки:
Макроклассы упаковки:
Посредством сверточных нейронных сетей YOLOv8 разбивает изображение на небольшие участки и обрабатывает их с помощью специальных фильтров. Эти фильтры ищут простые признаки, например края, углы или текстуры, которые могут помочь распознать, что изображено на участке.
После того как сеть проанализировала все участки изображения и выделила важные признаки, она определяет, какие части изображения относятся к разным классам упаковки.
На этапе детекции система ищет дефекты на упаковке, такие как повреждения, разрывы или деформации. Для этого используем технологию компьютерного зрения YOLOv5. Мы обучили модели используя более семи тысяч изображений разных дефектов.На данный момент система распознает следующие дефекты:
Во время обработки изображения YOLOv5 разбивает его на множество небольших участков и для каждого из них определяет:
Наши модели детекции и сегментации работают независимо друг от друга. Мы знаем, как выглядит упаковка груза и знаем, какие дефекты имеются на грузе. Но мы хотим знать, где именно на поверхности груза расположены дефекты. Для этого система объединяет результаты прогнозов двух моделей, совмещая информацию о классе упаковки с координатами обнаруженных дефектов. То есть координаты дефектов отправляются в координатную систему для дальнейшей обработки и синхронизации с данными сегментации. Сопоставив координаты, система определяет точное расположение дефектов на поверхности груза.
Для определения размеров груза создается 3D-визуализация объекта на основе его изображения. У нас есть изображение после сегментации с размеченным контуром груза (полигоном), а также информация о глубине для каждой точки, то есть о расстоянии от камеры до объекта. Используя эти данные и вектор трансформации, мы можем построить 3D-модель объекта в несколько шагов:
С помощью фильтрации и обработки 3D-облака точек система определяет габариты груза. Сначала она выбирает только часть точек, чтобы облегчить расчеты. Затем удаляет те точки, которые находятся слишком далеко друг от друга или выходят за пределы нужного периметра. После этого система корректирует положение груза, чтобы точно измерить его по осям. В конце она убирает лишние данные и вычисляет размеры по самым крайним точкам.
Для подсчета количества грузовых единиц система сравнивает и объединяет данные с нескольких камер. Она анализирует ограничивающие рамки вокруг объектов и отслеживает их движение, чтобы понять, какие объекты на разных изображениях — это один и тот же груз. Таким образом, система точно подсчитывает количество грузов.
Сфера логистики и складских услуг постоянно предъявляют новые требования моделям машинного обучения. По мере роста компании растет и число ее клиентов, а вместе с ними и типы упаковок и дефекты, которые нужно распознавать системе. В таких условиях модель, обученная только на старых данных, начинает «теряться», выдавая неточные результаты.
Решением этой проблемы является дообучение модели. То есть готовую модель обучаем на данных о новых видах дефектов или упаковок. Для этого мы используем Datapipe — ETL-библиотеку, с помощью которой система легко и просто обрабатывает новые данные. Благодаря инкрементальной обработке, Datapipe «видит» новые или изменившиеся данные и аккуратно добавляет их в общий массив, не затрагивая незадействованные участки данных. Это всё равно что обновлять коллекцию фотографий, просто добавляя фотографии, вместо того чтобы перефотографировать весь альбом.
Для контроля качества работы нашей системы инспекции мы создали процесс мониторинга и регулярного дообучения моделей. Он состоит из нескольких этапов:
Процесс дообучения позволяет адаптировать модель под специфические условия или задачи, которые не были охвачены в исходной обучающей выборке. Например, один из клиентов заказчика использует зеленые транспортировочные паллеты для перевозки грузов. Изначально модель не обучалась находить их, но благодаря системе дообучения это достаточно легкий процесс. Когда мы добавляем эти новые данные, Datapipe автоматически обновляет модель.
Оценка качества.После дообучения модели проходят повторный мониторинг, чтобы оценить улучшения и гарантировать их устойчивость в работе.Этот циклический процесс помогает поддерживать высокое качество работы моделей и своевременно устранять возникшие проблемы.
Для оценки производительности модели необходимо регулярно анализировать её ключевые метрики. Для этого рассчитывают следующие показатели:
Для мониторинга метрик мы используем платформу Metabase. Она удобна в использовании и прекрасно подходит, чтобы отслеживать показатели качества работы моделей в динамике.
Человек субъективен в своих суждениях, а также подвержен таким факторам, как усталость и невнимательность, что влияет на качество проводимой им проверки. ИИ-система применяет единые стандарты и критерии оценки к каждому грузу. Она анализирует груз строго на основе полученных данных и настроенных параметров, тем самым минимизируя риск ошибок или нарушений безопасности.
Несмотря на первоначальные вложения в оборудование и настройку автоматизированной системы, в долгосрочной перспективе она оказывается более выгодной, чем использование человеческого труда. Ее внедрение сокращает затраты на обучение персонала, минимизирует ошибки и снижает вероятность простоев из-за человеческого фактора. Также система легко масштабируется.
В некоторых отраслях грузы могут содержать опасные материалы, представляющие угрозу для здоровья. Особенно это актуально при работе с химикатами и легко воспламеняющимися веществами. Малейшее повреждение упаковки в таких случаях может привести к серьезным последствиям. Поэтому автоматизированная проверка грузов гораздо безопаснее, чем осмотр вручную.
Наша команда успешно справилась с поставленными задачами и создала систему автоматизированной инспекции груза. С помощью компьютерного зрения и машинного обучения наша система собирает все необходимые данные о грузе и формирует отчет о его состоянии. А постоянное дообучение моделей позволяет системе работать стабильно и адаптироваться под новые требования заказчиков.Благодарим команду разработчиков, воплотивших проект в реальность: