УДК 004.8:629.039.58

Faster R-CNN (region-based convolutional neural network)

Музалев Денис Александрович – студент Тольяттинского государственного университета.

Научный руководитель Жуков Александр Николаевич – доцент Тольяттинского государственного университета.

Аннотация: Искусственный интеллект прочно вошел в привычный уклад жизни, стал хорошим помощником и новым работником. Статья рассматривает новое направление профилактики нарушений ПБОТОС – использование современных нейросетей. Рассматриваются новые методы распознавания и недопущения нарушений ПБОТОС на производственных объектах с повышенной опасностью.

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

Цели

Разработать и внедрить эффективные методы распознавания нарушений ПБОТОС, которые обеспечат высокий уровень профессионализма сотрудников и снизят риски возникновения аварийных ситуаций.

Методология

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

Введение

Faster R-CNN - это алгоритм обнаружения объектов на изображениях и видео. Для его обучения необходимо иметь набор данных с размеченными изображениями, на которых объекты, которые вы хотите обнаружить, выделены прямоугольниками (так называемые “боксы” или “аннотации”) [1].

Процесс обучения Faster R-CNN включает в себя следующие шаги:

  1. Подготовка набора данных: Разметка изображений с помощью боксов. Для этого можно использовать инструменты, такие как LabelImg или Roboflow.
  2. Установка и настройка фреймворка для обучения Faster R-CNN. Можно использовать PyTorch, Keras или TensorFlow.
  3. Импорт необходимых библиотек и моделей. Для работы с Faster R-CNN вам понадобятся библиотеки для обработки изображений, например, OpenCV или Pillow, а также библиотеки для работы с графами вычислений, такие как PyTorch или TensorFlow.
  4. Обучение модели: Загрузите набор данных и разметьте изображения с помощью боксов, затем создайте модель Faster R-CNN и обучите ее на этом наборе данных.
  5. Оценка модели: После обучения модели оцените ее точность на тестовом наборе данных. Если точность модели вас устраивает, ее можно использовать для обнаружения объектов на видео.

Для того чтобы использовать Faster R-CNN для обнаружения объектов на видео, вам потребуется фреймворк для работы с видео, такой как OpenCV, TensorFlow или PyTorch. Вы можете использовать модель, обученную на изображениях, для обнаружения объектов в каждом кадре видео, а затем объединить результаты для получения информации о движении объектов во времени [2].

Как прописывать видеокамеру Faster R-CNN

Чтобы прописать видеокамеру (рисунок 1) для Faster R-CNN, необходимо выполнить следующие шаги [3]:

  1. Собрать набор данных для обучения модели. Он должен состоять из изображений, на которых отмечены объекты, которые необходимо обнаружить.
  2. Разметить изображения, добавив к ним аннотации с информацией о местоположении объектов.
  3. Установить необходимые библиотеки и фреймворки для работы с изображениями и видео. Например, OpenCV, PyTorch, TensorFlow, Keras.
  4. Создать модель Faster R-CNN с помощью выбранного фреймворка.
  5. Обучить модель на подготовленном наборе данных. Для этого используйте функцию fit() в выбранном фреймворке.
  6. Протестировать модель на новых изображениях. Если точность распознавания объектов устраивает, можно использовать модель для обработки видео.
  7. Использовать модель для распознавания объектов в каждом кадре видео. Для этого необходимо обработать каждое изображение в видео с помощью модели, полученной на предыдущем этапе.
  8. Объединить результаты распознавания объектов на каждом кадре в единое видео. Это можно сделать с помощью инструментов для работы с видео в выбранном вами фреймворке или используя сторонние библиотеки.

1

Рисунок 1. Видеокамера.

Код для обработки кадров видео с использованием Faster R-CNN

import cv2

import numpy as np

import time

from keras.models import load_model

# Загрузка предварительно обученной модели Faster R-CNN

model = load_model('path/to/your/model.h5', compile=False)

# Инициализация видеопотока

cap = cv2.VideoCapture('video.mp3’)

Установка параметров модели:

rpn_box_size = (6, 10) # Размер окна для RPN

rpn_nms_threshold = 0.7 # Пороговое значение NMS

classes = [‘aeroplane’, ‘bicycle’, ‘bird’, ‘car’, ‘cat’, ‘dog’, ‘horse’, ‘person’, ‘sheep’, ‘train’]

while True:

# Чтение кадра из видео

ret, frame = cap.read()

if not ret:

break

# Преобразование кадра в массив numpy

frame_np = np.array(frame)

# Разделение кадра на цветовые каналы

frame_bgr = cv2.cvtColor(frame_np, cv2.COLOR_BGR2RGB)

frame_gray = cv22.cvtColor(frame_bgr, cv22.COLOR_RGB2GRAY)

# Применение Faster R-CNN на кадре

detections = model.predict([frame_gray])

boxes = detections[0]

scores = detections[:, 4]

for class_id, score in enumerate(scores):

if score > 0.5:

# Нахождение координат прямоугольника и класса

class_name = classes[class_id]

box = boxes[class_id * 4:(class_id + 1) * 4]

x, y, w, h = box[0], box[1], box[2], box[3]

# Рисование прямоугольника и текста на кадре

cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)

cv2.putText(frame, class_name, (x, y - 5), cv2.FONT_HERSHEY_PLAIN, 1, (0, 0, 255))

# Отображение кадра

cv2.imshow('frame', frame)

k = cv2.waitKey(30) & 0xff

if k == 27:

# Если нажата ESC, выходим из цикла

break

elif k == ord(‘q’):

# Если нажато Q, выходим из программы

cv2.destroyAllWindows()

cap.release()

break```

Этот код сначала загружает предварительно обученную модель Faster R-CNN, затем инициализирует объект VideoCapture и начинает цикл, в котором каждый кадр видео обрабатывается с использованием этой модели. Затем на кадре рисуются прямоугольники с объектами и их классы (Рисунок 2).

2

Рисунок 2. Последовательность работы кода Faster R-CNN.

Для работы этого кода понадобится предварительно обученная модель Faster R-CNN. Найти такие модели в открытых источниках, например, на Kaggle. Кроме того, убедитесь, что модель была обучена с использованием подходящих данных и настроек.

Настройка видеотрафика через Faster R-CNN

Видеотрафик через Faster R-CNN можно настроить (Рисунок 3), следуя следующим шагам [4]:

  • Разработать модель Faster R-CNN на основе требуемых объектов для обнаружения.
  • Обучить модель на наборе данных с размеченными изображениями.
  • Протестировать модель на новом наборе данных, чтобы оценить ее точность.
  • Если точность модели достаточна, использовать ее для обнаружения объектов на видеопотоке.
  • Сконфигурировать видеотрафик таким образом, чтобы видеопоток поступал на вход модели Faster R-CNN, а результаты обнаружения выводились на экран или записывались на устройство хранения.
  • Настроить параметры видеотракта, такие как разрешение, частота кадров, битрейт, чтобы обеспечить оптимальное качество видео и эффективность использования ресурсов.
  • Регулярно обновлять модель Faster R-CNN по мере поступления новых данных, чтобы улучшить точность обнаружения объектов.

3

Рисунок 3. Результат настройки видеотрафика через Faster R-CNN.

Заключение

В данной статье проведен анализ применения Faster R-CNN в обработке видеоизображений, были рассмотрены следующие процессы:

  1. Создание кода для обработки кадров видео с использованием Faster R-CNN;
  2. Процесс бучения Faster R-CNN;
  3. Настройка видеотрафика через Faster R-CNN;
  4. Поиск дистрибутива на англоязычных сайтах при помощи Faster R-CNN.

Работа выполнена, Faster R-CNN применена на предприятии в обработке видеоизображений

Результаты

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

Выводы

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

Список литературы

  1. Детекция объектов. R-CNN, Fast R-CNN, Faster R-CNN. Часть 1 [Электронный ресурс]. – URL: https://habr.com/ru/articles/789942.
  2. Liu T., Stathaki T. Faster R-CNN for Robust Pedestrian Detection Using Semantic Segmentation Network [Электронный ресурс]. – URL: https://www.frontiersin.org/articles/10.3389/fnbot.2018.00064/full.
  3. Ren S., He K., Girshick R., Sun J. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks [Электронный ресурс]. – URL: https://arxiv.org/pdf/1506.01497.
  4. Обнаружение объектов с помощью более быстрого R-CNN // Microsoft [Электронный ресурс]. – URL: https://learn.microsoft.com/ru-ru/cognitive-toolkit/object-detection-using-faster-r-cnn.

Интересная статья? Поделись ей с другими: