Несколько раз в год мы участвуем в экспериментальных проектах по разработке чего-нибудь необычного. На этот раз сделали пилот ИИ-системы по приглашению одного из наших российских заказчиков. Хотим рассказать, как всё происходило и что получилось.
Начало
На любом производстве в том или ином виде существуют системы, отвечающие за контроль и выявление угроз для жизни и здоровья работников: падения с высоты, воздействие рабочей техники, электроприборов и тп. Есть примеры экспериментальных внедрений технологий 4.0: интернет вещей, машинное зрение, искусственный интеллект. Мы решили проверить, удастся ли реализовать решение с применением нейросетей и компьютерного зрения, используя уже существующие на объектах заказчика CCTV-камеры. До этого в компании собирали информацию с камер, но не анализировали в режиме реального времени.
Задача
Используя уже существующие на объектах заказчика CCTV-камеры внедрить искусственный интеллект, который будет захватывать видеопоток с камер, выделять в стриме зоны производства, людей, элементы защиты и определять, нарушены правила техники безопасности или соблюдены.
Процесс
Инженеры «Формата Кода» создали свёрточную нейронную сеть и научили ее распознавать на потоковом видео людей, детали экипировки, — каски, жилеты, тросы, и выявлять типы производственных зон. В пилотной версии система фиксирует и даёт реакцию на три наиболее распространённых сценария поведения персонала:
- Носит ли сотрудник защитную каску на голове — является обязательным условием на производстве;
- Надел ли сотрудник капюшон от рабочей куртки поверх каски — это строго запрещено;
- Пристёгнут ли сотрудник тросом — является обязательным условием при проведении высотных работ.
Примеры из датасета на тему промышленной безопасности
Сложности
Чтобы нейросеть научилась определять надета на человеке каска или нет, нужен датасет — набор шаблонов определённых движений, на которых программа сможет тренироваться. Частая проблема проектов с машинным обучением в промышленности — недостаток данных ввиду новизны темы и единичности внедрений. Пришлось с нуля разработать референсный датасет.
Дата-сет
В состав датасета для обучения нейросети вошли 56 последовательностей, покрывающих позитивные и негативные сценарии поведения персонала на производстве. На изображениях сотрудники предприятия, часть из которых экипирована по всем правилам техники безопасности, часть — с нарушениями. У каждого человека размечена модель скелета по 12 опорным точкам. Амуниция размечена дополнительными точками. Каждый кадр имеет текстовую подпись и цветной фрейм. Также размечены типы производственных зон.
Обзор аннотированных классов и пример преобразования объекта по опорным точкам
Обработка видеопотока происходит в три этапа. Сначала отфильтровываются кадры, на которых отсутствуют люди. Затем части видео, на которых система распознала людей, передаются свёрточной нейронной сети. Сеть определяет человека по разметке и идентифицирует элементы страховки: каску на голове или трос на туловище. Затем алгоритм, использующий метод опорных векторов, сопоставляет изображение объекта по базе с шаблонами. Если кадр содержит нарушения, система направляет уведомление в соответствие с прописанными требованиями.
Пример кадра с аннотированным фреймом
Технологии
Для сегментации изображений использовали Mask R-CNN (платформа Detectron). Этот фреймворк справляется с задачей обнаружения всех указанных классов объектов, а также выделяет объекты в рамки. Тренировка нейросети выполнялась с помощью скрипта переобучения Transfer Learning, оптимальной, когда вы работаете с ограниченным датасетом и нет задачи собирать статистику по работам.
Результат
В финальном варианте удалось достигнуть стабильной аналитики видеопотока с распознаванием объектов и классификацией поведения. Диапазон точности распознавания составляет 77 – 100 процентов. Наш пилот показал отличные результаты на этапе тестирования и сейчас заказчик продолжает тесты. Дальше будем следить за развитием — потому что путь от пилота до промышленного решения очень длинный.