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

ONNX Xuất khẩu cho các mô hình YOLO11

Thông thường, khi triển khai các mô hình thị giác máy tính , bạn sẽ cần một định dạng mô hình vừa linh hoạt vừa tương thích với nhiều nền tảng.

Xuất các mô hình Ultralytics YOLO11 sang ONNX định dạng hợp lý hóa việc triển khai và đảm bảo hiệu suất tối ưu trên nhiều môi trường khác nhau. Hướng dẫn này sẽ chỉ cho bạn cách dễ dàng chuyển đổi các mô hình YOLO11 của bạn thành ONNX và nâng cao khả năng mở rộng và hiệu quả của chúng trong các ứng dụng thực tế.

ONNX và ONNX Runtime

ONNX , viết tắt của Open Neural Network Exchange, là một dự án cộng đồng mà Facebook và Microsoft ban đầu được phát triển. Sự phát triển đang diễn ra của ONNX là một nỗ lực hợp tác được hỗ trợ bởi nhiều tổ chức khác nhau như IBM, Amazon (thông qua AWS) và Google . Dự án nhằm mục đích tạo ra một định dạng tệp mở được thiết kế để biểu diễn các mô hình học máy theo cách cho phép chúng được sử dụng trên nhiều phần cứng và khuôn khổ AI khác nhau.

ONNX các mô hình có thể được sử dụng để chuyển đổi giữa các khuôn khổ khác nhau một cách liền mạch. Ví dụ, một mô hình học sâu được đào tạo trong PyTorch có thể được xuất khẩu sang ONNX định dạng và sau đó dễ dàng nhập vào TensorFlow .

ONNX

Ngoài ra, ONNX các mô hình có thể được sử dụng với ONNX Thời gian chạy. ONNX Runtime là một trình tăng tốc đa nền tảng linh hoạt cho các mô hình học máy tương thích với các khuôn khổ như PyTorch , TensorFlow , TFLite, scikit-learn, v.v.

ONNX Runtime tối ưu hóa việc thực hiện ONNX mô hình bằng cách tận dụng các khả năng dành riêng cho phần cứng. Việc tối ưu hóa này cho phép các mô hình chạy hiệu quả và hiệu suất cao trên các nền tảng phần cứng khác nhau, bao gồm CPU, GPU và bộ tăng tốc chuyên dụng.

ONNX với ONNX Runtime

Cho dù được sử dụng độc lập hay kết hợp với ONNX Thời gian chạy, ONNX cung cấp giải pháp linh hoạt cho việc triển khai và tương thích mô hình học máy.

Các tính năng chính của ONNX Mô hình

Khả năng của ONNX Để xử lý các định dạng khác nhau có thể được quy cho các tính năng chính sau:

  • Biểu diễn mô hình chung: ONNX Xác định một tập hợp các toán tử chung (như tích chập, lớp, v.v.) và định dạng dữ liệu chuẩn. Khi một mô hình được chuyển đổi thành ONNX định dạng, kiến trúc và trọng số của nó được dịch thành biểu diễn chung này. Tính đồng nhất này đảm bảo rằng mô hình có thể được hiểu bởi bất kỳ khung hỗ trợ nào ONNX.

  • Lập phiên bản và khả năng tương thích ngược: ONNX duy trì một hệ thống lập phiên bản cho các nhà khai thác của nó. Điều này đảm bảo rằng ngay cả khi tiêu chuẩn phát triển, các mô hình được tạo trong các phiên bản cũ hơn vẫn có thể sử dụng được. Khả năng tương thích ngược là một tính năng quan trọng giúp các mô hình không bị lỗi thời nhanh chóng.

  • Biểu diễn mô hình dựa trên đồ thị: ONNX đại diện cho các mô hình dưới dạng đồ thị tính toán. Cấu trúc dựa trên đồ thị này là một cách phổ biến để biểu diễn các mô hình học máy, trong đó các nút đại diện cho các hoạt động hoặc tính toán và các cạnh đại diện cho các tensor chảy giữa chúng. Định dạng này có thể dễ dàng thích ứng với các khung khác nhau cũng đại diện cho các mô hình dưới dạng biểu đồ.

  • Công cụ và hệ sinh thái: Có một hệ sinh thái công cụ phong phú xung quanh ONNX hỗ trợ chuyển đổi, trực quan hóa và tối ưu hóa mô hình. Những công cụ này giúp các nhà phát triển làm việc dễ dàng hơn ONNX mô hình và để chuyển đổi mô hình giữa các khung khác nhau một cách liền mạch.

Cách sử dụng phổ biến của ONNX

Trước khi chúng ta tìm hiểu cách xuất các mô hình YOLO11 sang ONNX định dạng, chúng ta hãy xem nơi ONNX mô hình thường được sử dụng.

CPU Triển khai

ONNX các mô hình thường được triển khai trên CPU do khả năng tương thích của chúng với ONNX Runtime. Thời gian chạy này được tối ưu hóa cho CPU Thực hiện. Nó cải thiện đáng kể tốc độ suy luận và làm cho thời gian thực CPU triển khai khả thi.

Các tùy chọn triển khai được hỗ trợ

Trong khi ONNX Các mô hình thường được sử dụng trên CPU, chúng cũng có thể được triển khai trên các nền tảng sau:

  • GPU Tăng tốc: ONNX Hỗ trợ đầy đủ GPU tăng tốc, đặc biệt NVIDIA CUDA. Điều này cho phép thực hiện hiệu quả trên NVIDIA GPU cho các tác vụ đòi hỏi sức mạnh tính toán cao.

  • Edge và thiết bị di động: ONNX Mở rộng sang các thiết bị biên và thiết bị di động, hoàn hảo cho các tình huống suy luận trên thiết bị và thời gian thực. Nó nhẹ và tương thích với phần cứng cạnh.

  • Trình duyệt web: ONNX có thể chạy trực tiếp trong các trình duyệt web, cung cấp năng lượng cho các ứng dụng AI dựa trên web tương tác và năng động.

Xuất các mô hình YOLO11 sang ONNX

Bạn có thể mở rộng khả năng tương thích của mô hình và tính linh hoạt triển khai bằng cách chuyển đổi các mô hình YOLO11 sang ONNX định dạng.

Cài đặt

Để cài đặt gói yêu cầu, hãy chạy:

Cài đặt

# Install the required package for YOLO11
pip install ultralytics

Để biết hướng dẫn chi tiết và các biện pháp thực hành tốt nhất liên quan đến quy trình cài đặt, hãy xem hướng dẫn Cài đặt YOLO11 của chúng tôi. Trong khi cài đặt các gói cần thiết cho YOLO11, nếu bạn gặp bất kỳ khó khăn nào, hãy tham khảo hướng dẫn Các vấn đề thường gặp của chúng tôi để biết giải pháp và mẹo.

Sử dụng

Trước khi tìm hiểu hướng dẫn sử dụng, hãy chắc chắn kiểm tra phạm vi các mẫu YOLO11 do Ultralytics cung cấp . Điều này sẽ giúp bạn chọn được mẫu phù hợp nhất cho yêu cầu dự án của mình.

Sử dụng

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to ONNX format
model.export(format="onnx")  # creates 'yolo11n.onnx'

# Load the exported ONNX model
onnx_model = YOLO("yolo11n.onnx")

# Run inference
results = onnx_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to ONNX format
yolo export model=yolo11n.pt format=onnx  # creates 'yolo11n.onnx'

# Run inference with the exported model
yolo predict model=yolo11n.onnx source='https://ultralytics.com/images/bus.jpg'

Để biết thêm chi tiết về quy trình xuất, hãy truy cập Ultralytics trang tài liệu về xuất khẩu.

Triển khai YOLO11 đã xuất ONNX Mô hình

Sau khi bạn đã xuất thành công Ultralytics Các mô hình YOLO11 ONNX định dạng, bước tiếp theo là triển khai các mô hình này trong nhiều môi trường khác nhau. Để biết hướng dẫn chi tiết về việc triển khai ONNX mô hình, hãy xem các tài nguyên sau:

  • ONNX Runtime Python Tài liệu API: Hướng dẫn này cung cấp thông tin cần thiết để tải và chạy ONNX Mô hình sử dụng ONNX Runtime.

  • Triển khai trên thiết bị biên: Hãy xem trang tài liệu này để biết các ví dụ khác nhau về triển khai ONNX mô hình trên cạnh.

  • ONNX Hướng dẫn trên GitHub: Một bộ sưu tập các hướng dẫn toàn diện bao gồm các khía cạnh khác nhau của việc sử dụng và triển khai ONNX mô hình trong các kịch bản khác nhau.

Tóm tắt

Trong hướng dẫn này, bạn đã học cách xuất Ultralytics Các mô hình YOLO11 ONNX định dạng để tăng khả năng tương tác và hiệu suất của chúng trên nhiều nền tảng khác nhau. Bạn cũng đã được giới thiệu về ONNX Thời gian chạy và ONNX tùy chọn triển khai.

Để biết thêm chi tiết về cách sử dụng, hãy truy cập ONNX Tài liệu chính thức.

Ngoài ra, nếu bạn muốn biết thêm về những điều khác Ultralytics Tích hợp YOLO11, hãy truy cập trang hướng dẫn tích hợp của chúng tôi. Bạn sẽ tìm thấy nhiều tài nguyên và thông tin hữu ích ở đó.

FAQ

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

Để xuất các mô hình YOLO11 của bạn sang ONNX định dạng sử dụng Ultralytics , hãy làm theo các bước sau:

Sử dụng

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to ONNX format
model.export(format="onnx")  # creates 'yolo11n.onnx'

# Load the exported ONNX model
onnx_model = YOLO("yolo11n.onnx")

# Run inference
results = onnx_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to ONNX format
yolo export model=yolo11n.pt format=onnx  # creates 'yolo11n.onnx'

# Run inference with the exported model
yolo predict model=yolo11n.onnx source='https://ultralytics.com/images/bus.jpg'

Để biết thêm chi tiết, hãy truy cập tài liệu xuất khẩu.

Những lợi ích của việc sử dụng là gì? ONNX Thời gian chạy để triển khai các mô hình YOLO11 là bao lâu?

Sử dụng ONNX Thời gian chạy để triển khai các mô hình YOLO11 mang lại một số lợi thế:

  • Khả năng tương thích đa nền tảng: ONNX Thời gian chạy hỗ trợ nhiều nền tảng khác nhau, chẳng hạn như Windows, macOS và Linux, đảm bảo các mô hình của bạn chạy trơn tru trên các môi trường khác nhau.
  • Tăng tốc phần cứng: ONNX Thời gian chạy có thể tận dụng tối ưu hóa phần cứng dành riêng cho CPU, GPU và bộ tăng tốc chuyên dụng, cung cấp suy luận hiệu suất cao.
  • Khả năng tương tác của khung : Các mô hình được đào tạo trong các khung phổ biến như PyTorch hoặc TensorFlow có thể dễ dàng chuyển đổi thành ONNX định dạng và chạy bằng ONNX Thời gian chạy.

Tìm hiểu thêm bằng cách kiểm tra ONNX Tài liệu về thời gian chạy.

Những tùy chọn triển khai nào có sẵn cho các mô hình YOLO11 được xuất sang ONNX ?

Các mô hình YOLO11 được xuất khẩu sang ONNX có thể triển khai trên nhiều nền tảng khác nhau bao gồm:

  • CPU: Sử dụng ONNX Thời gian chạy để tối ưu hóa CPU suy luận.
  • GPU: Tận dụng NVIDIA CUDA cho hiệu suất cao GPU gia tốc.
  • Thiết bị biên: Chạy các mô hình nhẹ trên thiết bị biên và thiết bị di động để suy luận trên thiết bị theo thời gian thực.
  • Trình duyệt web: Thực thi các mô hình trực tiếp trong trình duyệt web cho các ứng dụng dựa trên web tương tác.

Để biết thêm thông tin, hãy khám phá hướng dẫn của chúng tôi về các tùy chọn triển khai mô hình.

Tại sao tôi nên sử dụng ONNX định dạng cho Ultralytics Người mẫu YOLO11?

Sử dụng ONNX định dạng cho Ultralytics Các mô hình YOLO11 mang lại nhiều lợi ích:

  • Khả năng tương tác: ONNX Cho phép các mô hình được chuyển giao giữa các khung học máy khác nhau một cách liền mạch.
  • Tối ưu hóa hiệu suất: ONNX Thời gian chạy có thể nâng cao hiệu suất mô hình bằng cách sử dụng tối ưu hóa phần cứng cụ thể.
  • Tính linh hoạt: ONNX Hỗ trợ các môi trường triển khai khác nhau, cho phép bạn sử dụng cùng một mô hình trên các nền tảng khác nhau mà không cần sửa đổi.

Tham khảo hướng dẫn toàn diện về cách xuất mô hình YOLO11 sang ONNX .

Làm thế nào tôi có thể khắc phục sự cố khi xuất mô hình YOLO11 sang ONNX ?

Khi xuất các mô hình YOLO11 sang ONNX , bạn có thể gặp phải các vấn đề phổ biến như phụ thuộc không khớp hoặc hoạt động không được hỗ trợ. Để khắc phục sự cố này:

  1. Xác minh rằng bạn đã cài đặt đúng phiên bản của các phần phụ thuộc bắt buộc.
  2. Kiểm tra chính thức ONNX Tài liệu dành cho người vận hành và tính năng được hỗ trợ.
  3. Xem lại các thông báo lỗi để biết manh mối và tham khảo Ultralytics Hướng dẫn về các vấn đề thường gặp.

Nếu sự cố vẫn tiếp diễn, hãy liên hệ Ultralytics hỗ trợ để được hỗ trợ thêm.

📅 Được tạo cách đây 9 tháng ✏️ Đã cập nhật cách đây 1 tháng

Ý kiến