YOLO Vision 2026:

Thông tin chi tiết về đánh giá và tinh chỉnh mô hình#

Sau khi training một model YOLO, bước tiếp theo là đo lường hiệu năng của model và fine-tune để thu hẹp các khoảng cách hiệu suất. Việc đánh giá sử dụng các metric như mAPIoU để định lượng độ chính xác, trong khi quá trình fine-tune điều chỉnh các tham số huấn luyện nhằm khắc phục các điểm yếu để model đáp ứng đúng project's objective. Hướng dẫn này giải thích các metric đánh giá quan trọng, cách đọc các chỉ số đó và cách xử lý dựa trên kết quả thu được.



Watch: Insights into Model Evaluation and Fine-Tuning | Tips for Improving Mean Average Precision

Việc đánh giá và fine-tune nằm ở phần cuối của quy trình dự án computer vision, khi quá trình training đang diễn ra và bạn cần xác minh rằng model chính xác, hiệu quả và sẵn sàng cho việc deployment.

Các metrics đánh giá chính#

Các metrics khác nhau đo lường mức độ hiệu quả của model. Các performance metrics này cung cấp các thông tin chi tiết dạng số rõ ràng để định hướng cải tiến nhằm đảm bảo model đáp ứng các mục tiêu dự kiến.

Điểm tin cậy (Confidence Score)#

Điểm tin cậy đại diện cho mức độ chắc chắn của mô hình rằng một đối tượng được phát hiện thuộc về một lớp cụ thể. Nó nằm trong khoảng từ 0 đến 1, với điểm số cao hơn biểu thị mức độ tự tin cao hơn. Điểm tin cậy giúp lọc các dự đoán; chỉ những phát hiện có điểm tin cậy trên một ngưỡng xác định mới được coi là hợp lệ.

Không thấy kết quả dự đoán (prediction)?

Khi chạy inference, nếu bạn không thấy bất kỳ kết quả dự đoán nào và đã kiểm tra mọi thứ khác, hãy thử hạ thấp ngưỡng confidence threshold. Đôi khi ngưỡng quá cao khiến model bỏ qua các dự đoán hợp lệ. Việc giảm ngưỡng cho phép model cân nhắc nhiều khả năng hơn. Mặc dù điều này có thể không đáp ứng mục tiêu cuối cùng của dự án, nhưng đó là cách tốt để xem model có thể làm gì và quyết định cách tinh chỉnh nó.

Intersection over Union#

Intersection over Union (IoU) là một metric trong object detection dùng để đo lường mức độ trùng khớp giữa bounding box dự đoán với bounding box ground truth. Các giá trị IoU dao động từ 0 đến 1, trong đó 1 biểu thị sự khớp hoàn toàn. IoU rất quan trọng vì nó đo lường mức độ sát nhau giữa các ranh giới dự đoán và ranh giới thực tế của đối tượng.

Intersection over Union Overview

Mean Average Precision#

Mean Average Precision (mAP) đo lường hiệu suất tổng thể của một model object detection. Metric này xem xét độ chính xác khi phát hiện từng class đối tượng, lấy trung bình các điểm số này, và đưa ra một con số duy nhất thể hiện độ chính xác của model trong việc nhận diện và phân loại đối tượng.

Hai metrics mAP phổ biến nhất thường được báo cáo:

  • mAP@.5: Đo lường độ chính xác trung bình ở một ngưỡng IoU đơn lẻ là 0.5. Metric này kiểm tra xem model có tìm thấy các đối tượng chính xác với yêu cầu khắt khe thấp hơn hay không. Nó tập trung vào việc đối tượng có nằm đúng vị trí một cách tương đối hay không mà không cần đặt chính xác hoàn hảo, và giúp kiểm tra xem model có thực sự tốt trong việc nhận diện đối tượng hay không.
  • mAP@.5:.95: Lấy trung bình các giá trị mAP được tính toán tại nhiều ngưỡng IoU, từ 0,5 đến 0,95 với mức tăng 0,05. Chỉ số này chi tiết và nghiêm ngặt hơn. Nó cung cấp cái nhìn đầy đủ hơn về khả năng tìm kiếm đối tượng của mô hình ở các mức độ khắt khe khác nhau và đặc biệt hữu ích cho các ứng dụng cần nhận diện đối tượng chính xác.

Các chỉ số mAP khác bao gồm mAP@0.75, sử dụng ngưỡng IoU nghiêm ngặt hơn là 0,75, và mAP@small, medium, và large, giúp đánh giá độ chính xác trên các đối tượng có kích thước khác nhau.

Mean average precision mAP metric

Đánh giá một model YOLO26#

Bạn có thể đánh giá một model YOLO26 đã training bằng validation mode. Để tìm hiểu sâu hơn về cách tính toán và diễn giải từng metric, hãy xem hướng dẫn YOLO26 performance metrics.

Xử lý kích thước ảnh biến đổi#

Đánh giá model trên các hình ảnh có kích thước khác nhau giúp bạn hiểu được hiệu suất của model trên các tập dữ liệu đa dạng. Tham số validation rect=true nhóm các hình ảnh theo tỷ lệ khung hình và đệm (pad) cho mỗi batch về kích thước nhỏ nhất phù hợp, do đó các hình ả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 hình ảnh được sử dụng trong quá trình validation, được áp dụng dưới dạng hình vuông. Nếu bạn không thiết lập thủ công, YOLO26 sẽ tái sử dụng giá trị được lưu trong cài đặt của model (640 đối với các pretrained model chính thức, hoặc bất kỳ kích thước nào mà một checkpoint tùy chỉnh đã được train). Với rect=true, YOLO26 giới hạn cạnh dài hơn thành imgsz và đệm cạnh ngắn hơn thành một bội số stride, bảo toàn tỷ lệ khung hình. Hãy điều chỉnh imgsz dựa trên kích thước tập dữ liệu của bạn và dung lượng bộ nhớ GPU khả dụng.

Truy cập các chỉ số YOLO26#

Để hiểu chi tiết về hiệu suất của model, bạn có thể truy cập các metrics đánh giá cụ thể bằng một vài dòng code Python. Đoạn mã dưới đây sẽ tải model, chạy validation và in ra các metrics hữu ích nhất.

Cách sử dụng
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")

# Run validation on your dataset
results = model.val(data="coco8.yaml")

# Overall metrics
print("mAP50-95:", results.box.map)  # mAP at IoU 0.50:0.95
print("mAP50:", results.box.map50)  # mAP at IoU 0.50
print("mAP75:", results.box.map75)  # mAP at IoU 0.75
print("Mean precision:", results.box.mp)
print("Mean recall:", results.box.mr)
print("Fitness:", results.box.fitness())  # weighted score used for model selection

# Per-class metrics
print("Class indices evaluated:", results.box.ap_class_index)
print("Per-class mAP50-95:", results.box.maps)

# Per-image precision, recall, F1, TP, FP, and FN
print("Per-image metrics:", results.box.image_metrics)

# Per-stage timing breakdown in milliseconds per image
print("Timing breakdown (ms/image):", results.speed)

Lưu ý rằng fitness() là một phương thức (method) và phải được gọi với dấu ngoặc đơn, trong khi các metrics như map, map50, và mp là các thuộc tính (properties) được truy cập trực tiếp.

Thuộc tính results.box.image_metrics là một từ điển (dictionary) tính trên mỗi ảnh được khóa bằng tên tệp ảnh, chứa precision, recall, f1, tp, fp, và fn ở IoU 0.5 cho mỗi ảnh. Thời gian cho các bước tiền xử lý, suy luận, loss và hậu xử lý được báo cáo riêng trong từ điển results.speed. Nhờ đó, bạn có thể xác định chính xác những hình ảnh nào khiến model gặp khó khăn và thực hiện fine-tune tương ứng.

Tinh chỉnh (Fine-tuning) Model#

Fine-tuning lấy một pretrained model và điều chỉnh các tham số của model đó để cải thiện hiệu năng trên một tác vụ hoặc dataset cụ thể. Còn được gọi là huấn luyện lại model, phương pháp này giúp model hiểu rõ hơn và dự đoán chính xác hơn các kết quả đối với dữ liệu mà nó sẽ gặp phải trong các ứng dụng thực tế. Dựa trên kết quả đánh giá của bạn, bạn tiến hành huấn luyện lại model trên chính dữ liệu của mình, điều chỉnh các tham số huấn luyện được đề cập trong fine-tuning guide.

Lát cắt hình ảnh cho các đối tượng nhỏ#

Chia nhỏ ảnh (image tiling) có thể cải thiện độ chính xác phát hiện đối với các đối tượng nhỏ. Bằng cách chia các hình ảnh lớn thành các đoạn nhỏ hơn, chẳng hạn như chia ảnh 1280x1280 thành nhiều đoạn 640x640, bạn bảo toàn được độ phân giải gốc và cho phép model học từ các phân đoạn độ phân giải cao. Ultralytics hỗ trợ tính năng này tại thời điểm suy luận thông qua SAHI tiled inference. Khi training trên các hình ảnh đã chia nhỏ, hãy đảm bảo điều chỉnh các nhãn cho từng phân đoạn mới một cách chính xác.

Kết luận#

Đánh giá và fine-tuning là những yếu tố biến một model đã được huấn luyện thành một model đáng tin cậy và có thể triển khai: các metric như mAP và IoU phơi bày các điểm yếu, và các thay đổi tham số có mục tiêu sẽ giải quyết các điểm yếu đó. Hãy bắt đầu với validation mode để benchmark model của bạn, sau đó huấn luyện lại với các tham số được đề cập trong fine-tuning guide và tiếp tục lặp lại với các tham số, kỹ thuật và dataset mới. Nếu có thắc mắc trong quá trình thực hiện, hãy hỏi cộng đồng trên Ultralytics GitHub repository hoặc Ultralytics Discord server.

Câu hỏi thường gặp#

  • Để đánh giá hiệu suất model YOLO26, các metrics quan trọng bao gồm Confidence Score, Intersection over Union (IoU), và Mean Average Precision (mAP). Confidence Score đo lường mức độ chắc chắn của model đối với mỗi class đối tượng được phát hiện. IoU đánh giá mức độ trùng khớp giữa bounding box dự đoán với ground truth. Mean Average Precision (mAP) tổng hợp điểm số độ chính xác trên các class, với mAP@.5 và mAP@.5:.95 là hai loại phổ biến cho các ngưỡng IoU khác nhau. Tìm hiểu thêm về các metrics này trong YOLO26 performance metrics guide của chúng tôi.

  • Fine-tuning một pretrained YOLO26 model bao gồm việc điều chỉnh các tham số của model để cải thiện hiệu năng trên một tác vụ hoặc dataset cụ thể. Bắt đầu bằng cách đánh giá model của bạn bằng các metric, sau đó huấn luyện lại từ các pretrained weights trên dataset của riêng bạn. Trong quá trình đánh giá, các tham số như rect=true giúp xử lý các kích thước ảnh khác nhau một cách hiệu quả. Để biết các tham số huấn luyện cần điều chỉnh, hãy xem fine-tuning guide.

  • Để xử lý các kích thước hình ảnh biến đổi trong quá trình đánh giá, hãy sử dụng tham số rect=true trong YOLO26, giúp nhóm các hình ảnh theo tỷ lệ khung hình và đệm cho mỗi batch thay vì ép mọi hình ảnh thành hình vuông. Tham số imgsz thiết lập kích thước ảnh cho validation; nếu bạn không ghi đè nó, YOLO26 sẽ tái sử dụng giá trị đã lưu của model (640 đối với các pretrained model chính thức). Điều chỉnh imgsz để phù hợp với tập dữ liệu và bộ nhớ GPU của bạn. Để biết thêm chi tiết, hãy truy cập section on handling variable image sizes của chúng tôi.

  • Cải thiện mean average precision (mAP) cho mô hình YOLO26 bao gồm một số bước:

    1. Tuning Hyperparameters: Thử nghiệm với các learning rate, batch sizes, và các kỹ thuật tăng cường dữ liệu khác nhau.
    2. Data Augmentation: Sử dụng các kỹ thuật như Mosaic và MixUp để tạo ra các mẫu training đa dạng.
    3. Image Tiling: Chia các hình ảnh lớn thành các ô nhỏ hơn để cải thiện độ chính xác phát hiện đối với các đối tượng nhỏ.

    Để biết các tham số huấn luyện đằng sau bước 1 và bước 2, hãy xem fine-tuning guide; bước 3 được đề cập trong phần image tiling.

  • Bạn có thể truy cập các metrics đánh giá model YOLO26 bằng Python sau khi chạy validation:

    Cách sử dụng
    from ultralytics import YOLO
    
    # Load a model
    model = YOLO("yolo26n.pt")
    
    # Run validation
    results = model.val(data="coco8.yaml")
    
    # Access key metrics
    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 metrics này giúp bạn fine-tune và tối ưu hóa model YOLO26 của mình. Để tìm hiểu sâu hơn, hãy xem hướng dẫn của chúng tôi về YOLO performance metrics.

Bình luận