Какие вариации anchor-free детекторов объектов вы знаете?

«Какие вариации anchor-free детекторов объектов вы знаете?» — вопрос из категории Компьютерное зрение, который задают на 26% собеседований Data Scientist / ML Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В компьютерном зрении я экспериментировал с anchor-free подходами, которые упрощают pipeline детекции, избавляясь от предзаданных якорей (anchors). Основные семейства:

1. Детекторы на основе ключевых точек (Keypoint-based) CenterNet (Objects as Points) – модель, с которой у меня был наибольший практический опыт. Она детектирует объект как одну точку (центр bounding box) и регрессирует его размеры и другие атрибуты (например, ориентацию в 3D).

# Псевдокод логики вывода CenterNet
heatmap = model(image)  # [H, W, C] - карта вероятностей центров классов
scores, indices = torch.topk(heatmap.flatten(), k=100)  # Выбор топ-N центров
for score, idx in zip(scores, indices):
    y, x = divmod(idx, heatmap.shape[1])
    width, height = regress_size(y, x)  # Регрессия размеров из отдельных голов
    bbox = [x - width/2, y - height/2, x + width/2, y + height/2]

Преимущества: Простая и элегантная архитектура, легко расширяется (например, для оценки позы).

2. Пиксельные детекторы (Pixel-wise / Dense Prediction) FCOS (Fully Convolutional One-Stage) – детектирует объект для каждого пикселя feature map, предсказывая расстояние до границ bounding box (left, right, top, bottom) и класс. Я использовал его для задач, где объекты могли быть сильно разного масштаба.

3. Детекторы на основе пар точек (Corner-based) CornerNet – предсказывает пары верхнего левого и нижнего правого углов, а затем группирует их. На практике я столкнулся со сложностью корректной группировки углов на сцене с множеством перекрывающихся объектов.

Сравнение и мой опыт:

  • Anchor-free vs Anchor-based: Anchor-free модели проще (нет гиперпараметров якорей), часто быстрее обучаются и лучше справляются с объектами нестандартных пропорций.
  • Проблемы: Основная сложность – подавление дублирующих детекций (NMS). В CenterNet это решается выбором пиков на heatmap.
  • YOLOv8: Современные фреймворки, такие как Ultralytics YOLOv8, используют anchor-free подход по умолчанию, что подтверждает тренд в индустрии.

Для нового проекта я бы выбрал anchor-free архитектуру (например, на основе CenterNet или YOLOv8) из-за ее простоты и хорошей производительности.