Thông tin chuyên sâu về đánh giá và tinh chỉnh model#
Sau khi training một model YOLO, bước tiếp theo là đo lường hiệu suất và tinh chỉnh model để khắc phục những điểm còn thiếu. Việc đánh giá sử dụng các metric như mAP và IoU để định lượng độ chính xác, trong khi tinh chỉnh sẽ điều chỉnh các tham số training để cải thiện điểm yếu, giúp model đáp ứng mục tiêu dự án của bạn. Hướng dẫn này giải thích các metric đánh giá chính, cách đọc và cách áp dụng những thông tin mà các metric thể hiện.
Xem: Thông tin chuyên sâu về đánh giá và fine-tune model | Mẹo cải thiện mean average precision
Đánh giá và tinh chỉnh thường diễn ra vào giai đoạn cuối của quy trình dự án thị giác máy tính, khi quá trình training đã bắt đầu và bạn cần xác minh model có độ chính xác, hiệu quả và sẵn sàng triển khai hay không.
Các metric đánh giá chính#
Nhiều metric được dùng để đo lường hiệu quả hoạt động của model. Những metric hiệu suất này cung cấp thông tin định lượng rõ ràng, giúp định hướng cải tiến để đảm bảo model đạt được mục tiêu đề ra.
Điểm confidence#
Điểm confidence thể hiện mức độ chắc chắn của model rằng một đối tượng được phát hiện thuộc về một lớp cụ thể. Giá trị nằm trong khoảng từ 0 đến 1; điểm càng cao thì độ tin cậy càng lớn. Điểm confidence giúp lọc các dự đoán; chỉ những phát hiện có điểm confidence cao hơn ngưỡng chỉ định mới được xem là hợp lệ.
Khi chạy suy luận, nếu bạn không thấy dự đoán nào dù đã kiểm tra mọi thứ khác, hãy thử giảm ngưỡng confidence. Đôi khi ngưỡng quá cao khiến model bỏ qua các dự đoán hợp lệ. Giảm ngưỡng cho phép model xem xét nhiều khả năng hơn. Cách này có thể chưa đáp ứng mục tiêu cuối cùng của dự án, nhưng sẽ giúp bạn thấy model có thể làm gì và quyết định cách tinh chỉnh model.
Intersection over Union#
Intersection over Union (IoU) là một metric trong phát hiện đối tượng, dùng để đo mức độ chồng lấp giữa bounding box dự đoán và bounding box ground truth. Giá trị IoU nằm trong khoảng từ 0 đến 1, trong đó 1 biểu thị sự khớp hoàn toàn. IoU rất quan trọng vì metric này đo mức độ trùng khớp giữa ranh giới dự đoán và ranh giới thực tế của đối tượng.
Mean Average Precision#
Mean Average Precision (mAP) đo lường hiệu suất tổng thể của model phát hiện đối tượng. Metric này xem xét precision khi phát hiện từng lớp đối tượng, tính trung bình các điểm số đó và đưa ra một con số duy nhất thể hiện mức độ chính xác của model khi nhận diện và phân loại đối tượng.
Hai metric mAP thường được báo cáo nhất là:
- mAP@.5: Đo average precision tại một ngưỡng IoU duy nhất là 0.5. Metric này kiểm tra xem model có thể tìm đúng đối tượng với yêu cầu độ chính xác ít nghiêm ngặt hơn hay không. Metric tập trung vào việc đối tượng có nằm gần đúng vị trí hay không, không yêu cầu vị trí hoàn hảo, và giúp đánh giá tổng quan khả năng nhận diện đối tượng của model.
- mAP@.5:.95: Tính trung bình các giá trị mAP được tính tại nhiều ngưỡng IoU, từ 0.5 đến 0.95 với bước tăng 0.05. Metric này chi tiết và nghiêm ngặt hơn. Metric cung cấp cái nhìn đầy đủ hơn về độ chính xác của model khi tìm đối tượng ở các mức độ nghiêm ngặt khác nhau và đặc biệt hữu ích cho các ứng dụng cần phát hiện đối tượng chính xác.
Các metric mAP khác gồm mAP@0.75, sử dụng ngưỡng IoU nghiêm ngặt hơn là 0.75, và mAP@small, medium, large, dùng để đánh giá precision trên các đối tượng có kích thước khác nhau.
Đánh giá model YOLO26#
Bạn có thể đánh giá model YOLO26 đã training bằng chế độ validation. Để tìm hiểu sâu hơn cách tính và diễn giải từng metric, hãy xem hướng dẫn metric hiệu suất YOLO26.
Xử lý kích thước ảnh thay đổi#
Đánh giá model trên ảnh có kích thước khác nhau giúp bạn hiểu hiệu suất của model trên các tập dữ liệu đa dạng. Theo mặc định, validation sử dụng gom batch hình chữ nhật (rect=True trong model.val()): ảnh được nhóm theo tỷ lệ khung hình và mỗi batch được đệm đến kích thước nhỏ nhất phù hợp, nhờ đó ảnh hình chữ nhật được đánh giá mà không bị ép thành hình vuông.
Tham số imgsz thiết lập kích thước ảnh được dùng trong quá trình validation và áp dụng kích thước này theo dạng hình vuông. Nếu không đặt rõ tham số này, YOLO26 sẽ dùng lại giá trị được lưu trong cài đặt của model (640 đối với các model pretrained chính thức hoặc kích thước mà checkpoint tùy chỉnh đã được training). Với rect=true, YOLO26 giới hạn cạnh dài hơn ở mức imgsz và đệm cạnh ngắn hơn đến bội số của stride, qua đó giữ nguyên tỷ lệ khung hình. Điều chỉnh imgsz dựa trên kích thước tập dữ liệu và dung lượng bộ nhớ GPU hiện có.
Truy cập metric YOLO26#
Để hiểu chi tiết hiệu suất của model, bạn có thể truy cập các metric đánh giá cụ thể bằng một vài dòng Python. Đoạn mã dưới đây tải model, chạy validation và in ra các metric hữu ích nhất.
from ultralytics import YOLO
# Tải model
model = YOLO("yolo26n.pt")
# Chạy xác thực trên dataset của bạn
results = model.val(data="coco8.yaml")
# Metric tổng thể
print("mAP50-95:", results.box.map) # mAP tại IoU 0.50:0.95
print("mAP50:", results.box.map50) # mAP tại IoU 0.50
print("mAP75:", results.box.map75) # mAP tại IoU 0.75
print("Mean precision:", results.box.mp)
print("Mean recall:", results.box.mr)
print("Fitness:", results.box.fitness()) # điểm số có trọng số dùng để lựa chọn model
# Các chỉ số theo từng lớp
print("Class indices evaluated:", results.box.ap_class_index)
print("Per-class mAP50-95:", results.box.maps)
# Precision, recall, F1, TP, FP và FN theo từng ảnh
print("Per-image metrics:", results.box.image_metrics)
# Thời gian theo từng giai đoạn, tính bằng mili giây trên mỗi ảnh
print("Timing breakdown (ms/image):", results.speed)Lưu ý rằng fitness() là một phương thức và phải được gọi bằng dấu ngoặc đơn, trong khi các chỉ số như map, map50 và mp là các thuộc tính được truy cập trực tiếp.
Thuộc tính results.box.image_metrics là một dictionary theo từng ảnh, được khóa bằng tên tệp ảnh và chứa precision, recall, f1, tp, fp và fn tại IoU 0.5 cho mỗi ảnh. Thời gian tiền xử lý, suy luận, tính loss và hậu xử lý được báo cáo riêng trong dictionary results.speed. Các thông tin này giúp bạn xác định chính xác những ảnh mà model gặp khó khăn và tinh chỉnh cho phù hợp.
Tinh chỉnh model của bạn#
Fine-tuning sử dụng một model đã được pretrained rồi điều chỉnh các tham số để cải thiện hiệu suất trên một tác vụ hoặc tập dữ liệu cụ thể. Còn được gọi là huấn luyện lại model, quy trình này giúp model hiểu và dự đoán tốt hơn kết quả từ dữ liệu mà model sẽ gặp trong các ứng dụng thực tế. Dựa trên kết quả đánh giá, bạn huấn luyện lại model bằng dữ liệu của mình và điều chỉnh các tham số huấn luyện được đề cập trong hướng dẫn fine-tuning.
Chia ảnh thành ô để xử lý vật thể nhỏ#
Chia ảnh thành các ô có thể cải thiện độ chính xác phát hiện vật thể nhỏ. Bằng cách chia ảnh lớn thành các phân đoạn nhỏ hơn, chẳng hạn chia ảnh 1280x1280 thành nhiều phân đoạn 640x640, bạn giữ nguyên độ phân giải ban đầu và giúp model học từ các mảnh ảnh có độ phân giải cao. Ultralytics hỗ trợ tính năng này khi suy luận thông qua suy luận chia ô bằng SAHI. Khi huấn luyện trên ảnh đã chia ô, hãy đảm bảo điều chỉnh chính xác nhãn cho từng phân đoạn mới.
Kết luận#
Đánh giá và fine-tuning là những bước biến một model đã huấn luyện thành một model đáng tin cậy, sẵn sàng triển khai: các chỉ số như mAP và IoU cho thấy điểm yếu, còn những thay đổi tham số có mục tiêu sẽ khắc phục các điểm yếu đó. Bắt đầu với chế độ validation để đánh giá model, sau đó huấn luyện lại bằng các tham số trong hướng dẫn fine-tuning và tiếp tục lặp lại quy trình với các tham số, kỹ thuật và tập dữ liệu mới. Nếu có câu hỏi trong quá trình thực hiện, hãy hỏi cộng đồng trên repository GitHub của Ultralytics hoặc máy chủ Discord của Ultralytics.
Câu hỏi thường gặp#
Các chỉ số quan trọng để đánh giá hiệu suất model YOLO26 bao gồm điểm tin cậy, Intersection over Union (IoU) và Mean Average Precision (mAP). Điểm tin cậy đo mức độ chắc chắn của model đối với từng lớp vật thể được phát hiện. IoU đánh giá mức độ chồng lấp giữa bounding box dự đoán và ground truth. Mean Average Precision (mAP) tổng hợp các điểm precision trên các lớp; mAP@.5 và mAP@.5:.95 là hai loại phổ biến dùng cho các ngưỡng IoU khác nhau. Tìm hiểu thêm về các chỉ số này trong hướng dẫn về các chỉ số hiệu suất YOLO26.
Fine-tuning một model YOLO26 đã pretrained bao gồm việc điều chỉnh các tham số để cải thiện hiệu suất trên một tác vụ hoặc tập dữ liệu cụ thể. Trước tiên, hãy đánh giá model bằng các chỉ số, sau đó huấn luyện lại trên tập dữ liệu của riêng bạn từ các trọng số pretrained. Trong quá trình đánh giá, các tham số như
rect=truegiúp xử lý hiệu quả nhiều kích thước ảnh khác nhau. Xem hướng dẫn fine-tuning để biết các tham số huấn luyện cần điều chỉnh.Để xử lý kích thước ảnh thay đổi trong quá trình đánh giá, hãy dùng validation hình chữ nhật (
rect=True, mặc định chomodel.val()), phương pháp này nhóm ảnh theo tỷ lệ khung hình và thêm padding cho từng batch thay vì ép mọi ảnh thành hình vuông. Tham sốimgszđặt kích thước ảnh dùng cho validation; nếu không ghi đè, YOLO26 sẽ dùng lại giá trị đã lưu trong model (640 đối với các model pretrained chính thức). Điều chỉnhimgszcho phù hợp với tập dữ liệu và dung lượng bộ nhớ GPU của bạn. Để biết thêm chi tiết, hãy xem mục về xử lý kích thước ảnh thay đổi.Cải thiện mean average precision (mAP) cho model YOLO26 gồm một số bước:
- Tinh chỉnh siêu tham số: Thử nghiệm với các learning rate, kích thước batch và phương pháp tăng cường ảnh khác nhau.
- Tăng cường dữ liệu: Dùng các kỹ thuật như Mosaic và MixUp để tạo ra các mẫu huấn luyện đa dạng.
- Chia ảnh thành ô: Chia ảnh lớn thành các ô nhỏ hơn để cải thiện độ chính xác phát hiện vật thể nhỏ.
Xem hướng dẫn fine-tuning để biết các tham số huấn luyện liên quan đến bước 1 và 2; bước 3 được trình bày trong mục chia ảnh thành ô.
Bạn có thể truy cập các chỉ số đánh giá model YOLO26 bằng Python sau khi chạy validation:
Cách sử dụngfrom ultralytics import YOLO # Tải model model = YOLO("yolo26n.pt") # Chạy validation results = model.val(data="coco8.yaml") # Truy cập các chỉ số chính print("Mean average precision at IoU=0.50:", results.box.map50) print("Mean average precision at IoU=0.50:0.95:", results.box.map) print("Mean recall:", results.box.mr) print("Class indices evaluated:", results.box.ap_class_index)Phân tích các chỉ số này giúp bạn fine-tune và tối ưu model YOLO26. Để tìm hiểu sâu hơn, hãy xem hướng dẫn về các chỉ số hiệu suất YOLO.