Detection Head
Узнай, как голова обнаружения обеспечивает обнаружение объектов в реальном времени. Изучи ее роль в Ultralytics YOLO26 при точном предсказании ограничивающих рамок и меток.
Голова детектора выступает в качестве финального слоя, принимающего решения, в архитектуре нейронной сети для обнаружения объектов. В то время как предыдущие слои модели отвечают за анализ форм, текстур и признаков на изображении, голова детектора — это специализированный компонент, который интерпретирует эту информацию, чтобы точно предсказать, какие объекты присутствуют и где они находятся. Она преобразует абстрактные высокоуровневые данные, полученные от экстрактора признаков, в результаты, готовые к использованию, обычно возвращая набор ограничивающих рамок, охватывающих обнаруженные объекты, вместе с соответствующими метками классов и оценками уверенности.
Различия между головой, backbone и neck#
Чтобы полностью понять функцию головы детектора, полезно представить современные детекторы как состоящие из трех основных этапов, каждый из которых выполняет отдельную задачу в конвейере компьютерного зрения (CV):
- Backbone: Это начальная часть сети, часто представляющая собой сверточную нейронную сеть (CNN), например ResNet или CSPNet. Она обрабатывает исходное изображение, создавая карты признаков, которые представляют визуальные закономерности.
- Neck: Расположенный между backbone и головой, neck уточняет и объединяет признаки разных масштабов. Архитектуры вроде пирамидальной сети признаков (FPN) позволяют модели обнаруживать объекты разных размеров за счет агрегации контекста.
- Head: Финальный компонент, который получает уточненные признаки от neck. Он выполняет непосредственно классификацию (что это?) и регрессию (где это находится?).
Эволюция: методы с anchor boxes и без anchor boxes#
Конструкция голов детекторов значительно эволюционировала для повышения скорости и точности, особенно в связи с переходом от традиционных методов к современным моделям инференса в реальном времени.
- Головы с anchor boxes: Традиционные одностадийные детекторы объектов использовали заранее заданные anchor boxes — фиксированные эталонные формы разных размеров. Голова предсказывала, насколько нужно растянуть или сместить эти anchor boxes, чтобы они соответствовали объекту. Этот подход подробно описан в основополагающих исследованиях по Faster R-CNN.
- Головы без anchor boxes: Современные модели, включая новейшую YOLO26, используют детекторы без anchor boxes. Такие головы напрямую предсказывают центры и размеры объектов по пикселям на картах признаков, устраняя необходимость ручной настройки anchor boxes. Это упрощает архитектуру и повышает способность модели обобщать на новые формы объектов — метод, часто связываемый с полностью сверточным одностадийным обнаружением объектов (FCOS).
Практические применения#
Точность головы детектора критически важна для внедрения искусственного интеллекта (AI) в критически важных с точки зрения безопасности и промышленных средах. Пользователи могут легко размечать данные и обучать эти специализированные головы с помощью Ultralytics Platform.
- Автономное вождение: В сфере AI для автомобилей голова детектора отвечает за различение пешеходов, светофоров и других транспортных средств в реальном времени. Высокооптимизированная голова обеспечивает достаточно низкую задержку инференса, чтобы автомобиль мог мгновенно реагировать.
- Медицинская диагностика: В анализе медицинских изображений головы детекторов настраиваются для обнаружения аномалий, таких как опухоли на МРТ-снимках. Ветка регрессии должна быть чрезвычайно точной, чтобы обозначать точные границы поражения и помогать врачам в решениях для здравоохранения.
Пример кода#
В следующем примере показано, как загрузить модель 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()}")Это взаимодействие показывает, как голова детектора преобразует сложные активации нейронной сети в удобные для чтения данные, которые разработчики могут использовать для последующих задач, таких как отслеживание объектов или подсчет.









