Thông tin chi tiết về đánh giá và tinh chỉnh model

Giới thiệu

Sau khi đã huấn luyện model thị giác máy tính của mình, việc đánh giá và tinh chỉnh để đạt hiệu suất tối ưu là rất cần thiết. Chỉ huấn luyện model thôi là chưa đủ. Bạn cần đảm bảo rằng model của mình chính xác, hiệu quả và đáp ứng được mục tiêu của dự án thị giác máy tính. Bằng cách đánh giá và tinh chỉnh model, bạn có thể xác định các điểm yếu, cải thiện độ chính xác và tăng cường hiệu suất tổng thể.



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

Trong hướng dẫn này, chúng tôi chia sẻ các thông tin về đánh giá và tinh chỉnh model để giúp bước này của dự án thị giác máy tính trở nên dễ tiếp cận hơn. Chúng tôi thảo luận về cách hiểu các chỉ số đánh giá và triển khai các kỹ thuật tinh chỉnh, cung cấp cho bạn kiến thức để nâng cao khả năng cho model của mình.

Đánh giá hiệu suất model sử dụng các chỉ số

Đánh giá hiệu suất của một model giúp chúng ta hiểu cách nó hoạt động hiệu quả ra sao. Nhiều chỉ số khác nhau được sử dụng để đo lường hiệu suất. Những chỉ số hiệu suất này cung cấp thông tin chi tiết bằng số rõ ràng, có thể định hướng các cải tiến nhằm đảm bảo model đáp ứng được mục tiêu đề ra. Hãy cùng xem xét kỹ hơn một vài chỉ số chính.

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

Điểm tin cậy 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ể. Nó nằm trong khoảng từ 0 đến 1, với điểm số cao hơn biểu thị sự tự tin lớn 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ệ.

Mẹo nhanh: Khi chạy inference, nếu bạn không thấy bất kỳ dự đoán nào và đã kiểm tra mọi thứ khác, hãy thử giảm điểm tin cậy xuống. Đôi khi, ngưỡng này quá cao khiến model bỏ qua các dự đoán hợp lệ. Việc giảm điểm số cho phép model xem xét nhiều khả năng hơn. Điều này có thể không đáp ứng mục tiêu dự án của bạ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 (IoU)

Intersection over Union (IoU) là một chỉ số trong phát hiện đối tượng giúp đo lường mức độ trùng khớp của bounding box dự đoán với bounding box thực tế (ground truth). Giá trị IoU nằm trong khoảng từ 0 đến 1, trong đó 1 biểu thị sự trùng khớp hoàn hảo. IoU rất cần thiết vì nó đo lường mức độ khớp của các ranh giới được dự đoán so với các ranh giới thực tế của đối tượng.

Intersection over Union Overview

Mean Average Precision (mAP)

Mean Average Precision (mAP) là một cách để đo lường hiệu suất của model phát hiện đối tượng. Nó xem xét độ chính xác (precision) khi phát hiện từng lớp đối tượng, tính trung bình các điểm số này và đưa ra một con số tổng thể thể hiện mức độ chính xác mà model có thể xác định và phân loại đối tượng.

Hãy tập trung vào hai chỉ số mAP cụ thể:

  • mAP@.5: Đo lường độ chính xác trung bình tại một ngưỡng IoU duy nhất là 0.5. Chỉ số này kiểm tra xem model có tìm đúng đối tượng với yêu cầu độ chính xác nới lỏng hơn hay không. Nó tập trung vào việc đối tượng có nằm ở vị trí đại khái là đúng hay không, không yêu cầu vị trí phải hoàn hảo. Nó giúp đánh giá xem model có khả năng phát hiện đối tượng nói chung hay không.
  • mAP@.5:.95: Tính trung bình các giá trị mAP được tính tại nhiều ngưỡng IoU khác nhau, từ 0.5 đến 0.95 với bước nhảy 0.05. Chỉ số này chi tiết và nghiêm ngặt hơn. Nó cung cấp bức tranh toàn diện hơn về độ chính xác mà model có thể tìm thấy đối tượng ở các cấp độ 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 cao.

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, large, đá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á hiệu suất model YOLO26

Đối với YOLO26, bạn có thể sử dụng chế độ validation để đánh giá model. Ngoài ra, hãy nhớ xem qua hướng dẫn chuyên sâu của chúng tôi về chỉ số hiệu suất YOLO26 và cách diễn giải chúng.

Các câu hỏi thường gặp từ cộng đồng

Khi đánh giá model YOLO26, bạn có thể gặp một vài khó khăn nhỏ. Dựa trên các câu hỏi phổ biến từ cộng đồng, đây là một số mẹo giúp bạn tận dụng tối đa model YOLO26 của mình:

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

Đánh giá model YOLO26 với các ảnh có kích thước khác nhau có thể giúp bạn hiểu hiệu suất của nó trên các tập dữ liệu đa dạng. Sử dụng tham số validation rect=true, YOLO26 sẽ điều chỉnh stride của mạng cho từng batch dựa trên kích thước ảnh, cho phép model xử lý các ảnh hình chữ nhật mà không cần ép chúng về một kích thước cố định.

Tham số validation imgsz thiết lập kích thước tối đa cho việc thay đổi kích thước ảnh, mặc định là 640. Bạn có thể điều chỉnh tham số này dựa trên kích thước tối đa của tập dữ liệu và bộ nhớ GPU hiện có. Ngay cả khi đã thiết lập imgsz, rect=true vẫn cho phép model quản lý các kích thước ảnh khác nhau một cách hiệu quả bằng cách điều chỉnh stride động.

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

Nếu bạn muốn hiểu sâu hơn về hiệu suất model YOLO26 của mình, bạn có thể dễ dàng truy cập các chỉ số đánh giá cụ thể với vài dòng code Python. Đoạn code dưới đây sẽ cho phép bạn tải model, chạy đánh giá và in ra các chỉ số khác nhau để thấy model đang hoạt động như thế nào.

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

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

# Run the evaluation
results = model.val(data="coco8.yaml")

# Print specific metrics
print("Class indices with average precision:", results.ap_class_index)
print("Average precision for all classes:", results.box.all_ap)
print("Average precision:", results.box.ap)
print("Average precision at IoU=0.50:", results.box.ap50)
print("Class indices for average precision:", results.box.ap_class_index)
print("Class-specific results:", results.box.class_result)
print("F1 score:", results.box.f1)
print("F1 score curve:", results.box.f1_curve)
print("Overall fitness score:", results.box.fitness)
print("Mean average precision:", results.box.map)
print("Mean average precision at IoU=0.50:", results.box.map50)
print("Mean average precision at IoU=0.75:", results.box.map75)
print("Mean average precision for different IoU thresholds:", results.box.maps)
print("Mean results for different metrics:", results.box.mean_results)
print("Mean precision:", results.box.mp)
print("Mean recall:", results.box.mr)
print("Per-image metrics:", results.box.image_metrics)
print("Precision:", results.box.p)
print("Precision curve:", results.box.p_curve)
print("Precision values:", results.box.prec_values)
print("Specific precision metrics:", results.box.px)
print("Recall:", results.box.r)
print("Recall curve:", results.box.r_curve)

Đối tượng kết quả cũng bao gồm image_metrics, một từ điển theo từng ảnh được khóa bằng tên file ảnh, chứa precision, recall, f1, tp, fp, và fn, cũng như các chỉ số về tốc độ như thời gian tiền xử lý, thời gian inference, loss, và thời gian hậu xử lý. Bằng cách phân tích các chỉ số này, bạn có thể tinh chỉnh và tối ưu hóa model YOLO26 để có hiệu suất tốt hơn, giúp nó hiệu quả hơn cho trường hợp sử dụng cụ thể của bạn.

Tinh chỉnh (Fine-Tuning) hoạt động như thế nào?

Tinh chỉnh bao gồm việc lấy một model đã được huấn luyện trước và điều chỉnh các tham số của nó để cải thiện hiệu suất cho một tác vụ hoặc tập dữ liệu cụ thể. Quá trình này, còn được gọi là huấn luyện lại model, cho phép model hiểu và dự đoán kết quả tốt hơn cho dữ liệu cụ thể mà nó sẽ gặp phải trong các ứng dụng thực tế. Bạn có thể huấn luyện lại model của mình dựa trên đánh giá model để đạt được kết quả tối ưu.

Mẹo tinh chỉnh model của bạn

Tinh chỉnh một model nghĩa là chú ý kỹ đến một vài tham số và kỹ thuật quan trọng để đạt hiệu suất tối ưu. Dưới đây là một số mẹo thiết yếu để hướng dẫn bạn trong quá trình này.

Bắt đầu với Learning Rate cao hơn

Thông thường, trong các epoch huấn luyện ban đầu, learning rate thường bắt đầu thấp và tăng dần để ổn định quá trình huấn luyện. Tuy nhiên, vì model của bạn đã học được một số đặc trưng từ tập dữ liệu trước đó, bắt đầu với learning rate cao hơn ngay từ đầu có thể mang lại lợi ích nhiều hơn.

Khi đánh giá model YOLO26, bạn có thể thiết lập tham số validation warmup_epochs thành warmup_epochs=0 để ngăn learning rate bắt đầu quá thấp. Bằng cách làm theo quy trình này, quá trình huấn luyện sẽ tiếp tục từ các trọng số đã cung cấp, điều chỉnh theo những đặc điểm của dữ liệu mới của bạn.

Tiling ảnh cho các đối tượng nhỏ

Tiling ảnh có thể cải thiện độ chính xác phát hiện cho các đối tượng nhỏ. Bằng cách chia các ảnh lớn thành các đoạn nhỏ hơn, ví dụ như chia ảnh 1280x1280 thành nhiều đoạn 640x640, bạn duy trì được độ phân giải gốc và model có thể học từ các phân đoạn độ phân giải cao. Khi sử dụng YOLO26, hãy đảm bảo điều chỉnh nhãn cho các phân đoạn mới này một cách chính xác.

Kết nối với cộng đồng

Chia sẻ ý tưởng và câu hỏi của bạn với những người đam mê thị giác máy tính khác có thể truyền cảm hứng cho các giải pháp sáng tạo cho những trở ngại trong dự án của bạn. Dưới đây là một số cách tuyệt vời để học hỏi, khắc phục sự cố và kết nối.

Tìm kiếm sự trợ giúp và hỗ trợ

  • GitHub Issues: Khám phá repository GitHub của YOLO26 và sử dụng tab Issues để đặt câu hỏi, báo cáo lỗi và đề xuất tính năng. Cộng đồng và các maintainer luôn sẵn sàng hỗ trợ bạn với bất kỳ vấn đề nào gặp phải.
  • Máy chủ Discord của Ultralytics: Tham gia máy chủ Discord của Ultralytics để kết nối với những người dùng và nhà phát triển khác, nhận hỗ trợ, chia sẻ kiến thức và cùng thảo luận ý tưởng.

Tài liệu chính thức

  • Tài liệu Ultralytics YOLO26: Kiểm tra tài liệu chính thức về YOLO26 để có các hướng dẫn toàn diện và thông tin hữu ích về nhiều tác vụ và dự án thị giác máy tính khác nhau.

Suy nghĩ cuối cùng

Đánh giá và tinh chỉnh model thị giác máy tính của bạn là những bước quan trọng để triển khai model thành công. Những bước này giúp đảm bảo model của bạn chính xác, hiệu quả và phù hợp với ứng dụng tổng thể. Chìa khóa để huấn luyện model tốt nhất có thể là thử nghiệm và học hỏi liên tục. Đừng ngần ngại tinh chỉnh các tham số, thử các kỹ thuật mới và khám phá các tập dữ liệu khác nhau. Hãy tiếp tục thử nghiệm và vượt qua các giới hạn của những gì có thể đạt được!

Câu hỏi thường gặp (FAQ)

Các chỉ số chính để đánh giá hiệu suất model YOLO26 là gì?

Để đánh giá hiệu suất model YOLO26, các chỉ số quan trọng bao gồm Điểm tin cậy (Confidence Score), Intersection over Union (IoU), và Mean Average Precision (mAP). Điểm tin cậy đo lường mức độ chắc chắn của model cho từng lớp đối tượng được phát hiện. IoU đánh giá mức độ trùng khớp của bounding box dự đoán với ground truth. Mean Average Precision (mAP) tập hợp các điểm số chính xác trên các lớp, 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 chỉ số này trong hướng dẫn về chỉ số hiệu suất YOLO26 của chúng tôi.

Làm thế nào để tinh chỉnh model YOLO26 đã được huấn luyện trước cho tập dữ liệu cụ thể của tôi?

Tinh chỉnh một model YOLO26 đã được huấn luyện trước bao gồm việc điều chỉnh các tham số của nó để cải thiện hiệu suất cho một tác vụ hoặc tập dữ liệu cụ thể. Bắt đầu bằng việc đánh giá model bằng các chỉ số, sau đó thiết lập learning rate ban đầu cao hơn bằng cách điều chỉnh tham số warmup_epochs về 0 để có sự ổn định tức thì. Sử dụng các tham số như rect=true để xử lý các kích thước ảnh khác nhau một cách hiệu quả. Để biết hướng dẫn chi tiết hơn, hãy tham khảo phần về tinh chỉnh model YOLO26.

Làm thế nào để xử lý kích thước ảnh biến đổi khi đánh giá model YOLO26 của tôi?

Để xử lý các kích thước ảnh biến đổi trong quá trình đánh giá, hãy sử dụng tham số rect=true trong YOLO26, tham số này sẽ điều chỉnh stride của mạng cho từng batch dựa trên kích thước ảnh. Tham số imgsz thiết lập kích thước tối đa cho việc thay đổi kích thước ảnh, mặc định là 640. Hãy điều chỉnh imgsz cho 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 phần về xử lý kích thước ảnh biến đổi.

Tôi có thể thực hiện các bước thực tế nào để cải thiện mean average precision cho model YOLO26 của mình?

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

  1. Tinh chỉnh Hyperparameters: Thử nghiệm với các learning rate, batch size, và các kỹ thuật tăng cường ảnh khác nhau.
  2. Data Augmentation: Sử dụng các kỹ thuật như Mosaic và MixUp để tạo các mẫu huấn luyện đa dạng.
  3. Tiling ảnh: Chia các ảnh lớn thành các ô nhỏ hơn để cải thiện độ chính xác phát hiện cho các đối tượng nhỏ. Tham khảo hướng dẫn chi tiết của chúng tôi về tinh chỉnh model để biết các chiến lược cụ thể.

Làm thế nào để truy cập các chỉ số đánh giá model YOLO26 bằng Python?

Bạn có thể truy cập các chỉ số đánh giá model YOLO26 bằng Python với các bước sau:

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

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

# Run the evaluation
results = model.val(data="coco8.yaml")

# Print specific metrics
print("Class indices with average precision:", results.ap_class_index)
print("Average precision for all classes:", results.box.all_ap)
print("Mean average precision at IoU=0.50:", results.box.map50)
print("Mean recall:", results.box.mr)

Việc phân tích các chỉ số này giúp tinh chỉnh và tối ưu hóa model YOLO26. Để tìm hiểu sâu hơn, hãy xem hướng dẫn của chúng tôi về chỉ số YOLO26.

Bình luận