YOLO history. Part 9
- Вступление
- YOLOv10
- Dual label assignments
- Архитектура модели
- Результаты
- YOLOv12
- Area attention (A2)
- R-ELAN
- Инженерные оптимизации
- Результаты
- YOLOv13
- HyperACE (Hypergraph-Based Adaptive Correlation Enhancement)
- Что такое гиперграф?
- Adaptive Hyperedge Generation (AHG)
- Hypergraph Convolution (HC)
- Общая схема HyperACE
- FullPAD (Full-Pipeline Aggregation-and-Distribution)
- DS-блоки
- Результаты
- Заключение
- Полезные ссылки
Вступление
Список ссылок на прошлые статьи
Part 1. Знакомимся с архитектурой YOLO, её уникальностью, сильными и слабыми сторонами YOLOv1.
Part 2. Рассказываем о трюках YOLOv2 и о том, как авторы смогли обучить модель предсказывать более 9000 классов.
Part 3. Подробно рассматриваем нововведения от создателя архитектуры YOLO — Джозафа Редмона.
Part 4. Разбираемся со внушительным числом аббревиатур, которые появились в новой версии YOLO после ухода Джозафа.
Part 5. Отвечаем на вопрос: в чём разница между 4-ой и 5-ой версиями YOLO.
Part 6. Узнаем, как сделать современный anchor-free детектор, и почему YOLOv7 вышла позже YOLOv6.
Part 7. Рассказываем, зачем нужны вспомогательные модели, что общего между 7-ой и 9-ой версиями и чем они отличаются от 4-ой.
Part 8. Разбираем устройство архитектур YOLOv8 и YOLOv11, а также отличия академического и индустриального подходов к созданию нового детектора.
Сегодня в разборе — самые передовые модели из семейства YOLO! Разберём сразу 3 модели: 10, 12 и 13. Ранее мы познакомились с основными элементами детекционных моделей, а в этой статье сфокусируемся только на самых важных изменениях в новых номерных частях YOLO-моделей.
Увы, к 10-ой части модели YOLO потеряли преемственность. Каждая из моделей, о которой мы сегодня поговорим, была написана исследователями из разных университетов.
YOLOv10
YOLO-модели всегда создавались для применения в режиме реального времени, поэтому уменьшение времени инференса здесь — одна из главных задач исследователей при разработке YOLO-детекторов.
Вдохновившись современными детекторами, они решили избавиться от самой тяжёлой операции в постпроцессинге предсказаний на инференсе — Non-maximum suppression.
Для этого авторы придумали фишку с двумя головами и назвали её dual label assignments.
Dual label assignments
Предыдущие YOLO-модели обучались с использованием алгоритмов матчинга, где для одного объекта на изображении выбиралось несколько предсказанных боксов, содержащих «положительный» объект. Пример такого алгоритма — TAL [ссылка]. Он применяется практически во всех прошлых моделях. Авторы называют такой подход «one-to-many».
Альтернативный подход — one-to-one — пришёл из DETR-архитектуры, в которой одному объекту строго соответствует один «положительный» бокс. Чтобы гарантировать единственность ббокса, используется подобная Венгерскому алгоритму (про мы уже рассказывали, в статье про DETR) процедура, но работающая быстрее и не менее точно.

Основная идея: давайте обучать обе головы сразу, тогда one-to-many head будет давать « богатые» градиенты за счёт большого количества «позитивных» примеров, а one-to-one head выбирать одно «лучшее» предсказание для каждого объекта.
Чтобы согласовать обучение двух голов, авторы ввели метрику матчинга — consistent matching metric.
Consistent matching metric
В процессе обучения для каждого пикселя выходной фичемапы считается значение метрики — по нему происходит последующий матчинг:
\(p\) — классификационный скор из модели, \(s \in \{0, 1\}\) показывает, находится ли данная точка на выходной фичемапе внутри объекта (GT). \(\hat{b}\) — предсказанный бокс, \(b\) — GT бокс. \(\alpha\) и \(\beta\) — гиперпараметры, балансирующие вклад локализации (IoU) и классификации.
Consistent matching означает одинаковые \(\alpha\) и \(\beta\) для обеих голов. Варианты в статье:
Consistent вариант: \(\alpha_{o2m} = \alpha_{o2o} = 0.5; \beta_{o2m} = \beta_{o2m} = 6;\)
Inconsistent: \(\alpha_{o2m} =\alpha_{o2o} = 0.5;\) \(\beta_{o2m} = 6\) , \(\beta_{o2m} = 2;\)
Таким образом, при consistent варианте лучшие «положительные» примеры у one-to-many головы совпадают с one-to-one. Так сеть обучается более согласовано.
На этапе инференса one-to-many голова не используется. А one-to-one голова позволяет выделить самые лучшие совпадения для каждого объекта.
Архитектура модели
Помимо головы, авторы внесли несколько изменений в других частях модели:
- Облегчённая классификационная голова. Заменили традиционную часть головы на две последовательных depthwise separable свёртки: 3х3 и 1х1. Это позволило сократить вычислительную нагрузку классификационной головы в 2.5 раза.
- Spatial-channel decoupled downsampling. Вместо стандартной conv 3×3 со stride 2 решили разделить операцию на две: pointwise-конволюция для увеличения канальной размерности + depthwise — для уменьшения пространственной. Идея: уменьшить потери информации при снижении пространственной размерности.
- Compact Inverted Block (CIB) и rank-guided дизайн. Авторы проанализировали внутренний ранг фичемап на разных стадиях модели и обнаружили — некоторые стадии содержат избыточные вычисления (см. рисунок ниже).

На рисунке 2 (а) у больших моделей на последних стадиях ранги супермаленькие, что говорит об избыточности параметров. Здесь стандартные блоки заменили на CIB — лёгкий блок на основе depthwise и pointwise-конволюций, что заметно сократило количество параметров.
- Large-kernel конволюции и Partial Self-Attention (PSA). Большие конволюции значительно увеличивают итоговый receptive field, что положительно сказывается на качестве моделей, но увеличивает количество вычислений. Авторы нашли компромисс — добавили depthwise-конволюции с ядром 7х7 только на последних слоях сети у маленьких моделей (N и S). Для моделей побольше авторы используют другой трюк (PSA): фичи разделяют по каналам на две части и считают attention только для одной. Это позволяет вдвое сократить вычислительную сложность attention’а, при этом сохранить способность модели улавливать глобальные зависимости.
Результаты
Авторы представили 6 вариантов модели разного размера:

По сравнению с YOLOv8, модель YOLOv10-S показала прирост в 1.4% AP при 36% меньшего количества параметров и на 65% меньшей задержке (latency). YOLOv10-B при том же качестве, что и YOLOv9-C, имеет на 46% меньшую задержку и на 25% меньше параметров.
💡В результате авторам YOLO v10 удалось сделать первую YOLO-модель, которая умеет делать инференс в NMS-free режиме без потери качества!
YOLOv12
Первой моделью, использующей механизм attention, была YOLOv11 (о ней мы рассказали в прошлой статье). Для 12-ой версии исследователи из университета Буффало предложили альтернативный self-attention’у вариант: area attention (A2).
Помимо механизма внимания, авторы переработали блок ELAN, добавив к нему residual-связи для агрегации признаков, и получили Residual ELAN (R-ELAN). Также они внесли ряд инженерных оптимизаций, но обо всём по порядку 🙂
Area attention (A2)
Вместо глобального attention, где токены взаимодействуют друг с другом, авторы предложили разделить feature map вдоль одной из осей на \(l\) равных сегментов — либо вертикально, либо горизонтально. По умолчанию количество сегментов \(l = 4\).
Затем attention считается локально внутри каждой области. В отличие от window attention (как в Swin Transformer), здесь нет сложной логики с окнами, сдвигами или перекрытием — только reshape. При \(l = 4\) квадратичная сложность attention’а сокращается в 4 раза, при этом receptive field остаётся достаточно большим.

R-ELAN

Блок ELAN мы уже встречали в YOLOv7 и YOLOv9 — он отвечает за агрегацию признаков из нескольких параллельных путей. В YOLOv12 авторы добавили к нему два изменения.
Во-первых, появился skip- connection от входа к выходу блока. При этом выход основного блока домножается на маленький коэффициент (по умолчанию 0.01 для моделей L и X) — по аналогии с layer scaling из ViT. В начале обучения блок почти не меняет вход, что стабилизирует градиенты. Без этого большие модели просто не сходились.
Во-вторых, переработали внутреннюю структуру. В оригинальном ELAN вход разделяется на несколько путей, каждый проходит через свои блоки, а результаты конкатенируются. В R-ELAN авторы сначала приводят входные фичи к нужной канальной размерности через transition-слой, а уже потом пропускают через блоки и конкатенируют. По сути получается bottleneck, сокращающий количество параметров в слоях благодаря transition.
Инженерные оптимизации
Помимо архитектурных изменений, они внесли несколько инженерных правок:
- FlashAttention. Как и все современные модели, авторы используют FlashAttention, дающий ожидаемые бонусы в скорости инференса.
- Conv2d+BN вместо Linear+LN. В предыдущей части мы уже разобрали, как можно заменить линейный слой конволюцией в блоке attention. Авторы используют эту идею и тут. А также заменяют LayerNorm на BatchNorm, что позволяет ещё больше оптимизировать инференс за счёт репараметризации (BN можно добавить в конволюцию).
- Position Perceiver вместо positional encoding. Явное позиционное кодирование заменили на separable конволюцию 7х7, применяемую к value в attention’е, и назвали такую замену Position Preceiver. Благодаря тому, что конволюция чувствительна к позиции — каждый элемент ядра привязан к конкретному пространственному смещению, поэтому модель неявно получает позиционную информацию. При этом, чем больше ядро, тем лучше, но ценой скорости. Авторы остановились на конволюции 7х7.
Результаты
Помимо численных результатов, авторы также визуализировали тепловые карты (heatmaps) активаций одного из последних слоёв у моделей YOLOv10, YOLOv11 и YOLOv12 размера Х.

Тепловая карта показывает, какие области входного изображения сильнее всего активируют нейроны на заданном слое сети — на что модель «смотрит». У YOLOv12 контуры объектов получаются заметно чётче, а активация переднего плана точнее. Авторы объясняют это тем, что area attention имеет больший receptive field по сравнению со свёртками и поэтому лучше «понимает» общий контекст сцены.

По сравнению с YOLOv11, прирост качества составил от +0.4% до +1.2% AP в зависимости от размера модели при сопоставимой скорости.
YOLOv13
Последняя архитектура, о которой мы сегодня поговорим — YOLOv13, наконец-то привносит разнообразие в это семейство! Авторы предложили новый подход, основанный на гиперграфах. Что это и зачем нужно? Давайте разбираться!
Мы знаем, что свёртки моделируют локальные зависимости между пикселями (попарные), а attention (включая area attention из v12) — глобальные, но всё равно попарные: каждый токен взаимодействует с каждым по отдельности. Исследователи из Университета Цинхуа предложили пойти дальше и моделировать зависимости высокого порядка — когда связана группа пикселей, а не пары. Для этого они используют гиперграфы.
Перед тем, как разбирать нововведения, посмотрим на общую картину.

Итак, к стандартной парадигме Бекбоун → Шея → Голова добавляются новые части: HyperACE и FullPAD. Таким образом, можем выделить три основных нововведения: механизм HyperACE для моделирования групповых зависимостей, парадигму FullPAD для распределения этих фичей по всей сети и DS-блоки для облегчения модели. Давайте разбираться!
HyperACE (Hypergraph-Based Adaptive Correlation Enhancement)

Прежде, чем приступать к разбору структуры блока, поговорим о гиперграфе.
Что такое гиперграф?
В обычном графе ребро соединяет ровно два узла — это попарная связь. Например, attention можно представить как полный граф: каждый токен связан с каждым, но всегда парами.
Гиперграф обобщает эту идею: одно гиперребро может связывать сразу группу узлов. Представьте фичемапу детектора: на изображении есть собака — её голова, лапы и хвост находятся в разных частях фичемапы, но семантически принадлежат одному объекту. В обычном графе мы можем связать голову с лапой и лапу с хвостом по отдельности. В гиперграфе одно гиперребро связывает всю группу «голова + лапы + хвост» одновременно — это и есть зависимость высокого порядка.
Формально гиперграф описывается матрицей инцидентности \(A \in \{0, 1\}^{N \times M}\), где \(N\) — количество узлов (токенов), \(M\) — количество гиперрёбер. Если \(A_{i,m} = 1\), то токен \(i\) входит в гиперребро \(m\).
Если рассматривать аналогии из компьютерного зрения, то гиперграф можно представить, как несколько бинарных сегментационных масок, где каждая — гиперребро.
Из названий блоков понятно, что будет происходить далее: Adaptive Hyperedge Generation говорит о том, что сначала мы будем генерировать гиперрёбра, а Hpyergraph Convolution намекает, что полученный гиперграф будет каким-то образом саггрегирован 🙂
Adaptive Hyperedge Generation (AHG)
Как уже говорили выше, задача AHG — построить матрицу участия \(A\): определить, какие токены должны быть связаны вместе и насколько сильно.
Для этого авторы вводят \(M\) обучаемых прототипов \(P_0 \in \mathbb{R}^{M \times C}\) — векторы, представляющие «типичный» паттерн для каждого гиперребра. Можно думать о них, как о центрах кластеров: каждый прототип описывает некоторый семантический паттерн, и токены, похожие на него, получают высокую степень участия в соответствующем гиперребре.

Чтобы прототипы учитывали контекст конкретного изображения, авторы сделали следующее:
- Из входных фичей с помощью global average (\(f_{avg}\)) и max pooling (\(f_{max}\)) формируется контекстный вектор \(f_{ctx}\) — сжатое описание всей фичемапы.
- Через обучаемый маппинг из него генерируются смещения \(\Delta P\) и прототипы обновляются: \(P = P_0 + \Delta P\). Таким образом, прототипы «подстраиваются» под конкретный вход.
- Каждый токен проецируется в query, прототипы выступают в роли key. Считается multi-head скалярное произведение: \(s_{i,m} = \langle z_i, p_m \rangle / \sqrt{d_h}\).
- По каждому гиперребру применяется softmax по всем токенам — получаем матрицу участия \(A\).
Hypergraph Convolution (HC)
Моделирование свёртки для гиперграфа происходит на основе построенной матрицы участия \(A\). Авторы делают двухэтапное распространение информации:
- Vertex → Edge (агрегация). Каждое гиперребро собирает взвешенные признаки от всех токенов: \(f_m = \sigma(W_e \sum_i A_{i,m} x_i)\). Так каждое гиперребро получает «сводку» от своей группы.
- Edge → Vertex (распределение). Обновлённые признаки рёбер распределяются обратно по токенам:
\(\tilde{x}_i = \sigma(W_v \sum_m A_{i,m} f_m)\) . Каждый токен получает информацию от всех гиперрёбер, в которых он участвует.
Таким образом, через два шага каждый токен неявно обменивается информацией со всей своей группой — а не только попарно, как в attention.
Общая схема HyperACE
AHG и HC объединены в блок C3AH — CSP-подобную структуру, где одна ветка проходит через гиперграфовые вычисления, а вторая проходит через skip connection.
На верхнем уровне HyperACE принимает мультимасштабные фичи из бэкбона (\(B_3, B_4, B_5\)), приводит их к одному размеру и делит по каналам на три группы:
- Глобальная ветка — к параллельным C3AH-блокам для выделения сложных зависимостей через гиперграф;
- Локальная ветка — L блоков DS-C3k для локальных признаков через свёртки;
- Shortcut — исходные фичи без изменений.
Результаты всех трёх веток конкатенируются и сливаются конволюцией 1×1.
И теперь, конечно, давайте посмотрим, как выглядят гиперрёбра на примерах:

FullPAD (Full-Pipeline Aggregation-and-Distribution)
HyperACE формирует обогащённые фичи, но куда их подавать? Авторы предлагают распределять их по всему пайплайну через три «туннеля»: из бэкбона в шею, внутри шеи и из шеи в голову. В каждой точке используется gated fusion:
где \(F_i\)— исходные фичи, \(H_i\) — фичи из HyperACE, а \(\gamma\) — обучаемый скаляр. \(i\) показывает номер стадии, для которой считаются фичи \(i \in \{3, 4, 5\}\). Такая схема позволяет сети самой регулировать, насколько сильно влияют гиперграфовые признаки на каждом этапе.
Такой способ позволяет эффективно интегрировать фичи из HyperACE в различные стадии всего пайплайна.
DS-блоки
Для облегчения модели авторы заменили обычные конволюции на depthwise separable варианты в нескольких блоках (DS-Bottleneck, DS-C3k, DS-C3k2):

Результаты
| Модель | Параметры (M) | FLOPs (G) | AP val (%) | Latency (ms) |
|---|---|---|---|---|
| YOLOv13-N | 2.5 | 6.4 | 41.6 | 1.97 |
| YOLOv13-S | 9.0 | 20.8 | 48.0 | 2.98 |
| YOLOv13-L | 27.6 | 88.4 | 53.4 | 8.63 |
| YOLOv13-X | 64.0 | 199.2 | 54.8 | 14.67 |
Больше всего от гиперграфов выиграли маленькие модели: YOLOv13-N набрала +3.0% AP по сравнению с YOLO11-N и +1.5% по сравнению с YOLOv12-N. Для S-модели прирост над v12 составил +0.9% AP. У больших моделей разница скромнее — +0.4% для L и X.
Стоит отметить, что M-размер в этой версии отсутствует — авторы представили только N, S, L и X варианты.
Заключение
Новые представители семейства показали разнообразие подходов к решению задачи детекции (и не только — некоторые модели умеют и в семантическую сегментацию).
В YOLOv10 авторы избавились от NMS с помощью двухголовой архитектуры и Венгерского алгоритма для матчинга 1 к1.
В YOLOv12 обсудили новый тип механизма внимания для оптимизации вычислений, а в YOLOv13 — о новом подходе к анализу связи на изображениях, гиперграфе!

Но если посмотреть на график качества последних моделей на COCO, можно отметить: новые архитектурные идеи несильно улучшают итоговую метрику, а каждые новые половины процента даются всё сложнее и сложнее. Похоже, настало время переходить к другим датасетам и бенчмаркам, потому что прогресс на COCO пришел к насыщению. С другой стороны, новые бенчмарки точно вдохнут жизнь в нишу детекторов, так что ждём их с нетерпением 🙂
Итак, на момент написания статьи мы с вами разобрали вышедшие архитектуры из основной (номерной) серии! Отдельное спасибо тем, кто прочитал все статьи в серии ☺️
Мы продолжим следить за выходом новых частей и вернёмся к вам с разбором! До встречи 😎
Полезные ссылки
- YOLOv10 https://arxiv.org/abs/2405.14458
- YOLOv12 https://arxiv.org/abs/2502.12524
- YOLOv13 https://arxiv.org/abs/2506.17733

