Object Detection
Phát hiện đối tượng tìm mọi đối tượng trong ảnh và trả về một bounding box, nhãn lớp và điểm tin cậy cho mỗi đối tượng. Tìm hiểu cách bộ phát hiện hoạt động và được đánh giá.
Phát hiện đối tượng là tác vụ thị giác máy tính nhằm tìm mọi đối tượng thuộc một tập lớp đã biết trong ảnh hoặc khung hình video, đồng thời xác định vị trí của từng đối tượng. Với mỗi đối tượng, tác vụ trả về một bounding box, nhãn lớp và điểm tin cậy, biến ảnh đường phố thành danh sách các hộp có nhãn, mỗi hộp ứng với một chiếc xe, người hoặc đèn giao thông. Danh sách đó là đầu vào cho các tác vụ đếm, đo lường, theo dõi và điều khiển robot.
Detector trả về những gì#
Mỗi detection có ba thành phần. Hộp được lưu dưới dạng tọa độ góc (x1, y1, x2, y2) hoặc điểm trung tâm cùng chiều rộng và chiều cao, tính bằng pixel hoặc chuẩn hóa theo kích thước ảnh. Lớp là chỉ mục trong tập nhãn của model, chẳng hạn 80 danh mục của dataset COCO. Điểm số từ 0 đến 1 xếp hạng khả năng hộp chứa đối tượng thuộc lớp đó; ứng dụng chỉ giữ lại các detection vượt ngưỡng confidence, đánh đổi giữa bỏ sót đối tượng và cảnh báo sai.
from ultralytics import YOLO
# Load a YOLO26 nano detector pretrained on the 80 COCO classes
model = YOLO("yolo26n.pt")
# Run detection on one image
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
# Each detection carries a class, a confidence score, and a box in pixels
for box in result.boxes:
name = result.names[int(box.cls)]
corners = box.xyxy[0].int().tolist()
print(f"{name} {box.conf.item():.2f} {corners}")Mỗi dòng được in ra tương ứng với một đối tượng được phát hiện: tên lớp, điểm tin cậy và tọa độ pixel của góc trên bên trái và góc dưới bên phải.
Cách detector phát hiện đối tượng hoạt động#
Các detector hiện đại là mạng neural gồm ba giai đoạn. Backbone, thường là mạng tích chập hoặc vision transformer, chuyển ảnh thành các feature map. Neck, chẳng hạn mạng kim tự tháp đặc trưng, hợp nhất các map ở nhiều tỷ lệ để biểu diễn được cả đối tượng nhỏ lẫn lớn. Sau đó, detection head dự đoán điểm số lớp và tọa độ hộp tại hàng nghìn vị trí. Các vị trí lân cận cùng kích hoạt trên một đối tượng, vì vậy đầu ra thô chứa nhiều ứng viên chồng lấn; hầu hết pipeline loại bỏ hộp có điểm thấp và áp dụng ức chế phi cực đại (NMS) để giữ lại một hộp cho mỗi đối tượng. Detector end-to-end như DETR được huấn luyện để đưa ra chính xác một dự đoán cho mỗi đối tượng, nên bỏ qua bước đó.
Các thiết kế detector khác nhau ở cách tìm ứng viên. Detector hai giai đoạn như Faster R-CNN trước tiên đề xuất các vùng có thể chứa đối tượng, sau đó phân loại và tinh chỉnh từng vùng. Detector một giai đoạn như YOLO, ra mắt năm 2015, dự đoán tất cả hộp và lớp trong một lượt xử lý, giúp phát hiện thời gian thực trở nên khả thi. Các model một giai đoạn đời đầu hồi quy độ lệch từ các anchor box được xác định trước, còn detector không anchor dự đoán trực tiếp khoảng cách từ một điểm lưới đến bốn cạnh hộp. YOLO26 là detector một giai đoạn, không anchor, áp dụng NMS theo mặc định; truyền nms=False sẽ chuyển model sang head một-một, xuất hộp cuối cùng mà không cần bước NMS.
Huấn luyện và đánh giá#
Bộ phát hiện học từ ảnh được gán nhãn bằng bounding box và class cho mọi đối tượng. Trong quá trình huấn luyện, bước gán nhãn quyết định dự đoán nào chịu trách nhiệm cho từng đối tượng đã gán nhãn; loss kết hợp một thành phần phân loại với một thành phần hồi quy bounding box, thường được xây dựng dựa trên độ giao nhau trên hợp (IoU), tức mức độ chồng lấp giữa bounding box dự đoán và bounding box đã gán nhãn. Quá trình đánh giá cũng dùng IoU: detection được tính là chính xác khi class khớp và IoU với bounding box đã gán nhãn đạt ngưỡng. Độ chính xác trung bình (mAP) sau đó tổng hợp precision và recall trên mọi mức confidence và mọi class. COCO báo cáo mAP50, được tính tại IoU 0.5, và dùng mAP50-95, lấy trung bình trên mười ngưỡng IoU từ 0.50 đến 0.95, làm metric chính. Bảng xếp hạng VLM dùng mAP50 để so sánh các mô hình thị giác-ngôn ngữ phát hiện đối tượng chỉ dựa trên tên class. Ultralytics Platform dùng các model như vậy để tự động gán nhãn dataset detection trước khi YOLO26 huấn luyện trên các nhãn.
Ứng dụng thực tế#
- Xe tự hành: Hệ thống hỗ trợ lái và tự lái phát hiện xe cộ, người đi bộ, người đi xe đạp và biển báo giao thông trong từng khung hình camera; các hệ thống theo dõi và lập kế hoạch chuyển động sẽ xử lý những hộp đó.
- Bán lẻ: Camera trên kệ phát hiện sản phẩm và vị trí trống để đánh dấu mặt hàng hết hàng; hệ thống tự thanh toán phát hiện các mặt hàng được đặt tại quầy.
- Kiểm tra sản xuất: Camera trên dây chuyền phát hiện vết xước, vết lõm và linh kiện thiếu để loại bỏ sản phẩm lỗi khi chúng đi qua.
Phát hiện đối tượng so với các tác vụ liên quan#
- Phân loại ảnh gán một nhãn cho toàn bộ ảnh mà không xác định vị trí.
- Phân đoạn instance phác đường viền từng đối tượng được phát hiện bằng mask pixel bám theo hình dạng chính xác của đối tượng.
- Bounding box định hướng bổ sung góc xoay cho mỗi hộp để ôm sát các đối tượng nghiêng, chẳng hạn tàu và xe trong ảnh chụp từ trên không.
- Theo dõi đối tượng liên kết các đối tượng được phát hiện là cùng một đối tượng qua các khung hình video và gán cho từng đối tượng một ID duy trì ổn định.
- Phát hiện đối tượng 3D dự đoán hộp trong không gian 3D, được mô tả bằng tâm, chiều dài, chiều rộng, chiều cao tính bằng mét và góc hướng.










