Chuyển đến nội dung

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

Giới thiệu

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



Xem: Thông tin chi tiết về Đánh giá và Tinh chỉnh Mô hình | Mẹo để Cải thiện Độ chính xác Trung bình (Mean Average Precision)

Trong hướng dẫn này, chúng tôi chia sẻ những hiểu biết sâu sắc về đánh giá mô hình và tinh chỉnh để làm cho bước này của một dự án thị giác máy tính 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 của mô hình.

Đánh giá hiệu suất mô hình bằng cách sử dụng các số liệu

Đánh giá hiệu suất của mô hình giúp chúng ta hiểu được mức độ hiệu quả của nó. Các số liệu khác nhau được sử dụng để đo lường hiệu suất. Các số liệu hiệu suất này cung cấp những hiểu biết số rõ ràng, có thể hướng dẫn các cải tiến để đảm bảo mô hình đáp ứng các mục tiêu dự định của nó. Hãy xem xét kỹ hơn một vài số liệu chính.

Điểm tin cậy

Điểm tin cậy thể hiện 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 cho biết độ tin cậy 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 được chỉ định mới được coi là hợp lệ.

Mẹo nhanh: Khi chạy suy luận, 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. Đôi khi, ngưỡng quá cao khiến mô hình bỏ qua các dự đoán hợp lệ. Việc giảm điểm cho phép mô hình xem xét nhiều khả năng hơn. Điều này có thể không đáp ứng được mục tiêu dự án của bạn, nhưng đây là một cách tốt để xem mô hình 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 số liệu trong object detection để đo mức độ chồng lấp giữa bounding box dự đoán và bounding box thực tế. Giá trị IoU nằm trong khoảng từ 0 đến 1, trong đó 1 là khớp hoàn hảo. IoU rất quan trọng vì nó đo mức độ khớp giữa ranh giới dự đoán và ranh giới thực tế của đối tượng.

Tổng quan về Intersection over Union

Giá trị trung bình của Average Precision

Mean Average Precision (mAP) là một cách để đo lường hiệu suất của một mô hình object detection. Nó xem xét độ chính xác của việc detect 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ể cho thấy mô hình có thể xác định và classify các đối tượng một cách chính xác như thế nào.

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

  • mAP@.5: Đo độ chính xác trung bình tại một ngưỡng IoU (Intersection over Union) duy nhất là 0,5. Số liệu này kiểm tra xem mô hình có thể tìm thấy chính xác các đối tượng với yêu cầu độ chính xác lỏng lẻo hơn hay không. Nó tập trung vào việc đối tượng có nằm gần đúng vị trí hay không, không cần vị trí hoàn hảo. Nó giúp xem mô hình có nhìn chung tốt trong việc phát hiện các đối tượng hay không.
  • mAP@.5:.95: Tính trung bình các giá trị mAP được tính ở nhiều ngưỡng IoU, từ 0,5 đến 0,95 với mức tăng 0,05. Số liệu này chi tiết và nghiêm ngặt hơn. Nó cung cấp một bức tranh đầy đủ hơn về mức độ chính xác của mô hình trong việc tìm kiếm các đố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 độ chính xác cao khi detect đối tượng.

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, đánh giá độ chính xác trên các đối tượng có kích thước khác nhau.

Độ chính xác trung bình mAP số liệu

Đánh giá hiệu suất mô hình YOLO26

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

Các Câu Hỏi Thường Gặp Trong Cộng Đồng

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

Xử lý Kích thước Ảnh Biến đổi

Đánh giá mô hình YOLO26 của bạn với các hình ảnh có kích thước khác nhau có thể giúp bạn hiểu rõ hiệu suất của nó trên các tập dữ liệu đa dạng. Sử dụng rect=true tham số xác thực, YOLO26 điều chỉnh bước nhảy (stride) của mạng cho mỗi lô (batch) dựa trên kích thước ảnh, cho phép mô hình 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 duy nhất.

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

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 của mô hình YOLO26 của mình, bạn có thể dễ dàng truy cập các chỉ số đánh giá cụ thể chỉ với vài dòng mã python. Đoạn mã dưới đây sẽ cho phép bạn tải mô hình, chạy đánh giá và in ra các chỉ số khác nhau cho thấy mô hình của bạn hoạt động tốt 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("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 các chỉ số tốc độ như thời gian tiền xử lý, thời gian suy luận, độ lỗi (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 mô hình YOLO26 của mình để đạt 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 mô hình đã đượ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 trên 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 mô hình, cho phép mô hình hiểu rõ hơn và dự đoán kết quả cho dữ liệu cụ thể mà nó sẽ gặp trong các ứng dụng thực tế. Bạn có thể huấn luyện lại mô hình của mình dựa trên đánh giá mô hình để đạt được kết quả tối ưu.

Mẹo để tinh chỉnh mô hình của bạn

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

Bắt đầu với Tỷ lệ học tập cao hơn

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

Khi đánh giá mô hình YOLO26 của bạn, bạn có thể đặt warmup_epochs tham số validation thành warmup_epochs=0 để ngăn tốc độ học bắt đầu quá thấp. Bằng cách tuân 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 các sắc thái của dữ liệu mới của bạn.

Chia nhỏ hình ảnh cho các đối tượng nhỏ

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

Tương tác 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 đối với 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 Trợ giúp và Hỗ trợ

  • GitHub Issues: Khám phá kho lưu trữ 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à những người bảo trì luôn sẵn sàng hỗ trợ bạn với bất kỳ vấn đề nào bạn gặp phải.
  • Máy chủ Ultralytics Discord: Tham gia máy chủ Ultralytics Discord để 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àBrainstorm ý tưởng.

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

  • Tài liệu Ultralytics YOLO26: Tham khảo tài liệu chính thức của YOLO26 để có các hướng dẫn toàn diện và thông tin chi tiết giá trị về các tác vụ và dự án thị giác máy tính khác nhau.

Lời Kết

Đánh giá và tinh chỉnh mô hình thị giác máy tính của bạn là những bước quan trọng để triển khai mô hình thành công. Các bước này giúp đảm bảo rằng mô hình của bạn chính xác, hiệu quả và phù hợp với ứng dụng tổng thể của bạn. Chìa khóa để huấn luyện mô hình tốt nhất có thể là thử nghiệm và học hỏi liên tục. Đừng ngần ngại điều chỉnh các tham số, thử các kỹ thuật mới và khám phá các bộ 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ể!

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

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

Để đánh giá hiệu suất mô hình YOLO26, các chỉ số quan trọng bao gồm Điểm tin cậy (Confidence Score), Intersection over Union (IoU) và Độ chính xác trung bình (mAP). Điểm tin cậy đo lường mức độ chắc chắn của mô hình đối với mỗi lớp đối tượng được detect. IoU đánh giá mức độ trùng lặp giữa hộp giới hạn dự đoán và ground truth. Độ chính xác trung bình (mAP) tổng hợp các điểm 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ề các chỉ số hiệu suất của YOLO26 của chúng tôi.

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

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

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

Để xử lý các kích thước hình ảnh khác nhau trong quá trình đánh giá, hãy sử dụng rect=true tham số trong YOLO26, điều chỉnh bước nhảy (stride) của mạng cho mỗi lô (batch) dựa trên kích thước ảnh. Cái imgsz tham số đặt kích thước tối đa để thay đổi kích thước hình ảnh, mặc định là 640. Điều chỉnh imgsz cho phù hợp với bộ 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ý các kích thước hình ảnh khác nhau.

Tôi có thể thực hiện những bước thực tế nào để cải thiện độ chính xác trung bình (mAP) cho mô hình YOLO26 của mình?

Cải thiện độ chính xác trung bình (mAP) cho một mô hình YOLO26 bao gồm một số bước:

  1. Điều chỉnh Siêu tham số: Thử nghiệm với các tốc độ học khác nhau, kích thước lô và tăng cường hình ảnh.
  2. Tăng cường dữ liệu (Data Augmentation): Sử 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.
  3. Ghép ảnh: Chia các hình ảnh lớn hơn thành các ô nhỏ hơn để cải thiện độ chính xác detect 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 mô hình để biết các chiến lược cụ thể.

Làm thế nào để tôi truy cập các chỉ số đánh giá mô hình YOLO26 trong python?

Bạn có thể truy cập các chỉ số đánh giá mô hình YOLO26 sử dụ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)

Phân tích các chỉ số này giúp tinh chỉnh và tối ưu hóa mô hình YOLO26 của bạn. Để tìm hiểu sâu hơn, hãy tham khảo hướng dẫn của chúng tôi về các chỉ số của YOLO26.



📅 Được tạo 1 năm trước ✍️ Cập nhật 7 ngày trước
glenn-jocherRizwanMunawarUltralyticsAssistantpderrengerMatthewNoyceLaughing-qabirami-vina

Bình luận