Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

Detection Head

Голова детектора — это его заключительная часть, которая преобразует признаки backbone и neck в координаты рамки и оценки классов для каждой позиции сетки.

Голова детектора — это последний набор слоёв сети для обнаружения объектов. Она обрабатывает карты признаков, полученные на предыдущих слоях, и для каждой потенциальной позиции выдаёт рамку и оценку для каждого класса. Её архитектура определяет, как кодируются рамки — как смещения относительно опорных рамок или как расстояния от точки, сколько потенциальных рамок выдаёт модель и нужно ли удалять дубликаты на этапе постобработки, например с помощью подавления немаксимумов (NMS).

Расположение головы#

Современные детекторы состоят из трёх этапов. Базовая сеть, обычно свёрточная сеть или визуальный трансформер, преобразует пиксели в карты признаков, разрешение которых понижается, а семантическая насыщенность растёт с глубиной. Шея, например сеть пирамиды признаков (FPN), объединяет глубокие и неглубокие карты, чтобы каждый выходной масштаб содержал и мелкие детали, и контекст. Затем голова применяет небольшие свёрточные ветви на каждом уровне пирамиды, обычно с шагами 8, 16 и 32, чтобы карты с высоким разрешением находили маленькие объекты, а с низким — большие.

Одностадийные детекторы используют одну плотную голову, которая делает предсказания в каждой ячейке сетки. У двухстадийных детекторов, например Faster R-CNN, две головы: сеть генерации региональных предложений, которая оценивает опорные рамки в каждой позиции, и голова области интереса, классифицирующая и уточняющая несколько сотен предложенных областей.

Как голова предсказывает рамки и классы#

В каждой ячейке сетки плотная голова предсказывает три типа значений:

  • Оценки классов: по одной на каждый класс. Каждая пропускается через сигмоиду, поэтому позиция может независимо получить оценку для каждого класса.
  • Регрессия рамки: четыре числа, задающие рамку: либо смещения, которые перемещают и меняют размер опорной рамки, либо расстояния от центра ячейки до четырёх краёв рамки.
  • Оценка качества и выходные данные задачи: оценка наличия объекта (YOLOv1–YOLOv5) или центрированности (FCOS), ранжирующая рамки, а также значения для конкретной задачи, например коэффициенты масок при сегментации экземпляров или ключевые точки при оценке позы.

Именно способ кодирования рамок отличает детекторы с опорными рамками от безанкорных детекторов. Каждая ветвь состоит из нескольких свёрток и завершается свёрткой 1 × 1 с одним выходным каналом для каждого предсказываемого значения. В RetinaNet и FCOS уже использовались отдельные ветви классификации и регрессии, а YOLOX перенесла такую раздельную голову в YOLO в 2021 году и сообщила о значительно более быстром схождении при обучении, чем у единого общего выходного слоя YOLOv3. Приведённая ниже схема создаёт эти конечные слои 1 × 1 для трёх уровней пирамиды изображения 640 × 640 и сводит их выходные данные в один список кандидатов:

import torch
from torch import nn

# Neck outputs for a 640x640 image at strides 8, 16, and 32 (80x80, 40x40, and 20x20 grids)
channels = (64, 128, 256)
features = [torch.randn(1, c, 640 // s, 640 // s) for c, s in zip(channels, (8, 16, 32))]

# Decoupled head: a box branch (4 values) and a class branch (80 scores) for every pyramid level
box_branches = nn.ModuleList(nn.Conv2d(c, 4, 1) for c in channels)
cls_branches = nn.ModuleList(nn.Conv2d(c, 80, 1) for c in channels)

# Flatten each level's grid and concatenate, giving one candidate per grid cell
boxes = torch.cat([branch(f).flatten(2) for branch, f in zip(box_branches, features)], dim=2)
scores = torch.cat([branch(f).flatten(2) for branch, f in zip(cls_branches, features)], dim=2).sigmoid()
print(f"boxes {tuple(boxes.shape)}, class scores {tuple(scores.shape)}")

Она выводит boxes (1, 4, 8400), class scores (1, 80, 8400): для каждой из 6,400 + 1,600 + 400 ячеек сетки предлагается одна рамка с 80 оценками классов.

От необработанных выходных данных к детекциям#

При обучении определяется, сколько предсказаний получает каждый объект. При сопоставлении один-ко-многим несколько ячеек около каждого объекта помечаются как положительные. Это даёт голове больше обучающих сигналов, но во время инференса для каждого объекта остаётся несколько перекрывающихся рамок, поэтому NMS выбирает лучшую. При сопоставлении один-к-одному, используемом в DETR и в голове инференса YOLOv10, на каждый объект обучается ровно одно предсказание, поэтому выходные данные не требуют NMS.

Голова YOLO26 напрямую предсказывает расстояния до четырёх краёв, отказываясь от выходных данных с 16-бинной функцией потерь распределённого фокуса (Distribution Focal Loss) для каждого края, которые использовались в YOLOv8 и YOLO11. Также модель обучает копии ветвей рамок и классов для сопоставления один-ко-многим и один-к-одному. По умолчанию YOLO26 применяет NMS к выходным данным один-ко-многим; передача nms=False переключает модель на ветви один-к-одному, которые возвращают не более 300 рамок на изображение без этапа NMS.

Проектирование головы на практике#

  • Дообучение на новых классах: классификационная ветвь завершается выходным каналом для каждого класса, поэтому при обучении на наборе данных с другим количеством классов нужен новый конечный классификационный слой, а веса предварительно обученных базовой сети и шеи можно сохранить.
  • Развёртывание: все операции головы выполняются на целевом устройстве, поэтому простое декодирование рамок и выходные данные без NMS упрощают экспорт и сокращают время постобработки.
  • Маленькие объекты: добавление уровня пирамиды с шагом 4 даёт голове более мелкую сетку для крошечных объектов ценой дополнительных вычислений: для входных данных 640 × 640 добавляется 160 × 160 = 25,600 ячеек — в четыре раза больше, чем на уровне с шагом 8.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ повышает безопасность дорожного движения, улучшает помощь водителю и автоматизацию автомобилей, делая дороги умнее.
Подробнее
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения