Anchor-Free Detectors
Безанкерные детекторы предсказывают рамки по точкам или ключевым точкам, не используя заранее заданные анкерные рамки. Как FCOS, CenterNet и современные модели YOLO обнаруживают объекты.
Детекторы без анкеров — это модели обнаружения объектов, которые напрямую предсказывают каждый ограничивающий бокс по точке на карте признаков или по ключевым точкам, например углам или центру объекта, не используя заранее заданные анкерные боксы. Точка рядом с объектом предсказывает расстояния от себя до четырёх его границ; либо пик на тепловой карте отмечает центр объекта, а сеть регрессирует его ширину и высоту. Это устраняет размеры и соотношения сторон анкеров, а также пороги сопоставления анкеров, которые детекторам на основе анкеров приходится настраивать для каждого набора данных. Головы без анкеров стали стандартной архитектурой для обнаружения объектов в реальном времени.
Как работает обнаружение без анкеров#
Детекторы без анкеров делятся на два семейства:
- Детекторы на основе точек, например FCOS: Кандидатом становится каждая ячейка каждого уровня карты признаков. FCOS (2019) предсказывает в каждой точке внутри объекта оценки классов и четыре расстояния до левой, верхней, правой и нижней границ, а также оценку центральности, которая уменьшает вес боксов, предсказанных по точкам далеко от центра объекта.
- Детекторы на основе ключевых точек, например CornerNet и CenterNet: CornerNet (2018) предсказывает тепловые карты верхних левых и нижних правых углов и с помощью обученных эмбеддингов объединяет углы, относящиеся к одному объекту. CenterNet предсказывает тепловую карту центров объектов и регрессирует ширину и высоту в каждом пике, извлекая пики с помощью максимальной фильтрации 3 × 3, поэтому подавление немаксимумов на основе IoU (NMS) не требуется.
Предсказание без анкеров появилось в линейке YOLO ещё до использования анкеров: в 2015 году YOLOv1 напрямую предсказывала боксы по ячейке сетки, содержащей центр каждого объекта. Добавление анкерных боксов в YOLOv2 повысило полноту с 81% до 88%, снизив mAP на 0,3 пункта. В 2021 году YOLOX вернула в YOLO плотную архитектуру на основе точек, а в 2023 году Ultralytics заменила анкеры YOLOv5 на голову без анкеров в YOLOv8. Поэтому пользовательские наборы данных больше не требуют этапа подбора анкеров; YOLO26 сохраняет эту архитектуру.
Чтобы декодировать плотное предсказание без анкеров, нужны только положение ячейки и четыре предсказанных расстояния:
import torch
# Center of the grid cell at column 10, row 6 of a stride-16 feature map, in image pixels
stride = 16
point = (torch.tensor([10.0, 6.0]) + 0.5) * stride
# Distances the head predicts from that point to the left, top, right, and bottom box edges, in strides
ltrb = torch.tensor([2.0, 3.5, 1.5, 4.0]) * stride
# Anchor-free decoding: no template box, only the point and four distances
x1, y1 = point - ltrb[:2]
x2, y2 = point + ltrb[2:]
print(f"point {point.tolist()} -> box ({x1:.0f}, {y1:.0f}, {x2:.0f}, {y2:.0f})")Точка (168, 104) превращается в бокс (136, 48, 192, 168) шириной 56 и высотой 120 пикселей. Плотная голова применяет это декодирование к каждой ячейке каждого уровня пирамиды, поэтому каждая ячейка выдаёт один бокс-кандидат.
Выбор точек для обучения на каждом объекте#
Поскольку детектору без анкеров не с чем сравнивать размеченные боксы по пересечению над объединением (IoU), для выбора положительных обучающих точек нужно другое правило. FCOS использует положение и размер: точка считается положительной, если находится внутри размеченного бокса, а максимальное расстояние от неё до его границ соответствует диапазону уровня пирамиды этой точки. Например, на уровне с шагом 8 это диапазон от 0 до 64 пикселей, на уровне с шагом 16 — от 64 до 128 и так далее вплоть до шага 128.
В более поздних детекторах положительные примеры выбираются адаптивно. ATSS показала, что разница в точности между RetinaNet на основе анкеров и детектором без анкеров FCOS в основном объяснялась тем, как они определяли положительные и отрицательные примеры. При одинаковом правиле выборки размещение нескольких анкеров в каждой точке не давало преимущества. Сопоставление по соответствию задаче, представленное в TOOD и применяемое PP-YOLOE и многими более поздними детекторами реального времени, ранжирует точки внутри каждого объекта по взвешенному произведению предсказанной оценки класса и IoU бокса и оставляет несколько лучших положительными.
Детекторы без анкеров и на основе анкеров#
- Меньше гиперпараметров: Не нужно подбирать для каждого набора данных размеры анкеров, соотношения сторон и пороги сопоставления по IoU. В детекторах на основе анкеров для этого часто применяют кластеризацию обучающих боксов методом k-средних.
- Гибкость по форме: Выбор точек зависит только от положения объекта, поэтому положительные примеры будут даже для объекта, форма которого не похожа ни на один анкер, например длинной тонкой трубы.
- Общая терминология: Во многих кодовых базах детекторов без анкеров точки сетки всё ещё называются «анкерными точками», хотя у них нет ни размера, ни соотношения сторон.
- Меньше предсказаний: Каждая точка предсказывает один бокс вместо бокса для каждой формы анкера, поэтому декодирование и NMS обрабатывают в несколько раз меньше кандидатов. У RetinaNet 9 анкеров на точку дают около 100 000 кандидатов на изображение.










