Mean Average Precision (mAP)
Tìm hiểu cách Mean Average Precision (mAP) đánh giá các model Computer Vision. Khám phá IoU, precision và recall, đồng thời tính mAP bằng Ultralytics YOLO26 ngay hôm nay.
Độ chính xác trung bình (mAP) là một metric toàn diện được sử dụng rộng rãi để đánh giá hiệu năng của các model thị giác máy tính, đặc biệt trong các tác vụ như phát hiện đối tượng và phân đoạn instance. Không giống như accuracy đơn giản, vốn chỉ kiểm tra xem một ảnh có được phân loại chính xác hay không, mAP đánh giá mức độ model tìm thấy các đối tượng và độ chính xác khi định vị hộp giới hạn xung quanh chúng. Điều này khiến mAP trở thành benchmark chính để so sánh các architecture tiên tiến như YOLO26 với các thế hệ trước. Bằng cách tóm tắt sự đánh đổi giữa precision và recall trên tất cả các class, mAP cung cấp một điểm số duy nhất phản ánh độ bền vững của model trong các kịch bản thực tế.
Các thành phần của mAP#
Để tính mAP, trước tiên cần hiểu ba khái niệm nền tảng xác định chất lượng phát hiện:
- Intersection over Union (IoU): Chỉ số này đo độ chồng lấn không gian giữa box được dự đoán và annotation ground truth. Đây là một tỷ lệ nằm trong khoảng từ 0 đến 1. Một dự đoán thường chỉ được xem là "True Positive" khi IoU vượt qua một threshold cụ thể, chẳng hạn 0.5 hoặc 0.75.
- Precision: Metric này trả lời câu hỏi: "Trong tất cả các đối tượng mà model tuyên bố đã phát hiện, có bao nhiêu phần thực sự chính xác?" Precision cao nghĩa là model tạo ra rất ít false positive.
- Recall: Metric này đặt câu hỏi: "Trong tất cả các đối tượng thực sự tồn tại trong ảnh, model đã tìm thấy bao nhiêu phần?" Recall cao cho thấy model tránh được false negative và hiếm khi bỏ sót đối tượng.
Phương pháp tính toán#
Việc tính toán bắt đầu bằng cách tính Average Precision (AP) cho từng class cụ thể (ví dụ: "person", "car", "dog"). Thực hiện việc này bằng cách tìm diện tích bên dưới đường cong Precision-Recall, biểu diễn precision theo recall tại nhiều threshold confidence khác nhau. "Mean" trong Mean Average Precision chỉ việc lấy trung bình các điểm AP này trên tất cả các category trong dữ liệu huấn luyện.
Các benchmark nghiên cứu tiêu chuẩn, chẳng hạn như dataset COCO, thường báo cáo hai biến thể chính:
-
mAP@50: Xem một detection là chính xác nếu IoU ít nhất bằng 0.50. Đây là một metric ít khắt khe.
-
mAP@50-95: Đây là giá trị trung bình của mAP được tính tại các threshold IoU từ 0.50 đến 0.95 với bước 0.05. Metric khắt khe này ghi nhận các model đạt độ chính xác định vị cao.
mAP và các metric liên quan#
Điều quan trọng là phân biệt mAP với Accuracy. Accuracy phù hợp với phân loại ảnh, trong đó output là một label duy nhất cho toàn bộ ảnh, nhưng không phù hợp với phát hiện đối tượng vì không tính đến vị trí không gian của đối tượng hoặc class background. Tương tự, trong khi F1-Score cung cấp trung bình điều hòa của precision và recall tại một threshold confidence duy nhất, mAP tích hợp hiệu năng trên tất cả các mức confidence, mang lại góc nhìn toàn diện hơn về độ ổn định của model.
Các ứng dụng trong thực tế#
Điểm mAP cao rất quan trọng trong những môi trường đề cao an toàn và hiệu quả.
- Xe tự hành: Trong công nghệ tự lái, an toàn phụ thuộc vào việc phát hiện người đi bộ và biển báo giao thông với recall cao (không bỏ sót) và precision cao (tránh phanh ảo). mAP đảm bảo hệ thống perception cân bằng hiệu quả các yêu cầu này.
- Phân tích ảnh y khoa: Khi xác định khối u hoặc chỗ gãy xương trên ảnh X-quang, bác sĩ chẩn đoán hình ảnh dựa vào AI trong healthcare để đánh dấu các vấn đề tiềm ẩn. Điểm mAP cao cho thấy model làm nổi bật các bất thường một cách đáng tin cậy mà không khiến bác sĩ bị quá tải bởi các cảnh báo sai, hỗ trợ chẩn đoán chính xác.
Đo mAP với Ultralytics#
Các framework hiện đại đơn giản hóa việc tính những metric này trong giai đoạn validation. Ví dụ sau minh họa cách load một model và tính mAP bằng package Python ultralytics.
from ultralytics import YOLO
# Load the YOLO26 model (recommended for new projects)
model = YOLO("yolo26n.pt")
# Validate the model on a dataset to compute mAP
# This runs inference and compares predictions to ground truth
metrics = model.val(data="coco8.yaml")
# Print mAP@50-95 (map) and mAP@50 (map50)
print(f"mAP@50-95: {metrics.box.map:.3f}")
print(f"mAP@50: {metrics.box.map50:.3f}")Việc hiểu và tối ưu mAP là yếu tố quan trọng trước khi triển khai model. Để hợp lý hóa quy trình này, Ultralytics Platform cung cấp tính năng theo dõi tự động mAP, các loss curve và những KPI khác trong quá trình training, cho phép developer trực quan hóa tiến độ và chọn checkpoint model tốt nhất cho production.









