Detection Head
Узнай, как «голова» детекции (detection head) обеспечивает обнаружение объектов в реальном времени. Исследуй ее роль в Ultralytics YOLO26 для предсказания ограничивающих рамок (bounding boxes) и меток с высокой точностью.
Детекционная головка (detection head) действует как финальный слой принятия решений в архитектуре нейронной сети для обнаружения объектов. В то время как более ранние слои модели отвечают за распознавание форм, текстур и признаков на изображении, детекционная головка — это конкретный компонент, который интерпретирует эту информацию, чтобы точно предсказать, какие объекты присутствуют и где они находятся. Она преобразует абстрактные высокоуровневые данные, созданные экстрактором признаков, в применимые на практике результаты, обычно выдавая набор bounding boxes, охватывающих идентифицированные объекты, вместе с соответствующими метками классов и confidence scores.
Отличие головки от backbone и neck#
Чтобы полностью понять функцию детекционной головки, полезно представить современные детекторы состоящими из трех основных этапов, каждый из которых выполняет определенную задачу в конвейере computer vision (CV):
- Бэкбон (Backbone): Это начальная часть сети, часто представляющая собой Convolutional Neural Network (CNN), такую как ResNet или CSPNet. Она обрабатывает исходное входное изображение для создания feature maps, которые представляют визуальные паттерны.
- Нек (Neck): Располагаясь между бэкбоном и головой, нек уточняет и объединяет признаки с разных масштабов. Такие архитектуры, как Feature Pyramid Network (FPN), гарантируют, что модель сможет обнаруживать объекты разного размера за счет агрегации контекста.
- Head: Финальный компонент, который потребляет уточненные признаки от neck. Он выполняет основную задачу классификации (что это?) и регрессии (где это?).
Эволюция: Anchor-Based против Anchor-Free#
Дизайн детекционных головок значительно эволюционировал для повышения скорости и точности, особенно в связи с переходом от традиционных методов к современным моделям real-time inference.
- Головки на основе якорей (Anchor-Based Heads): Традиционные one-stage object detectors полагались на предопределенные anchor boxes — фиксированные эталонные формы различных размеров. Головка предсказывала, насколько нужно растянуть или сместить эти якоря, чтобы они соответствовали объекту. Этот подход подробно описан в фундаментальном исследовании по Faster R-CNN.
- Безякорные головки (Anchor-Free Heads): Современные модели, включая новейшую YOLO26, используют anchor-free detectors. Эти головки предсказывают центры и размеры объектов непосредственно по пикселям на картах признаков, что устраняет необходимость ручной настройки якорей. Это упрощает архитектуру и повышает способность модели обобщать новые формы объектов — метод, который часто ассоциируется с Fully Convolutional One-Stage Object Detection (FCOS).
Реальные приложения#
Точность детекционной головки имеет решающее значение для развертывания artificial intelligence (AI) в критически важных для безопасности и промышленных средах. Ты можешь легко размечать данные и обучать эти специализированные головки с помощью Ultralytics Platform.
- Автономное вождение: В AI for automotive детекционная головка отвечает за различение пешеходов, светофоров и других транспортных средств в реальном времени. Высокооптимизированная головка гарантирует, что inference latency остается достаточно низкой для мгновенной реакции автомобиля.
- Медицинская диагностика: В medical image analysis детекционные головки настраиваются для поиска аномалий, таких как опухоли на МРТ-сканах. Ветвь регрессии должна быть чрезвычайно точной, чтобы очертить точные границы поражения, помогая врачам в healthcare solutions.
Пример кода#
Следующий пример демонстрирует, как загрузить модель YOLO26 и изучить выходные данные ее детекционной головки. Когда запускается инференс, головка обрабатывает изображение и возвращает финальный boxes, содержащий координаты и идентификаторы классов.
from ultralytics import YOLO
# Load the YOLO26n model (nano version)
model = YOLO("yolo26n.pt")
# Run inference on an image to utilize the detection head
results = model("https://ultralytics.com/images/bus.jpg")
# The detection head outputs are stored in results[0].boxes
for box in results[0].boxes:
# Print the bounding box coordinates and the predicted class
print(f"Class: {int(box.cls)}, Coordinates: {box.xywh.numpy()}")Это взаимодействие подчеркивает, как детекционная головка преобразует сложные активации нейронной сети в читаемые данные, которые разработчики могут использовать для последующих задач, таких как object tracking или подсчет.






