Статья опубликована в рамках: Научного журнала «Студенческий» № 6(260)
Рубрика журнала: Информационные технологии
Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3
СЕГМЕНТАЦИЯ ОБЪЕКТОВ С ИСПОЛЬЗОВАНИЕМ АЛГОРИТМА ТЕХНИЧЕСКОГО ЗРЕНИЯ
АННОТАЦИЯ
Данная работа посвящена решению сегментации границ объектов, когда распознанные объекты находятся в сложенном состоянии. Результаты исследования будут применены в РТК сортировки неориентированных объектов.
В этой работе я используется открытый исходный код yolov8 для обучения сегментации.
Подробное содержание кода можно найти в официальной документации Yolov8 https://github.com/ultralytics/ultralytics.
ABSTRACT
This work is devoted to solving the segmentation of object boundaries when the recognized objects are in a folded state. The results of the study will be applied in the RTK sorting of unoriented objects.
In this work, I use the open source code yolov8 to train segmentation.
Detailed code content can be found in the official Yolov8 documentation https://github.com/ultralytics/ultralytics.
Ключевые слова: сегментация, yolov8.
Keywords: segmentation, yolov8.
Введение
Для сегментации объектов, мы используем алгоритм yolo. YOLOv8 (You Only Look Once, версия 8) — влиятельный алгоритм в области обнаружения целей и последняя версия серии YOLO. Благодаря ряду инновационных разработок и оптимизаций этот алгоритм позволил значительно повысить производительность при решении задач обнаружения целей в реальном времени.
В данной работе мы будем использовать официальную модель для обучения, проанализируем применимость алгоритма в различных сценариях сортировки и внесем в него некоторые улучшения. Конечная цель работы – применить алгоритм к РТК сортировки неориентированных объектов.
1. Схема структуры модели и функция потеря yolov8
На этом изображении представлена структурная диаграмма модели обнаружения целей YOLOv8 (вы смотрите только один раз, версия 8). На нем показаны три основные части модели: позвоночник, шея и голова, а также их подмодули и соединения.
Рисунок 1. Схема структуры модели yolov8
ConvModule: содержит сверточные слои, BN (пакетную нормализацию) и функции активации (например, SiLU) для извлечения признаков.
DarknetBottleneck: увеличьте глубину сети за счет остаточных соединений, сохраняя при этом эффективность.
GSP Layer: вариант структуры CSP, который повышает эффективность обучения модели за счет частичных соединений.
Concat: объединение карт объектов, используемое для объединения объектов из разных слоев.
Upsample: операция повышения разрешения для увеличения пространственного разрешения карты объектов.
IoU (пересечение через объединение)
IoU — очень важный показатель при оценке эффективности моделей обнаружения целей. Он измеряет перекрытие между прогнозируемыми и достоверными ограничивающими рамками. IoU рассчитывается следующим образом:
Среди них «Область перекрытия» — это область, где прогнозируемая ограничивающая рамка и реальная ограничивающая рамка перекрываются, а «Область объединения» — это общая площадь, покрытая двумя ограничивающими рамками.
Плюсы: IoU предоставляет четкую метрику для измерения точности прогнозов местоположения.
Роль: широко используется на этапе обучения для оптимизации модели (как часть функции потерь), а также на этапе оценки для сравнения производительности разных моделей или одной и той же модели при разных параметрах.
Потеря Ббокса
Bbox Loss используется для расчета разницы между прогнозируемой ограничивающей рамкой и истинной ограничивающей рамкой. Среднеквадратическая ошибка (MSE) — это широко используемая функция потерь, формула ее расчета выглядит следующим образом:
где x_{i} — координаты истинной ограничивающей рамки, а \hat{x}_{i} — координаты предсказанной ограничивающей рамки. Эта потеря рассчитывается как сумма квадратов разностей между прогнозируемыми и фактическими координатами.
Преимущества: MSE — хорошая функция потерь, поскольку она назначает более высокий штраф за более крупные ошибки, что помогает модели быстро исправлять большие ошибки прогнозирования.
Функция: в качестве цели оптимизации она направляет модель на сокращение разрыва между прогнозируемым и реальным блоком во время процесса обучения.
Cls Loss (потери классификации)
Cls Loss используется для измерения разницы между распределением классов, предсказанным моделью, и истинными метками. Функция перекрестных энтропийных потерь — это часто используемая функция потерь в задачах классификации. Ее формула:
Здесь y_{o,c} — индикатор. Если образец o принадлежит категории c, он равен 1, в противном случае — 0. А p_{o,c} — это вероятность того, что модель предсказывает, что образец o принадлежит категории c.
Преимущества: потеря перекрестной энтропии приводит к большому штрафу за неправильные прогнозы, особенно когда прогнозируемая вероятность и фактическая метка сильно различаются.
Роль: помочь модели оптимизировать прогнозы в задачах мультиклассификации, чтобы прогнозируемое распределение вероятностей было как можно ближе к истинному распределению меток.
2. Проведение обучения
Сначала нам нужно изменить параметры в файле default.yaml, как показано на рисунке. Здесь мы используем официальные данные обучения coco128.
Рисунок 2. Параметры обучения
Для обучения используйте команду «yolo cfg=default_copy.yaml». Для обучения используется графический процессор.
Рисунок 3. Проведение обучения
3. Анализ результатов обучения
Матрица путаницы представляет собой сводку результатов прогнозирования задачи классификации. Количество правильных и неправильных прогнозов суммируется с использованием значений счетчика и разбивается по каждому классу, показывая, какую часть прогнозов сбивает с толку модель классификации. С помощью этой матрицы вы можете легко увидеть, не путает ли машина два разных класса и не принимает ли один класс за другой.
Рисунок 4. Confusion_matrix
Кривая F1 определяется как среднее гармоническое значение точности и полноты.
В некоторых соревнованиях по задачам мультиклассификации в качестве окончательного метода оценки часто используется балл F1. Это среднее гармоническое значение точности и полноты с максимумом 1, где 1 — лучший, а 0 — худший.
Вообще говоря, когда порог достоверности (порог вероятности для того, чтобы выборка была отнесена к определенной категории) низок, многие образцы с низкой достоверностью считаются истинными, с высокой скоростью вспоминания и низкой степенью точности; когда порог достоверности высок, многие выборки с низкой достоверностью считаются истинными. Только выборки с высокой достоверностью можно считать истинными. Чем точнее определение категории, то есть тем выше точность (только когда достоверность велика, можно считать, что она относится к определенной категории), поэтому баллы F1 на обоих концах относительно невелики.
Рисунок 5. F1_curve.png
Диаграмма связи между точностью и достоверностью является P_curvve.png.
Рисунок 6. P_curvve.png
Взаимосвязь между коэффициентом припоминаемости и достоверностью, припоминаемостью (коэффициентом точности, который на самом деле положителен), то есть количеством найденных положительных образцов.
Рисунок 7. R_curvve.png
Кривая PR отражает взаимосвязь между точностью и полнотой. mAP — это аббревиатура Mean Average Precision, то есть средняя средняя точность. Видно, что чем выше точность, тем ниже скорость отзыва. Поэтому мы надеемся обнаружить все категории максимально с высокой точностью. Поэтому мы надеемся, что наша кривая близка к (1,1), то есть надеемся, что площадь кривой mAP будет максимально приближена к 1.
Рисунок 8. PR_curvve.png
Процесс расчета потерь состоит из двух частей: стратегии распределения положительных и отрицательных образцов и расчета потерь.
Большинство современных целевых детекторов суетятся по поводу стратегий распределения положительных и отрицательных выборок. Типичные примеры включают simOTA от YOLOX, TaskAlignedAssigner от TooD и DynamicSoftLabelAssigner от RTMDet. Большинство из этих Assigners представляют собой стратегии динамического распределения, в то время как YOLOv5 по-прежнему использует стратегию статического распределения. Учитывая превосходство стратегии динамического распределения, TaskAlignedAssigner компании TooD напрямую упоминается в алгоритме YOLOv8.
Стратегия сопоставления TaskAlignedAssigner просто резюмируется следующим образом: выберите положительные образцы на основе оценок, взвешенных по оценкам классификации и регрессии.
s — оценка прогнозирования, соответствующая категории аннотаций, u — мощность поля прогнозирования и поля GT, а степень согласования можно измерить путем умножения этих двух значений.
Для каждого GT все блоки прогнозирования основаны на классификационных баллах, соответствующих категориям GT. Взвешивание IoU блоков прогнозирования и GT позволяет получить оценку согласованности классификации ассоциаций и регрессии Alignment_metrics.
Для каждого GT непосредственно выберите самый большой из topK в качестве положительной выборки на основе показателя выравнивания Alignment_metrics.
Расчет потерь включает в себя 2 ветви: классификацию и регрессию, без предыдущей ветви объектности.
Ветвь классификации по-прежнему использует потерю BCE.
Ветвь регрессии должна быть привязана к представлению интегральной формы, предложенному в разделе «Фокальная потеря распределения», поэтому используется «Фокальная потеря распределения», а также потеря CIoU.
Три потери могут быть взвешены с определенным весовым соотношением.
Функция потерь используется для измерения степени, в которой прогнозируемое значение модели отличается от истинного значения, что во многом определяет производительность модели.
Потери позиционирования box_loss: ошибка (GIoU) между окном прогнозирования и полем калибровки. Чем меньше ошибка, тем точнее будет позиционирование.
Потеря доверия obj_loss: Рассчитайте доверие сети. Чем меньше уровень доверия, тем точнее возможность определить цель.
Потери классификации cls_loss: вычисление правильности поля привязки и соответствующей калибровочной классификации. Чем меньше классификация, тем точнее классификация.
Рисунок 9. Result.png
По результатам обучения мы можем обнаружить, что эффект обучения с использованием официальной модели очень идеален, и модель может точно идентифицировать большинство категорий объектов.
По результатам обучения мы обнаружили, что алгоритм Yolov8 оказывает идеальный эффект сегментации на пересекающах объектах, поэтому мы пришли к выводу, что этот алгоритм можно применить к системе сортировки роботов.
Рисунок 10. Результаты обучения
Заключение
Результаты обучения показывают, что использование алгоритма Yolo для сегментации границ имеет чрезвычайно высокую точность и высокую скорость распознавания, поэтому алгоритм может быть применен к РТК сортировки неориентированных объектов. Однако, если хотим сделать этот алгоритм распознавания применимым к более сложным и разнообразным сценариям, нам понадобится больше наборов обучающих данных и больше обучающих раундов.
Список литературы:
- Талаат Ф.М., ЗейнЭлдин Х. Улучшенный подход к обнаружению пожара на основе YOLO-v8 для умных городов[J]. Нейронные вычисления и приложения, 2023, 35(28): 20939-20954.
- Ван Г, Чен Ю, Ан П и др. UAV-YOLOv8: модель обнаружения небольших объектов, основанная на улучшенном YOLOv8 для сценариев аэрофотосъемки с БПЛА[J]. Сенсоры, 2023, 23(16): 7190.
- Сяо Б., Нгуен М., Ян В. К. Идентификация спелости фруктов с использованием модели YOLOv8[J]. Мультимедийные инструменты и приложения, 2023: 1-18.
- Ву Т, Донг Ю. YOLO-SE: Улучшенный YOLOv8 для обнаружения и распознавания объектов дистанционного зондирования[J]. Прикладные науки, 2023, 13(24): 12977.
- Тервен Дж., Кордова-Эспарса Д. М., Ромеро-Гонсалес Дж. А. Комплексный обзор yolo-архитектур в компьютерном зрении: от yolov1 до yolov8 и yolo-nas[J]. Машинное обучение и извлечение знаний, 2023, 5 (4): 1680–1716.
- Йонссон Хайберг Дж., Сьоберг А. Исследование эффективности YOLOv8 при обнаружении пешеходов[J]. 2023.
- Фаркаш Л. Отслеживание и обнаружение объектов с помощью алгоритмов YOLOv8 и StrongSORT, захваченных дроном[D]. Университет Сплита. Факультет наук. Кафедра информатики, 2023.
Оставить комментарий