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

Xuất mô hình với Ultralytics YOLO

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

Giới thiệu

Mục tiêu cuối cùng của việc đào tạo một mô hình là triển khai nó cho các ứng dụng trong thế giới thực. Chế độ xuất trong Ultralytics YOLO11 cung cấp nhiều tùy chọn đa dạng để xuất mô hình đã đào tạo của bạn sang các định dạng khác nhau, giúp triển khai trên nhiều nền tảng và thiết bị khác nhau. Hướng dẫn toàn diện này hướng dẫn bạn qua các sắc thái của việc xuất mô hình, giới thiệu cách đạt được khả năng tương thích và hiệu suất tối đa.



Xem: Cách Xuất Khẩu Đào Tạo Tùy Chỉnh Ultralytics YOLO Mô hình hóa và chạy suy luận trực tiếp trên Webcam.

Tại sao nên chọn Chế độ xuất của YOLO11?

  • Linh hoạt: Xuất sang nhiều định dạng bao gồm: ONNX, TensorRT, CoreMLvà hơn thế nữa.
  • Hiệu năng: Tăng tới 5 lần GPU Tăng tốc với TensorRT và 3x CPU Tăng tốc với ONNX hoặc OpenVINO.
  • Tương thích: Làm cho mô hình của bạn có thể triển khai phổ biến trên nhiều môi trường phần cứng và phần mềm.
  • Dễ sử dụng: Giản dị CLI và Python API để xuất mô hình nhanh chóng và đơn giản.

Các tính năng chính của chế độ xuất khẩu

Dưới đây là một số chức năng nổi bật:

  • Xuất bằng một cú nhấp chuột: Các lệnh đơn giản để xuất sang các định dạng khác nhau.
  • Xuất khẩu hàng loạt: Xuất các mô hình có khả năng suy luận hàng loạt.
  • Suy luận được tối ưu hóa: Các mô hình đã xuất được tối ưu hóa để có thời gian suy luận nhanh hơn.
  • Video hướng dẫn: Hướng dẫn và hướng dẫn chuyên sâu để có trải nghiệm xuất mượt mà.

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

Xuất mô hình YOLO11n sang một định dạng khác như ONNX hoặc TensorRT . 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 trained model

# Export the model
model.export(format="onnx")
yolo export model=yolo11n.pt format=onnx  # export official model
yolo export model=path/to/best.pt format=onnx  # export custom trained model

Lập luận

Bảng này chi tiết các cấu hình và tùy chọn có sẵn để xuất YOLO mô hình đến các định dạng khác nhau. Các cài đặt này rất quan trọng để tối ưu hóa hiệu suất, kích thước và khả năng tương thích của mô hình đã xuất trên các nền tảng và môi trường khác nhau. Cấu hình phù hợp đảm bảo rằng mô hình đã sẵn sàng để triển khai trong ứng dụng dự định với hiệu quả tối ưu.

Lý lẽKiểuMặc địnhSự miêu tả
formatstr'torchscript'Định dạng đích cho mô hình đã xuất, chẳng hạn như 'onnx', 'torchscript', 'tensorflow'hoặc các môi trường khác, xác định khả năng tương thích với các môi trường triển khai khác nhau.
imgszint hoặc tuple640Kích thước hình ảnh mong muốn cho đầu vào mô hình. Có thể là số nguyên cho hình vuông hoặc bộ dữ liệu (height, width) cho các kích thước cụ thể.
kerasboolFalseCho phép xuất sang định dạng Keras cho TensorFlow SavedModel , cung cấp khả năng tương thích với TensorFlow phục vụ và API.
optimizeboolFalseÁp dụng tối ưu hóa cho thiết bị di động khi xuất sang TorchScript, có khả năng giảm kích thước mô hình và cải thiện hiệu suất.
halfboolFalseCho phép lượng tử hóa FP16 (nửa chính xác), giảm kích thước mô hình và có khả năng tăng tốc độ suy luận trên phần cứng được hỗ trợ.
int8boolFalseKích hoạt lượng tử hóa INT8, nén mô hình hơn nữa và tăng tốc suy luận với mức độ mất độ chính xác tối thiểu, chủ yếu dành cho các thiết bị biên.
dynamicboolFalseCho phép kích thước đầu vào động cho ONNX, TensorRT và OpenVINO xuất khẩu, tăng cường tính linh hoạt trong việc xử lý các kích thước hình ảnh khác nhau.
simplifyboolTrueĐơn giản hóa biểu đồ mô hình cho ONNX xuất khẩu với onnxslim, có khả năng cải thiện hiệu suất và khả năng tương thích.
opsetintNoneChỉ định ONNX Phiên bản opset để tương thích với khác nhau ONNX Trình phân tích cú pháp và thời gian chạy. Nếu không được đặt, hãy sử dụng phiên bản được hỗ trợ mới nhất.
workspacefloat4.0Đặt kích thước không gian làm việc tối đa trong GiB cho TensorRT tối ưu hóa, cân bằng giữa việc sử dụng bộ nhớ và hiệu suất.
nmsboolFalseThêm chế áp không tối đa (NMS) vào CoreML xuất khẩu, cần thiết để xử lý hậu kỳ phát hiện chính xác và hiệu quả.
batchint1Chỉ định kích thước suy luận hàng loạt mô hình xuất hoặc số lượng hình ảnh tối đa mà mô hình đã xuất sẽ xử lý đồng thời trong predict chế độ.
devicestrNoneChỉ định thiết bị để xuất: GPU (device=0), CPU (device=cpu), MPS cho silicon của Apple (device=mps) hoặc DLA cho NVIDIA Máy bay phản lực (device=dla:0 hoặc device=dla:1).

Việc điều chỉnh các thông số này cho phép tùy chỉnh quy trình xuất để phù hợp với các yêu cầu cụ thể, chẳng hạn như môi trường triển khai, hạn chế phần cứng và mục tiêu hiệu suất. Việc lựa chọn định dạng và cài đặt phù hợp là điều cần thiết để đạt được sự cân bằng tốt nhất giữa kích thước mô hình, tốc độ và độ chính xác .

Định dạng xuất

Các định dạng xuất YOLO11 khả dụng có trong bảng bên dưới. Bạn có thể xuất sang bất kỳ định dạng nào bằng cách sử dụng format lập luận, tức là format='onnx' hoặc format='engine'. Bạn có thể dự đoán hoặc xác thực trực tiếp trên các mô hình đã xuất, tức là yolo predict model=yolo11n.onnx. Ví dụ sử dụng được hiển thị cho mô hình của bạn sau khi xuất hoàn tất.

Định dạngformat Lý lẽMẫuSiêu dữ liệuLập luận
PyTorch-yolo11n.pt-
TorchScripttorchscriptyolo11n.torchscriptimgsz, optimize, batch
ONNXonnxyolo11n.onnximgsz, half, dynamic, simplify, opset, batch
OpenVINOopenvinoyolo11n_openvino_model/imgsz, half, int8, batch
TensorRTengineyolo11n.engineimgsz, half, dynamic, simplify, workspace, int8, batch
CoreMLcoremlyolo11n.mlpackageimgsz, half, int8, nms, batch
TF SavedModelsaved_modelyolo11n_saved_model/imgsz, keras, int8, batch
TF GraphDefpbyolo11n.pbimgsz, batch
TF Litetfliteyolo11n.tfliteimgsz, half, int8, batch
TF Cạnh TPUedgetpuyolo11n_edgetpu.tfliteimgsz
TF.Jstfjsyolo11n_web_model/imgsz, half, int8, batch
PaddlePaddlepaddleyolo11n_paddle_model/imgsz, batch
MNNmnnyolo11n.mnnimgsz, batch, int8, half
NCNNncnnyolo11n_ncnn_model/imgsz, half, batch
IMX500imxyolo11n_imx_model/imgsz, int8

FAQ

Làm thế nào để xuất mô hình YOLO11 sang ONNX định dạng?

Xuất mô hình YOLO11 sang ONNX định dạng là đơn giản với Ultralytics . Nó cung cấp cả hai Python Và CLI phương pháp xuất mô hình.

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 trained model

# Export the model
model.export(format="onnx")
yolo export model=yolo11n.pt format=onnx  # export official model
yolo export model=path/to/best.pt format=onnx  # export custom trained model

Để biết thêm chi tiết về quy trình, bao gồm các tùy chọn nâng cao như xử lý các kích thước đầu vào khác nhau, hãy tham khảo phần ONNX .

Lợi ích của việc sử dụng là gì TensorRT để xuất mô hình?

Sử dụng TensorRT để xuất mô hình cung cấp những cải tiến hiệu suất đáng kể. Các mô hình YOLO11 được xuất sang TensorRT có thể đạt tới 5x GPU tăng tốc, lý tưởng cho các ứng dụng suy luận thời gian thực.

  • Linh hoạt: Tối ưu hóa các mô hình cho một thiết lập phần cứng cụ thể.
  • Tốc độ: Đạt được suy luận nhanh hơn thông qua tối ưu hóa nâng cao.
  • Tương thích: Tích hợp trơn tru với NVIDIA phần cứng.

Để tìm hiểu thêm về việc tích hợp TensorRT , hãy xem hướng dẫn tích hợp TensorRT .

Làm thế nào để bật lượng tử hóa INT8 khi xuất mô hình YOLO11 của tôi?

Lượng tử hóa INT8 là một cách tuyệt vời để nén mô hình và tăng tốc độ suy luận, đặc biệt là trên các thiết bị biên. Đây là cách bạn có thể kích hoạt lượng tử hóa INT8:

Ví dụ

from ultralytics import YOLO

model = YOLO("yolo11n.pt")  # Load a model
model.export(format="engine", int8=True)
yolo export model=yolo11n.pt format=engine int8=True   # export TensorRT model with INT8 quantization

Lượng tử hóa INT8 có thể được áp dụng cho nhiều định dạng khác nhau, chẳng hạn như TensorRT Và CoreML . Bạn có thể tìm thấy thêm thông tin chi tiết trong phần Xuất .

Tại sao kích thước đầu vào động lại quan trọng khi xuất mô hình?

Kích thước đầu vào động cho phép mô hình được xuất xử lý các kích thước hình ảnh khác nhau, mang lại sự linh hoạt và tối ưu hóa hiệu quả xử lý cho các trường hợp sử dụng khác nhau. Khi xuất sang các định dạng như ONNX hoặc TensorRT, cho phép kích thước đầu vào động đảm bảo rằng mô hình có thể thích ứng liền mạch với các hình dạng đầu vào khác nhau.

Để bật tính năng này, hãy sử dụng dynamic=True Cờ trong quá trình xuất:

Ví dụ

from ultralytics import YOLO

model = YOLO("yolo11n.pt")
model.export(format="onnx", dynamic=True)
yolo export model=yolo11n.pt format=onnx dynamic=True

Để biết thêm ngữ cảnh, hãy tham khảo cấu hình kích thước đầu vào động.

Các đối số xuất khẩu chính cần xem xét để tối ưu hóa hiệu suất mô hình là gì?

Hiểu và định cấu hình các đối số xuất là rất quan trọng để tối ưu hóa hiệu suất mô hình:

  • format: Định dạng đích cho mô hình đã xuất (ví dụ: onnx, torchscript, tensorflow).
  • imgsz: Kích thước hình ảnh mong muốn cho đầu vào mô hình (ví dụ: 640 hoặc (height, width)).
  • half: Cho phép lượng tử hóa FP16, giảm kích thước mô hình và có khả năng tăng tốc độ suy luận.
  • optimize: Áp dụng các tối ưu hóa cụ thể cho môi trường di động hoặc bị hạn chế.
  • int8: Cho phép lượng tử hóa INT8, rất có lợi cho việc triển khai biên.

Để biết danh sách chi tiết và giải thích về tất cả các đối số xuất, hãy truy cập phần Đối số xuất .

📅 Được tạo cách đây 1 năm ✏️ Đã cập nhật cách đây 25 ngày

Ý kiến