В каких случаях стоит применять двухшаговый детектор в продакшене?
Что проверяют
Понимаете ли вы компромисс между точностью и задержкой и умеете ли выбирать архитектуру детектора под ограничения продакшена, а не по таблице mAP. Следом обычно спрашивают, на каком железе модель будет работать и какой бюджет задержки на кадр.
Как отвечать
Сначала определение. Двухшаговый детектор сначала генерирует кандидатов, области, где может быть объект, а затем классифицирует каждую и уточняет рамку. Классика семейства: Faster R-CNN с сетью предложений регионов (RPN), Mask R-CNN для сегментации экземпляров, Cascade R-CNN. Одношаговые модели (YOLO, SSD, RetinaNet, RT-DETR) предсказывают классы и рамки за один проход.
Когда двухшаговый оправдан:
- точность локализации важнее скорости: дефекты на производстве, медицинские снимки, разметка документов, где каждый пиксель рамки имеет значение;
- мелкие объекты на снимках высокого разрешения: уточнение по признакам региона через RoIAlign помогает там, где одношаговая модель пропускает;
- нужна сегментация экземпляров: Mask R-CNN остаётся популярной базовой моделью;
- пакетная или офлайн-обработка: задержка не критична, модель стоит на серверном GPU.
Отдельно назовите каскад как продакшен-приём: быстрая дешёвая модель отсеивает кадры и предлагает регионы, а тяжёлый классификатор на вырезанных фрагментах в высоком разрешении подтверждает находку. Это снижает ложные срабатывания и экономит вычисления.
Когда не стоит: видео в реальном времени, много потоков на один GPU, мобильные устройства и Jetson. Там берут одношаговую модель и оптимизируют через TensorRT или ONNX Runtime. Готовые реализации двухшаговых детекторов есть в torchvision, Detectron2 и MMDetection.
Где спотыкаются
Утверждают, что двухшаговые всегда точнее. Современные одношаговые модели на COCO сравнялись с ними или обошли, преимущество сохраняется в узких случаях, и их нужно уметь назвать.
Выбирают модель по mAP без замера задержки на целевом железе. Считать надо p95 на реальном размере входа вместе с пред- и постобработкой.
Забывают про экспорт. RoIAlign, NMS и динамическое число регионов усложняют перевод в ONNX и TensorRT, поэтому это проверяют до выбора архитектуры, а не после обучения.