Tìm hiểu cách các hộp neo hoạt động như các mẫu tham chiếu cho việc phát hiện đối tượng. Khám phá cách chúng cải thiện độ chính xác và cách các mô hình như... Ultralytics YOLO26 sử dụng thiết kế không cần neo.
Các hộp neo là các hình chữ nhật tham chiếu được xác định trước với tỷ lệ khung hình và kích thước cụ thể, được đặt trên một hình ảnh để hỗ trợ các mô hình phát hiện đối tượng trong việc định vị và phân loại đối tượng. Thay vì yêu cầu mạng nơ-ron dự đoán kích thước và vị trí chính xác của một đối tượng từ đầu—điều này có thể không ổn định do sự đa dạng về hình dạng của đối tượng—mô hình sử dụng các mẫu cố định này làm điểm xuất phát. Bằng cách học cách dự đoán mức độ điều chỉnh, hay "hồi quy", các hộp ban đầu này để phù hợp với dữ liệu thực tế, hệ thống có thể đạt được sự hội tụ nhanh hơn và độ chính xác cao hơn. Kỹ thuật này đã thay đổi căn bản lĩnh vực thị giác máy tính (CV) bằng cách đơn giản hóa nhiệm vụ định vị phức tạp thành một bài toán tối ưu hóa dễ quản lý hơn.
Trong các bộ dò dựa trên neo cổ điển, ảnh đầu vào được chia thành một lưới các ô. Tại mỗi vị trí ô, mạng tạo ra nhiều hộp neo với hình dạng khác nhau. Ví dụ, để đồng thời detect Với một người đi bộ cao và một chiếc xe hơi rộng, mô hình có thể đề xuất một hình hộp cao, hẹp và một hình hộp ngắn, rộng tại cùng một điểm trung tâm.
Trong quá trình huấn luyện mô hình , các anchor này được so khớp với các đối tượng thực tế bằng cách sử dụng một chỉ số gọi là Intersection over Union ( IoU ) . Các anchor trùng lặp đáng kể với một đối tượng được gắn nhãn sẽ được chỉ định là các mẫu "tích cực". Sau đó, mạng sẽ học hai nhiệm vụ song song:
Cách tiếp cận này cho phép mô hình xử lý nhiều đối tượng có kích thước khác nhau nằm gần nhau, vì mỗi đối tượng có thể được gán cho điểm neo phù hợp nhất với hình dạng của nó.
Mặc dù các kiến trúc mới hơn đang hướng tới thiết kế không cần neo, hộp neo vẫn rất quan trọng trong nhiều hệ thống sản xuất hiện có, nơi các đặc tính của vật thể có thể dự đoán được.
Điều quan trọng là phải phân biệt giữa các phương pháp dựa trên neo truyền thống và các bộ dò không dựa trên neo hiện đại.
Mặc dù các API cấp cao hiện đại như Nền tảng Ultralytics đã trừu tượng hóa các chi tiết này trong quá trình huấn luyện, việc hiểu về các anchor vẫn hữu ích khi làm việc với các kiến trúc mô hình cũ hơn hoặc phân tích các tệp cấu hình mô hình. Đoạn mã sau đây minh họa cách tải một mô hình và kiểm tra cấu hình của nó, nơi các thiết lập anchor (nếu có) thường được định nghĩa.
from ultralytics import YOLO
# Load a pre-trained YOLO model (YOLO26 is anchor-free, but legacy configs act similarly)
model = YOLO("yolo26n.pt")
# Inspect the model's stride, which relates to grid cell sizing in detection
print(f"Model strides: {model.model.stride}")
# For older anchor-based models, anchors might be stored in the model's attributes
# Modern anchor-free models calculate targets dynamically without fixed boxes
if hasattr(model.model, "anchors"):
print(f"Anchors: {model.model.anchors}")
else:
print("This model architecture is anchor-free.")
Mặc dù hiệu quả, các hộp neo (anchor boxes) lại làm tăng độ phức tạp. Số lượng lớn các hộp neo được tạo ra—thường lên đến hàng chục nghìn hộp cho mỗi hình ảnh—tạo ra vấn đề mất cân bằng lớp, vì hầu hết các hộp neo chỉ bao phủ nền. Các kỹ thuật như Focal Loss được sử dụng để giảm thiểu điều này bằng cách giảm trọng số các ví dụ nền dễ nhận diện. Ngoài ra, kết quả cuối cùng thường yêu cầu Non-Maximum Suppression ( NMS ) để lọc ra các hộp trùng lặp dư thừa, đảm bảo chỉ giữ lại phát hiện đáng tin cậy nhất cho mỗi đối tượng.