- •Содержание
- •Введение
- •Анализ предметной области компьютерного зрения
- •Основные понятия и задачи компьютерного зрения
- •Обзор существующих методов обработки изображений
- •Практическая значимость задач компьютерного зрения
- •Методы распознавания образов
- •Принципы работы систем распознавания образов
- •Использование нейронных сетей и машинного обучения
- •Анализ эффективности алгоритмов распознавания образов
- •Технология детекции объектов
- •Концепция и цели детекции объектов
- •Современные алгоритмы детекции (yolo, ssd, Faster r-cnn)
- •Сравнение производительности алгоритмов детекции объектов
- •Сегментация изображений
- •4.1. Теоретические основы сегментации
- •4.2. Типы и методы сегментации изображений
- •4.3. Глубокое обучение в задаче сегментации
- •4.4. Применение сегментации изображений в прикладных задачах
- •Заключение
- •Список использованных источников
Современные алгоритмы детекции (yolo, ssd, Faster r-cnn)
Исторически алгоритмы детекции делят на двухшаговые и одношаговые. Двухшаговые сначала формируют кандидатов на «область интереса», а затем классифицируют каждый кандидат; это обеспечивает высокую точность, но увеличивает время отклика. Одношаговые проводят классификацию и регрессию координат в едином проходе сети, жертвуя небольшой долей точности ради скорости.
Faster R‑CNN остаётся ярким представителем двухшагового подхода. Его архитектура включает сеть Feature Extractor, за которой следует Region Proposal Network; RPN генерирует несколько сотен прямоугольников, вероятно содержащих объекты. Каждый такой прямоугольник обрабатывается пулером ROI Align и передаётся в классификатор, прогнозирующий класс и уточнённые координаты. Благодаря раздельным этапам «поиска» и «уточнения» Faster R‑CNN демонстрирует mAP свыше 40 % на COCO, хотя типичная скорость едва превышает 7–10 кадров в секунду на средневычислительном GPU.
В ответ на потребность в реальном времени была предложена семья моделей YOLO – You Only Look Once. Сеть разбивает изображение на регулярную сетку и за один проход предсказывает классы и координаты рамок для каждой ячейки. Отказы от сложного пост‑процессинга сделали YOLO настолько быстрой, что её четвёртая итерация на потребительской видеокарте уверенно держит 65–70 FPS, сохраняя приемлемую точность (mAP около 43 % на COCO). Ключевая идея YOLO – рассматривать детекцию как задачу регрессии, сведённую к единому тензору выходных признаков.
Single Shot Detector (SSD) занимает нишу между упомянутыми подходами. Как и YOLO, он выполняет прогноз за один проход, но использует несколько «голов» на разных масштабах фич‑карт, благодаря чему хорошо обнаруживает как мелкие, так и крупные объекты. SSD оперирует заранее заданным набором anchor‑боксов разного соотношения сторон и размеров, а сеть лишь уточняет их координаты и классы. Итоговый mAP варьируется от 32 % в быстрой версии SSD300 до 38 % в более тяжёлой SSD512, при этом скорость остаётся в районе 30–45 FPS.
С практической точки зрения выбор алгоритма определяется задачей. Если приоритетом является максимальная точность, уместен Faster R‑CNN или его производные Cascade R‑CNN и DetectoRS. Для мобильных приложений, робототехники и видеонаблюдения чаще используют YOLOv5/v8 или SSD, сочетая их с пост‑обработкой Non‑Maximum Suppression, чтобы уменьшить число ложных срабатываний.
Таблица 3.1 суммирует показатели точности и скорости для рассмотренных алгоритмов на эталонном наборе COCO‑2017.
Таблица 3.1 — Сравнение YOLO, SSD и Faster R‑CNN по mAP и FPS
Алгоритм
|
Конфигурация (бэкбон / вход)
|
mAP@0.5:0.95
|
Скорость инференса, FPS*
|
YOLOv3‑416 |
Darknet‑53, 416 × 416 |
0,330 |
45 |
SSD300 |
VGG‑16, 300 × 300 |
0,251 |
59 |
Faster R‑CNN |
ResNet‑101‑FPN, 600 × 600 |
0,349 |
9 |
FPS измерены на GPU NVIDIA GTX Titan X, в число включено post‑processing (NMS).
График на рисунке 3.2 визуализирует компромисс «скорость‑точность», подчёркивая, что ни один из методов не является универсально лучшим.
Рисунок 3.2 — Компромисс между точностью и скоростью детекции для современных алгоритмов
Время обработки одного кадра легко перевести в частоту кадров по формуле FPS ≈ 1000 / t, мс; таким образом, 100 мс на кадр соответствует приблизительно 10 FPS, 33 мс — около 30 FPS, а 16 мс — порядка 60 FPS.
