Bỏ để qua phần nội dung

Xác thực mô hình với Ultralytics YOLO

Ultralytics YOLO Hệ sinh thái và tích hợp

Giới thiệu

Xác nhận là một bước quan trọng trong quy trình học máy, cho phép bạn đánh giá chất lượng của các mô hình được đào tạo của mình. Chế độ Val trong Ultralytics YOLOv8 Cung cấp một bộ công cụ và số liệu mạnh mẽ để đánh giá hiệu suất của các mô hình phát hiện đối tượng của bạn. Hướng dẫn này đóng vai trò là tài nguyên hoàn chỉnh để hiểu cách sử dụng hiệu quả chế độ Val để đảm bảo rằng các mô hình của bạn vừa chính xác vừa đáng tin cậy.



Xem: Ultralytics Chế độ Hướng dẫn: Xác nhận

Tại sao phải xác thực với Ultralytics YOLO?

Đây là lý do tại sao sử dụng YOLOv8Chế độ Val của có lợi thế:

  • Chính xác: Nhận các chỉ số chính xác như mAP50, mAP75 và mAP50-95 để đánh giá toàn diện mô hình của bạn.
  • Thuận tiện: Sử dụng các tính năng tích hợp ghi nhớ cài đặt đào tạo, đơn giản hóa quy trình xác thực.
  • Linh hoạt: Xác thực mô hình của bạn với các bộ dữ liệu và kích thước hình ảnh giống nhau hoặc khác nhau.
  • Điều chỉnh siêu tham số: Sử dụng số liệu xác thực để tinh chỉnh mô hình của bạn để có hiệu suất tốt hơn.

Các tính năng chính của Val Mode

Đây là những chức năng đáng chú ý được cung cấp bởi YOLOv8Chế độ Val của bạn:

  • Cài đặt tự động: Các mô hình ghi nhớ cấu hình đào tạo của họ để xác nhận đơn giản.
  • Hỗ trợ đa số liệu: Đánh giá mô hình của bạn dựa trên một loạt các chỉ số chính xác.
  • CLI và Python API: Chọn từ giao diện dòng lệnh hoặc Python API dựa trên tùy chọn xác thực của bạn.
  • Khả năng tương thích dữ liệu: Hoạt động liền mạch với các bộ dữ liệu được sử dụng trong giai đoạn đào tạo cũng như các bộ dữ liệu tùy chỉnh.

Mẹo

  • YOLOv8 Các mô hình tự động ghi nhớ cài đặt đào tạo của họ, vì vậy bạn có thể xác thực mô hình ở cùng kích thước hình ảnh và trên tập dữ liệu gốc một cách dễ dàng chỉ với yolo val model=yolov8n.pt hoặc model('yolov8n.pt').val()

Ví dụ sử dụng

Xác thực đào tạo YOLOv8n mô hình chính xác trên tập dữ liệu COCO8. Không cần phải thông qua tranh luận như model Giữ lại nó là đào tạo data và các đối số làm thuộc tính mô hình. Xem phần Đối số bên dưới để biết danh sách đầy đủ các đối số xuất.

Ví dụ

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.pt')  # load an official model
model = YOLO('path/to/best.pt')  # load a custom model

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered
metrics.box.map    # map50-95
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps   # a list contains map50-95 of each category
yolo detect val model=yolov8n.pt  # val official model
yolo detect val model=path/to/best.pt  # val custom model

Đối số cho YOLO Xác thực mô hình

Khi xác thực YOLO Các mô hình, một số đối số có thể được tinh chỉnh để tối ưu hóa quá trình đánh giá. Các đối số này kiểm soát các khía cạnh như kích thước hình ảnh đầu vào, xử lý hàng loạt và ngưỡng hiệu suất. Dưới đây là bảng phân tích chi tiết về từng đối số để giúp bạn tùy chỉnh cài đặt xác thực của mình một cách hiệu quả.

Lý lẽ Kiểu Mặc định Sự miêu tả
data str None Chỉ định đường dẫn đến tệp cấu hình tập dữ liệu (ví dụ: coco8.yaml). Tệp này bao gồm đường dẫn đến dữ liệu xác thực, tên lớp và số lớp.
imgsz int 640 Xác định kích thước của hình ảnh đầu vào. Tất cả các hình ảnh được thay đổi kích thước theo kích thước này trước khi xử lý.
batch int 16 Đặt số lượng hình ảnh mỗi đợt. Dùng -1 cho AutoBatch, tự động điều chỉnh dựa trên tính khả dụng của bộ nhớ GPU.
save_json bool False Nếu True, lưu kết quả vào tệp JSON để phân tích thêm hoặc tích hợp với các công cụ khác.
save_hybrid bool False Nếu True, lưu phiên bản kết hợp của nhãn kết hợp chú thích gốc với dự đoán mô hình bổ sung.
conf float 0.001 Đặt ngưỡng tin cậy tối thiểu để phát hiện. Các phát hiện có độ tin cậy dưới ngưỡng này sẽ bị loại bỏ.
iou float 0.6 Đặt ngưỡng Giao lộ qua Liên minh (IoU) cho Triệt tiêu Không Tối đa (NMS). Giúp giảm phát hiện trùng lặp.
max_det int 300 Giới hạn số lần phát hiện tối đa cho mỗi hình ảnh. Hữu ích trong các cảnh dày đặc để tránh phát hiện quá mức.
half bool True Cho phép tính toán nửa độ chính xác (FP16), giảm mức sử dụng bộ nhớ và có khả năng tăng tốc độ với tác động tối thiểu đến độ chính xác.
device str None Chỉ định thiết bị để xác thực (cpu, cuda:0, v.v.). Cho phép linh hoạt trong việc sử dụng tài nguyên CPU hoặc GPU.
dnn bool False Nếu True, sử dụng mô-đun OpenCV DNN cho ONNX suy luận mô hình, cung cấp một giải pháp thay thế cho PyTorch phương pháp suy luận.
plots bool False Khi được đặt thành True, tạo và lưu các biểu đồ dự đoán so với sự thật cơ bản để đánh giá trực quan về hiệu suất của mô hình.
rect bool False Nếu True, sử dụng suy luận hình chữ nhật để trộn, giảm đệm và có khả năng tăng tốc độ và hiệu quả.
split str val Xác định phần tách tập dữ liệu để sử dụng để xác thực (val, testhoặc train). Cho phép linh hoạt trong việc lựa chọn phân khúc dữ liệu để đánh giá hiệu suất.

Mỗi cài đặt này đóng một vai trò quan trọng trong quá trình xác thực, cho phép đánh giá có thể tùy chỉnh và hiệu quả YOLO Mô hình. Điều chỉnh các thông số này theo nhu cầu và nguồn lực cụ thể của bạn có thể giúp đạt được sự cân bằng tốt nhất giữa độ chính xác và hiệu suất.

Xác thực ví dụ với các đối số

Các ví dụ dưới đây giới thiệu YOLO Xác thực mô hình với các đối số tùy chỉnh trong Python và CLI.

Ví dụ

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.pt')

# Customize validation settings
validation_results = model.val(data='coco8.yaml',
                               imgsz=640,
                               batch=16,
                               conf=0.25,
                               iou=0.6,
                               device='0')
yolo val model=yolov8n.pt data=coco8.yaml imgsz=640 batch=16 conf=0.25 iou=0.6 device=0


Đã tạo 2023-11-12, Cập nhật 2024-04-18
Tác giả: glenn-jocher (9), Burhan-Q (1), RizwanMunawar (1)

Ý kiến