Ответ
В области детекции объектов можно выделить классические методы и современные нейросетевые архитектуры.
Классические детекторы (до глубокого обучения):
- Viola-Jones: Каскадный классификатор на основе признаков Хаара, исторически важен для детекции лиц.
- HOG (Histogram of Oriented Gradients) + SVM: Извлечение гистограмм градиентов с последующей классификацией. Был стандартом для пешеходов.
- SIFT/SURF/ORB: Детекторы и дескрипторы ключевых точек для задач сопоставления и панорамирования.
Современные архитектуры на основе CNN:
-
Двухэтапные (Two-Stage): Сначала генерируют регионы интереса (Region Proposals), затем классифицируют их.
- R-CNN, Fast R-CNN, Faster R-CNN: Эволюция семейства, где Faster R-CNN интегрирует генерацию регионов в сеть (Region Proposal Network).
- Mask R-CNN: Расширение для instance segmentation (добавляет маску для каждого объекта).
-
Одноэтапные (One-Stage): Прямое предсказание bounding boxes и классов за один проход, обычно быстрее.
- YOLO (You Only Look Once): Разделяет изображение на сетку. Современные версии (v5, v8) — промышленный стандарт.
- SSD (Single Shot MultiBox Detector): Использует feature maps на разных уровнях для детекции объектов разного масштаба.
- RetinaNet: Решает проблему дисбаланса классов при одноэтапной детекции с помощью Focal Loss.
Архитектуры backbone-сетей (для извлечения признаков):
- CNN-based: ResNet, ResNeXt, EfficientNet, MobileNet (для мобильных устройств).
- Transformer-based: Vision Transformer (ViT), Swin Transformer. Набирают популярность, показывая SOTA на многих датасетах.
Практический пример с YOLOv8:
from ultralytics import YOLO
# Загрузка предобученной модели
model = YOLO('yolov8n.pt') # nano версия
# Детекция на изображении
results = model('street.jpg')
# Визуализация результатов
results[0].show()
# Получение bounding boxes, confidence scores и классов
boxes = results[0].boxes.xyxy # координаты
conf = results[0].boxes.conf # уверенность
cls = results[0].boxes.cls # классы
Тренды: смещение в сторону Vision Transformers, эффективные модели для edge-вычислений (YOLO, MobileDet), multi-task learning (детекция + сегментация + оценка позы).