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

ONNX Xuất khẩu cho YOLOv8 Mô hình

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 khẩu Ultralytics YOLOv8 mô hình để 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 các 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 YOLOv8 mô hì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 trong thế giới thực.

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 không ngừng của ONNX là một nỗ lực hợp tác được hỗ trợ bởi các 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ế để đại diện cho các mô hình học máy theo cách cho phép chúng được sử dụng trên các khung và phần cứng AI khác nhau.

ONNX Các mô hình có thể được sử dụng để chuyển đổi giữa các khung 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 về PyTorch có thể được xuất sang ONNX định dạng và sau đó dễ dàng nhập vào TensorFlow.

ONNX

Ngoài ra ONNX Mô hình có thể được sử dụng với ONNX Runtime. 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 khung 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 song song với ONNX Runtime ONNX Cung cấp một giải pháp linh hoạt để 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 tôi nhảy vào cách xuất YOLOv8 mô hình cho ONNX định dạng, chúng ta hãy xem ở đâu 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 khẩu YOLOv8 Mô hình để ONNX

Bạn có thể mở rộng tính tương thích của mô hình và tính linh hoạt trong triển khai bằng cách chuyển đổi YOLOv8 mô hình để 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 YOLOv8
pip install ultralytics

Để biết hướng dẫn chi tiết và các phương pháp hay nhất liên quan đến quá trình cài đặt, hãy kiểm tra YOLOv8 Hướng dẫn cài đặt. Trong khi cài đặt các gói cần thiết cho YOLOv8, 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 các giải pháp và mẹo.

Sử dụng

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

Sử dụng

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO("yolov8n.pt")

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

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

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

# Run inference with the exported model
yolo predict model=yolov8n.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 xuất khẩu YOLOv8 ONNX Mô hình

Khi bạn đã xuất thành công Ultralytics YOLOv8 mô hình để ONNX Bước tiếp theo là triển khai các mô hình này trong các môi trường khác nhau. Để được hướng dẫn chi tiết về cách 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 YOLOv8 mô hình để ONNX định dạng để tăng khả năng tương tác và hiệu suất của chúng trên các 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ề khác Ultralytics YOLOv8 Tích hợp, 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 chi tiết hữu ích ở đó.

FAQ

Làm cách nào để xuất YOLOv8 mô hình để ONNX Định dạng bằng cách sử dụng Ultralytics?

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

Sử dụng

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO("yolov8n.pt")

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

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

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

# Run inference with the exported model
yolo predict model=yolov8n.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.

Ưu điểm của việc sử dụng là gì ONNX Thời gian chạy để triển khai YOLOv8 Mô hình?

Sử dụng ONNX Thời gian chạy để triển khai YOLOv8 Mô hình cung cấp 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 khung: Các mô hình được đào tạo trong các framework 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 cách sử dụng ONNX Runtime.

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 YOLOv8 Mô hình xuất khẩu sang ONNX?

YOLOv8 Mô hình xuất khẩu sang ONNX có thể được 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 YOLOv8 Mô hình?

Sử dụng ONNX Định dạng cho Ultralytics YOLOv8 Mô hình cung cấp 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ề Xuất khẩu YOLOv8 mô hình để ONNX.

Làm cách nào để khắc phục sự cố khi xuất YOLOv8 mô hình để ONNX?

Khi xuất khẩu YOLOv8 mô hình để ONNX, bạn có thể gặp phải các sự cố phổ biến như phần phụ thuộc không khớp hoặc thao tác không được hỗ trợ. Để khắc phục những 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.



Đã tạo 2024-01-25, Cập nhật 2024-07-05
Tác giả: Glenn-Jocher (6), Abirami-Vina (1)

Ý kiến