Назад в библиотеку

Источник: Современные информационные технологии в образовании и научных исследованиях (СИТОНИ-2023) : сб. материалов VIII Всерос. науч.-техн. конф., г. Донецк, 29 нояб. 2023 г. / отв. ред. В. Н. Павлыш. – Донецк : ДонНТУ, 2023. - С. 116-123.

УДК 004.93

ОБНАРУЖЕНИЕ И КЛАССИФИКАЦИЯ ОБЪЕКТОВ НА ИЗОБРАЖЕНИИ С ПОМОЩЬЮ НЕЙРОСЕТЕВЫХ МОДЕЛЕЙ СЕМЕЙСТВА YOLO

А.Р. Муращенко, О.И. Федяев

ФГБОУ ВО «Донецкий национальный технический университет» (г. Донецк)

кафедра «Программная инженерия им. Л.П.Фельдмана»

e-mail: sasha.mur01@mail.ru, olegfedyayev@yahoo.com

Муращенко А.Р., Федяев О.И. Обнаружение и классификация объектов на изображении с помощью нейросетевых моделей семейства YOLO. В работе рассматриваются основные методы и способы обнаружения и классификации объектов на изображении. Анализ показал достоинства и недостатки разных версий модели при обработке статичных изображений и обработке изображений в режиме реального времени. В качестве сравнения были выбраны модель YOLOv3 и YOLOv8.

Ключевые слова: нейросеть, модель YOLO, обнаружение объектов на изображении, классификация объектов

Введение

Компьютерное зрение — это одно из направлений искусственного интеллекта, которое позволяет компьютерам идентифицировать или распознавать шаблоны или объекты в цифровых медиа, включая изображения и видео [1]. Модели компьютерного зрения могут анализировать изображение, чтобы распознавать или классифицировать объект на изображении, а также реагировать на эти объекты. Основная цель модели компьютерного зрения идёт дальше, чем просто обнаружение объекта на изображении, она также взаимодействует с объектами и реагирует на них.

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

Для распознавания и классификации объектов в последнее время успешно используют различные нейросетевые модели и методы [1]. Каждая модель нейронной сети имеет свои достоинства и недостатки. Современные алгоритмы обработки изображений обычно используют модели глубокого обучения, которые  при идентификации объектов учитывают сложные взаимосвязи на уровне пиксельного описания характерных признаков с последующим многоуровневым их обобщением. Качество распознавания во многом зависит от архитектуры используемой нейросети,  стратегии обучения и обучающего множества. Для этого собирают и помечают набор изображений, например все изображения с человеком называют «человек». Затем эти данные передаются в нейронную сеть для обучения. Чаще всего для распознавания используют именно свёрточные нейронные сети (CNN), так как они гораздо лучше понимают особенности каждого объекта. После этого производится тестирование на изображении с объектами [1]. Модель будет использовать полученный набор данных для предсказания объекта на изображении и его распознавания.

Основной целью данной работы является выбор модели свёрточной нейронной сети из семейства YOLO для создания программных систем распознавания объектов на фото- и видео-изображениях в реальном времени.

Обзор работ по компьютерному зрению на основе моделей YOLO

На данный момент существует очень мало обзоров и сравнений версий нейронной сети YOLO.

В статье «Benchmarking YOLOv5 and YOLOv7 models with DeepSORT for droplet tracking applications», которая была написана в январе 2023 года, автор экспериментально сравнивает точность и скорость двух версий данной нейросети определённым методом[3]. Однако автор не рассказывает, как именно работают версии YOLO. Также в этой публикации указывается, что v7 является последней версией YOLO, однако на данный момент это не так.

В статье «Wearing face mask detection using deep learning through COVID-19 pandemic», которая была написана 28 апреля 2023 года, автор сравнивает модели для обнаружения масок на людях, а именно Single Shot Detection, YOLOv4-tiny, YOLOv4-tiny-3l[4]. Однако автор лишь упоминает о версиях YOLOv3, YOLOv3-tiny, YOLOv5. При этом модель SSD имеет слишком низкую скорость обнаружения объектов, хоть и является очень точной, поэтому она не подходит для обнаружения объектов в реальном времени.

Актуальность

Скорость и точность YOLO сделали его популярным выбором для многочисленных приложений для обнаружения объектов в реальном времени [5]. Вот несколько областей, в которых YOLO продемонстрировал свою эффективность:

-         наблюдение и безопасность: обнаружение камеры YOLO в режиме реального времени можно использовать для наблюдения за общественными местами в режиме реального времени, выявления угроз безопасности и обеспечения общественной безопасности [5];

-         робототехника и дроны: YOLO можно использовать в робототехнике и дронах, чтобы обеспечить возможности обнаружения и отслеживания объектов, что позволяет им эффективно перемещаться и взаимодействовать с окружающей средой;

-         автономные транспортные средства: возможности YOLO в реальном времени делают его ценным компонентом автономных транспортных средств для обнаружения объектов, позволяя им воспринимать окружающую среду и реагировать на неё в режиме реального времени [5];

-         обнаружение болезней на снимках: YOLO  можно использовать для обнаружения дефектов на медицинских снимках, например на ЭКГ, это позволит существенно улучшить медицину во всём мире;

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

Однако разные версии модели YOLO по разному работают с фото- и видеоизображениями. За последние годы вышло много версий данной модели. Однако, на данный момент авторы оригинальной YOLO сделали версии v1, v2, v3, v5, v8. В данной работе будет анализ и сравнение моделей YOLOv3 и YOLOv8.

Сравнение моделей YOLOv3 и YOLOv8

На вход модели YOLO поступает цифровое изображение – это двоичное представление визуальных данных. Оно содержит серию пикселей, расположенных в виде сетки, где каждая ячейка содержит визуальные данные: яркость и цвет.

CNN обычно имеет три уровня: свёрточный слой, слой объединения и полностью связанный слой, как показано на рисунке 1.

 

Описание: https://srv2.imgonline.com.ua/result_img/imgonline-com-ua-Black-White-Gfhu6lSqhtq6.png

Рисунок 1 – Архитектура работы свёрточной нейронной сети

 

На рисунке  показаны следующие главные элементы свёрточной нейронной сети:

-         изображение в качестве входных данных.

-         свёрточные слои: применяются фильтры (ядро свертки) к входному изображению для выявления признаков, таких как края, углы и другие текстурные элементы;

-         функция активации ReLU: используется для добавления нелинейности, позволяющей сети обучаться более сложным паттернам;

-         слой пулинга: уменьшает размерность пространственных данных, сохраняя при этом важные признаки, что уменьшает количество параметров и вычислительную сложность;

-         полносвязные слои: после выделения признаков и снижения размерности данных, полносвязные слои комбинируют признаки для классификации и определения положения объектов;

-         выходные данные: на последнем этапе, с помощью функции активации softmax, сеть предсказывает вероятности принадлежности выявленных объектов к определенным классам (например, автомобиль, пешеход) и их расположение на изображении.

В модели YOLOv3 реализован алгоритм обнаружения объектов в реальном времени, позволяющий идентифицировать конкретные объекты в видео, прямых трансляциях или изображениях. Для обнаружения объекта алгоритм машинного обучения YOLO использует характеристики, полученные глубокой свёрточной нейронной сетью. Версии 1-3 алгоритма YOLO были созданы Джозефом Редмоном и Али Фархади, а третья версия алгоритма машинного обучения YOLO является более точной версией оригинального алгоритма машинного обучения (ML).

Другие архитектуры нейросетей в основном использовали метод скользящего окна по всему изображению, и классификатор использовался для определенной области изображения (DPM). Также, R-CNN использовал метод предложения регионов (region proposal method). Описываемый метод сначала создаёт потенциальные якорные рамки. Затем, на области, ограниченные якорными рамками, запускается классификатор и следующее удаление повторяющихся распознаваний, и уточнение границ рамок.

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

На следующем рисунке 2 представлена общая структура сети YOLOv3. На рисунке можно видеть: входное изображение размером (608 x 608) пикселей попадает в сеть Darknet-53 и получает 3 ветви. Эти ветви проходят серию свёрток, повышающей дискретизации, а после объединения и других операций в итоге получаются три карты характеристик разного размера, формы.

 

Описание: https://srv4.imgonline.com.ua/result_img/imgonline-com-ua-Black-White-IHXrYCX5INR.png

Рисунок 2 – Архитектура работы сверточной нейронной сети YOLOv3

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

- для каждой якорной рамки: 4 координаты (tx , ty , tw , th), 1 ошибку объективности, которая является показателем уверенности в присутствии того или иного объекта;

- некоторое количество вероятностей классов.

Визуализация якорной рамки представлена на рисунке 3. Значения bx, by, bw, bh определяют координаты центра x, y, ширину и высоту текущего прогноза, а значения  tx, ty, tw, th (xywh) — это то, что выводит сеть. Значения cx и cy определяют верхние левые координаты сетки, а  pw и ph — размеры якорных рамок для блока.

 

Рисунок 3 – Визуализация якорной рамки

Модель предсказывает ширину и высоту рамки в виде смещения от центров кластеров. Координаты центра поля относительно места применения фильтра предсказываются с помощью сигмоидальной функции. Если для объекта предварительно не указана граница, то он не несёт потерь в предсказании координат и классов, а только в объектности.

У всех моделей YOLO присутствует алгоритм «подавления не-максимумов», который делает модели данного семейства лидером в обнаружении объектов в реальном времени. Подавление не-максимумов это метод постобработки, используемый в алгоритмах обнаружения объектов для уменьшения количества перекрывающихся ограничивающих рамок и улучшения общего качества обнаружения. NMS отфильтровывает избыточные и нерелевантные ограничительные рамки, оставляя только самые точные. На рис. 4 показан алгоритм этого метода на псевдокоде. На рис. 5 показан результат работы этого алгоритма.

Рисунок 4 – Алгоритм «подавления не-максимумов» на псевдокоде

Описание: D:\download\imgonline-com-ua-Black-White-8Tn1s6p7W3mNOmEB.png

Рисунок 5 – Результат работы алгоритма «подавления не-максимумов»

Результат обнаружения объектов при помощи YOLOv3 представлен на рисунке 6. Созданная система компьютерного зрения обнаружила две машины, пометила их меткой car с процентом совпадений 90% и 100%, светофор меткой traffic light с процентом совпадений 100%. Обнаружение заняло 0.4 секунды при нагрузке на видеокарту и 2.2 секунды при нагрузке на процессор.

Описание: D:\download\imgonline-com-ua-Black-White-CjepLY8WKn7JLcs8.png

Рисунок 6 – Результат работы модели YOLOv3

 

Достоинства модели YOLOv3:

-       высокая точность;

-       гибкая настройка.

Недостатки модели YOLOv3:

-       низкая скорость обработки видео;

-       высокая нагрузка на систему.

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

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

YOLOv8 — это модель без якоря. Это означает, что она предсказывает непосредственно центр объекта, а не смещение от якорных рамок [4]. Обнаружение без привязки уменьшает количество прогнозов блоков, что ускоряет не-максимальное подавление (NMS) — сложный этап постобработки, который отсеивает обнаружения-кандидаты после вывода.

Компоненты архитектуры YOLOv8:

-         backbone: извлекает признаки из входного изображения с помощью;

-         neck: объединяет различные уровни признаков для улучшения точности;

-         head: предсказывает координаты и классы объектов;

-         upsample: увеличивает разрешение карты признаков;

-         loss function: оценивает ошибку в предсказаниях и обновляет веса модели.

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

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

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

Семейство YOLOv8 имеет 5 стандартных обученных моделей. Сравнение этих моделей представлено в таблице 2 [7].

 

Таблица 2 – Сравнение обученных моделей YOLOv8

Model

Точность по mAP, %

Скорость обработки, ms

YOLOv8n

37.3

80.4

YOLOv8s

44.9

128.4

YOLOv8m

50.2

234.7

YOLOv8l

52.9

375.2

YOLOv8x

53.9

479.1

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

 

Рисунок 7 – Функциональная схема системы распознавания объектов на изображении

 

Результат обнаружения при помощи YOLOv8 представлен на рисунке 8. На фрагменте из видео нейронная сеть обозначила все найденные объекты и показала процент совпадения. В центре изображения модель нашла две машины, при этом одна из них закрывает другую, модель обозначила их меткой car с процентом совпадений 90% и 54%. Далее в самом конце дороги система показала машину с процентом совпадений 80%.

В правой части рисунка, машину в кустах, -  с процентом 79%. Обнаружение четырёх объектов заняло 24 миллисекунды при нагрузке на видеокарту или 0.8 секунд при нагрузке на процессор.

 

Описание: D:\download\imgonline-com-ua-Black-White-nJLtDHLk6iMUOFL.png

Рисунок 8 – Результат обнаружения с помощью YOLOv8

 

Эксперименты показали, что среди других достоинств модели YOLOv8 можно также отметить высокую скорость, легкую обработку видео и легкую обучаемость.

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

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

Заключение

Выполнен обзор нейросетевых моделей семейства YOLO и анализ их технических и функциональных характеристик. Подробно рассмотрены архитектурные аспекты моделей YOLOv3  и YOLOv8. Для анализа эффективности этих моделей  была создана программная система, на которой проводились эксперименты.

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

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

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

Литература

1.           Что такое компьютерное зрение и где его применяют [Электронный ресурс]. Режим доступа: https://trends.rbc.ru/trends/industry/5f1f007e9a794756fafbfa83. Загл. с экрана;

2.           Компьютерное зрение OpenCV: где применяется и как работает в Python [Электронный ресурс]. Режим доступа: https://skillbox.ru/media/code/kompyuternoe-zrenie-opencv-gde-primenyaetsya-i-kak-rabotaet-v-python/?ysclid=los873c9yl859014313. Загл. с экрана;

3.           Mihir Durve, Sibilla Orsini, Adriano Tiribocchi. Benchmarking YOLOv5 and YOLOv7 models with DeepSORT for droplet tracking applications [Электронный ресурс]. Режим доступа: https://arxiv.org/pdf/2301.08189.pdf. Загл. с экрана;

4.           Javad Khoramdela, Soheila Hatamib, and Majid Sadedel. Wearing face mask detection using deep learning through COVID-19 pandemic [Электронный ресурс]. Режим доступа: https://arxiv.org/pdf/2301.08189.pdf. Загл. с экрана;

5.           YOLO v8: улучшенное обнаружение объектов (живая камера) с точностью в реальном времени [Электронный ресурс]. Режим доступа: https://skine.ru/articles/727546/. Загл. с экрана;

6.           Joseph Redmon, Ali Farhadi. YOLOv3: An Incremental Improvement [Электронный ресурс]. Режим доступа: https://arxiv.org/pdf/1804.02767v1.pdf. Загл. с экрана;

7.           Документация Yolo V8 [Электронный ресурс]. Режим доступа: https://github.com/ultralytics/ultralytics?ref=blog.roboflow.com. Загл. с экрана;