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

XIV Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

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

Федченко М.В. 1
1МБОУ СОШ №15
Коркачева Д.А. 1
1МБОУ СОШ №15
Автор работы награжден дипломом победителя II степени
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

ВВЕДЕНИЕ

В эру цифровых технологий, машинное обучение, в частности компьютерное зрение – важная и значимая отрасль. С помощью машинного обучения люди упрощают себе жизнь, делают мир цифровых технологий лучше и безопасней. Согласно результатам международного исследования Microsoft, 94% руководителей считают, что технологии искусственного интеллекта важны для решения стратегических задач их организаций. При этом 27% опрошенных уже внедрили соответствующие технологии в ключевые бизнес-процессы, еще 46% ведут пилотные проекты.

Россия, благодаря традиционно сильной математической школе не отстает от мировых тенденций. И если судить по докладам на конференции «Технологии машинного обучения. Искусственный интеллект и нейросети: инструменты и опыт реальных проектов», организованной издательством «Открытые системы», применение средств ИИ в нашей стране уже стало если не обыденностью, то достаточно распространенным способом не только оптимизировать, но и радикально поменять бизнес-процессы.

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

Компания «ФосАгро» в настоящий момент активно внедряет элементы цифровизации на производственных предприятиях. На крупном химическом предприятии безопасности работников и охране труда уделяется большое внимание. От применения средств индивидуальной защиты на производстве зависит жизнь и здоровье человека. Сегодня все большее внимание уделяется применению технологий нейросетей, автоматическому сбору, обработке информации и формированию баз данных.

Заказчиком проекта выступила Дирекция по информационным технологиям АО «Апатит» в лице заместителя директора департамента по цифровизации Виноградова С.Е.

Объект исследования: распознавание по видео наличие на работнике химического предприятия средств индивидуальной защиты.

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

Изучение информационных источников и уточнение темы: в процессе работы над данной темой была проанализирована основная учебная и научно-популярная литература, которая позволила осмыслить и осуществить выполнение учебно-исследовательской работы. Много интересной информации узнал из статьи Григория Алексеева, опубликованной на сайте Введение в машинное обучение https://habr.com/ru/post/448892/ [1]

Гипотеза: если изучить основы компьютерного зрения, то на практике можнореализовать модель машинного обучения, распознающую систему индивидуальной защиты (далее СИЗ) на сотруднике предприятия. Цель: применение технологий компьютерного зрения при создании модели машинного обучения на Python. Для достижения цели были поставлены и решены основные задачи:

изучить технологии машинного обучения;

приобрести навыки работы в Python;

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

Методы исследования: теоретические (анализ и синтез), математические.

ГЛАВА I. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

1.1. Машинное обучение

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

Машинное обучение используется в структурах обеспечениябезопасности. Например, система распознаваниялиц в метро. Камеры сканируют лица людей, входящих и выходящих из метро. Аналитические машины сравнивают снимки с лицами, которые находятся в розыске. Если сходство высоко, то система подает сигнал. Примеры применения в реальной жизни: диагностика заболеваний, поиск мест залегания полезных ископаемых, оценка надёжности и платёжеспособности кандидатов на получениекредитов и так далее [2].

1.2. Методы машинного обучения

Существует множество методов машинного обучения. Но самые распространённые из них – обучение с учителем и без.

Обучение с учителем — один из способов машинного обучения, в ходе которого испытуемая система принудительно обучается с помощью примеров «стимул-реакция». Метод применяется, когда необходимо найти функциональную зависимость результатов от входов и построить алгоритм, на входе принимающий описание объекта и на выходе выдающий ответ.

О бучение без учителя — один из способов машинного обучения, при котором испытуемая система спонтанно обучается выполнять поставленную задачу без вмешательства со стороны экспериментатора [3].

Кластер. Машинное обучение

1.3. Компьютерное зрение

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

ГЛАВА II. ПРАКТИЧЕСКАЯ ЧАСТЬ

2.1.Выбор языка программирования

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

Сейчас на рынке в основном выделяют 5 языков программирования, для машинного обучения и анализа данных: Python, R, C++, JavaScript и C#. Проведя анализ, я пришёл к выводу, что самыми подходящими языками являются C++ и Python. Свой выбор я остановил на Python.

2.2. Выбор библиотеки для проекта

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

Для моей задачи отлично подойдёт ImageAI - библиотека Python, созданная для того, чтобы дать разработчикам возможность создавать приложения и системы с автономными возможностями глубокого обучения и компьютерного зрения с использованием простого и небольшого количества строк кода.

2.3. Нахождение данных для анализа

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

Обработка данных

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

.

Фото 1. Разметка объектов

Помимо этого, желательно иметь +- схожий размер фотографий. В моём случае это 416*416.

Для этого я написал вот такой код, который задаёт нужный размерам фотографиям:

from PIL import Image

import os, sys

path = "/root/Desktop/python/images/"

dirs = os.listdir( path )

defchange():

    for item in dirs:

        if os.path.isfile(path+item):

            img = Image.open(path+item)

            f, e = os.path.splitext(path+item)

            imResize = img.resize((416,416), Image.ANTIALIAS)

            imResize.save(f + ' resized.jpg', 'JPEG', quality=90)

change()

Листинг 1. Тестирование модели

Затем общее число фотографий нужно разбить в процентом соотношении. А именно 80 и 20 процентов соответственно. Где 80% - обучающие данные, а 20% - тестовые.

Создание и обучение модели

from imageai.Detection.Custom import DetectionModelTrainer

trainer = DetectionModelTrainer()

trainer.setModelTypeAsYOLOv3()

trainer.setDataDirectory(data_directory="helmet")

trainer.setTrainConfig(object_names_array=["helmet","head","person"], batch_size=4, num_experiments=30, train_from_pretrained_model="detection_model-ex-020--loss-0019.130.h5")

trainer.trainModel()

Листинг 2. Создание и обучение модели

Для начала импортируем нужную библиотеку, затем создаём модель с нужными параметрами обучения.

Trainer – Наша модель

Object_names_array – Названия, тех объектов, которые мы будем находить. Это объекты находятся в файлах для аннотации фотографий.

num_experiments – Количество эпох. Эпоха - одна итерация в процессе обучения, включающая предъявление всех примеров из обучающего множества и, возможно, проверку качества обучения на контрольном множестве.

Запускаем код и ждём выполнения обучения

С криншот 1. Ход выполнения

По мере обучения, смотрим параметры обученной модели. Для этого напишем ещё один файл с кодом

from imageai.Detection.Custom import DetectionModelTrainer

trainer = DetectionModelTrainer()

trainer.setModelTypeAsYOLOv3()

trainer.setDataDirectory(data_directory="helmet")

metrics = trainer.evaluateModel(model_path="helmet/models/detection_model-ex-002--loss-0023.363.h5", json_path="helmet/json/detection_config.json", iou_threshold=0.5, object_threshold=0.3, nms_threshold=0.5)

print(metrics)

Листинг 3. Параметры обученной модели

Чем ближе показатель к 1(в нашем случае – head и helmet), тем модель лучше.

Тестирование модели

Для тестирования понадобиться наша модель, а также любая картинка, с объектами, которые нужно найти.

Напишемследующийкод

from imageai.Detection.Custom import CustomObjectDetection

detector = CustomObjectDetection()

detector.setModelTypeAsYOLOv3()

detector.setModelPath("helmet/models/detection_model-ex-00")

detector.setJsonPath("helmet/json/detection_config.json")

detector.loadModel()

detections = detector.detectObjectsFromImage(input_image="t.jpg", output_image_path="tr.jpg")

for detection in detections:

    print(detection["name"], " : ", detection["percentage_probability"], " : ", detection["box_points"])

Листинг 4. Тестирование модели

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

Ф ото 2. До обнаружения

Фото 3. После обнаружения

ЗАКЛЮЧЕНИЕ

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

СПИСОК ИНФОРМАЦИОННЫХ РЕСУРСОВ

Введение в машинное обучение [Электронный ресурс] https://habr.com/ru/post/448892/

Машинное обучение [Электронный ресурс] https://www.osp.ru/cio/2018/05/13054535

Обзор алгоритмов машинного обучения [Электронный ресурс] https://tproger.ru/translations/top-machine-learning-algorithms/

Гид: алгоритмы машинного обучения и их типы [Электронный ресурс] https://www.sas.com/ru_ru/insights/articles/analytics/machine-learning-algorithms-guide.html

Бизли Д. Python. Подробный справочник. – Пер. с англ. – СПб.: Символ-Плюс, 2010. – 864 с., ил.

Просмотров работы: 32