Возможно, вы слышали об 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)
  • Немаксимальное подавление
  1. Остаточные блоки

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 можно использовать в автомобильной промышленности с набором данных для обнаружения повреждений автомобилей. Существуют различные отрасли, в которых может применяться обнаружение объектов, например, склады, автоматизированные производства, здравоохранение и т. д.

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

Дальнейшее чтение

  1. YOLO v3: постепенное улучшение
  2. Вы только посмотрите один раз: унифицированное обнаружение объектов в реальном времени