Узнайте о важной роли detection heads в обнаружении объектов, уточняющих карты признаков для точного определения местоположения и классов объектов.
Головка обнаружения - это последний и, возможно, самый важный компонент модели обнаружения объектов, служащий в качестве слой принятия решений, который преобразует закодированные характеристики изображения в действенные прогнозы. Расположена в самом конце нейронной сети глубокого обучения, а именно после после позвоночника и шеи, головка обнаружения обрабатывает высокоуровневые обрабатывает высокоуровневые карты признаков, чтобы получить конечный результат: класс класс объекта и его точное местоположение на изображении. В то время как предыдущие слои сети сосредоточены на извлечении признаков извлечению признаков - выявлению краев, текстур и сложных узоров - головка обнаружения интерпретирует эти данные, чтобы ответить на вопросы "Что это?" и "Где это?".
Основная обязанность головки обнаружения - выполнять две разные, но одновременные задачи: классификацию и регрессия. В современных архитектурах обнаружения объектов, эти задачи часто решаются отдельными ветвями внутри головки, что позволяет модели специализироваться на различных аспектах прогнозирования.
На выходе из головки обнаружения обычно получается плотный набор кандидатов на обнаружение. Для окончательной обработки результатов постобработка, например Немаксимальное подавление (NMS) чтобы отфильтровать перекрывающиеся блоки и сохранить только наиболее достоверные прогнозы.
Конструкция головки обнаружения диктует, как модель подходит к проблеме локализации объектов.
Эффективность и точность головки обнаружения крайне важны для внедрения искусственного интеллекта (ИИ) в сложных средах.
Полезно отличать головку обнаружения от других основных компонентов Конволюционной нейронной сети (CNN):
Следующий фрагмент кода Python демонстрирует, как проверить головку обнаружения предварительно обученной модели YOLO11 с помощью
the ultralytics пакет. Это помогает пользователям понять структуру конечного слоя, отвечающего за
вывод.
from ultralytics import YOLO
# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")
# Inspect the final detection head layer
# This typically reveals the number of classes (nc) and anchors/outputs
print(model.model.model[-1])
# Run inference to see the head's output in action
results = model("https://ultralytics.com/images/bus.jpg")
Понимание работы детекторной головки необходимо всем, кто хочет оптимизировать оптимизировать работу модели или выполнить сложные задачи таких как трансферное обучение, где головка часто заменяется для обучения модели на новом пользовательском наборе данных. Исследователи постоянно экспериментируют с с новыми конструкциями головок, чтобы улучшить такие показатели, как средняя точность (mAP), расширяя расширяя границы возможностей компьютерного зрения.