sách gpt4 ăn đã đi

Tăng tốc triển khai mô hình yolov8tensorrt trong Win10 [Thực tế]

In lại Tác giả: Tôi là chú chim nhỏ Thời gian cập nhật: 2023-02-04 22:31:28 32 4
mua khóa gpt4 giày nike

Tăng tốc triển khai mô hình tensorrt yolov8 trong Win10 [Thực tế]

TensorRT-Alpha triển khai khả năng tăng tốc gpu của mô hình end2end dựa trên tensorrt+cuda c++, hỗ trợ win10 và linux, đồng thời đã cập nhật các mô hình vào năm 2023: YOLOv8, YOLOv7, YOLOv6, YOLOv5, YOLOv4, YOLOv3, YOLOX, YOLOR, pphumanseg, u2net, EfficiencyDet. Hãy chú ý đến kho "TensorRT-Alpha": https://github.com/FeiYull/TensorRT-Alpha.

1. Tăng tốc hiển thị kết quả

1.1 Tổng quan về hiệu suất

Hãy xem nhanh hiệu suất mới của yolov8n trên RTX2070m di động (8G):

người mẫu độ phân giải video kích thước đầu vào mô hình Sử dụng bộ nhớ GPU Tiện ích GPU
yolov8n 1920x1080 8x3x640x640 1093MiB/7982MiB 14%

Hình sau đây hiển thị tổng thời gian chạy của yolov8n, tính bằng mili giây:

Các video thử nghiệm TensorRT-Alpha khác có trong video Bilibili: Bilibili: YOLOv8n Bilibili: YOLOv8s.

Chèn mô tả hình ảnh vào đây

1.2 Căn chỉnh chính xác

Dưới đây là kết quả suy luận khung python ở bên trái và kết quả suy luận TensorRT-Alpha ở bên phải.

yolov8n: Chính thức (trái) vs Chúng ta (phải)

Chèn mô tả hình ảnh vào đây

yolov7-tiny: Chính thức (trái) so với Chúng ta (phải)

Chèn mô tả hình ảnh vào đây

yolov6s: Chính thức (trái) vs Chúng ta (phải)

Chèn mô tả hình ảnh vào đây

yolov5s: Chính thức (trái) vs Chúng ta (phải)

YOLOv4 YOLOv3 YOLOR YOLOX.

2. Cấu hình môi trường Windows 10

Ba bước để giải quyết cấu hình môi trường win:

  • 1. Cài đặt vs2019, driver Nvidia, cuda, cudnn, opencv, tensorrt;
  • 2. Tạo bảng thuộc tính;
  • 3. Thiết lập và vận hành dự án;
    Câu hỏi: Tại sao nên sử dụng bảng thuộc tính vs2019 thay vì cmake?
    Trả lời: Bởi vì bảng thuộc tính có thể làm được điều này: tạo một lần và sử dụng ở mọi nơi.
    Mẹo: Nếu bạn phải sử dụng cmake+vs2019 hoặc cmake + clion, vui lòng tham khảo phần phụ lục. Đây là phương pháp của một người xem nhiệt tình để tham khảo.

2.1 Cài đặt VS2019

Cần có tài khoản Microsoft. Nếu bạn có những cách khác để tải xuống và cài đặt nó, bạn có thể.

  • Nhập: https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/
  • Chọn: [2019] -> [Tải xuống]
  • Chọn trên trang mới: Visual Studio Community 2019 (phiên bản 16.11)
  • Sau khi tải về hoàn tất, quá trình cài đặt lựa chọn như hình dưới:

Vui lòng thêm mô tả hình ảnh

- Khởi động lại hệ thống

2.2 Thư viện cài đặt

注:Nvidia相关网站需要注册账号.

2.2.1 Cài đặt trình điều khiển card đồ họa Nvidia

  • Nhập: https://www.nvidia.cn/Download/index.aspx?lang=cn#
  • Chọn theo tình hình thực tế Hình ảnh sau đây là lựa chọn của tôi (đối với RTX3070):

Vui lòng thêm mô tả hình ảnh

  • Chọn: [Search]->[Download] ->[Bấm đúp vào cài đặt mặc định] -> [Khởi động lại hệ thống] -> [Nhập cmd], nhập lệnh sau:
                        
                          nvidia-smi

                        
                      

Thấy thông tin sau là biết driver bình thường:

Vui lòng thêm mô tả hình ảnh

2.2.2 Cài đặt cuda11.2

  • Nhập: https://developer.nvidia.com/cuda-toolkit-archive
  • Chọn: CUDA Toolkit 11.2.0 (Tháng 12 năm 2020)
  • Chọn: [Windows] -> [x86_64] -> [10] -> [exe(local)] -> [Download(2.9GB)]
  • Bấm đúp để cài đặt, khởi động lại và nhập lệnh sau vào cửa sổ cmd:
                        
                          nvcc-V

                        
                      

Cửa sổ CMD in thông tin sau để cho biết cuda11.2 được cài đặt bình thường.

                        
                          nvcc: Trình điều khiển trình biên dịch NVIDIA (R) Cuda Bản quyền (c) 2005-2020 NVIDIA Corporation Được xây dựng vào Mon_Nov_30_19:15:10_Pacific_Standard_Time_2020 Công cụ biên dịch Cuda, bản phát hành 11.2, V11.2.67 Bản dựng cuda_11.2.r11.2/compiler.29373293_0

                        
                      

lưu ý:cuda11.2 không yêu cầu cài đặt thủ công các biến môi trường. Như được hiển thị bên dưới, các biến môi trường được đặt tự động.

Vui lòng thêm mô tả hình ảnh

2.2.3 Cài đặt cudnn8.2.1

  • 进入网站: https://developer.nvidia.com/rdp/cudnn-archive
  • Chọn: Download cuDNN v8.2.1 (07/06/2021), cho CUDA 11.x
  • Chọn: Thư viện cuDNN cho Windows (x86)
  • Bạn sẽ tải xuống gói nén này: "cudnn-11.3-windows-x64-v8.2.1.32_2.zip"
  • Sau khi giải nén, các tệp tiêu đề cudnn và tệp thư viện phải được sao chép vào thư mục cài đặt cuda.
  • Như hiển thị bên dưới, nhập include vào thư mục nơi cudnn được giải nén, sao chép tất cả các tệp tiêu đề và dán chúng vào CUDA/v11.2/include
  • Các file trong lib và bin cũng được sao chép vào thư mục cuda tương ứng.
  • Khởi động lại hệ thống

Vui lòng thêm mô tả hình ảnh

2.2.4 Tải xuống tensorrt8.4.2.4

  • 进入网站: https://developer.nvidia.cn/nvidia-tensorrt-8x-download
  • 把这个打勾: I Agree To the Terms of the NVIDIA TensorRT License Agreement
  • 选择: TensorRT 8.4 GA Update 1
  • Tiêu đề: TensorRT 8.4 GA Update 1 cho Windows 10 và CUDA 11.0, 11.1, 11.2, 11.3, 11.4, 11.5, 11.6 và 11.7 ZIP Package
  • Bạn sẽ tải xuống gói nén này: "TensorRT-8.4.2.4.Windows10.x86_64.cuda-11.6.cudnn8.4.zip"
  • Giải nén nó thành F:\ThirdParty và đổi tên thành: TensorRT-8.4.2.4
  • Và thêm đường dẫn "F:\ThirdParty\TensorRT-8.4.2.4\lib" vào biến môi trường, như hiển thị bên dưới:
  • Khởi động lại hệ thống

Vui lòng thêm mô tả hình ảnh

2.2.5 Cài đặt OpenCV4.5.5

  • Nhập: https://opencv.org/releases/
  • Chọn: [OpenCV – 4.5.5] -> [Windows]
  • Sau khi tải về là dạng exe tự giải nén, bạn giải nén ra: D:ThirdParty
  • Và thêm các đường dẫn: "D:\ThirdParty\opencv4.5.5\build\bin" và "D:\ThirdParty\opencv4.5.5\build\x64\vc15\bin" vào các biến môi trường, như hiển thị bên dưới:
  • Khởi động lại hệ thống
    lưu ý: Opencv của tôi nằm trên ổ D và tensorrt nằm trên ổ E. Chỉ cần sửa đổi nó theo tình hình thực tế.

Vui lòng thêm mô tả hình ảnh

2.3 Tạo bảng thuộc tính

Nhìn chung, trong Visual Studio 2019, một thư viện tương ứng với hai file bảng thuộc tính, tương ứng với: chế độ gỡ lỗi và chế độ phát hành của vs2019. Ví dụ: OpenCV đã tạo ra 2 loại này trong bài viết này. TensorRT và CUDA chỉ cần tạo 1 bảng thuộc tính (áp dụng cho 2 chế độ trên).

2.3.1 Tạo bảng thuộc tính OpenCV

Tạo bảng thuộc tính gỡ lỗi thư viện opencv:

  • bước 1: Tạo dự án C++ mới dựa trên VS2019, như hiển thị bên dưới, dự án được đặt ở chế độ Debug và X64

Vui lòng thêm mô tả hình ảnh

  • bước 2: Như hiển thị bên dưới, chọn: [Cửa sổ thuộc tính] -> [Nhấp chuột phải vào Debug|x64] -> [Thêm bảng thuộc tính dự án mới]

Vui lòng thêm mô tả hình ảnh

  • bước 3: Tệp có tên: OpenCV4.5.5_DebugX64.props -> [Thêm]
  • Chỉnh sửa bảng thuộc tính: [Như hình bên dưới: click đúp vào bảng thuộc tính]

Vui lòng thêm mô tả hình ảnh

  • bước 4: Như hiển thị bên dưới, chọn: [Thuộc tính chung] -> [Thư mục VC++] -> [Bao gồm thư mục] -> [Chỉnh sửa]

Vui lòng thêm mô tả hình ảnh

  • bước 5: Như hình bên dưới, sao chép hai thư mục tệp tiêu đề OpenCV -> [Xác nhận]

Vui lòng thêm mô tả hình ảnh

  • bước 6: Chọn: [Thuộc tính chung] -> [Thư mục VC++] -> [Thư mục thư viện] -> [Chỉnh sửa] -> Sao chép đường dẫn: "D:\ThirdParty\opencv4.5.5\build\x64\vc15\lib" - > [Xác nhận]
  • bước 7: Chọn: [Thuộc tính chung] -> [Trình liên kết] -> [Đầu vào] -> [Phụ thuộc bổ sung] -> Thay đổi tên tệp thành " opencv_world455d.lib "Sao chép nó vào->[Xác nhận]
    bản tóm tắt

    Tại thời điểm này, bảng thuộc tính gỡ lỗi của thư viện opencv đã hoàn tất. Bảng thuộc tính phát hành giống như quy trình trên. Sự khác biệt duy nhất là, như được hiển thị bên dưới, dự án chuyển sang chế độ Release x64, tạo ra một OpenCV4. 5.5_ReleaseX64, sau đó ở bước 7, thay đổi tên tệp cho:" opencv_world455.lib "

Vui lòng thêm mô tả hình ảnh

Hãy nhớ rằng, chỉ có 3 bước để tạo bảng thuộc tính:

  • Sao chép bao gồm đường dẫn
  • Sao chép đường dẫn lib và đặt dll vào biến môi trường hệ thống
  • Sao chép tên tệp lib

2.3.2 Tạo bảng thuộc tính TensorRT

Nhấp chuột phải vào Debug|x64 hoặc nhấp chuột phải vào Release|x64 để tạo bảng thuộc tính mới và đổi tên thành: TensorRT8.4.2.4_X64.

                        
                          # include Tải về F:\ThirdParty\TensorRT-8.4.2.4\include F:\ThirdParty\TensorRT-8.4.2.4\samples\common F:\ThirdParty\TensorRT-8.4.2.4\samples\common\windows # lib Tải về F:\ThirdParty\TensorRT-8.4.2.4\lib # Thư viện lib (dành cho bản phát hành và gỡ lỗi) nvinfer.lib nvinfer_plugin.lib nvonnxparser.lib nvparsers.lib

                        
                      

Thực hiện theo 3 bước trong phần trước:

  • bước 1: Chọn: [Thuộc tính chung] -> [Thư mục VC++] -> [Bao gồm thư mục] -> [Chỉnh sửa] -> Sao chép ba đường dẫn bao gồm ở trên vào
  • bước 2: Chọn: [Thuộc tính chung] -> [Thư mục VC++] -> [Thư mục thư viện] -> [Chỉnh sửa] -> Sao chép đường dẫn lib ở trên vào đó
  • bước 3: Chọn: [Thuộc tính chung] -> [Trình liên kết] -> [Đầu vào] -> [Phụ thuộc bổ sung] -> [Chỉnh sửa] -> Sao chép tên tệp lib trên vào đó -> [Xác nhận]
    Cuối cùng, sửa đổi bảng thuộc tính tensorrt: [Thuộc tính chung] -> [C/C++] -> [Bộ tiền xử lý] -> [Định nghĩa bộ tiền xử lý] -> Thêm lệnh: _CRT_SECURE_NO_WARNINGS -> [Xác nhận]

2.3.3 Tạo bảng thuộc tính CUDA

Bảng thuộc tính CUDA được lấy trực tiếp từ trang web chính thức, trong đường dẫn: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\extras\visual_studio_integration\MSBuildExtensions\CUDA 11.2.props.

Cuối cùng, chúng ta sẽ có tệp bảng thuộc tính sau:

Vui lòng thêm mô tả hình ảnh

                        
                          Trong số đó, các bảng thuộc tính của cuda và tensorrt tương thích với cả bản phát hành x64 và debug x64. Sau khi tạo một dự án mới như yolov8 yolov7 yolov6 trong TensorRT-Alpha, bạn chỉ cần giới thiệu các bảng thuộc tính nêu trên đã được chuẩn bị trước. vào dự án **Tất nhiên là dự án Bạn cũng cần thực hiện các cài đặt đơn giản** (thiết lập NVCC để tránh những cạm bẫy của tensorrt), điều này sẽ được đề cập sau. Bảng thuộc tính có thể được tạo một lần và sử dụng ở mọi nơi.

                        
                      

3、YOLOv8模型部署

Để cài đặt YOLOv8 trong môi trường Windows 10, vui lòng tham khảo bài viết khác của tôi "Cấu hình và kiểm tra nhanh Yolov8 trong môi trường Win10": https://blog.csdn.net/m0_72734364/article/details/128815530.

3.1 Nhận tệp YOLOv8onnx

直接在网盘下载 weiyun or google driver 或者使用如下命令导出onnx

                        
                          #  yolov8 官方仓库: https://github.com/ultralytics/ultralytics #  yolov8 官方教程: https://docs.ultralytics.com/quickstart/ # TensorRT-Alpha will be updated synchronously as soon as possible! # 安装 yolov8 conda create -n yolov8 python==3.8 -y conda activate yolov8 pip install ultralytics==8.0.5 pip install onnx # 下载官方权重(".pt" file) https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8n.pt https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8s.pt https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8m.pt https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8l.pt https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8x.pt https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8x6.pt

                        
                      

导出 onnx

                        
                          # 640 yolo mode=export model=yolov8n.pt format=onnx dynamic=True #simplify=True yolo mode=export model=yolov8s.pt format=onnx dynamic=True #simplify=True yolo mode=export model=yolov8m.pt format=onnx dynamic=True #simplify=True yolo mode=export model=yolov8l.pt format=onnx dynamic=True #simplify=True yolo mode=export model=yolov8x.pt format=onnx dynamic=True #simplify=True # 1280 yolo mode=export model=yolov8x6.pt format=onnx dynamic=True #simplify=True

                        
                      

3.2 Biên dịch onnx

                        
                          # trtexec.exe Thư mục được lưu trữ: F:\ThirdParty\TensorRT-8.4.2.4\bin # 640 ../../../../TensorRT-8.4.2.4/bin/trtexec.exe --onnx=yolov8n.onnx --saveEngine=yolov8n.trt --buildOnly --minShapes=images:1x3x640x640 --optShapes=images:4x3x640x640 --maxShapes=images:8x3x640x640 ../../../../TensorRT-8.4.2.4/bin/trtexec.exe --onnx=yolov8s.onnx --saveEngine=yolov8s.trt --buildOnly --minShapes=images:1x3x640x640 --optShapes=hình ảnh:4x3x640x640 --maxShapes=hình ảnh:8x3x640x640 ../../../../TensorRT-8.4.2.4/bin/trtexec.exe --onnx=yolov8m.onnx --saveEngine=yolov8m.trt --buildOnly --minShapes=hình ảnh:1x3x640x640 --optShapes=hình ảnh:4x3x640x640 --maxShapes=hình ảnh:8x3x640x640 ../../../../TensorRT-8.4.2.4/bin/trtexec.exe --onnx=yolov8l.onnx --saveEngine=yolov8l.trt --buildOnly --minShapes=hình ảnh:1x3x640x640 --optShapes=hình ảnh:4x3x640x640 --maxShapes=hình ảnh:8x3x640x640 ../../../../TensorRT-8.4.2.4/bin/trtexec.exe --onnx=yolov8x.onnx --saveEngine=yolov8x.trt --buildOnly --minShapes=hình ảnh:1x3x640x640 --optShapes=hình ảnh:4x3x640x640 --maxShapes=hình ảnh:8x3x640x640 # 1280 ../../../../TensorRT-8.4.2.4/bin/trtexec.exe --onnx=yolov8x6.onnx --saveEngine=yolov8x6.trt --buildOnly --minShapes=hình ảnh:1x3x1280x1280 --optShapes=hình ảnh:4x3x1280x1280 --maxShapes=hình ảnh:8x3x1280x1280

                        
                      

你将会的到例如:yolov8n.trt、yolov8s.trt、yolov8m.trt等文件.

3.3 Biên dịch và chạy

3.3.1 Tạo một dự án mới và thiết lập một dự án để tải xuống kho TensorRT-Alpha:

                        
                          git clone https://github.com/FeiYull/tensorrt-alpha

                        
                      
  • Tạo dự án yolov8 C++ mới: tham khảo video của trạm B [Mẹo: bắt đầu từ 0 phút 34 giây, trình bày cách thiết lập trình biên dịch NVCC và cách tránh những cạm bẫy của tensorrt trong môi trường win]:
    yolov8 tensorrt phi công chiến đấu thực tế
    bản tóm tắt:
    Sau khi tạo YOLOv7, YOLOv6 và các dự án khác trong TensorRT-Alpha, bạn chỉ cần thêm bảng thuộc tính được đề cập ở trên vào dự án, sau đó thiết lập dự án như đã đề cập trong "hướng dẫn thực hành tenorrt yolov8" là ổn.
    Hướng dẫn này quá chi tiết Ngày nay, có vẻ như rất ít người sẵn sàng đưa ra những hướng dẫn chân thành như vậy một cách miễn phí.

3.3.2 Biên dịch và chạy video trên để thiết lập các tham số dòng lệnh trong vs2019. Bạn cũng có thể chạy chương trình trên dòng lệnh CMD như sau:

                        
                          # Giải thích các tham số bên dưới # --show nghĩa là kết quả trực quan # --savePath nghĩa là lưu, mặc định là lưu trong thư mục build # --savePath=../ Lưu ở thư mục phía trên ## 640 # Inference picture./app_yolov8.exe -- model=../../data/yolov8/yolov8n.trt --size=640 --batch_size=1 --img=../../data/6406407.jpg --show --savePath ./app_yolov8.exe --model=../../data/yolov8/yolov8n.trt --size=640 -- batch_size=8 --video=../../data/people.mp4 --show --savePath # Video suy luận./app_yolov8.exe --model=../../data/yolov8/yolov8n.trt --size=640 --batch_size=8 --video=../../data/people.mp4 --show --savePath=. ./ # Video camera suy luận trực tuyến ./app_yolov8.exe --model=../../data/yolov8/yolov8n.trt --size=640 --batch_size=2 --cam_id=0 --show ## 1280 # suy luận camera ./app_yolov8.exe --model=../../data/yolov8/yolov8x6.trt --size=1280 --batch_size=2 --cam_id=0 --show

                        
                      

Tất cả video trên Bilibili của tôi đang chạy trong môi trường WIN10, https://space.bilibili.com/2028719613.

[video(video-zRQTyZp3-1675415874102)(type-bilibili)(url- https://player.bilibili.com/player.html?aid=778153500 )(image- https://img-blog.csdnimg.cn/img_convert/4faa0b726044d139a1282d3883c6ed08.jpeg )(title-yolov8 triển khai tăng tốc suy luận mô hình tensorrt cuda TensorRT-Alpha "cơ sở trượt tuyết")].

[video(video-Ej2C6hgr-1675415817040)(type-bilibili)(url- https://player.bilibili.com/player.html?aid=650665729 )(image- https://img-blog.csdnimg.cn/img_convert/04c8cb5b7ebe3fd410e4af53548a668f.jpeg )(title-yolov8 triển khai tăng tốc suy luận mô hình tensorrt cuda TensorRT-Alpha "NewYork-Stree")].

[video(video-xbOkXTEV-1675415667896)(type-bilibili)(url- https://player.bilibili.com/player.html?aid=565721755 )(image- https://img-blog.csdnimg.cn/img_convert/a4469f9c7a048393d4fee5b7bba2893d.jpeg )(title-yolov7 triển khai tăng tốc suy luận mô hình tensorrt cuda TensorRT-Alpha "Đêm Hàn Quốc")].

4、参考

https://github.com/FeiYull/TensorRT-Alpha 。

phụ lục

Nó được thực hiện bởi một thanh niên nhiệt tình. Anh ấy đã làm việc rất chăm chỉ. Anh ấy thường nhắn tin cho tôi vào lúc 2 hoặc 3 giờ đêm cách đây vài ngày. Tinh thần chiến đấu của anh ấy rất đáng học hỏi.

Vui lòng thêm mô tả hình ảnh

https://www.bilibili.com/video/BV1SM411i7km/?spm_id_from=333.999.0.0&vd_source=a96c9c3f099f4167807291a34fd50fd5 。

Cuối cùng, bài viết này về việc triển khai tăng tốc mô hình yolov8tensorrt trong Win10 [Thực tế] kết thúc tại đây. Nếu bạn muốn biết thêm về việc triển khai tăng tốc mô hình yolov8tensorrt trong Win10 [Thực tế], vui lòng tìm kiếm các bài viết CFSDN hoặc tiếp tục duyệt các bài viết liên quan. Tôi hy vọng tất cả các bạn sẽ ủng hộ blog của tôi trong tương lai! .

32 4 0
tôi là một con chim nhỏ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress