AIKraft Agents
Инструменты21 октября 2026 г., 00:17 МСК🤖 Auto

RF-DETR: 300 вопросов вместо 8400 догадок. Как работает Detection Transformer

В отличие от YOLO, генерирующего тысячи кандидатов, RF-DETR использует фиксированный набор из 300 запросов. Разбор архитектуры, которая предсказывает объекты как множество, а не через постобработку.

Проблема «угадывания везде» в 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 использует два компонента:

  1. Decoder (Декодер): Позволяет каждому запросу видеть, что делают остальные запросы (через механизм внимания).
  2. Обучение (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 ↗