Detection Head
Узнай, как «голова» детекции (detection head) обеспечивает обнаружение объектов в реальном времени. Исследуй ее роль в Ultralytics YOLO26 для предсказания ограничивающих рамок (bounding boxes) и меток с высокой точностью.
Детекционная головка (detection head) выступает в роли финального слоя для принятия решений в архитектуре нейронных сетей для обнаружения объектов. В то время как начальные слои модели отвечают за понимание форм, текстур и признаков внутри изображения, детекционная головка — это специфический компонент, который интерпретирует эту информацию, чтобы предсказать, какие именно объекты присутствуют и где они расположены. Она преобразует абстрактные высокоуровневые данные, созданные экстрактором признаков, в прикладные результаты, обычно выдавая набор bounding boxes, охватывающих идентифицированные объекты, вместе с их соответствующими метками классов и confidence scores.
Link to this sectionОтличие головки от backbone и neck#
Чтобы полностью понять функцию детекционной головки, полезно представить современные детекторы состоящими из трех основных этапов, каждый из которых выполняет свою задачу в конвейере computer vision (CV):
- Backbone: Это начальная часть сети, часто Convolutional Neural Network (CNN), такая как ResNet или CSPNet. Она обрабатывает исходное входное изображение для создания feature maps, которые представляют визуальные паттерны.
- Neck: Располагаясь между backbone и головкой, neck уточняет и комбинирует признаки с разных масштабов. Такие архитектуры, как Feature Pyramid Network (FPN), гарантируют, что модель может обнаруживать объекты разного размера за счет агрегирования контекста.
- Head: Финальный компонент, который потребляет уточненные признаки от neck. Он выполняет основную задачу классификации (что это?) и регрессии (где это?).
Link to this sectionЭволюция: 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).
Link to this sectionРеальные приложения#
Точность детекционной головки критически важна для внедрения artificial intelligence (AI) в критически важные и промышленные среды. Ты можешь легко размечать данные и обучать такие специализированные головки с помощью Ultralytics Platform.
- Автономное вождение: В AI for automotive детекционная головка отвечает за распознавание пешеходов, сигналов светофора и других транспортных средств в режиме реального времени. Высокооптимизированная головка гарантирует, что inference latency остается достаточно низкой, чтобы транспортное средство могло реагировать мгновенно.
- Медицинская диагностика: В medical image analysis детекционные головки настраиваются для обнаружения аномалий, таких как опухоли на МРТ-снимках. Регрессионная ветвь должна быть чрезвычайно точной, чтобы очерчивать точные границы поражения, помогая врачам в healthcare solutions.
Link to this sectionПример кода#
Следующий пример демонстрирует, как загрузить модель YOLO26 и проверить выходные данные ее детекционной головки. Когда запускается инференс, головка обрабатывает изображение и возвращает финальные boxes, содержащие координаты и ID классов.
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 или подсчет объектов.






