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

Cách xuất sang NCNN từ YOLOv8 để triển khai suôn sẻ

Triển khai các mô hình thị giác máy tính trên các thiết bị có sức mạnh tính toán hạn chế, chẳng hạn như hệ thống di động hoặc nhúng, có thể khó khăn. Bạn cần đảm bảo rằng bạn sử dụng định dạng được tối ưu hóa để có hiệu suất tối ưu. Điều này đảm bảo rằng ngay cả các thiết bị có sức mạnh xử lý hạn chế cũng có thể xử lý tốt các tác vụ thị giác máy tính tiên tiến.

Việc xuất khẩu sang NCNN Tính năng định dạng cho phép bạn tối ưu hóa Ultralytics YOLOv8 mô hình cho các ứng dụng dựa trên thiết bị nhẹ. Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn cách chuyển đổi mô hình của bạn sang NCNN định dạng, giúp các mô hình của bạn dễ dàng hoạt động tốt hơn trên các thiết bị di động và thiết bị nhúng khác nhau.

Tại sao bạn nên xuất sang NCNN?

NCNN tổng quan

Các NCNN Được phát triển bởi Tencent, là một khung điện toán suy luận mạng nơ-ron hiệu suất cao được tối ưu hóa đặc biệt cho các nền tảng di động, bao gồm điện thoại di động, thiết bị nhúng và thiết bị IoT. NCNN tương thích với nhiều nền tảng, bao gồm Linux, Android, iOS và macOS.

NCNN được biết đến với tốc độ xử lý nhanh trên CPU di động và cho phép triển khai nhanh chóng các mô hình học sâu lên nền tảng di động. Điều này giúp việc xây dựng các ứng dụng thông minh trở nên dễ dàng hơn, đưa sức mạnh của AI ngay trong tầm tay bạn.

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

NCNN Các mô hình cung cấp một loạt các tính năng chính cho phép máy học trên thiết bị bằng cách giúp các nhà phát triển chạy mô hình của họ trên các thiết bị di động, nhúng và biên:

  • Hiệu quả và hiệu suất cao: NCNN Các mô hình được tạo ra để hiệu quả và nhẹ, được tối ưu hóa để chạy trên thiết bị di động và nhúng như Raspberry Pi với tài nguyên hạn chế. Chúng cũng có thể đạt được hiệu suất cao với độ chính xác cao trên các tác vụ dựa trên thị giác máy tính khác nhau.

  • Định lượng hóa: NCNN Các mô hình thường hỗ trợ lượng tử hóa, đây là một kỹ thuật làm giảm độ chính xác của trọng lượng và kích hoạt của mô hình. Điều này dẫn đến những cải tiến hơn nữa về hiệu suất và giảm dung lượng bộ nhớ.

  • Khả năng tương thích: NCNN Các mô hình tương thích với các framework deep learning phổ biến như TensorFlow, CaffeONNX. Khả năng tương thích này cho phép các nhà phát triển sử dụng các mô hình và quy trình làm việc hiện có một cách dễ dàng.

  • Dễ sử dụng: NCNN Các mô hình được thiết kế để dễ dàng tích hợp vào các ứng dụng khác nhau, nhờ khả năng tương thích với các khung học tập sâu phổ biến. Ngoài ra NCNN Cung cấp các công cụ thân thiện với người dùng để chuyển đổi mô hình giữa các định dạng khác nhau, đảm bảo khả năng tương tác trơn tru trên toàn cảnh phát triển.

Tùy chọn triển khai với NCNN

Before we look at the code for exporting YOLOv8 models to the NCNN format, let's understand how NCNN models are normally used.

NCNN Các mô hình, được thiết kế cho hiệu quả và hiệu suất, tương thích với nhiều nền tảng triển khai khác nhau:

  • Triển khai di động: Được tối ưu hóa đặc biệt cho Android và iOS, cho phép tích hợp liền mạch vào các ứng dụng di động để suy luận hiệu quả trên thiết bị.

  • Hệ thống nhúng và thiết bị IoT: Nếu bạn thấy rằng chạy suy luận trên Raspberry Pi với Ultralytics Hướng dẫn không đủ nhanh, chuyển sang một NCNN Mô hình xuất khẩu có thể giúp tăng tốc mọi thứ. NCNN rất phù hợp cho các thiết bị như Raspberry Pi và NVIDIA Jetson, đặc biệt là trong những tình huống bạn cần xử lý nhanh ngay trên thiết bị.

  • Triển khai máy tính để bàn và máy chủ: Có khả năng được triển khai trong môi trường máy tính để bàn và máy chủ trên Linux, Windows và macOS, hỗ trợ phát triển, đào tạo và đánh giá với khả năng tính toán cao hơn.

Xuất sang NCNN: Chuyển đổi của bạn YOLOv8 Mẫu

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 để NCNN định dạng.

Cài đặt

Để cài đặt các gói cần thiết, 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 Ultralytics 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, điều quan trọng cần lưu ý là trong khi tất cả Ultralytics YOLOv8 Các mô hình có sẵn để xuất, bạn có thể đảm bảo rằng mô hình bạn chọn hỗ trợ chức năng xuất tại đây.

Sử dụng

from ultralytics import YOLO

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

# Export the model to NCNN format
model.export(format="ncnn")  # creates '/yolov8n_ncnn_model'

# Load the exported NCNN model
ncnn_model = YOLO("./yolov8n_ncnn_model")

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

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

Để biết thêm chi tiết về các tùy chọn xuất được hỗ trợ, hãy truy cập Ultralytics trang tài liệu về các tùy chọn triển khai.

Triển khai xuất khẩu YOLOv8 NCNN Mô hình

Sau khi xuất thành công Ultralytics YOLOv8 mô hình để NCNN định dạng, bây giờ bạn có thể triển khai chúng. Bước đầu tiên chính và được đề xuất để chạy một NCNN Mô hình là sử dụng YOLOPhương thức ("./model_ncnn_model"), như đã nêu trong đoạn mã sử dụng trước. Tuy nhiên, để được hướng dẫn chuyên sâu về cách triển khai NCNN Các mô hình trong nhiều cài đặt khác, hãy xem các tài nguyên sau:

  • Android: Blog này giải thích cách sử dụng NCNN mô hình để thực hiện các tác vụ như phát hiện đối tượng thông qua các ứng dụng Android.

  • macOS: Hiểu cách sử dụng NCNN mô hình để thực hiện các tác vụ thông qua macOS.

  • Linux: Khám phá trang này để tìm hiểu cách triển khai NCNN mô hình trên các thiết bị tài nguyên hạn chế như Raspberry Pi và các thiết bị tương tự khác.

  • Windows x64 sử dụng VS2017: Khám phá blog này để tìm hiểu cách triển khai NCNN Mô hình trên Windows x64 sử dụng Visual Studio Community 2017.

Tóm tắt

Trong hướng dẫn này, chúng tôi đã đi qua xuất khẩu Ultralytics YOLOv8 mô hình cho NCNN định dạng. Bước chuyển đổi này rất quan trọng để cải thiện hiệu quả và tốc độ của YOLOv8 mô hình, làm cho chúng hiệu quả hơn và phù hợp với môi trường điện toán tài nguyên hạn chế.

Để được hướng dẫn chi tiết về cách sử dụng, vui lòng tham khảo chính thức NCNN tài liệu.

Ngoài ra, nếu bạn quan tâm đến việc khám phá các tùy chọn tích hợp khác cho Ultralytics YOLOv8, hãy nhớ truy cập trang hướng dẫn tích hợp của chúng tôi để biết thêm thông tin chi tiết.



Created 2024-03-01, Updated 2024-06-10
Authors: glenn-jocher (5), abirami-vina (1)

Ý kiến