Anchor-Based Detectors
Khám phá cách các detector dựa trên anchor sử dụng các bounding box được định nghĩa trước để phát hiện vật thể. Tìm hiểu cơ chế cốt lõi, các trường hợp sử dụng thực tế và cách chúng so sánh với Ultralytics YOLO26 hiện đại, nhanh hơn.
Bộ phát hiện dựa trên anchor là một lớp model phát hiện đối tượng nền tảng trong thị giác máy tính, sử dụng một tập các bounding box được xác định trước để định vị và phân loại đối tượng. Thay vì cố gắng dự đoán tọa độ của đối tượng từ đầu, các hệ thống này bắt đầu với những template tham chiếu cố định được gọi là anchor box. Sau đó, neural network được huấn luyện để xác định template nào khớp nhất với một đối tượng trong ảnh và tính toán các offset cụ thể—những điều chỉnh về vị trí và kích thước—cần thiết để căn chỉnh anchor hoàn hảo với đối tượng mục tiêu. Cách tiếp cận này chuyển bài toán khó là dự đoán tọa độ tùy ý thành một tác vụ hồi quy ổn định hơn, đây là một đột phá quan trọng trong quá trình phát triển các kiến trúc học sâu (DL) đầu tiên như Faster R-CNN và SSD.
Cơ chế dựa trên Anchor hoạt động như thế nào#
Hoạt động cốt lõi của bộ phát hiện dựa trên anchor xoay quanh việc chia ảnh đầu vào thành một lưới dày đặc. Tại mỗi ô của lưới này, model tạo ra nhiều anchor box với các scale và tỷ lệ khung hình khác nhau để phù hợp với nhiều hình dạng đối tượng, chẳng hạn như người đi bộ cao hoặc phương tiện rộng. Khi dữ liệu ảnh đi qua backbone của model, network trích xuất các feature phong phú để thực hiện đồng thời hai tác vụ:
-
Phân loại: Model gán một điểm xác suất cho mỗi anchor, dự đoán liệu anchor đó có chứa một class đối tượng cụ thể (ví dụ: "car", "dog") hay chỉ là nhiễu nền.
-
Hồi quy Box: Đối với các anchor được xác định là có chứa đối tượng, network dự đoán các hệ số hiệu chỉnh để tinh chỉnh tọa độ tâm
x, y, chiều rộng và chiều cao của anchor, tạo ra một bounding box khít với đối tượng.
Trong quá trình huấn luyện model, các bộ phát hiện này sử dụng một metric gọi là Giao của phần giao và phần hợp (IoU) để ghép các anchor được xác định trước với nhãn ground truth được cung cấp trong dataset. Các anchor có độ chồng lấp cao được xem là sample dương. Vì quy trình này tạo ra hàng nghìn detection tiềm năng, một thuật toán lọc có tên Non-Maximum Suppression (NMS) được áp dụng trong quá trình inference để loại bỏ các box trùng lặp và chỉ giữ lại dự đoán chính xác nhất cho mỗi đối tượng.
So sánh với Bộ phát hiện Không dùng Anchor#
Mặc dù các phương pháp dựa trên anchor đã thiết lập tiêu chuẩn trong nhiều năm, lĩnh vực này đã phát triển theo hướng bộ phát hiện không dùng anchor. Việc hiểu rõ sự khác biệt này là yếu tố quan trọng đối với các kỹ sư hiện đại.
- Dựa trên Anchor: Các model như YOLOv5 và RetinaNet nguyên bản dựa vào cấu hình thủ công hoặc các thuật toán clustering như clustering k-means để xác định kích thước anchor phù hợp nhất cho một dataset. Cách này mang lại sự ổn định nhưng có thể cứng nhắc nếu hình dạng các đối tượng khác nhau quá nhiều.
- Không dùng Anchor: Các kiến trúc hiện đại, bao gồm YOLO26, thường loại bỏ hoàn toàn giai đoạn anchor. Chúng dự đoán trực tiếp tâm và kích thước đối tượng từ các pixel của feature map, giúp giảm overhead tính toán và đơn giản hóa quá trình tìm kiếm hyperparameter. Cách tiếp cận "end-to-end" này thường nhanh hơn và dễ huấn luyện hơn trên dữ liệu đa dạng.
Các ứng dụng trong thực tế#
Logic dựa trên anchor vẫn phù hợp trong nhiều hệ thống production legacy và chuyên biệt, nơi hình dạng đối tượng có thể dự đoán và nhất quán.
- Giám sát giao thông: Trong các hệ thống giao thông thông minh, camera phát hiện phương tiện để quản lý lưu lượng hoặc xác định hành vi vi phạm. Vì ô tô và xe tải có kích thước tiêu chuẩn, các model dựa trên anchor có thể được tinh chỉnh bằng các prior cụ thể để tối đa hóa precision và recall.
- Tự động hóa bán lẻ: Các hệ thống thanh toán tự động sử dụng thị giác máy tính để nhận diện sản phẩm. Vì các mặt hàng đóng gói như hộp ngũ cốc duy trì tỷ lệ khung hình cố định, anchor cung cấp một prior mạnh cho network, giúp network phân biệt các mặt hàng có hình thức tương tự trong một cảnh lộn xộn.
Ví dụ triển khai#
Mặc dù các model YOLO26 mới nhất sử dụng các head không dùng anchor để đạt hiệu năng vượt trội, interface để chạy detection vẫn nhất quán. Ultralytics Platform và Python API trừu tượng hóa sự phức tạp liên quan đến việc model sử dụng anchor hay center point, cho phép người dùng tập trung vào kết quả.
Dưới đây là cách load một model và chạy inference để phát hiện đối tượng, một workflow được áp dụng bất kể kiến trúc anchor bên dưới:
from ultralytics import YOLO
# Load the YOLO26 model (optimized for speed and accuracy)
model = YOLO("yolo26n.pt")
# Run inference on an image source
# The model handles internal logic (anchor-based or anchor-free) automatically
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Display the first result with bounding boxes
results[0].show()Đọc thêm#
Để hiểu sâu hơn về các cơ chế detection, hãy tìm hiểu nghiên cứu nền tảng về Faster R-CNN, công trình đã giới thiệu Region Proposal Network (RPN), hoặc đọc về Single Shot MultiBox Detector (SSD), phương pháp đã tối ưu hóa detection dựa trên anchor để đạt tốc độ cao. Để có cái nhìn toàn diện hơn về lĩnh vực này, dataset COCO là benchmark tiêu chuẩn để đánh giá cả model dựa trên anchor và không dùng anchor. Ngoài ra, các khóa học nâng cao trên Coursera thường trình bày các chi tiết toán học của hồi quy box và quá trình ghép anchor.









