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 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.

Triển khai CPU

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 để thực thi CPU. Nó cải thiện đáng kể tốc độ suy luận và làm cho việc triển khai CPU theo thời gian thực trở nên 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:

  • Tăng tốc GPU: ONNX hỗ trợ đầy đủ khả năng tăng tốc GPU, đặc biệt là NVIDIA CUDA. Điều này cho phép thực thi hiệu quả trên GPU NVIDIA 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 ở đó.



Đã tạo 2024-01-25, Cập nhật 2024-01-25
Tác giả: glenn-jocher (1), abirami-vina (1)

Ý kiến