Backbone
Бэкбон — это предварительно обученная базовая сеть модели компьютерного зрения, которая преобразует пиксели в многоуровневые карты признаков для шеи и головы модели.
Бэкбон — это часть нейронной сети, которая преобразует исходные входные данные в карты признаков для остальной модели. В компьютерном зрении бэкбон обычно представляет собой свёрточную нейронную сеть (CNN) или зрительный трансформер (ViT), предварительно обученный на большом наборе данных, например ImageNet. Следующие за ним слои, обычно шея и специализированная голова, преобразуют признаки в метки классов, ограничивающие рамки, маски или ключевые точки. Термины «бэкбон», «кодировщик» и «экстрактор признаков» часто используют как синонимы; в моделях «кодировщик — декодер», таких как U-Net, обычно говорят «кодировщик».
Как работает бэкбон#
Бэкбон компьютерного зрения обрабатывает изображение поэтапно. Каждый этап применяет последовательность блоков свёртки или внимания, затем вдвое уменьшает пространственное разрешение и обычно увеличивает число каналов. Поэтому изображение 640×640 преобразуется в карту 80×80 при шаге 8, карту 40×40 при шаге 16 и карту 20×20 при шаге 32. Ранние этапы реагируют на границы, цвета и текстуры. Поздние этапы выделяют части объектов и целые объекты, поскольку каждая их выходная позиция охватывает большее рецептивное поле исходного изображения. Модели обнаружения и сегментации используют выходы трёх последних этапов и передают их в шею, например пирамидальную сеть признаков (FPN). Благодаря ей модель находит маленькие объекты на карте высокого разрешения, а большие — на карте низкого разрешения.
Базовая сеть, шея и голова#
Большинство современных архитектур обнаружения объектов состоят из трёх частей. Их границы важны, когда ты заменяешь компоненты или замораживаешь слои.
- Бэкбон: выполняет извлечение признаков и формирует карты признаков с несколькими разрешениями. В нём хранится общее визуальное знание, которое можно переносить между задачами и наборами данных.
- Шея: объединяет масштабы бэкбона, чтобы каждый выходной уровень содержал и мелкие пространственные детали, и высокоуровневую семантику. FPN добавляет путь сверху вниз, а PANet — вслед за ним второй путь снизу вверх. У моделей классификации обычно нет шеи: они сводят последний этап бэкбона к одному вектору.
- Голова: преобразует каждую объединённую карту признаков в выходные данные задачи. Голова обнаружения предсказывает рамки и оценки классов, а головы сегментации и оценки позы предсказывают маски и ключевые точки на основе таких же признаков.
Распространённые семейства бэкбонов#
- ResNet: Остаточные связи позволяют сигналу обходить блоки, благодаря чему можно обучать сети глубиной до 152 слоёв. Ансамбль ResNet выиграл соревнование по классификации ILSVRC 2015. ResNet-50 до сих пор служит стандартным базовым бэкбоном для сравнения детекторов.
- CSPNet: В сетях Cross Stage Partial через блоки каждого этапа пропускается только часть каналов, а остальные каналы объединяются с ними в конце. Это сократило вычисления на 20% при такой же или более высокой точности на ImageNet. CSPDarknet53, бэкбон YOLOv4, построен на основе этих этапов.
- ConvNeXt: Модернизированная ResNet с решениями, заимствованными у трансформеров, например большими ядрами и меньшим числом слоёв нормализации. Она достигает точности top-1 на ImageNet 87,8% и превосходит Swin Transformer в обнаружении объектов на COCO.
- ViT и Swin Transformer: Обычный ViT сохраняет одно разрешение от начала до конца, поэтому в моделях обнаружения часто используют Swin. Он вычисляет внимание в сдвинутых локальных окнах и формирует иерархию этапов, похожую на CNN.
- Базовые бэкбоны с самообучением: DINOv3 обучает ViT с 7 миллиардами параметров на 1,7 миллиарда неразмеченных изображений. Его признаки дают высокие результаты на задачах плотного предсказания, например сегментации и оценке глубины, даже если бэкбон заморожен.
Предварительно обученные бэкбоны и перенос обучения#
Обучение бэкбона с нуля требует большого набора данных и длительного расписания, поэтому большинство проектов начинают с предобученных весов. Такой перенос обучения работает, потому что края, текстуры и формы, изученные на одном наборе данных, полезны и для большинства других. Если небольшой набор данных близок к предметной области предварительного обучения, заморозка бэкбона сохраняет общие признаки, снижает переобучение и уменьшает объём памяти для обучения, поскольку замороженные слои не хранят градиенты и состояние оптимизатора. Для большого набора данных или далёкой предметной области, например рентгеновских или тепловизионных изображений, дообучение бэкбона позволяет адаптировать его признаки. В YOLO26 бэкбон включает слои 0–10: свёртки с шагом, блоки C3k2, блок пулинга SPPF и блок внимания C2PSA. Аргумент обучения freeze=11 замораживает все эти слои, поэтому при обучении обновляются только шея и голова детекции; этот вариант подробно рассматривается в руководстве по дообучению.
from ultralytics import YOLO
# Загрузи модель обнаружения YOLO26, предварительно обученную на COCO
model = YOLO("yolo26n.pt")
# Выполни дообучение на небольшом наборе данных, заморозив весь бэкбон (слои 0–10)
results = model.train(data="coco8.yaml", epochs=3, imgsz=640, freeze=11)Перед первой эпохой тренер выводит Freezing layer 'model.0.conv.weight', а также соответствующую строку для каждого другого параметра в слоях 0–10. Эти параметры остаются неизменными, пока шея и голова обучаются на новых данных.










