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

Điểm chuẩn mô hình với Ultralytics YOLO

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

Giới thiệu

Khi mô hình của bạn được đào tạo và xác nhận, bước hợp lý tiếp theo là đánh giá hiệu suất của nó trong các tình huống thực tế khác nhau. Chế độ điểm chuẩn trong Ultralytics YOLOv8 Phục vụ mục đích này bằng cách cung cấp một khuôn khổ mạnh mẽ để đánh giá tốc độ và độ chính xác của mô hình của bạn trên một loạt các định dạng xuất.



Xem: Ultralytics Chế độ Hướng dẫn: Điểm chuẩn

Tại sao điểm chuẩn lại quan trọng?

  • Quyết định sáng suốt: Có được thông tin chi tiết về sự đánh đổi giữa tốc độ và độ chính xác.
  • Phân bổ nguồn lực: Hiểu các định dạng xuất khác nhau hoạt động như thế nào trên các phần cứng khác nhau.
  • Tối ưu hóa: Tìm hiểu định dạng xuất nào mang lại hiệu suất tốt nhất cho trường hợp sử dụng cụ thể của bạn.
  • Hiệu quả chi phí: Sử dụng hiệu quả hơn tài nguyên phần cứng dựa trên kết quả điểm chuẩn.

Các chỉ số chính trong chế độ điểm chuẩn

  • mAP50-95: Để phát hiện đối tượng, phân đoạn và ước tính tư thế.
  • accuracy_top5: Để phân loại hình ảnh.
  • Thời gian suy luận: Thời gian thực hiện cho mỗi hình ảnh tính bằng mili giây.

Các định dạng xuất được hỗ trợ

  • ONNX: Để tối ưu CPU hiệu năng
  • TensorRT: Cho tối đa GPU hiệu quả
  • OpenVINO: Đối với Intel Tối ưu hóa phần cứng
  • CoreML, TensorFlow SavedModelvà hơn thế nữa: Dành cho nhu cầu triển khai đa dạng.

Mẹo

  • Xuất sang ONNX hoặc OpenVINO cho tối đa 3x CPU Speedup.
  • Xuất sang TensorRT cho tối đa 5x GPU Speedup.

Ví dụ sử dụng

Chạy YOLOv8n Điểm chuẩn trên tất cả các định dạng xuất được hỗ trợ, bao gồm: ONNX, TensorRT v.v. 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.utils.benchmarks import benchmark

# Benchmark on GPU
benchmark(model="yolov8n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
yolo benchmark model=yolov8n.pt data='coco8.yaml' imgsz=640 half=False device=0

Lập luận

Các đối số như model, data, imgsz, half, deviceverbose Cung cấp cho người dùng sự linh hoạt để tinh chỉnh các điểm chuẩn theo nhu cầu cụ thể của họ và so sánh hiệu suất của các định dạng xuất khác nhau một cách dễ dàng.

Chìa khoá Giá trị mặc định Sự miêu tả
model None Chỉ định đường dẫn đến tệp mô hình. Chấp nhận cả hai .pt.yaml định dạng, ví dụ: "yolov8n.pt" cho các mô hình được đào tạo trước hoặc tệp cấu hình.
data None Đường dẫn đến tệp YAML xác định tập dữ liệu để đo điểm chuẩn, thường bao gồm đường dẫn và cài đặt cho dữ liệu xác thực. Ví dụ: "coco8.yaml".
imgsz 640 Kích thước hình ảnh đầu vào cho mô hình. Có thể là một số nguyên duy nhất cho hình ảnh vuông hoặc bộ dữ liệu (width, height) đối với không vuông, ví dụ: (640, 480).
half False Cho phép suy luận FP16 (nửa chính xác), giảm mức sử dụng bộ nhớ và có thể tăng tốc độ trên phần cứng tương thích. Dùng half=True để kích hoạt.
int8 False Kích hoạt lượng tử hóa INT8 để tối ưu hóa hơn nữa hiệu suất trên các thiết bị được hỗ trợ, đặc biệt hữu ích cho các thiết bị biên. Cài int8=True để sử dụng.
device None Xác định (các) thiết bị tính toán để đo điểm chuẩn, chẳng hạn như "cpu", "cuda:0"hoặc danh sách các thiết bị như "cuda:0,1" cho nhiều -GPU Thiết lập.
verbose False Kiểm soát mức độ chi tiết trong việc ghi nhật ký đầu ra. Giá trị boolean; cài verbose=True để biết nhật ký chi tiết hoặc phao cho các lỗi ngưỡng.

Định dạng xuất

Điểm chuẩn sẽ cố gắng chạy tự động trên tất cả các định dạng xuất có thể có bên dưới.

Định dạng format Lý lẽ Mẫu Siêu dữ liệu Lập luận
PyTorch - yolov8n.pt -
TorchScript torchscript yolov8n.torchscript imgsz, optimize, batch
ONNX onnx yolov8n.onnx imgsz, half, dynamic, simplify, opset, batch
OpenVINO openvino yolov8n_openvino_model/ imgsz, half, int8, batch
TensorRT engine yolov8n.engine imgsz, half, dynamic, simplify, workspace, int8, batch
CoreML coreml yolov8n.mlpackage imgsz, half, int8, nms, batch
TF SavedModel saved_model yolov8n_saved_model/ imgsz, keras, int8, batch
TF GraphDef pb yolov8n.pb imgsz, batch
TF Lite tflite yolov8n.tflite imgsz, half, int8, batch
TF Cạnh TPU edgetpu yolov8n_edgetpu.tflite imgsz
TF.Js tfjs yolov8n_web_model/ imgsz, half, int8, batch
PaddlePaddle paddle yolov8n_paddle_model/ imgsz, batch
NCNN ncnn yolov8n_ncnn_model/ imgsz, half, batch

Xem đầy đủ export Chi tiết trong Xuất khẩu trang.

FAQ

Làm cách nào để đánh giá điểm chuẩn của tôi YOLOv8 Hiệu suất của mô hình bằng cách sử dụng Ultralytics?

Ultralytics YOLOv8 cung cấp chế độ Điểm chuẩn để đánh giá hiệu suất mô hình của bạn trên các định dạng xuất khác nhau. Chế độ này cung cấp thông tin chi tiết về các số liệu chính như Độ chính xác trung bình trung bình (mAP50-95), độ chính xác và thời gian suy luận tính bằng mili giây. Để chạy điểm chuẩn, bạn có thể sử dụng một trong hai Python hoặc CLI Lệnh. Ví dụ: để điểm chuẩn trên một GPU:

Ví dụ

from ultralytics.utils.benchmarks import benchmark

# Benchmark on GPU
benchmark(model="yolov8n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
yolo benchmark model=yolov8n.pt data='coco8.yaml' imgsz=640 half=False device=0

Để biết thêm chi tiết về các đối số chuẩn, hãy truy cập phần Đối số .

Lợi ích của việc xuất khẩu là gì YOLOv8 mô hình cho các định dạng khác nhau?

Xuất khẩu YOLOv8 mô hình đến các định dạng khác nhau như ONNX, TensorRTvà OpenVINO Cho phép bạn tối ưu hóa hiệu suất dựa trên môi trường triển khai của mình. Chẳng hạn:

  • ONNX: Cung cấp lên đến 3x CPU Speedup.
  • TensorRT: Ưu đãi lên đến 5x GPU Speedup.
  • OpenVINO: Tối ưu hóa cụ thể cho Intel phần cứng. Các định dạng này nâng cao cả tốc độ và độ chính xác của các mô hình của bạn, làm cho chúng hiệu quả hơn cho các ứng dụng trong thế giới thực khác nhau. Truy cập trang Xuất để biết chi tiết đầy đủ.

Tại sao điểm chuẩn lại quan trọng trong việc đánh giá YOLOv8 Mô hình?

Điểm chuẩn của bạn YOLOv8 Mô hình là điều cần thiết vì nhiều lý do:

  • Quyết định sáng suốt: Hiểu được sự đánh đổi giữa tốc độ và độ chính xác.
  • Phân bổ nguồn lực: Đánh giá hiệu suất trên các tùy chọn phần cứng khác nhau.
  • Tối ưu hóa: Xác định định dạng xuất nào cung cấp hiệu suất tốt nhất cho các trường hợp sử dụng cụ thể.
  • Hiệu quả chi phí: Tối ưu hóa việc sử dụng phần cứng dựa trên kết quả điểm chuẩn. Các chỉ số chính như mAP50-95, độ chính xác Top 5 và thời gian suy luận giúp thực hiện các đánh giá này. Tham khảo phần Chỉ số chính để biết thêm thông tin.

Những định dạng xuất nào được hỗ trợ bởi YOLOv8, và lợi thế của chúng là gì?

YOLOv8 Hỗ trợ nhiều định dạng xuất khác nhau, mỗi định dạng được điều chỉnh cho các trường hợp sử dụng và phần cứng cụ thể:

  • ONNX: Tốt nhất cho CPU hiệu năng.
  • TensorRT: Lý tưởng cho GPU hiệu quả.
  • OpenVINO: Tối ưu hóa cho Intel phần cứng.
  • CoreML & TensorFlow: Hữu ích cho iOS và các ứng dụng ML nói chung. Để biết danh sách đầy đủ các định dạng được hỗ trợ và lợi thế tương ứng của chúng, hãy xem phần Định dạng xuất được hỗ trợ .

Tôi có thể sử dụng những đối số nào để tinh chỉnh YOLOv8 Điểm chuẩn?

Khi chạy điểm chuẩn, một số đối số có thể được tùy chỉnh để phù hợp với nhu cầu cụ thể:

  • mẫu: Đường dẫn đến tệp mô hình (ví dụ: "yolov8n.pt").
  • dữ liệu: Đường dẫn đến tệp YAML xác định tập dữ liệu (ví dụ: "coco8.yaml").
  • IMGSZ: Kích thước hình ảnh đầu vào, dưới dạng một số nguyên hoặc một bộ dữ liệu.
  • nửa: Bật suy luận FP16 để có hiệu suất tốt hơn.
  • INT8: Kích hoạt lượng tử hóa INT8 cho các thiết bị biên.
  • thiết bị: Chỉ định thiết bị tính toán (ví dụ: "cpu", "cuda:0").
  • dài dòng: Kiểm soát mức độ chi tiết ghi nhật ký. Để biết danh sách đầy đủ các đối số, hãy tham khảo phần Đối số .


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

Ý kiến