Đến nội dung chính
Thị giác máy tính

Object Detection là gì và hoạt động như thế nào?

Từ ảnh đến bounding box, class và score; hiểu IoU, NMS và đánh giá detector.

Mức giải thích

Object detection trả lời đồng thời “có gì?” và “ở đâu?”. Một detector thường trả về một tập bounding box kèm lớp và score; score đó không tự động là xác suất đã được hiệu chỉnh.

Mục tiêu học tập

  • Phân biệt classification, detection và segmentation.
  • Tính IoU và giải thích tác dụng của NMS.
  • Đọc precision/recall theo threshold thay vì chỉ nhìn ảnh đẹp.

Một tập dự đoán có vị trí

Một prediction gồm tọa độ box, class ID và confidence score theo quy ước của mô hình. Chuẩn hóa kích thước ảnh phải đi cùng phép đổi tọa độ ngược về ảnh gốc. One-stage detector dự đoán từ feature map; two-stage detector thường đề xuất vùng rồi phân loại và tinh chỉnh.

YOLO và Faster R-CNN là hai ví dụ nền tảng, không đại diện cho mọi detector hiện nay. Chi tiết head, cách gán target và postprocessing cần đọc theo kiến trúc cụ thể.

IoU và hộp dự đoán trùng

IoU(A,B)=∣A∩B∣/∣A∪B∣\mathrm{IoU}(A,B)=|A\cap B|/|A\cup B|. NMS theo lớp thường lặp: chọn score cao nhất, bỏ box cùng lớp có IoU vượt ngưỡng, rồi tiếp tục. Score threshold và IoU threshold có chức năng khác nhau.

Khi hai người đứng sát nhau, loại box quá mạnh có thể làm mất một người thật. Các kiến trúc dự đoán theo tập có thể tránh NMS truyền thống; không thêm bước này mà không kiểm tra output contract.

Đánh giá theo protocol cố định

Precision là tỷ lệ prediction được ghép đúng; recall là tỷ lệ ground truth được tìm thấy. AP tổng hợp đường precision–recall theo protocol, lớp và tiêu chí IoU cụ thể. Một prediction trùng một object đã ghép không được tính thêm một true positive.

Báo AP@0.5 khác với AP trung bình trên nhiều IoU threshold. Ghi rõ dataset version, class mapping, object size và thiết bị khi báo latency.

Workflow & kiến trúc

Detector ánh xạ ảnh thành tập box, lớp và score. NMS là bước hậu xử lý phổ biến ở một số detector, không phải yêu cầu của mọi kiến trúc. Box minh họa không phải kết quả mô hình.
01Ảnh + resize
02Backbone / features
03Box + class head
04Hậu xử lý + đánh giá
Workflow minh họa · Các bước cần được điều chỉnh theo bài toán thực tế.

Ứng dụng & giới hạn

  • Đếm vật thể tách biệt trong ảnh.
  • Phát hiện vị trí đối tượng trước tracking.

Điểm mạnh

Đầu ra dễ nối với counting, crop hoặc tracking khi box phù hợp tác vụ.

Giới hạn cần nhớ

Hộp không mô tả biên chính xác; vật thể nhỏ, trùng nhau hoặc domain mới dễ gây lỗi.

Thử trong một project nhỏ

LEARN BY DOING

Tính IoU hai hộp (0,0,2,2) và (1,1,3,3) bằng tay. Mô tả tình huống threshold NMS thấp loại nhầm hai đối tượng khác nhau.

PYTHON · VÍ DỤ MINH HỌA
def iou(a, b):
    left, top = max(a[0], b[0]), max(a[1], b[1])
    right, bottom = min(a[2], b[2]), min(a[3], b[3])
    inter = max(0, right-left) * max(0, bottom-top)
    area = lambda r: max(0, r[2]-r[0]) * max(0, r[3]-r[1])
    union = area(a) + area(b) - inter
    return inter / union if union > 0 else 0.0
assert iou((0, 0, 2, 2), (0, 0, 2, 2)) == 1.0
assert iou((0, 0, 1, 1), (2, 2, 3, 3)) == 0.0
print(iou((0, 0, 2, 2), (1, 1, 3, 3)))

IoU cho box liên tục xyxy hợp lệ, không có quy ước cộng 1 pixel; không phải detector hay evaluator AP.

Nguồn tham khảo

  1. Redmon et al. — You Only Look Once (2016)
  2. Ren et al. — Faster R-CNN (2015)

KEEP EXPLORING

Đọc tiếp để nối các ý tưởng.