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

Validation is a critical step in the machine learning pipeline, allowing you to assess the quality of your trained models. Val mode in Ultralytics YOLO11 provides a robust suite of tools and metrics for evaluating the performance of your object detection models. This guide serves as a complete resource for understanding how to effectively use the Val mode to ensure that your models are both accurate and reliable.



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

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

Here's why using YOLO11's Val mode is advantageous:

  • 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.
  • Hyperparameter Tuning: Use validation metrics to fine-tune your model for better performance.

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

These are the notable functionalities offered by YOLO11's Val mode:

  • 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

  • YOLO11 models automatically remember their training settings, so you can validate a model at the same image size and on the original dataset easily with just yolo val model=yolo11n.pt hoặc model('yolo11n.pt').val()

Ví dụ sử dụng

Validate trained YOLO11n model accuracy on the COCO8 dataset. No arguments are needed as the model duy trì đà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("yolo11n.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=yolo11n.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ểuMặc địnhSự miêu tả
datastrNoneChỉ định đường dẫn đến tệp cấu hình tập dữ liệu (ví dụ: coco8.yaml). This file includes paths to validation data, class names, and number of classes.
imgszint640Xá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ý.
batchint16Đặ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 GPU Tính khả dụng của bộ nhớ.
save_jsonboolFalseNế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_hybridboolFalseNế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.
conffloat0.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ỏ.
ioufloat0.6Sets the Intersection Over Union (IoU) threshold for Non-Maximum Suppression (NMS). Helps in reducing duplicate detections.
max_detint300Giớ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.
halfboolTrueEnables half-precision (FP16) computation, reducing memory usage and potentially increasing speed with minimal impact on accuracy.
devicestrNoneChỉ đị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 CPU hoặc GPU tài nguyên.
dnnboolFalseNếu True, uses the Mở CV DNN module for ONNX model inference, offering an alternative to PyTorch inference methods.
plotsboolFalseKhi đượ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.
rectboolFalseNế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ả.
splitstrvalXá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("yolo11n.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=yolo11n.pt data=coco8.yaml imgsz=640 batch=16 conf=0.25 iou=0.6 device=0

FAQ

How do I validate my YOLO11 model with Ultralytics?

To validate your YOLO11 model, you can use the Val mode provided by Ultralytics. For example, using the Python API, you can load a model and run validation with:

from ultralytics import YOLO

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

# Validate the model
metrics = model.val()
print(metrics.box.map)  # map50-95

Ngoài ra, bạn có thể sử dụng giao diện dòng lệnh (CLI):

yolo val model=yolo11n.pt

Để tùy chỉnh thêm, bạn có thể điều chỉnh các đối số khác nhau như imgsz, batchconf trong cả hai Python và CLI Chế độ. Kiểm tra Đối số cho YOLO Xác thực mô hình để biết danh sách đầy đủ các tham số.

What metrics can I get from YOLO11 model validation?

YOLO11 model validation provides several key metrics to assess model performance. These include:

  • mAP50 (Độ chính xác trung bình trung bình ở ngưỡng IoU 0,5)
  • mAP75 (Độ chính xác trung bình trung bình ở ngưỡng IoU 0,75)
  • mAP50-95 (Độ chính xác trung bình trên nhiều ngưỡng IoU từ 0,5 đến 0,95)

Sử dụng Python API, bạn có thể truy cập các chỉ số này như sau:

metrics = model.val()  # assumes `model` has been loaded
print(metrics.box.map)  # mAP50-95
print(metrics.box.map50)  # mAP50
print(metrics.box.map75)  # mAP75
print(metrics.box.maps)  # list of mAP50-95 for each category

Để đánh giá hiệu suất hoàn chỉnh, điều quan trọng là phải xem xét tất cả các chỉ số này. Để biết thêm chi tiết, hãy tham khảo Các tính năng chính của Chế độ Val.

Ưu điểm của việc sử dụng là gì Ultralytics YOLO để xác nhận?

Sử dụng Ultralytics YOLO Để xác nhận cung cấp một số lợi thế:

  • Precision: YOLO11 offers accurate performance metrics including mAP50, mAP75, and mAP50-95.
  • Thuận tiện: Các mô hình ghi nhớ cài đặt đào tạo của họ, làm cho việc xác nhận trở nên đơn giản.
  • Linh hoạt: Bạn có thể xác thực dựa trên 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ố: Các chỉ số xác thực giúp tinh chỉnh các mô hình để có hiệu suất tốt hơn.

Những lợi ích này đảm bảo rằng các mô hình của bạn được đánh giá kỹ lưỡng và có thể được tối ưu hóa để có kết quả vượt trội. Tìm hiểu thêm về những lợi thế này trong Tại sao phải xác thực với Ultralytics YOLO phần.

Can I validate my YOLO11 model using a custom dataset?

Yes, you can validate your YOLO11 model using a custom dataset. Specify the data argument with the path to your dataset configuration file. This file should include paths to the validation data, class names, and other relevant details.

Ví dụ trong Python:

from ultralytics import YOLO

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

# Validate with a custom dataset
metrics = model.val(data="path/to/your/custom_dataset.yaml")
print(metrics.box.map)  # map50-95

Ví dụ sử dụng CLI:

yolo val model=yolo11n.pt data=path/to/your/custom_dataset.yaml

Để biết thêm các tùy chọn có thể tùy chỉnh trong quá trình xác thực, hãy xem phần Xác thực Ví dụ với Đối số .

How do I save validation results to a JSON file in YOLO11?

Để lưu kết quả xác thực vào tệp JSON, bạn có thể đặt save_json Lập luận để True khi chạy xác thực. Điều này có thể được thực hiện trong cả hai Python API và CLI.

Ví dụ trong Python:

from ultralytics import YOLO

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

# Save validation results to JSON
metrics = model.val(save_json=True)

Ví dụ sử dụng CLI:

yolo val model=yolo11n.pt save_json=True

Chức năng này đặc biệt hữu ích để phân tích thêm hoặc tích hợp với các công cụ khác. Kiểm tra Đối số cho YOLO Xác thực mô hình để biết thêm chi tiết.

📅 Created 11 months ago ✏️ Updated 20 days ago

Ý kiến