Возможно, вы слышали об ADAS (усовершенствованных системах помощи водителю) во многих современных автомобилях, которые достаточно умны, чтобы обнаруживать человека перед автомобилем и автоматически включать тормоза. Вы думали, какая технология стоит за этим? Ведущие производители автомобилей вмешались, чтобы интегрировать ADAS в свои автомобили. Существующие технологии ADAS работают с визуальными камерами, радарами и лидарами для обнаружения объектов. ADAS в основном зависит от таких характеристик, как высокая скорость, высокая точность, низкая стоимость и низкое энергопотребление.
В этом блоге мы поговорим о методе обнаружения объектов в реальном времени YOLO (You Look Only Once). Мало того, я поделюсь, как YOLO может помочь нам обнаружить повреждения в автомобиле.
Что такое ЙОЛО?
YOLO или You Look Only Once — популярный метод обнаружения объектов. Это означает, что он выполняет две задачи Классификация объектов и Локализация объектов. Поскольку существует две задачи, которые используют многие алгоритмы обнаружения объектов, такие как R-CNN, Fast RCNN, Faster RCNN. двухшаговые или двухнейронные сети. Но, как следует из самого названия, YOLO — просматривает все изображение сразу и только один раз, что позволяет фиксировать контекст обнаруженных объектов. Благодаря единой сети он намного быстрее других алгоритмов обнаружения объектов и может выполнять обнаружение в реальном времени со скоростью 45 кадров в секунду.
Существуют различные версии YOLO, о которых вы узнаете, первая версия была выпущена в 2016 году, а версия 3, которая обсуждается здесь, была создана в 2018 году. Официальными преемниками YOLOv3 являются YOLOv4 и недавно выпущенный YOLOv7, который является текущим состоянием. -современный детектор объектов в 2022 году.
Архитектура YOLOv1
Архитектура работает следующим образом:
- Изменение размера входного изображения до 448 x 448 перед прохождением сверточной сети.
- Всего он содержит 24 сверточных слоя, за которыми следуют 2 полносвязных слоя.
- Использует сверточные слои 1x1 для уменьшения количества каналов, за которыми следует сверточный слой 3x3.
- Softmax используется для предсказания классов.
Разница между архитектурой YOLOv1 и YOLOv3
- YOLOv3 использует 53 сверточных слоя и пропускает соединения.
- YOLOv3 использует логистическую регрессию с бинарной кросс-энтропийной потерей. Поскольку существует вероятность того, что для одного ящика существует два класса (люди и человек), и использование softmax требует, чтобы каждый ящик имел ровно один класс, что в большинстве случаев не так.
Как работает YOLO?
Теперь, когда вы поняли архитектуру, давайте попробуем понять, как на самом деле работает алгоритм YOLO.
«Предположим, мы построили модель YOLO для обнаружения повреждений в машине.
Вы поймете весь процесс того, как YOLO выполняет обнаружение объектов; как получить изображение (B) из изображения (A)»
Алгоритм YOLO работает на следующих четырех подходах:
- Остаточные блоки
- Регрессия связующего поля
- Пересечение по союзу (IoU)
- Немаксимальное подавление
- Остаточные блоки
YOLO работает над идеей сегментации изображения на более мелкие части. Изображение разделено на квадратную сетку размером SxS, например:
Ячейка, в которой находится центр объекта, является ячейкой, ответственной за обнаружение этого объекта.
2. Связующая коробка Регрессия
Следующим шагом является определение ограничивающих рамок, каждая ячейка может иметь B ограничивающих рамок. Значение B можно определить при создании архитектуры модели.
YOLO определяет значения этих полей связи с помощью одного модуля регрессии. Каждая из связующих рамок состоит из 5 чисел + N баллов класса: достоверность блока, позиция x, позиция y, ширина, высота и оценка класса. Здесь показатель достоверности будет находиться в диапазоне от 0,0 до 1,0, где 0,0 означает, что в этой ячейке нет объекта, а 1,0 означает, что модель уверена, что объект есть. x и y — это центр прогнозируемой ограничивающей рамки, а ширина и высота — доли относительно размера изображения. Оценка класса - это уверенность в конкретном классе.
3. Пересечение по союзу (IoU)
Много раз одно изображение может иметь несколько полей для одного объекта. IoU помогает найти наиболее релевантную коробку. Значения IoU находятся в диапазоне от 0 до 1. IoU представляет собой площадь пересечения предсказанных и наземных полей истинности, деленную на площадь объединения предсказанных и наземных полей истинности.
- Пользователь может определить пороговое значение для IoU, например 0,5.
- После этого он игнорирует блоки с IoU ≤ 0,5 и рассматривает только блоки с IoU > 0,5.
4. Немаксимальное подавление
Даже после применения метода IoU существует вероятность того, что для объекта существует более одной коробки. Чтобы справиться с этим, мы выбираем поле с наивысшим значением показателя достоверности обнаружения и подавляем немаксимальные значения.
Таким образом, модель наконец предсказывает S × S × (C + B∗ 5).
S = количество сеток
C = количество классов
B= количество соединительных коробок на ячейку сетки.
YOLO Training — Обнаружение повреждений
Для обучения обнаружению повреждений в автомобилях мы использовали набор данных, доступный на Kaggle: Обнаружение повреждений автомобиля MS COCO.
Этот набор данных содержит 59 изображений поездов, 11 проверочных изображений и 8 тестовых изображений.
Как мы видим, данных слишком мало. Для этого мы использовали предварительно обученную модель YOLO в наборе данных MS COCO, который содержит 80 категорий. Мы заменили последние слои и заморозили остальную часть модели. Затем тренировался на 100 эпох с аугментацией данных.
Здесь в результатах мы можем найти много совпадений, и вероятность также низкая. Поскольку данных для обучения было очень мало, а предварительно обученная модель обучалась на различных 80 видах изображений классов, модель не смогла многому научиться. Мы можем собрать больше изображений и вручную аннотировать их, чтобы добиться большей точности и результатов.
Мы можем использовать эту модель обнаружения повреждений в страховых приложениях, обнаруживая повреждения автомобиля в результате аварии, что может помочь пользователям получить страховку онлайн. И страховые компании также могут сэкономить много денег, поскольку я считаю, что если машинное обучение не увеличивает ценность бизнеса, то нет смысла тратить время и деньги на машинное обучение.
Заключение
В этом блоге мы узнали об архитектуре и работе алгоритмов YOLO, а также увидели, как YOLO можно использовать в автомобильной промышленности с набором данных для обнаружения повреждений автомобилей. Существуют различные отрасли, в которых может применяться обнаружение объектов, например, склады, автоматизированные производства, здравоохранение и т. д.
Как всегда, напишите мне в комментариях, если у вас есть какие-либо сомнения или вы можете быть чем-то полезны! 😁