Выбираем быстрый детектор людей в 2021

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

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

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

Вот в этой статье описана достаточно полная картина, включая историческое развитие. Вкратце:

  • Олдскульные методы компьютерного зрения - Виола-Джонс (aka каскад Хаара)(2001) и Histogram of Oriented Gradients (2006)

  • Сверточные нейросети из которых начинают выделяться MobileSSD и YOLO (2014 - 2017)

  • Различные версия YOLO (с 2018)

По итогу, там утверждается, что самый быстрый детектор - это YOLOv4.

Что касается первых двух этапов, я нашел серию неплохих статей:

  • первая описывает олдскульные методы, подчеркивая их быстроту и нестабильность

  • вторая часть рассказывает о нейросетях на 2018 год, приходя к выводу, что самый быстрый MobileSSD

Попробуем сравнить YOLO vs MobileSSD работающие через OpenCV. Ну а раз OpenCV, добавим к тесту Виолу-Джонса и HOG, они все равно туда входят.

Итак, находим интересную картинку на стоке:

https://unsplash.com/photos/PhhtSyCeN0I
https://unsplash.com/photos/PhhtSyCeN0I

Окружение

Нам понадобятся:

  • Python3 64bit

  • opencv_python

  • MobileSSD (последняя версия, которая у меня работает с OpenCV - это ssd_mobilenet_v1_coco_2017_11_17)

  • YOLOv4 (нормальная и tiny версии)

Тест

Запускаем бенчмарк (на моем лаптопе, который примерно соответсвует стандартному облачному юниту) и получаем несколько неожиданные результаты:

yolo found 12 persons in 1.97 seconds avg 

tiny_yolo found 8 persons in 0.22 seconds avg 

ssd found 14 persons in 0.1 seconds avg 

hog found 2 persons in 0.18 seconds avg 

haar found 0 persons in 0.07 seconds avg

YOLO обнаружило много людей, но сделало это очень медленно - на картинку ушло 2 секунды (официальные бенчмарки говорят про 100 FPS на самом мощном GPU, но на дохленьком CPU - как видно нет).

YOLO
YOLO
  1. TinyYOLO - на 30% меньше детекций, но почти в 10 раз быстрее.

    Это согласуется с данным других источников:

    The FPS (Frames Per Second) in YOLOv4-tiny is approximately eight times that of YOLOv4. However, the accuracy for YOLOv4-tiny is 2/3rds that of YOLOv4 when tested on the MS COCO dataset.

TinyYOLO
TinyYOLO
  1. Старенький MobileSSD еще в 2 раза быстрее TinyYOLO. Это очень неожиданно. Может быть кто-нибудь из читателей сможет объяснить?

MobileSSD v1
MobileSSD v1
  1. HOG медленнее MobileSSD и слегка быстрее TinyYOLO. Но точность удручает. Скорость метода можно варьировать путем изменения размера картинок (в отличие от нейросетей, HOG не адаптирует под себя входные данные), но даже такой результат получем на разрешении в два раза большем чем для YOLO.

  1. Виола-Джонс. Быстро отработал, но ничего не нашел.

Заключение

Неожиданно, безоговорочным победителем вышел MobileSSD.

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

Олдскульные алгоритмы провалились за пределами теплицы, а по скорости не ушли далеко от MobileSSD.

Возможно, что-то не так было в методике тестирования, например Opencv-DNN - не лучший инструмент для запуска YOLO.

Очень надеюсь, что люди в теме прочитают это и дадут свой комментарий.

Ссылки

  • Обзор детекторов в 2021

  • Обзор традиционных методов Computer Vision

  • Обзор нейросетевых детекторов до YOLO

  • GitHub YOLOv4

  • OpenCV DNN (модуль нейросетей)

  • OpenCV HOG

  • OpenCV Viola-Jones

  • GitHub с данным тестом

Источник: https://habr.com/ru/post/598191/


Интересные статьи

Интересные статьи

Привет, Хабр! Каждый год Trend Micro проводиn глобальную конференцию по облачным технологиям и кибербезопасности CloudSec, чтобы вдохновить всех участников на непрерывное изучение тенденций отрасли, п...
Интернет-образование привлекло внимание всего мира в марте 2020 года, когда образовательные учреждения были вынуждены приостановить занятия в аудиториях из-за пандемии COVID-19. Согласно данным ЮНЕСКО...
Пока мы заканчиваем последние приготовления к выпуску нашего ежегодного рейтинга лучших работодателей в ИТ, почитайте о том, как устроена жизнь в REG.RU — крупнейшем в СН...
Быстрый старт OpenPNP Введение Это краткое руководство поможет установить OpenPnP, увидеть основные компоненты интерфейса и запустить образец задания в симуляторе OpenPnP. А это, в свою...
Основанная в 1998 году компания «Битрикс» заявила о себе в 2001 году, запустив первый в России интернет-магазин программного обеспечения Softkey.ru.