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

Вступление:

Вы только посмотрите один раз (YOLO) - это современная система обнаружения объектов в реальном времени. YOLOv3 работает очень быстро и точно

YOLOv3, новая модель обнаружения объектов, созданная для работы на портативном или настольном компьютере, не имеющая графического процессора (GPU). Модель «You Only Look Once» v3 (YOLOv3) широко используется в методах обнаружения объектов на основе глубокого обучения . Модель была подготовлена ​​на основе набора данных COCO, средняя точность (mAP) составила 57,9%. YOLOv3 работает со скоростью около 20 кадров в секунду на компьютере без графического процессора.

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

Предварительные условия

Что такое ЙОЛО?

YOLO - это умная сверточная нейронная сеть (CNN) для обнаружения объектов в реальном времени. Алгоритм применяет одну нейронную сеть к полному изображению, а затем делит изображение на области и предсказывает ограничивающие прямоугольники и вероятности для каждой области. Эти ограничивающие прямоугольники взвешиваются по прогнозируемым вероятностям. Области изображения с высокими оценками считаются обнаружениями.

Наша модель имеет ряд преимуществ перед системами на основе классификаторов. Он смотрит на все изображение во время тестирования, поэтому его прогнозы основываются на глобальном контексте изображения. Он также делает прогнозы с одной оценкой сети, в отличие от таких систем, как R-CNN, которые требуют тысячи для одного изображения. Это делает его чрезвычайно быстрым, более чем в 1000 раз быстрее, чем R-CNN, и в 100 раз быстрее, чем Fast R-CNN.

Архитектура YOLOv3:

  • Каждый граничный блок содержит 5 элементов: (x, y, w, h) и показатель достоверности поля. Оценка достоверности отражает, насколько вероятно, что блок содержит объект и насколько точен ограничивающий блок. Затем нормализуйте ширину ограничивающего прямоугольника w и высоту h на ширину и высоту изображения. x и y - смещения к соответствующей ячейке. Следовательно, x, y, w, и h находятся в диапазоне от 0 до 1. Каждая ячейка имеет 20 условных вероятностей класса. Вероятность условного класса - это вероятность того, что обнаруженный объект принадлежит к определенному классу (одна вероятность на категорию для каждой ячейки). Итак, прогноз YOLO имеет форму (S, S, B × 5 + C) = (7, 7, 2 × 5 + 20) = (7, 7, 30).
  • Основная концепция YOLO - построить сеть CNN для предсказания тензора (7, 7, 30). Он использует сеть CNN для уменьшения пространственного измерения до 7 × 7 с 1024 выходными каналами в каждом месте. YOLO выполняет линейную регрессию, используя два полностью связанных слоя, чтобы сделать предсказания граничного прямоугольника 7 × 7 × 2 (средний рисунок ниже). Чтобы сделать окончательный прогноз, оставьте те, у которых высокий балл достоверности (выше 0,50), в качестве окончательных прогнозов.

Модель обнаружения строительных объектов:

  1. Нам нужно создать блокнот Jupyter, импортировать все необходимые пакеты и загрузить YOLO.

2. Загрузите обученные веса и файл конфигурации YOLOv3.

3. Обнаружение объектов и прогнозирование ограничивающих рамок

4. Отображение фрагментов информации на экране

5. Надпись на изображении, и готово!

Результаты обнаружения объекта

Пример изображения для прогнозирования объектов и выводов.

Предполагаемый результат после прогнозирования объектов на изображении.

Резюме :

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

Дополнительные учебные ресурсы: