Как ответить
Расскажу про архитектуру Faster R-CNN — она была стандартом для детекции объектов несколько лет и до сих пор актуальна из-за хорошего баланса точности и скорости. Главная идея: мы не скользим окном по всем позициям, а сначала генерируем несколько тысяч кандидатов-регионов (region proposals), а потом классифицируем каждый.
Архитектура состоит из трёх частей:
- Backbone (Feature Extractor) — обычно ResNet-50 или VGG-16. Изображение прогоняем через свёрточную сеть до последнего feature map. Для ResNet-50 это слой перед avg pooling, размер карты — H/32 x W/32 x 2048 (для входа 800x800 — 25x25x2048).
- RPN (Region Proposal Network) — лёгкая свёрточная подсеть, которая на каждой позиции feature map оценивает 9 anchor boxes (3 масштаба × 3 соотношения сторон). RPN выдаёт два выхода: foreground/background score (2 канала) и 4 регрессионных координаты смещения для каждого anchor. После NMS (non-maximum suppression) с порогом IoU 0.7 остаётся ~2000 регионов, из них для обучения берём 256 (сэмплируем 1:1 фон/объекты).
- RoI Head (Detector) — для каждого региона применяем RoI Pooling (или RoI Align, чтобы избавиться от квантования). Получаем фиксированный вектор 7x7xC, прогоняем через два полносвязных слоя (обычно 4096 нейронов), потом два параллельных выхода: Softmax для N+1 классов (N объектов + фон) и регрессия bounding box для каждого класса.
Ключевая инновация Faster R-CNN — объединение RPN и детектора в одной сети. Feature map для обеих веток общий, что ускоряет инференс. На обучении используем мультитаск-лосс: Lcls (логарифмическая потеря для классификации) + λ·Lreg (smooth L1 для регрессии боксов). λ обычно 10.
Из нюансов, которые стоит помнить:
- Размер входного изображения влияет на производительность — типично 800x1333 или 600x1000.
- Anchor scaling адаптируют под датасет: для COCO — площади 128², 256², 512²; для мелких объектов на производстве — 32², 64², 128².
- На COCO mAP@0.5:0.95 достигает ~36% для ResNet-50, ~42% для ResNet-101.
- Слабое место — тяжело детектировать объекты малого размера из-за глубокого backbone с большим stride.
Сейчас чаще используют одностадийные детекторы (YOLO, RetinaNet), но Faster R-CNN остаётся эталоном для случаев, где важна точность, а не FPS (например, анализ медицинских изображений).