Демистификация серии блогов Clearview AI (часть 3)

"Оглавление"

Предыдущая: Сбор данных для разработки глубокого обучения

Далее: Обнаружение запущенных объектов и структурирование данных

Более быстрые R-CNN, YOLO и детекторы одиночных выстрелов

Распознавание объектов описывает набор из трех связанных задач компьютерного зрения:

  1. Классификация изображений,
  2. Локализация объекта и
  3. Обнаружение объекта.

Обнаружение объектов эффективно сочетает локализованные классификаторы на одном или нескольких объектах изображения.

Когда дело доходит до обнаружения объектов на основе глубокого обучения, существуют три основных типа моделей обнаружения объектов:

  1. Быстрые сверточные нейронные сети на основе регионов (Faster R-CNN),
  2. You Only Look Once (YOLO) и
  3. Одиночные детекторы (SSD).

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

Более быстрые R-CNN

Более быстрые R-CNN — самый известный тип моделей обнаружения объектов. Термин «свертка» относится к математической операции, которая позволяет обнаруживать локальные паттерны различных абстракций, таких как линии, кривые, многоугольники, глаза, лица, головы, тела и так далее. Более быстрые модели R-CNN сложны и сложны для понимания. Несмотря на то, что он «быстрее», чем стандартный R-CNN, алгоритм работает медленно, порядка 7 кадров в секунду (FPS) по сравнению с конкурирующими семействами моделей.

ЙОЛО

Модели YOLO, как правило, самые быстрые из доступных, способные обрабатывать 40–90 кадров в секунду или 155 кадров в секунду в специализированных конфигурациях. То, что YOLO компенсирует скоростью, ему не хватает точности.

SSD

SSD обеспечивают баланс между Faster R-CNN и YOLO. Основываясь на более простом алгоритме, SSD могут генерировать обнаружение намного быстрее, чем R-CNNS, со скоростью 22–46 кадров в секунду. Несмотря на то, что они конкурируют с YOLO по скорости, младшие твердотельные накопители, как правило, более точны, чем YOLO.

Выбор правильной модели

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

Например, твердотельные накопители, как правило, имеют проблемы с обнаружением объектов, которые находятся слишком близко или слишком малы. Основываясь на выводах исследования Google о компромиссах между скоростью и точностью для современных сверточных детекторов объектов, хорошо известно, что разрешение входного изображения значительно влияет на точность и скорость. Уменьшение размера изображения наполовину по ширине и высоте в среднем снижает точность на 16 %, а время вывода сокращается на 27 %.

Для точной настройки модели существуют такие методы, как Feature Pyramid Networks (FPN), компонент, явно встроенный в YOLOv3, который обычно может улучшить производительность любой модели для небольших объектов.

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

Использование ImageAI, RetinaNet и ResNet-50 с весами COCO

Для распознавания лиц доступен широкий спектр моделей и опций библиотеки. В дополнение к обнаружению лиц на изображении доступны библиотеки для определения воспринимаемых эмоций или проверки пользователей по лицу (а-ля FaceID). Некоторые облачные сервисы для реализации распознавания лиц включают Microsoft Azure Face API и Amazon Rekognition API.

Для простоты и чтобы рассеять любое подобие тщательного анализа, в рамках демонстрации CCTView я решил использовать одну из моделей по умолчанию, предоставляемых ImageAI, высокоуровневой библиотекой обнаружения объектов. ImageAI — это библиотека Python, разработанная командой DeepQuest AI. Библиотека значительно упрощает реализацию обнаружения объектов благодаря поддержке моделей типов RetinaNet, YOLOv2 и TinyYOLOv3.

Модель типа ImageAI RetinaNet представляет собой лучший выбор для нашего приложения, учитывая размер и разрешение изображений с веб-камеры DOT. В частности, мы будем использовать архитектуру остаточной сети с 50 слоями (ResNet-50), предварительно обученную на наборе данных Common Object in Context (COCO).

Можно многое сказать об эффективности и изобретательности архитектуры ResNet по сравнению с другими архитектурами RetinaNet… изображение ниже основано на статье примерно из 2229 слов.

Как и было обещано в рекламных роликах ImageAI, реализация обнаружения объектов оказывается невероятно простой:

Выполнение обнаружения на отдельных кадрах веб-камеры с помощью ImagineAI заняло в среднем 2 секунды на стандартном MacBook Pro с четырехъядерным процессором Intel Core i7 с тактовой частотой 2,7 ГГц, 16 ГБ ОЗУ и графическим процессором Intel Iris Plus Graphics 655 1536 МБ. Эта производительность совпадала с различными фоновыми процессами.

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

Как показано выше, ImageAI может успешно обнаруживать транспортные средства на разных расстояниях от камеры. Хотя версия ImageAI, используемая для этой демонстрации CCTView, не поддерживает распознавание лиц, существует широкий спектр сравнительных библиотек, таких как Dlib, OpenCV и PIL, с очень похожими интерфейсами и тем же типом функциональности специально для лиц.

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

"Оглавление"

Предыдущая: Сбор данных для разработки глубокого обучения

Далее: Обнаружение запущенных объектов и структурирование данных

использованная литература

Общие объекты в наборе контекстных данных

ИмиджАй

Подушка Python (для PIL)

Глубокий поиск ИИ

Компромисс между скоростью и точностью для современных сверточных детекторов объектов

Библиотека компьютерного зрения с открытым исходным кодом

Нежное введение в распознавание объектов с помощью глубокого обучения

Обнаружение объектов: сравнение скорости и точности (Faster R-CNN, R-FCN, SSD, FPN, RetinaNet и YOLOv3)

Что мы узнаем из детекторов одиночных объектов (SSD, YOLOv3), FPN и потери фокуса (RetinaNet)?

Реализация YOLO с использованием ResNet в качестве экстрактора функций

Обучить ИИ обнаружению объектов с помощью 6 строк кода

ResNet (34, 50, 101): остаточные CNN для задач классификации изображений

YOLOv3: постепенное улучшение

Обзор ResNet и его вариантов

Шпаргалка по производительности глубокого обучения

Обзор: YOLOv3 — Вы только посмотрите один раз (обнаружение объектов)

Обнаружение объектов с помощью глубокого обучения и OpenCV

Исследование технологии обнаружения пешеходов на основе MSR и Faster R-CNN

Вы только посмотрите один раз: унифицированное обнаружение объектов в реальном времени

Обнаружение объектов, часть 4: модели быстрого обнаружения