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

Intel OpenVINO Xuất khẩu

OpenVINO Hệ sinh thái

Trong hướng dẫn này, chúng tôi đề cập đến việc xuất khẩu YOLOv8 mô hình cho OpenVINO định dạng, có thể cung cấp lên đến 3x CPU Tăng tốc, cũng như tăng tốc YOLO suy luận về Intel GPU và phần cứng NPU .

OpenVINO, viết tắt của Open Visual Inference & Neural Network Optimization toolkit, là một bộ công cụ toàn diện để tối ưu hóa và triển khai các mô hình suy luận AI. Mặc dù tên chứa Hình ảnh, OpenVINO Cũng hỗ trợ các tác vụ bổ sung khác nhau bao gồm ngôn ngữ, âm thanh, chuỗi thời gian, v.v.



Xem: Cách xuất và tối ưu hóa Ultralytics YOLOv8 Mô hình suy luận với OpenVINO.

Ví dụ sử dụng

Xuất một YOLOv8n Mô hình để OpenVINO định dạng và chạy suy luận với mô hình đã xuất.

Ví dụ

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO("yolov8n.pt")

# Export the model
model.export(format="openvino")  # creates 'yolov8n_openvino_model/'

# Load the exported OpenVINO model
ov_model = YOLO("yolov8n_openvino_model/")

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

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

Lập luận

Chìa khoá Giá trị Sự miêu tả
format 'openvino' định dạng để xuất sang
imgsz 640 Kích thước hình ảnh dưới dạng vô hướng hoặc danh sách (h, w), tức là (640, 480)
half False Lượng tử hóa FP16

Lợi ích của OpenVINO

  1. Hiệu suất: OpenVINO Cung cấp suy luận hiệu suất cao bằng cách sử dụng sức mạnh của Intel CPU, GPU tích hợp và rời rạc và FPGA.
  2. Hỗ trợ thực hiện không đồng nhất: OpenVINO cung cấp API để viết một lần và triển khai trên bất kỳ hỗ trợ nào Intel phần cứng (CPU, GPU, FPGA, VPU, v.v.).
  3. Trình tối ưu hóa mô hình: OpenVINO cung cấp Trình tối ưu hóa mô hình nhập, chuyển đổi và tối ưu hóa các mô hình từ các khung học tập sâu phổ biến như PyTorch, TensorFlow, TensorFlow Lite, Keras, ONNX, PaddlePaddlevà Caffe.
  4. Dễ sử dụng: Bộ công cụ đi kèm với hơn 80 máy tính xách tay hướng dẫn (bao gồm YOLOv8 tối ưu hóa) giảng dạy các khía cạnh khác nhau của bộ công cụ.

OpenVINO Cơ cấu xuất khẩu

Khi bạn xuất mô hình sang OpenVINO định dạng, nó dẫn đến một thư mục chứa những điều sau đây:

  1. Tệp XML: Mô tả cấu trúc liên kết mạng.
  2. Tệp BIN: Chứa weights and biases dữ liệu nhị phân.
  3. Tệp ánh xạ: Giữ ánh xạ các tensor đầu ra mô hình ban đầu thành OpenVINO tensor Tên.

Bạn có thể sử dụng các tệp này để chạy suy luận với OpenVINO Công cụ suy luận.

Sử dụng OpenVINO Xuất khẩu trong triển khai

Khi bạn có OpenVINO tệp, bạn có thể sử dụng OpenVINO Thời gian chạy để chạy mô hình. Thời gian chạy cung cấp một API thống nhất để suy luận trên tất cả các hỗ trợ Intel phần cứng. Nó cũng cung cấp các khả năng nâng cao như cân bằng tải trên Intel phần cứng và thực thi không đồng bộ. Để biết thêm thông tin về cách chạy suy luận, hãy tham khảo Suy luận với OpenVINO Hướng dẫn thời gian chạy.

Hãy nhớ rằng, bạn sẽ cần các tệp XML và BIN cũng như bất kỳ cài đặt dành riêng cho ứng dụng nào như kích thước đầu vào, hệ số tỷ lệ để chuẩn hóa, v.v., để thiết lập và sử dụng chính xác mô hình với Thời gian chạy.

Trong ứng dụng triển khai của bạn, bạn thường sẽ thực hiện các bước sau:

  1. Khởi tạo OpenVINO bằng cách tạo core = Core().
  2. Tải mô hình bằng cách sử dụng core.read_model() phương pháp.
  3. Biên dịch mô hình bằng cách sử dụng core.compile_model() chức năng.
  4. Chuẩn bị đầu vào (hình ảnh, văn bản, âm thanh, v.v.).
  5. Chạy suy luận bằng cách sử dụng compiled_model(input_data).

Để biết các bước và đoạn mã chi tiết hơn, hãy tham khảo OpenVINO tài liệu hoặc hướng dẫn API.

OpenVINO YOLOv8 Điểm chuẩn

YOLOv8 Điểm chuẩn dưới đây được điều hành bởi Ultralytics Nhóm trên 4 định dạng mô hình khác nhau đo tốc độ và độ chính xác: PyTorch, TorchScript, ONNX và OpenVINO. Điểm chuẩn đã được chạy trên Intel GPU Flex và Arc, v.v. Intel CPU Xeon ở độ chính xác FP32 (với half=False lập luận).

Ghi

Kết quả đo điểm chuẩn dưới đây là để tham khảo và có thể thay đổi dựa trên cấu hình phần cứng và phần mềm chính xác của hệ thống, cũng như khối lượng công việc hiện tại của hệ thống tại thời điểm chạy điểm chuẩn.

Tất cả các điểm chuẩn chạy với openvino Python Phiên bản gói 2023.0.1.

Intel Flex GPU

Trung tâm dữ liệu Intel® GPU Flex Series là một giải pháp linh hoạt và mạnh mẽ được thiết kế cho đám mây trực quan thông minh. Này GPU hỗ trợ nhiều khối lượng công việc bao gồm phát trực tuyến phương tiện, chơi game trên đám mây, suy luận trực quan AI và khối lượng công việc Cơ sở hạ tầng máy tính để bàn ảo. Nó nổi bật với kiến trúc mở và hỗ trợ tích hợp cho mã hóa AV1, cung cấp ngăn xếp phần mềm dựa trên tiêu chuẩn cho các ứng dụng kiến trúc chéo, hiệu suất cao. Dòng Flex GPU được tối ưu hóa về mật độ và chất lượng, cung cấp độ tin cậy, tính khả dụng và khả năng mở rộng cao.

Điểm chuẩn dưới đây chạy trên Trung tâm dữ liệu Intel® GPU Flex 170 ở độ chính xác FP32.

Flex GPU Điểm chuẩn
Mẫu Định dạng Tình trạng Kích thước (MB) mAP50-95(B) Thời gian suy luận (ms/im)
YOLOv8n PyTorch 6.2 0.3709 21.79
YOLOv8n TorchScript 12.4 0.3704 23.24
YOLOv8n ONNX 12.2 0.3704 37.22
YOLOv8n OpenVINO 12.3 0.3703 3.29
YOLOv8s PyTorch 21.5 0.4471 31.89
YOLOv8s TorchScript 42.9 0.4472 32.71
YOLOv8s ONNX 42.8 0.4472 43.42
YOLOv8s OpenVINO 42.9 0.4470 3.92
YOLOv8m PyTorch 49.7 0.5013 50.75
YOLOv8m TorchScript 99.2 0.4999 47.90
YOLOv8m ONNX 99.0 0.4999 63.16
YOLOv8m OpenVINO 49.8 0.4997 7.11
YOLOv8l PyTorch 83.7 0.5293 77.45
YOLOv8l TorchScript 167.2 0.5268 85.71
YOLOv8l ONNX 166.8 0.5268 88.94
YOLOv8l OpenVINO 167.0 0.5264 9.37
YOLOv8x PyTorch 130.5 0.5404 100.09
YOLOv8x TorchScript 260.7 0.5371 114.64
YOLOv8x ONNX 260.4 0.5371 110.32
YOLOv8x OpenVINO 260.6 0.5367 15.02

Bảng này thể hiện kết quả điểm chuẩn cho năm mô hình khác nhau (YOLOv8n, YOLOv8s, YOLOv8m, YOLOv8l, YOLOv8x) trên bốn định dạng khác nhau (PyTorch, TorchScript, ONNX, OpenVINO), cho chúng tôi trạng thái, kích thước, số liệu mAP50-95 (B) và thời gian suy luận cho mỗi kết hợp.

Intel Cung GPU

Intel® Arc™ đại diện Intel'bước đột phá vào chuyên dụng GPU chợ. Dòng Arc™, được thiết kế để cạnh tranh với hàng đầu GPU các nhà sản xuất như AMD và Nvidia, phục vụ cho cả thị trường máy tính xách tay và máy tính để bàn. Sê-ri bao gồm các phiên bản di động cho các thiết bị nhỏ gọn như máy tính xách tay và các phiên bản lớn hơn, mạnh mẽ hơn cho máy tính để bàn.

Sê-ri Arc™ được chia thành ba loại: Arc™ 3, Arc™ 5 và Arc™ 7, với mỗi số cho biết mức hiệu suất. Mỗi danh mục bao gồm một số mô hình và 'M' trong GPU Tên model biểu thị một biến thể di động, tích hợp.

Các đánh giá ban đầu đã ca ngợi dòng Arc™, đặc biệt là A770M tích hợp GPU, cho hiệu suất đồ họa ấn tượng. Tính khả dụng của dòng Arc™ thay đổi theo khu vực và các mô hình bổ sung dự kiến sẽ sớm được phát hành. GPU Intel® Arc™ cung cấp các giải pháp hiệu suất cao cho một loạt các nhu cầu điện toán, từ chơi game đến sáng tạo nội dung.

Điểm chuẩn dưới đây chạy trên Intel® Arc 770 GPU ở độ chính xác FP32.

Cung GPU Điểm chuẩn
Mẫu Định dạng Tình trạng Kích thước (MB) số liệu/mAP50-95(B) Thời gian suy luận (ms/im)
YOLOv8n PyTorch 6.2 0.3709 88.79
YOLOv8n TorchScript 12.4 0.3704 102.66
YOLOv8n ONNX 12.2 0.3704 57.98
YOLOv8n OpenVINO 12.3 0.3703 8.52
YOLOv8s PyTorch 21.5 0.4471 189.83
YOLOv8s TorchScript 42.9 0.4472 227.58
YOLOv8s ONNX 42.7 0.4472 142.03
YOLOv8s OpenVINO 42.9 0.4469 9.19
YOLOv8m PyTorch 49.7 0.5013 411.64
YOLOv8m TorchScript 99.2 0.4999 517.12
YOLOv8m ONNX 98.9 0.4999 298.68
YOLOv8m OpenVINO 99.1 0.4996 12.55
YOLOv8l PyTorch 83.7 0.5293 725.73
YOLOv8l TorchScript 167.1 0.5268 892.83
YOLOv8l ONNX 166.8 0.5268 576.11
YOLOv8l OpenVINO 167.0 0.5262 17.62
YOLOv8x PyTorch 130.5 0.5404 988.92
YOLOv8x TorchScript 260.7 0.5371 1186.42
YOLOv8x ONNX 260.4 0.5371 768.90
YOLOv8x OpenVINO 260.6 0.5367 19

Intel Xeon CPU

® Intel Xeon® CPU là bộ xử lý cấp máy chủ, hiệu suất cao được thiết kế cho khối lượng công việc phức tạp và đòi hỏi khắt khe. Từ điện toán đám mây và ảo hóa cao cấp đến trí tuệ nhân tạo và các ứng dụng học máy, CPU Xeon® cung cấp sức mạnh, độ tin cậy và tính linh hoạt cần thiết cho các trung tâm dữ liệu ngày nay.

Đáng chú ý, CPU Xeon® cung cấp mật độ tính toán và khả năng mở rộng cao, khiến chúng trở nên lý tưởng cho cả doanh nghiệp nhỏ và doanh nghiệp lớn. Bằng cách chọn CPU Intel® Xeon®, các tổ chức có thể tự tin xử lý các tác vụ điện toán đòi hỏi khắt khe nhất của họ và thúc đẩy sự đổi mới trong khi vẫn duy trì hiệu quả chi phí và hiệu quả hoạt động.

Điểm chuẩn dưới đây chạy trên Intel® Xeon® Scalable thế hệ thứ 4 CPU ở độ chính xác FP32.

Xeon CPU Điểm chuẩn
Mẫu Định dạng Tình trạng Kích thước (MB) số liệu/mAP50-95(B) Thời gian suy luận (ms/im)
YOLOv8n PyTorch 6.2 0.3709 24.36
YOLOv8n TorchScript 12.4 0.3704 23.93
YOLOv8n ONNX 12.2 0.3704 39.86
YOLOv8n OpenVINO 12.3 0.3704 11.34
YOLOv8s PyTorch 21.5 0.4471 33.77
YOLOv8s TorchScript 42.9 0.4472 34.84
YOLOv8s ONNX 42.8 0.4472 43.23
YOLOv8s OpenVINO 42.9 0.4471 13.86
YOLOv8m PyTorch 49.7 0.5013 53.91
YOLOv8m TorchScript 99.2 0.4999 53.51
YOLOv8m ONNX 99.0 0.4999 64.16
YOLOv8m OpenVINO 99.1 0.4996 28.79
YOLOv8l PyTorch 83.7 0.5293 75.78
YOLOv8l TorchScript 167.2 0.5268 79.13
YOLOv8l ONNX 166.8 0.5268 88.45
YOLOv8l OpenVINO 167.0 0.5263 56.23
YOLOv8x PyTorch 130.5 0.5404 96.60
YOLOv8x TorchScript 260.7 0.5371 114.28
YOLOv8x ONNX 260.4 0.5371 111.02
YOLOv8x OpenVINO 260.6 0.5371 83.28

Intel Lõi CPU

Dòng Intel® Core® là một loạt các bộ vi xử lý hiệu suất cao của Intel. Dòng sản phẩm bao gồm Core i3 (cấp nhập cảnh), Core i5 (tầm trung), Core i7 (cao cấp) và Core i9 (hiệu năng cực cao). Mỗi dòng phục vụ cho các nhu cầu điện toán và ngân sách khác nhau, từ các tác vụ hàng ngày đến khối lượng công việc chuyên nghiệp đòi hỏi khắt khe. Với mỗi thế hệ mới, các cải tiến được thực hiện đối với hiệu suất, hiệu quả năng lượng và các tính năng.

Điểm chuẩn dưới đây chạy trên Intel® Core® i7-13700H thế hệ thứ 13 CPU ở độ chính xác FP32.

Lõi CPU Điểm chuẩn
Mẫu Định dạng Tình trạng Kích thước (MB) số liệu/mAP50-95(B) Thời gian suy luận (ms/im)
YOLOv8n PyTorch 6.2 0.4478 104.61
YOLOv8n TorchScript 12.4 0.4525 112.39
YOLOv8n ONNX 12.2 0.4525 28.02
YOLOv8n OpenVINO 12.3 0.4504 23.53
YOLOv8s PyTorch 21.5 0.5885 194.83
YOLOv8s TorchScript 43.0 0.5962 202.01
YOLOv8s ONNX 42.8 0.5962 65.74
YOLOv8s OpenVINO 42.9 0.5966 38.66
YOLOv8m PyTorch 49.7 0.6101 355.23
YOLOv8m TorchScript 99.2 0.6120 424.78
YOLOv8m ONNX 99.0 0.6120 173.39
YOLOv8m OpenVINO 99.1 0.6091 69.80
YOLOv8l PyTorch 83.7 0.6591 593.00
YOLOv8l TorchScript 167.2 0.6580 697.54
YOLOv8l ONNX 166.8 0.6580 342.15
YOLOv8l OpenVINO 167.0 0.0708 117.69
YOLOv8x PyTorch 130.5 0.6651 804.65
YOLOv8x TorchScript 260.8 0.6650 921.46
YOLOv8x ONNX 260.4 0.6650 526.66
YOLOv8x OpenVINO 260.6 0.6619 158.73

Tái tạo kết quả của chúng tôi

Để tái tạo Ultralytics Điểm chuẩn ở trên trên tất cả các định dạng xuất đều chạy mã này:

Ví dụ

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO("yolov8n.pt")

# Benchmark YOLOv8n speed and accuracy on the COCO8 dataset for all all export formats
results = model.benchmarks(data="coco8.yaml")
# Benchmark YOLOv8n speed and accuracy on the COCO8 dataset for all all export formats
yolo benchmark model=yolov8n.pt data=coco8.yaml

Lưu ý rằng kết quả đo điểm chuẩn có thể thay đổi dựa trên cấu hình phần cứng và phần mềm chính xác của hệ thống, cũng như khối lượng công việc hiện tại của hệ thống tại thời điểm chạy điểm chuẩn. Để có kết quả đáng tin cậy nhất, hãy sử dụng tập dữ liệu có số lượng hình ảnh lớn, tức là data='coco128.yaml' (128 val images), ordata = 'coco.yaml'' (5000 hình ảnh val).

Kết thúc

Kết quả benchmark thể hiện rõ lợi ích của việc xuất khẩu YOLOv8 mô hình cho OpenVINO định dạng. Trên các mô hình và nền tảng phần cứng khác nhau, các OpenVINO Định dạng luôn vượt trội hơn các định dạng khác về tốc độ suy luận trong khi vẫn duy trì độ chính xác tương đương.

Đối với Trung tâm dữ liệu Intel® GPU Dòng Flex, các OpenVINO Định dạng có thể cung cấp tốc độ suy luận nhanh hơn gần 10 lần so với bản gốc PyTorch định dạng. Trên Xeon CPU, các OpenVINO Định dạng nhanh gấp đôi so với PyTorch định dạng. Độ chính xác của các mô hình vẫn gần như giống hệt nhau trên các định dạng khác nhau.

Các điểm chuẩn nhấn mạnh tính hiệu quả của OpenVINO như một công cụ để triển khai các mô hình deep learning. Bằng cách chuyển đổi các mô hình sang OpenVINO Định dạng, các nhà phát triển có thể đạt được những cải tiến hiệu suất đáng kể, giúp triển khai các mô hình này trong các ứng dụng trong thế giới thực dễ dàng hơn.

Để biết thêm thông tin chi tiết và hướng dẫn sử dụng OpenVINO, tham khảo chính thức OpenVINO tài liệu.

FAQ

Làm cách nào để xuất YOLOv8 mô hình để OpenVINO định dạng?

Xuất khẩu YOLOv8 mô hình cho OpenVINO Định dạng có thể nâng cao đáng kể CPU Tốc độ và bật GPU và tăng tốc NPU trên Intel phần cứng. Để xuất, bạn có thể sử dụng một trong hai Python hoặc CLI Như hình dưới đây:

Ví dụ

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO("yolov8n.pt")

# Export the model
model.export(format="openvino")  # creates 'yolov8n_openvino_model/'
# Export a YOLOv8n PyTorch model to OpenVINO format
yolo export model=yolov8n.pt format=openvino  # creates 'yolov8n_openvino_model/'

Để biết thêm thông tin, hãy tham khảo tài liệu về định dạng xuất.

Lợi ích của việc sử dụng là gì OpenVINO với YOLOv8 Mô hình?

Sử dụng Intel's OpenVINO Bộ công cụ với YOLOv8 Mô hình cung cấp một số lợi ích:

  1. Hiệu suất: Đạt được tốc độ lên đến 3x trên CPU Suy luận và đòn bẩy Intel GPU và NPU để tăng tốc.
  2. Trình tối ưu hóa mô hình: Chuyển đổi, tối ưu hóa và thực thi các mô hình từ các khung phổ biến như PyTorch, TensorFlowvà ONNX.
  3. Dễ sử dụng: Hơn 80 sổ ghi chép hướng dẫn có sẵn để giúp người dùng bắt đầu, bao gồm cả những sổ ghi chép cho YOLOv8.
  4. Thực thi không đồng nhất: Triển khai các mô hình trên nhiều loại khác nhau Intel phần cứng với một API thống nhất.

Để so sánh hiệu suất chi tiết, hãy truy cập phần điểm chuẩn của chúng tôi.

Làm thế nào tôi có thể chạy suy luận bằng cách sử dụng YOLOv8 Mô hình xuất sang OpenVINO?

Sau khi xuất một YOLOv8 Mô hình để OpenVINO , bạn có thể chạy suy luận bằng cách sử dụng Python hoặc CLI:

Ví dụ

from ultralytics import YOLO

# Load the exported OpenVINO model
ov_model = YOLO("yolov8n_openvino_model/")

# Run inference
results = ov_model("https://ultralytics.com/images/bus.jpg")
# Run inference with the exported model
yolo predict model=yolov8n_openvino_model source='https://ultralytics.com/images/bus.jpg'

Tham khảo tài liệu về chế độ dự đoán của chúng tôi để biết thêm chi tiết.

Tại sao tôi nên chọn Ultralytics YOLOv8 so với các mô hình khác cho OpenVINO xuất khẩu?

Ultralytics YOLOv8 được tối ưu hóa để phát hiện đối tượng theo thời gian thực với độ chính xác và tốc độ cao. Cụ thể, khi kết hợp với OpenVINO, YOLOv8 Cung cấp:

  • Bật tốc độ lên đến 3x Intel Cpu
  • Triển khai liền mạch trên Intel GPU và NPU
  • Độ chính xác nhất quán và có thể so sánh trên các định dạng xuất khác nhau

Để phân tích hiệu suất chuyên sâu, hãy kiểm tra chi tiết của chúng tôi YOLOv8 điểm chuẩn trên các phần cứng khác nhau.

Tôi có thể điểm chuẩn không YOLOv8 mô hình trên các định dạng khác nhau như PyTorch, ONNXvà OpenVINO?

Có, bạn có thể điểm chuẩn YOLOv8 Các mô hình ở nhiều định dạng khác nhau bao gồm: PyTorch, TorchScript, ONNXvà OpenVINO. Sử dụng đoạn mã sau để chạy điểm chuẩn trên tập dữ liệu bạn đã chọn:

Ví dụ

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO("yolov8n.pt")

# Benchmark YOLOv8n speed and accuracy on the COCO8 dataset for all export formats
results = model.benchmarks(data="coco8.yaml")
# Benchmark YOLOv8n speed and accuracy on the COCO8 dataset for all export formats
yolo benchmark model=yolov8n.pt data=coco8.yaml

Để biết kết quả điểm chuẩn chi tiết, hãy tham khảo phần điểm chuẩn và tài liệu về định dạng xuất của chúng tôi.



Đã tạo 2023-11-12, Cập nhật 2024-07-05
Tác giả: glenn-jocher (14), andrei-kochin (1), abirami-vina (1), RizwanMunawar (1), Burhan-Q (1)

Ý kiến