Ultralytics YOLO27:
Tích hợp

Triển khai Ultralytics YOLOv5 với DeepSparse của Neural Magic để đạt hiệu năng tương đương GPU trên CPU

Tăng cường huấn luyện & triển khai model Ultralytics YOLOv5 với DeepSparse của Neural Magic để đạt hiệu năng tương đương GPU trên CPU. Đạt tốc độ triển khai YOLOv5 nhanh hơn và có khả năng mở rộng.

NUNuvola Ladi7 min read
Triển khai Ultralytics YOLOv5 với DeepSparse của Neural Magic trên CPU

Bạn muốn tăng tốc quá trình huấn luyện và triển khai các model YOLOv5 của mình? Chúng tôi có giải pháp cho bạn! Xin giới thiệu đối tác mới nhất của chúng tôi, Neural Magic. Vì Neural Magic cung cấp các công cụ phần mềm chú trọng đến hiệu năng tối đa của model và sự đơn giản trong quy trình làm việc, việc hai bên hợp tác để cung cấp giải pháp cải thiện hơn nữa quy trình triển khai YOLOv5 là điều hoàn toàn tự nhiên.

DeepSparse là runtime suy luận trên CPU của Neural Magic, tận dụng tính thưa và phép tính độ chính xác thấp trong các mạng neural để mang lại hiệu năng vượt trội trên phần cứng phổ thông. Chẳng hạn, so với đường cơ sở ONNX Runtime, DeepSparse nhanh hơn 5.8x khi chạy YOLOv5s trên cùng một máy!

So sánh thông lượng Ultralytics YOLOv5 với DeepSparse

Lần đầu tiên, workload deep learning của bạn có thể đáp ứng yêu cầu hiệu năng production mà không phải chịu sự phức tạp và chi phí của các bộ tăng tốc phần cứng. Nói một cách đơn giản, DeepSparse mang đến hiệu năng của GPU cùng sự đơn giản của phần mềm:

  1. Triển khai linh hoạt: Chạy nhất quán trên cloud, trung tâm dữ liệu và edge với bất kỳ nhà cung cấp phần cứng nào
  2. Khả năng mở rộng vô hạn: Scale out bằng Kubernetes tiêu chuẩn, scale dọc lên hàng trăm core hoặc trừu tượng hóa hoàn toàn với serverless
  3. Tích hợp dễ dàng: Sử dụng các API gọn gàng để tích hợp model vào ứng dụng và giám sát model trong production

Đạt hiệu năng cấp GPU trên CPU phổ thông#

DeepSparse tận dụng tính thưa của model để tăng tốc hiệu năng.

Việc làm thưa thông qua pruning và quantization cho phép giảm kích thước cũng như lượng tính toán cần thiết để thực thi một network theo cấp độ hàng chục lần, đồng thời vẫn duy trì độ chính xác cao. DeepSparse nhận biết tính thưa, bỏ qua các phép nhân-cộng với giá trị 0 và giảm lượng tính toán trong một lượt forward. Vì tính toán thưa bị giới hạn bởi bộ nhớ, DeepSparse thực thi network theo chiều sâu, chia bài toán thành các Tensor Column — những dải tính toán dọc vừa với cache.

Network DeepSparse và Ultralytics YOLOv5

Các network thưa với phép tính được nén, thực thi theo chiều sâu trong cache, cho phép DeepSparse mang lại hiệu năng cấp GPU trên CPU!

Tạo phiên bản thưa của Ultralytics YOLOv5 được huấn luyện trên dữ liệu tùy chỉnh#

Kho model mã nguồn mở SparseZoo của Neural Magic chứa các checkpoint đã được làm thưa trước cho từng model YOLOv5. Với SparseML, được tích hợp với Ultralytics, bạn có thể fine-tune một checkpoint thưa trên dữ liệu của mình bằng một lệnh CLI duy nhất.

Triển khai Ultralytics YOLOv5 với DeepSparse#

Cài đặt DeepSparse#

Chạy lệnh sau để cài đặt DeepSparse. Chúng tôi khuyến nghị bạn sử dụng virtual environment với Python.

pip install deepsparse[server,yolo,onnxruntime]

Thu thập file ONNX#

DeepSparse chấp nhận một model ở định dạng ONNX, được truyền vào theo một trong các cách sau:

  • Đường dẫn cục bộ đến một model ONNX
  • Stub SparseZoo xác định một model trong SparseZoo

Chúng ta sẽ so sánh YOLOv5s dense tiêu chuẩn với YOLOv5s đã pruning-quantization, được xác định bằng các stub SparseZoo sau:

zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none
zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none

Triển khai một model#

DeepSparse cung cấp các API thuận tiện để tích hợp model vào ứng dụng.

Để thử các ví dụ triển khai bên dưới, hãy tải xuống một ảnh mẫu cho ví dụ và lưu ảnh đó với tên basilica.jpg bằng lệnh sau:

wget -O basilica.jpg https://raw.githubusercontent.com/neuralmagic/deepsparse/main/src/deepsparse/yolo/sample_images/basilica.jpg

Python API#

Pipeline bao bọc bước tiền xử lý và hậu xử lý đầu ra quanh runtime, cung cấp interface gọn gàng để thêm DeepSparse vào ứng dụng. Tích hợp DeepSparse-Ultralytics bao gồm một Pipeline dùng ngay, chấp nhận ảnh thô và xuất ra các bounding box.

Tạo một Pipeline và chạy suy luận:

from deepsparse import Pipeline

# list of images in local filesystem
images = ["basilica.jpg"]

# create Pipeline
model_stub = "zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none"
yolo_pipeline = Pipeline.create(
    task="yolo",
    model_path=model_stub,
)

# run inference on images, receive bounding boxes + classes
pipeline_outputs = yolo_pipeline(images=images, iou_thres=0.6, conf_thres=0.001)
print(pipeline_outputs)

Nếu bạn đang chạy trên cloud, có thể bạn sẽ gặp lỗi open-cv không tìm thấy libGL.so.1. Chạy lệnh sau trên Ubuntu để cài đặt thư viện này:

apt-get install libgl1-mesa-glx

HTTP Server#

DeepSparse Server chạy trên framework web FastAPI phổ biến và web server Uvicorn. Chỉ với một lệnh CLI duy nhất, bạn có thể dễ dàng thiết lập endpoint dịch vụ model với DeepSparse. Server hỗ trợ mọi Pipeline từ DeepSparse, bao gồm nhận diện đối tượng với Ultralytics YOLOv5, cho phép bạn gửi ảnh thô đến endpoint và nhận lại các bounding box.

Khởi chạy Server với YOLOv5s đã pruning-quantization:

deepsparse.server \
  --task yolo \
  --model_path zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none

Ví dụ về request sử dụng package requests của Python:

import requests, json

# list of images for inference (local files on client side)
path = ['basilica.jpg']
files = [('request', open(img, 'rb')) for img in path]

# send request over HTTP to /predict/from_files endpoint
url = 'http://0.0.0.0:5543/predict/from_files'
resp = requests.post(url=url, files=files)

# response is returned in JSON
annotations = json.loads(resp.text)  # dictionary of annotation results
bounding_boxes = annotations["boxes"]
labels = annotations["labels"]

Annotate CLI#

Bạn cũng có thể sử dụng lệnh annotate để engine lưu ảnh đã chú thích vào ổ đĩa. Hãy thử --source 0 để chú thích luồng webcam trực tiếp của bạn!

deepsparse.object_detection.annotate --model_filepath zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none --source basilica.jpg

Chạy lệnh trên sẽ tạo thư mục annotation-results và lưu ảnh đã chú thích vào bên trong.

Basilica đã chú thích với Ultralytics YOLOv5

Đánh giá hiệu năng#

Sử dụng script benchmark của DeepSparse, chúng ta sẽ so sánh thông lượng của DeepSparse với thông lượng của ONNX Runtime trên YOLOv5s.

Các benchmark được chạy trên một instance AWS c6i.8xlarge (16 core).

So sánh hiệu năng với batch 32#

Đường cơ sở ONNX Runtime#

Ở batch 32, ONNX Runtime đạt 42 ảnh/giây với YOLOv5s dense tiêu chuẩn:

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none -s sync -b 32 -nstreams 1 -e onnxruntime

Original Model Path: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none Batch Size: 32 Scenario: sync Throughput (items/sec): 41.9025

Hiệu năng dense của DeepSparse#

Mặc dù DeepSparse đạt hiệu năng tốt nhất với các model thưa đã được tối ưu hóa, nó cũng hoạt động tốt với YOLOv5s dense tiêu chuẩn.

Ở batch 32, DeepSparse đạt 70 ảnh/giây với YOLOv5s dense tiêu chuẩn — cải thiện hiệu năng 1.7x so với ORT!

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none -s sync -b 32 -nstreams 1

Original Model Path: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none Batch Size: 32 Scenario: sync Throughput (items/sec): 69.5546

Hiệu năng sparse của DeepSparse#

Khi áp dụng tính thưa cho model, mức cải thiện hiệu năng của DeepSparse so với ONNX Runtime còn lớn hơn.

Ở batch 32, DeepSparse đạt 241 ảnh/giây với YOLOv5s đã pruning-quantization — cải thiện hiệu năng 5.8x so với ORT!

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none -s sync -b 32 -nstreams 1

Original Model Path: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none Batch Size: 32 Scenario: sync Throughput (items/sec): 241.2452

So sánh hiệu năng với batch 1#

DeepSparse cũng có thể tăng tốc so với ONNX Runtime trong trường hợp batch 1 nhạy với độ trễ.

Đường cơ sở ONNX Runtime#

Ở batch 1, ONNX Runtime đạt 48 ảnh/giây với YOLOv5s dense tiêu chuẩn.

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none -s sync -b 1 -nstreams 1 -e onnxruntime

Original Model Path: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none Batch Size: 1 Scenario: sync Throughput (items/sec): 48.0921

Hiệu năng sparse của DeepSparse#

Khi áp dụng tính thưa cho model, mức cải thiện hiệu năng của DeepSparse so với ONNX Runtime còn lớn hơn.

Ở batch 1, DeepSparse đạt 135 ảnh/giây với YOLOv5s đã pruning-quantization — cải thiện hiệu năng 2.8x so với ONNX Runtime!

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none -s sync -b 1 -nstreams 1

Original Model Path: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65_quant-none Batch Size: 1 Scenario: sync Throughput (items/sec): 134.9468

Vì các instance c6i.8xlarge có các instruction VNNI, thông lượng của DeepSparse có thể được đẩy cao hơn nữa nếu các weight được pruning theo block 4 phần tử.

Ở batch 1, DeepSparse đạt 180 items/giây với YOLOv5s đã pruning-quantization theo block 4 — tăng hiệu năng 3.7x so với ONNX Runtime!

deepsparse.benchmark zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned35_quant-none-vnni -s sync -b 1 -nstreams 1

Original Model Path: zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned35_quant-none-vnni Batch Size: 1 Scenario: sync Throughput (items/sec): 179.7375

Vậy là xong! Bạn đã sẵn sàng để tối ưu hóa quy trình triển khai YOLOv5 với DeepSparse.

Bắt đầu với Ultralytics YOLOv5 và DeepSparse#

Để liên hệ với chúng tôi, tham gia cộng đồng của chúng tôi và gửi câu hỏi cũng như nhận xét. Hãy xem repository Ultralytics YOLOv5tài liệu đầy đủ của Neural Magic về triển khai YOLOv5.

Tại Ultralytics, chúng tôi hợp tác thương mại với các startup khác để giúp tài trợ cho hoạt động nghiên cứu và phát triển các công cụ mã nguồn mở tuyệt vời như YOLOv5, nhằm duy trì việc cung cấp miễn phí cho mọi người. Bài viết này có thể chứa các liên kết affiliate đến những đối tác đó.

Explore solutions

Thị giác máy tính cho hình ảnh trên không

Thị giác máy tính cho hình ảnh trên không

Biến đổi hình ảnh từ máyδ bay không người lái và ảnh chụp trên không thành thông tin chi tiết thời gian thực cho nông nghiệp, nuôi trồng thủy sản, giám sát môi trường, bảo tồn và phân tích không gian địa lý với Ultralytics YOLO.
Tìm hiểu thêm
Thị giác máy tính trong hàng không vũ trụ

Thị giác máy tính trong hàng không vũ trụ

Mang thị giác AI đến với hoạt động giám sát trên không bằng các model Ultralytics YOLO. Cung cấp sức mạnh cho máy bay không người lái, quy trình hàng không vũ trụ, bảo tồn môi trường & ngành công nghiệp địa không gian với các giải pháp thị giác máy tính.
Tìm hiểu thêm

Bảo vệ mọi địa điểm bằng các model Ultralytics YOLO. Thị giác AI cung cấp sức mạnh cho việc giám sát chu vi, phát hiện mối đe dọa, nhận diện biển số xe và an toàn nơi làm việc.
Tìm hiểu thêm
Thị giác máy tính trong robotics

Thị giác máy tính trong robotics

Nâng cao năng lực cho máy móc thông minh hơn với các model Ultralytics YOLO. Vision AI trong robotics hỗ trợ điều hướng tự động, nhận thức, theo dõi đối tượng và điều khiển theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong logistics

Thị giác máy tính trong logistics

Tinh gọn logistics với các model Ultralytics YOLO. Vision AI hỗ trợ kiểm tra kiện hàng, phân loại, theo dõi phương tiện và giám sát an toàn kho theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong bán lẻ

Thị giác máy tính trong bán lẻ

Định hình lại ngành bán lẻ với các model Ultralytics YOLO. Vision AI hỗ trợ tracking hàng tồn kho, giám sát kệ hàng, quản lý hàng đợi và cung cấp insight khách hàng thông minh hơn.
Tìm hiểu thêm
Computer vision trong healthcare

Computer vision trong healthcare

Xây dựng các giải pháp healthcare với các model Ultralytics YOLO. Vision AI trong healthcare thúc đẩy chẩn đoán hình ảnh nhanh hơn, chẩn đoán thông minh hơn và giám sát bệnh nhân.
Tìm hiểu thêm
Computer vision trong sản xuất

Computer vision trong sản xuất

Tối ưu hóa sản xuất với các model Ultralytics YOLO. Vision AI thúc đẩy kiểm soát chất lượng, phát hiện lỗi, tuân thủ PPE và tự động hóa dây chuyền lắp ráp.
Tìm hiểu thêm
Computer vision trong ngành ô tô

Computer vision trong ngành ô tô

Ứng dụng computer vision trong ngành ô tô với các model Ultralytics YOLO. Vision AI nâng cao an toàn đường bộ, hỗ trợ người lái và tự động hóa phương tiện để tạo nên những tuyến đường thông minh hơn.
Tìm hiểu thêm
Computer vision trong nông nghiệp

Computer vision trong nông nghiệp

Đưa vision AI vào nông nghiệp thông minh với các model Ultralytics YOLO. Thúc đẩy giám sát cây trồng, theo dõi vật nuôi và canh tác chính xác để đạt năng suất cao hơn, thông minh hơn.
Tìm hiểu thêm
Thị giác máy tính cho hình ảnh trên không

Thị giác máy tính cho hình ảnh trên không

Biến đổi hình ảnh từ máyδ bay không người lái và ảnh chụp trên không thành thông tin chi tiết thời gian thực cho nông nghiệp, nuôi trồng thủy sản, giám sát môi trường, bảo tồn và phân tích không gian địa lý với Ultralytics YOLO.
Tìm hiểu thêm
Thị giác máy tính trong hàng không vũ trụ

Thị giác máy tính trong hàng không vũ trụ

Mang thị giác AI đến với hoạt động giám sát trên không bằng các model Ultralytics YOLO. Cung cấp sức mạnh cho máy bay không người lái, quy trình hàng không vũ trụ, bảo tồn môi trường & ngành công nghiệp địa không gian với các giải pháp thị giác máy tính.
Tìm hiểu thêm

Bảo vệ mọi địa điểm bằng các model Ultralytics YOLO. Thị giác AI cung cấp sức mạnh cho việc giám sát chu vi, phát hiện mối đe dọa, nhận diện biển số xe và an toàn nơi làm việc.
Tìm hiểu thêm
Thị giác máy tính trong robotics

Thị giác máy tính trong robotics

Nâng cao năng lực cho máy móc thông minh hơn với các model Ultralytics YOLO. Vision AI trong robotics hỗ trợ điều hướng tự động, nhận thức, theo dõi đối tượng và điều khiển theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong logistics

Thị giác máy tính trong logistics

Tinh gọn logistics với các model Ultralytics YOLO. Vision AI hỗ trợ kiểm tra kiện hàng, phân loại, theo dõi phương tiện và giám sát an toàn kho theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong bán lẻ

Thị giác máy tính trong bán lẻ

Định hình lại ngành bán lẻ với các model Ultralytics YOLO. Vision AI hỗ trợ tracking hàng tồn kho, giám sát kệ hàng, quản lý hàng đợi và cung cấp insight khách hàng thông minh hơn.
Tìm hiểu thêm
Computer vision trong healthcare

Computer vision trong healthcare

Xây dựng các giải pháp healthcare với các model Ultralytics YOLO. Vision AI trong healthcare thúc đẩy chẩn đoán hình ảnh nhanh hơn, chẩn đoán thông minh hơn và giám sát bệnh nhân.
Tìm hiểu thêm
Computer vision trong sản xuất

Computer vision trong sản xuất

Tối ưu hóa sản xuất với các model Ultralytics YOLO. Vision AI thúc đẩy kiểm soát chất lượng, phát hiện lỗi, tuân thủ PPE và tự động hóa dây chuyền lắp ráp.
Tìm hiểu thêm
Computer vision trong ngành ô tô

Computer vision trong ngành ô tô

Ứng dụng computer vision trong ngành ô tô với các model Ultralytics YOLO. Vision AI nâng cao an toàn đường bộ, hỗ trợ người lái và tự động hóa phương tiện để tạo nên những tuyến đường thông minh hơn.
Tìm hiểu thêm
Computer vision trong nông nghiệp

Computer vision trong nông nghiệp

Đưa vision AI vào nông nghiệp thông minh với các model Ultralytics YOLO. Thúc đẩy giám sát cây trồng, theo dõi vật nuôi và canh tác chính xác để đạt năng suất cao hơn, thông minh hơn.
Tìm hiểu thêm
Thị giác máy tính cho hình ảnh trên không

Thị giác máy tính cho hình ảnh trên không

Biến đổi hình ảnh từ máyδ bay không người lái và ảnh chụp trên không thành thông tin chi tiết thời gian thực cho nông nghiệp, nuôi trồng thủy sản, giám sát môi trường, bảo tồn và phân tích không gian địa lý với Ultralytics YOLO.
Tìm hiểu thêm
Thị giác máy tính trong hàng không vũ trụ

Thị giác máy tính trong hàng không vũ trụ

Mang thị giác AI đến với hoạt động giám sát trên không bằng các model Ultralytics YOLO. Cung cấp sức mạnh cho máy bay không người lái, quy trình hàng không vũ trụ, bảo tồn môi trường & ngành công nghiệp địa không gian với các giải pháp thị giác máy tính.
Tìm hiểu thêm

Bảo vệ mọi địa điểm bằng các model Ultralytics YOLO. Thị giác AI cung cấp sức mạnh cho việc giám sát chu vi, phát hiện mối đe dọa, nhận diện biển số xe và an toàn nơi làm việc.
Tìm hiểu thêm
Thị giác máy tính trong robotics

Thị giác máy tính trong robotics

Nâng cao năng lực cho máy móc thông minh hơn với các model Ultralytics YOLO. Vision AI trong robotics hỗ trợ điều hướng tự động, nhận thức, theo dõi đối tượng và điều khiển theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong logistics

Thị giác máy tính trong logistics

Tinh gọn logistics với các model Ultralytics YOLO. Vision AI hỗ trợ kiểm tra kiện hàng, phân loại, theo dõi phương tiện và giám sát an toàn kho theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong bán lẻ

Thị giác máy tính trong bán lẻ

Định hình lại ngành bán lẻ với các model Ultralytics YOLO. Vision AI hỗ trợ tracking hàng tồn kho, giám sát kệ hàng, quản lý hàng đợi và cung cấp insight khách hàng thông minh hơn.
Tìm hiểu thêm
Computer vision trong healthcare

Computer vision trong healthcare

Xây dựng các giải pháp healthcare với các model Ultralytics YOLO. Vision AI trong healthcare thúc đẩy chẩn đoán hình ảnh nhanh hơn, chẩn đoán thông minh hơn và giám sát bệnh nhân.
Tìm hiểu thêm
Computer vision trong sản xuất

Computer vision trong sản xuất

Tối ưu hóa sản xuất với các model Ultralytics YOLO. Vision AI thúc đẩy kiểm soát chất lượng, phát hiện lỗi, tuân thủ PPE và tự động hóa dây chuyền lắp ráp.
Tìm hiểu thêm
Computer vision trong ngành ô tô

Computer vision trong ngành ô tô

Ứng dụng computer vision trong ngành ô tô với các model Ultralytics YOLO. Vision AI nâng cao an toàn đường bộ, hỗ trợ người lái và tự động hóa phương tiện để tạo nên những tuyến đường thông minh hơn.
Tìm hiểu thêm
Computer vision trong nông nghiệp

Computer vision trong nông nghiệp

Đưa vision AI vào nông nghiệp thông minh với các model Ultralytics YOLO. Thúc đẩy giám sát cây trồng, theo dõi vật nuôi và canh tác chính xác để đạt năng suất cao hơn, thông minh hơn.
Tìm hiểu thêm

Hãy cùng xây dựng tương lai của AI!

Bắt đầu hành trình của bạn với tương lai của machine learning