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

Optimizing YOLOv8 Inferences with Neural Magic's DeepSparse Engine

When deploying object detection models like Ultralytics YOLOv8 on various hardware, you can bump into unique issues like optimization. This is where YOLOv8's integration with Neural Magic's DeepSparse Engine steps in. It transforms the way YOLOv8 models are executed and enables GPU-level performance directly on CPUs.

Hướng dẫn này chỉ cho bạn cách triển khai YOLOv8 Sử dụng Neural MagicDeepSparse, cách chạy suy luận và cũng là cách đánh giá hiệu suất để đảm bảo nó được tối ưu hóa.

Neural Magic'DeepSparse

Neural Magic's DeepSparse Overview

Neural Magic's DeepSparse is an inference run-time designed to optimize the execution of neural networks on CPUs. It applies advanced techniques like sparsity, pruning, and quantization to dramatically reduce computational demands while maintaining accuracy. DeepSparse offers an agile solution for efficient and scalable neural network execution across various devices.

Benefits of Integrating Neural Magic's DeepSparse with YOLOv8

Before diving into how to deploy YOLOV8 using DeepSparse, let's understand the benefits of using DeepSparse. Some key advantages include:

  • Tốc độ suy luận nâng cao: Đạt được lên đến 525 FPS (bật YOLOv8n), tăng tốc đáng kể YOLOv8khả năng suy luận của họ so với các phương pháp truyền thống.

Tốc độ suy luận nâng cao

  • Tối ưu hóa hiệu quả mô hình: Sử dụng cắt tỉa và lượng tử hóa để tăng cường YOLOv8hiệu quả, giảm kích thước mô hình và yêu cầu tính toán trong khi vẫn duy trì độ chính xác.

Tối ưu hóa hiệu quả mô hình

  • Hiệu suất cao trên CPU tiêu chuẩn: Cung cấp hiệu suất giống như GPU trên CPU, cung cấp tùy chọn dễ tiếp cận và tiết kiệm chi phí hơn cho các ứng dụng khác nhau.

  • Tích hợp và triển khai hợp lý: Cung cấp các công cụ thân thiện với người dùng để dễ dàng tích hợp YOLOv8 vào các ứng dụng, bao gồm các tính năng chú thích hình ảnh và video.

  • Hỗ trợ cho các loại mô hình khác nhau: Tương thích với cả tiêu chuẩn và tối ưu hóa thưa thớt YOLOv8 mô hình, tăng tính linh hoạt trong triển khai.

  • Giải pháp hiệu quả về chi phí và có thể mở rộng: Giảm chi phí hoạt động và cung cấp khả năng triển khai có thể mở rộng các mô hình phát hiện đối tượng tiên tiến.

Làm thế nào Neural MagicCông nghệ DeepSparse của DeepSparse hoạt động?

Neural Magic's Deep Sparse technology is inspired by the human brain's efficiency in neural network computation. It adopts two key principles from the brain as follows:

  • Sparsity: Quá trình thưa thớt liên quan đến việc cắt tỉa thông tin dư thừa từ các mạng học sâu, dẫn đến các mô hình nhỏ hơn và nhanh hơn mà không ảnh hưởng đến độ chính xác. Kỹ thuật này làm giảm đáng kể kích thước và nhu cầu tính toán của mạng.

  • Địa phương tham chiếu: DeepSparse sử dụng một phương thức thực thi duy nhất, chia mạng thành Tensor Cột. Các cột này được thực thi theo chiều sâu, hoàn toàn phù hợp với bộ nhớ cache của CPU. Cách tiếp cận này bắt chước hiệu quả của não, giảm thiểu chuyển động dữ liệu và tối đa hóa việc sử dụng bộ nhớ cache của CPU.

Thế nào Neural MagicCông nghệ DeepSparse của DeepSparse hoạt động

Để biết thêm chi tiết về cách thực hiện Neural MagicCông nghệ DeepSparse của DeepSparse hoạt động, hãy xem bài đăng trên blog của họ.

Tạo một phiên bản thưa thớt của YOLOv8 Được đào tạo về tập dữ liệu tùy chỉnh

SparseZoo, một kho lưu trữ mô hình mã nguồn mở của Neural MagicCung cấp Một bộ sưu tập pre-sparsified YOLOv8 mô hình trạm kiểm soát. Với SparseML, tích hợp liền mạch với Ultralytics, người dùng có thể dễ dàng tinh chỉnh các điểm kiểm tra thưa thớt này trên các bộ dữ liệu cụ thể của họ bằng giao diện dòng lệnh đơn giản.

Checkout Neural MagicSparseML của YOLOv8 tài liệu để biết thêm chi tiết.

Cách sử dụng: Triển khai YOLOV8 sử dụng DeepSparse

Triển khai YOLOv8 với Neural MagicDeepSparse của DeepSparse bao gồm một vài bước đơn giản. 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. Đây là cách bạn có thể bắt đầu.

Bước 1: Cài đặt

Để cài đặt các gói cần thiết, hãy chạy:

Cài đặt

# Install the required packages
pip install deepsparse[yolov8]

Bước 2: Xuất khẩu YOLOv8 đến ONNX Định dạng

DeepSparse Engine yêu cầu YOLOv8 Mô hình trong ONNX định dạng. Xuất mô hình của bạn sang định dạng này là điều cần thiết để tương thích với DeepSparse. Sử dụng lệnh sau để xuất YOLOv8 Mô hình:

Xuất mô hình

# Export YOLOv8 model to ONNX format
yolo task=detect mode=export model=yolov8n.pt format=onnx opset=13

Lệnh này sẽ lưu yolov8n.onnx mô hình vào ổ đĩa của bạn.

Bước 3: Triển khai và chạy suy luận

Với YOLOv8 Mô hình trong ONNX , bạn có thể triển khai và chạy suy luận bằng DeepSparse. Điều này có thể được thực hiện dễ dàng với trực quan của họ Python API:

Triển khai và chạy suy luận

from deepsparse import Pipeline

# Specify the path to your YOLOv8 ONNX model
model_path = "path/to/yolov8n.onnx"

# Set up the DeepSparse Pipeline
yolo_pipeline = Pipeline.create(task="yolov8", model_path=model_path)

# Run the model on your images
images = ["path/to/image.jpg"]
pipeline_outputs = yolo_pipeline(images=images)

Bước 4: Hiệu suất đo điểm chuẩn

Điều quan trọng là phải kiểm tra xem YOLOv8 mô hình đang hoạt động tối ưu trên DeepSparse. Bạn có thể đánh giá hiệu suất của mô hình để phân tích thông lượng và độ trễ:

Điểm chuẩn

# Benchmark performance
deepsparse.benchmark model_path="path/to/yolov8n.onnx" --scenario=sync --input_shapes="[1,3,640,640]"

Bước 5: Các tính năng bổ sung

DeepSparse cung cấp các tính năng bổ sung để tích hợp thực tế YOLOv8 trong các ứng dụng, chẳng hạn như chú thích hình ảnh và đánh giá tập dữ liệu.

Các tính năng bổ sung

# For image annotation
deepsparse.yolov8.annotate --source "path/to/image.jpg" --model_filepath "path/to/yolov8n.onnx"

# For evaluating model performance on a dataset
deepsparse.yolov8.eval --model_path "path/to/yolov8n.onnx"

Chạy lệnh annotate xử lý hình ảnh được chỉ định của bạn, phát hiện các đối tượng và lưu hình ảnh được chú thích với các hộp giới hạn và phân loại. Hình ảnh được chú thích sẽ được lưu trữ trong thư mục chú thích-kết quả. Điều này giúp cung cấp một đại diện trực quan về khả năng phát hiện của mô hình.

Tính năng chú thích hình ảnh

Sau khi chạy lệnh eval, bạn sẽ nhận được các số liệu đầu ra chi tiết như độ chính xác, thu hồi và mAP (độ chính xác trung bình trung bình). Điều này cung cấp cái nhìn toàn diện về hiệu suất mô hình của bạn trên tập dữ liệu. Chức năng này đặc biệt hữu ích để tinh chỉnh và tối ưu hóa YOLOv8 mô hình cho các trường hợp sử dụng cụ thể, đảm bảo độ chính xác và hiệu quả cao.

Tóm tắt

This guide explored integrating Ultralytics' YOLOv8 with Neural Magic's DeepSparse Engine. It highlighted how this integration enhances YOLOv8's performance on CPU platforms, offering GPU-level efficiency and advanced neural network sparsity techniques.

For more detailed information and advanced usage, visit Neural Magic's DeepSparse documentation. Also, check out Neural Magic's documentation on the integration with YOLOv8 here and watch a great session on it here.

Ngoài ra, để hiểu rộng hơn về các loại khác nhau YOLOv8 Tích hợp, hãy truy cập Ultralytics Trang hướng dẫn tích hợp, nơi bạn có thể khám phá một loạt các khả năng tích hợp thú vị khác.



Created 2023-12-30, Updated 2024-06-02
Authors: glenn-jocher (6), abirami-vina (1)

Ý kiến