Проблема «угадывания везде» в YOLO
Классические детекторы на основе сверточных сетей (CNN), такие как YOLO11, работают по принципу «угадай везде, а потом почисти». Для изображения размером 640×640 пикселей модель генерирует кандидаты на трех сетках с шагом 8, 16 и 32 пикселя. Это дает 8 400 потенциальных боксов на каждое изображение. Большинство из них — это шум (дорога, здания), а вокруг одного объекта (например, собаки) образуется кластер перекрывающихся боксов.
Для очистки используется Non-Maximum Suppression (NMS) — алгоритм, который удаляет дубликаты с высоким IoU (Intersection over Union). Однако этот метод имеет три критических недостатка:
- Ручная настройка: Порог IoU подбирается вручную и меняется от датасета к датасету.
- Зависимость от сцены: Время работы зависит от количества выживших кандидатов, что делает предсказание нестабильным по времени на загруженных улицах.
- Внешняя логика: Модель обучается создавать хаос, а не избегать его. NMS работает вне сети, что нарушает端到端 (end-to-end) обучение.
RF-DETR: Фиксированный набор запросов
RF-DETR (Roboflow Detection Transformer) переосмысливает задачу как предсказание множества (set prediction). Вместо 8 400 догадок модель использует фиксированный набор из 300 обучаемых запросов (queries). Каждый запрос задает один вопрос: «Есть ли объект, за который я отвечаю, и если да, то где он и что это?»
В сценарии с улицей, где есть велосипедист, две машины и собака, ровно 4 запроса вернут координаты объектов, а остальные 296 вернут маркер «нет объекта» (∅). Ключевой вопрос архитектуры: как заставить 296 «молчаливых» запросов не дублировать ответы других?
Механизм избегания дубликатов
Чтобы избежать коллизий, где несколько запросов предсказывают один и тот же объект, RF-DETR использует два компонента:
- Decoder (Декодер): Позволяет каждому запросу видеть, что делают остальные запросы (через механизм внимания).
- Обучение (Training): Формирует причину для запросов «отступать», если объект уже кем-то предсказан.
Это позволяет модели учиться предсказывать объекты без необходимости в постобработке типа NMS, делая процесс более стабильным и интегрированным.
Сравнение подходов
| Характеристика | YOLO (CNN-based) | RF-DETR (Transformer-based) |
|---|---|---|
| Количество кандидатов | 8 400 (для 640x640) | 300 (фиксировано) |
| Метод очистки | NMS (внешний алгоритм) | Встроенный механизм внимания |
| Зависимость от IoU порога | Да (ручная настройка) | Нет |
| Стабильность времени инференса | Зависит от количества объектов | Постоянная (фиксированное число запросов) |
Важно для разработчиков
RF-DETR 1.11 доступен через PyPI. Бенчмарки производительности и точности измерялись на GPU NVIDIA T4 с использованием TensorRT FP16 при батче размером 1. Важно отметить, что данная статья рассматривает только задачу объектного обнаружения (object detection); сегментация и ключевые точки (keypoints) требуют отдельного разбора архитектуры.
Источник: Towards AI pub ↗