Detection Head
Tìm hiểu cách detection head cho phép phát hiện vật thể thời gian thực. Khám phá vai trò của nó trong Ultralytics YOLO26 để dự đoán bounding box và nhãn với độ chính xác cao.
Một detection head đóng vai trò là tầng ra quyết định cuối cùng trong kiến trúc mạng nơ-ron phát hiện đối tượng. Trong khi các tầng trước của model chịu trách nhiệm hiểu hình dạng, kết cấu và đặc trưng trong ảnh, detection head là thành phần cụ thể diễn giải thông tin này để dự đoán chính xác những đối tượng nào có mặt và vị trí của chúng. Nó chuyển đổi dữ liệu trừu tượng, bậc cao do bộ trích xuất đặc trưng tạo ra thành kết quả có thể hành động, thường xuất ra một tập hợp các bounding boxes bao quanh các đối tượng được nhận dạng cùng với nhãn lớp tương ứng và confidence scores.
Phân biệt Head với Backbone và Neck#
Để nắm bắt đầy đủ chức năng của một detection head, việc hình dung các detector hiện đại gồm ba giai đoạn chính, mỗi giai đoạn phục vụ một mục đích riêng trong pipeline computer vision (CV) sẽ rất hữu ích:
- Backbone: Đây là phần đầu tiên của mạng, thường là một Convolutional Neural Network (CNN) như ResNet hoặc CSPNet. Nó xử lý ảnh đầu vào thô để tạo ra các feature maps đại diện cho các mẫu trực quan.
- Neck: Nằm giữa backbone và head, neck tinh chỉnh và kết hợp các đặc trưng từ các tỷ lệ khác nhau. Các kiến trúc như Feature Pyramid Network (FPN) đảm bảo model có thể phát hiện các đối tượng có kích thước khác nhau bằng cách tổng hợp ngữ cảnh.
- Head: Thành phần cuối cùng tiêu thụ các đặc trưng đã tinh chỉnh từ neck. Nó thực hiện tác vụ phân loại (đối tượng là gì?) và hồi quy (đối tượng ở đâu?) thực tế.
Sự tiến hóa: Anchor-Based so với Anchor-Free#
Thiết kế của detection head đã tiến hóa đáng kể để cải thiện tốc độ và độ chính xác, đặc biệt là với sự chuyển đổi từ các phương pháp truyền thống sang các model real-time inference hiện đại.
- Anchor-Based Heads: Các one-stage object detectors truyền thống dựa vào các anchor boxes được định nghĩa sẵn—các hình dạng tham chiếu cố định với nhiều kích thước khác nhau. Head sẽ dự đoán mức độ cần kéo giãn hoặc dịch chuyển các anchor này để khớp với đối tượng. Phương pháp này được trình bày chi tiết trong nghiên cứu nền tảng về Faster R-CNN.
- Anchor-Free Heads: Các state-of-the-art models, bao gồm cả YOLO26 mới nhất, sử dụng anchor-free detectors. Các head này dự đoán tâm và kích thước đối tượng trực tiếp từ các điểm ảnh trong feature maps, loại bỏ nhu cầu tinh chỉnh anchor thủ công. Điều này đơn giản hóa kiến trúc và nâng cao khả năng khái quát hóa của model đối với các hình dạng đối tượng mới lạ, một kỹ thuật thường được liên kết với Fully Convolutional One-Stage Object Detection (FCOS).
Các ứng dụng trong thực tế#
Độ chính xác của detection head đóng vai trò quan trọng trong việc triển khai artificial intelligence (AI) trong các môi trường an toàn và công nghiệp. Người dùng có thể dễ dàng chú thích dữ liệu và huấn luyện các head chuyên biệt này bằng cách sử dụng Ultralytics Platform.
- Autonomous Driving: Trong AI for automotive, detection head chịu trách nhiệm phân biệt giữa người đi bộ, đèn giao thông và các phương tiện khác trong thời gian thực. Một head được tối ưu hóa cao đảm bảo rằng inference latency vẫn đủ thấp để phương tiện phản ứng tức thì.
- Medical Diagnostics: Trong medical image analysis, các detection head được tinh chỉnh để định vị các điểm bất thường như khối u trong ảnh quét MRI. Nhánh hồi quy phải cực kỳ chính xác để phác thảo ranh giới chính xác của tổn thương, hỗ trợ các bác sĩ trong healthcare solutions.
Ví dụ về mã#
Ví dụ sau minh họa cách tải một model YOLO26 và kiểm tra đầu ra của detection head của nó. Khi inference chạy, head xử lý ảnh và trả về boxes cuối cùng chứa tọa độ và ID lớp.
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()}")Tương tác này làm nổi bật cách detection head chuyển đổi các kích hoạt mạng nơ-ron phức tạp thành dữ liệu có thể đọc được mà các developer có thể sử dụng cho các tác vụ hạ nguồn như object tracking hoặc đếm.






