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.
Detection head đóng vai trò là lớp ra quyết định cuối cùng trong kiến trúc mạng thần kinh phát hiện đối tượng. Trong khi các lớp trước của mô hình chịu trách nhiệm hiểu hình dạng, kết cấu và đặc trưng trong ảnh, thì 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 đối tượng nào đang hiện diện và vị trí của chúng. Nó chuyển đổi dữ liệu trừu tượng, cấp cao được tạo ra bởi bộ trích xuất đặc trưng thành kết quả thực thi được, thường xuất ra một tập hợp các bounding boxes bao quanh các đối tượng được xác định cùng với nhãn lớp và confidence scores tương ứng.
Link to this sectionPhâ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 bộ phát hiện hiện đại bao gồm ba giai đoạn chính, mỗi giai đoạn phục vụ một mục đích riêng biệt trong pipeline computer vision (CV) sẽ rất hữu ích:
- Backbone: Đây là phần đầu 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ô hình thị giác.
- 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 quy mô khác nhau. Các kiến trúc như Feature Pyramid Network (FPN) đảm bảo mô hình 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ế.
Link to this sectionSự tiến hóa: Anchor-Based so với Anchor-Free#
Thiết kế của các detection head đã phát triển đá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 mô hình 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 xác định trước—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 mô hình hiện đại nhất, bao gồm YOLO26 mới nhất, sử dụng các 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 pixel trong feature maps, loại bỏ nhu cầu điều chỉnh anchor thủ công. Điều này giúp đơn giản hóa kiến trúc và nâng cao khả năng tổng quát hóa của mô hình đối với các hình dạng đối tượng mới, một kỹ thuật thường gắn liền với Fully Convolutional One-Stage Object Detection (FCOS).
Link to this sectionCác ứng dụng trong thực tế#
Độ chính xác của detection head rất quan trọng để triển khai artificial intelligence (AI) trong các môi trường công nghiệp và yêu cầu an toàn cao. 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 dụng này bằng cách sử dụng Ultralytics Platform.
- Lái xe tự hành: 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 theo thời gian thực. Một head được tối ưu hóa cao đảm bảo inference latency duy trì ở mức đủ thấp để phương tiện phản ứng tức thì.
- Chẩn đoán y tế: Trong medical image analysis, các detection head được tinh chỉnh để xác định các 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 các ranh giới chính xác của tổn thương, hỗ trợ bác sĩ trong các healthcare solutions.
Link to this sectionVí dụ về mã#
Ví dụ sau đây minh họa cách tải một mô hình YOLO26 và kiểm tra đầu ra của detection head của nó. Khi quá trình suy luận (inference) chạy, head sẽ xử lý ảnh và trả về các 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()}")Sự 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 thần kinh phức tạp thành dữ liệu có thể đọc được mà các nhà phát triển có thể sử dụng cho các tác vụ hạ nguồn như object tracking hoặc đếm đối tượng.






