Xác thực mô hình với Ultralytics YOLO
Giới thiệu
Xác thực 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 đã đào tạo. Chế độ Val trong Ultralytics YOLO11 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à nguồn tài nguyên hoàn chỉnh để hiểu cách sử dụng hiệu quả chế độ Val nhằm đả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.
Đồng hồ: Ultralytics Hướng dẫn chế độ: Xác thực
Tại sao xác thực với Ultralytics YOLO ?
Đây là lý do tại sao sử dụng YOLO11 Chế độ Val có lợi thế:
- Độ chính xác: Nhận các số liệu chính xác như mAP50, mAP75 và mAP50-95 để đánh giá toàn diện mô hình của bạn.
- Sự tiện lợi: Sử dụng các tính năng tích hợp có khả năng ghi nhớ cài đặt đào tạo, giúp đơn giản hóa quá trình xác thực.
- Tính linh hoạt: Xác thực mô hình của bạn với cùng hoặc khác tập dữ liệu và kích thước hình ảnh.
- Đ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 nhằm 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 YOLO11 Chế độ Val:
- Cài đặt tự động: Các mô hình ghi nhớ cấu hình đào tạo của chúng để xác thực dễ dàng.
- Hỗ trợ nhiều số liệu: Đánh giá mô hình của bạn dựa trên nhiều số liệu về độ 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 sở thích 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 tập dữ liệu được sử dụng trong giai đoạn đào tạo cũng như các tập dữ liệu tùy chỉnh.
Mẹo
- YOLO11 các mô hình tự động ghi nhớ cài đặt đào tạo của chúng, do đó bạn có thể xác thực một 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=yolo11n.pt
hoặcmodel('yolo11n.pt').val()
Ví dụ sử dụng
Xác thực mô hình YOLO11n đã được đào tạo sự chính xác trên tập dữ liệu COCO8. Không cần đối số vì model
giữ lại sự đào tạo của mình data
và đối số là 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
Các đối số cho YOLO Xác thực mô hình
Khi xác thực YOLO mô hình, một số đối số có thể được tinh chỉnh để tối ưu hóa quy 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à 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 các đường dẫn đến dữ liệu xác thực, tên lớp và số lượng lớp. |
imgsz |
int |
640 |
Xác định kích thước của hình ảnh đầu vào. Tất 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 |
Thiết lập số lượng hình ảnh cho mỗi đợt. Sử dụng -1 cho AutoBatch, tự động điều chỉnh dựa trên GPU khả năng sử dụng bộ nhớ. |
save_json |
bool |
False |
Nếu như 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 như True , lưu phiên bản nhãn kết hợp giữa chú thích gốc với các dự đoán mô hình bổ sung. |
conf |
float |
0.001 |
Đặt ngưỡng tin cậy tối thiểu cho các 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 điểm qua Liên hợp (IoU) cho Không loại trừ 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 trên mỗi hình ảnh. Hữu ích trong các cảnh dày đặc để ngăn ngừa phát hiện quá mức. |
half |
bool |
True |
Cho phép tính toán độ chính xác một nửa (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 CPU hoặc GPU tài nguyên. |
dnn |
bool |
False |
Nếu như True , sử dụng MởCV Mô-đun DNN cho ONNX mô hình suy luận, cung cấp một giải pháp thay thế cho PyTorch phương pháp suy luận. |
plots |
bool |
False |
Khi thiết lập thành True , tạo và lưu các biểu đồ dự đoán so với thực tế để đánh giá trực quan hiệu suất của mô hình. |
rect |
bool |
True |
Nếu như True , sử dụng suy luận hình chữ nhật để phân nhóm, giảm đệm và có khả năng tăng tốc độ và hiệu quả. |
split |
str |
val |
Xác định phân chia tập dữ liệu để sử dụng cho việc xác thực (val , test , hoặc train ). Cho phép linh hoạt trong việc lựa chọn phân đoạn dữ liệu để đánh giá hiệu suất. |
project |
str |
None |
Tên của thư mục dự án nơi lưu trữ kết quả xác thực. |
name |
str |
None |
Tên của lần chạy xác thực. Được sử dụng để tạo một thư mục con trong thư mục dự án, nơi lưu trữ nhật ký xác thực và đầu ra. |
Mỗi thiết lập này đóng vai trò quan trọng trong quá trình xác thực, cho phép đánh giá tùy chỉnh và hiệu quả YOLO mô hình. Việc đ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.
Ví dụ xác thực với đố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ụ
CÂU HỎI THƯỜNG GẶP
Làm thế nào để tôi xác thực YOLO11 mô hình với Ultralytics ?
Để xác thực của bạn YOLO11 mô hình, bạn có thể sử dụng chế độ Val được cung cấp bởi Ultralytics . Ví dụ, sử dụng Python API, bạn có thể tải mô hình và chạy xác thực bằng:
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 ):
Để tùy chỉnh thêm, bạn có thể điều chỉnh nhiều đối số khác nhau như imgsz
, batch
, Và conf
trong cả hai Python Và CLI chế độ. Kiểm tra Các đối số cho YOLO Xác thực mô hình phần để biết danh sách đầy đủ các tham số.
Tôi có thể lấy số liệu gì từ YOLO11 xác thực mô hình?
YOLO11 xác thực mô hình cung cấp một số số liệu quan trọng để đánh giá hiệu suất mô hình. Bao gồm:
- mAP50 (Độ chính xác trung bình tại ngưỡng IoU 0,5)
- mAP75 (Độ chính xác trung bình tại 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 số liệu 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 đầy đủ, điều quan trọng là phải xem xét tất cả các số liệu này. Để biết thêm chi tiết, hãy tham khảo Các tính năng chính của Val Mode .
Những lợi ích của việc sử dụng là gì? Ultralytics YOLO để xác thực?
Sử dụng Ultralytics YOLO để xác thực mang lại một số lợi thế:
- Độ chính xác : YOLO11 cung cấp số liệu hiệu suất chính xác bao gồm mAP50, mAP75 và mAP50-95.
- Sự tiện lợi: Các mô hình ghi nhớ cài đặt đào tạo của chúng, giúp việc xác thực trở nên dễ dàng.
- Tính linh hoạt: Bạn có thể xác thực trên cùng một tập dữ liệu và kích thước hình ảnh hoặc các tập dữ liệu khác nhau.
- Điều chỉnh siêu tham số: Các số liệu 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 phần Tại sao nên xác thực với Ultralytics YOLO .
Tôi có thể xác thực của tôi YOLO11 mô hình sử dụng tập dữ liệu tùy chỉnh?
Có, bạn có thể xác thực YOLO11 mô hình sử dụng một tập dữ liệu tùy chỉnh. Chỉ định data
đối số với đường dẫn đến tệp cấu hình tập dữ liệu của bạn. Tệp này phải bao gồm đường dẫn đến dữ liệu xác thực, tên lớp và các thông tin chi tiết liên quan khác.
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 :
Để biết thêm các tùy chọn tùy chỉnh trong quá trình xác thực, hãy xem phần Ví dụ xác thực bằng đối số .
Làm thế nào để tôi lưu kết quả xác thực vào tệp JSON trong 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 cho 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 :
Chức năng này đặc biệt hữu ích cho việc phân tích sâu hơn hoặc tích hợp với các công cụ khác. Kiểm tra Đối số cho Xác thực mô hình YOLO để biết thêm chi tiết.