<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          yolov5部署之七步完成tensorRT模型推理加速

          共 3587字,需瀏覽 8分鐘

           ·

          2022-06-06 16:18


          前言

          前段時(shí)間研究了Pytorch的環(huán)境配置,之后便從github上下載了yolov5的源碼,并在自己的電腦端配置好對(duì)應(yīng)的環(huán)境并運(yùn)行,最后發(fā)現(xiàn)生成的權(quán)重文件yolov5s.pt不僅可以通過(guò)量化壓縮成onxx模型,而且還可以使用TensorRT推理加速生成engine模型,這對(duì)使得模型部署在移動(dòng)端具有很大的優(yōu)勢(shì),于是便嘗試著在自己的電腦上通過(guò)TensorRT部署yolov5模型。???? 現(xiàn)在網(wǎng)上有很多可以參考的博客,但大多數(shù)都是針對(duì)某一個(gè)環(huán)節(jié)進(jìn)行了仔細(xì)的解釋說(shuō)明,這在前期的學(xué)習(xí)中不免會(huì)讓人產(chǎn)生云里霧里的感覺(jué),難以從一個(gè)全局的角度去看待這個(gè)問(wèn)題,換句話說(shuō)就是很少有把整個(gè)流程先總結(jié)下來(lái),先讓我們知道需要那些模塊,該準(zhǔn)備些什么模塊,以及這些模塊之間又有什么樣的聯(lián)系,然后再細(xì)分到各個(gè)小模塊去說(shuō)明解釋。所以今天就從這個(gè)角度去發(fā)出,總結(jié)一下最近學(xué)習(xí)的一些內(nèi)容。在此之前假設(shè)你已經(jīng)掌握了Pytorch、CUDA、cuDNN的基礎(chǔ)知識(shí)以及配置好了yolov5的環(huán)境并調(diào)試運(yùn)行過(guò)源碼

          :如果還沒(méi)有掌握上述基礎(chǔ)知識(shí),可以參考另外兩篇博文 1. 2.

          首先整個(gè)過(guò)程分為以下7個(gè)步驟(模塊):

          • step 1. 下載yolov5源碼以及tensorrtx源碼,并將yolov5s.pt轉(zhuǎn)為.wts模型。- step 2. 確定并下載自己準(zhǔn)備使用的CUDA版本。- step 3. 根據(jù)自己的CUDA版本下載對(duì)應(yīng)版本的cuDNN以及TensorRT- step 4. 根據(jù)自己使用的VS版本下載對(duì)應(yīng)版本的OpenCV- step 5. 安裝CUDA - step 6. 安裝cuDNN、TensorRT以及驗(yàn)證TensorRT是否安裝成功- step 7. 下載Cmake軟件,利用Cmake軟件編譯生成yolov5的VS工程,測(cè)試并完成推理下面將從這個(gè)7個(gè)步驟,逐步進(jìn)行解釋?zhuān)紫荣N出我的環(huán)境:
          • 系統(tǒng) : WIN 10- cuda_10.2.89_441.22_win10- cudnn-10.2-windows10-x64-v8.1.1.33- TensorRT-7.0.0.11.Windows10.x86_64.cuda-10.2.cudnn7.6- OpenCV 3.4.3- CMake 3.9.16代碼版本:
          • yolov5 3.0- tensorrtx 3.0
          git?clone?-b?v3.0?https://github.com/ultralytics/yolov5.git
          git?clone?-b?yolov5-v3.0?https://github.com/wang-xinyu/tensorrtx.git

          這里不得不說(shuō)一下wang-xinyu的工作實(shí)在是太贊了!源碼地址點(diǎn)

          step 1. 下載yolov5源碼以及tensorrtx源碼,并將yolov5s.pt轉(zhuǎn)為.wts模型

          • 將tensorrtx源碼中的gen_wts.py復(fù)制到y(tǒng)olov5源碼中并運(yùn)行,生成.wts模型。

          step 2. 確定并下載自己準(zhǔn)備使用的CUDA版本。

          略 網(wǎng)址:

          step 3. 根據(jù)自己的CUDA版本下載對(duì)應(yīng)版本的cuDNN以及TensorRT

          略 網(wǎng)址:?

          step 4. 根據(jù)自己使用的VS版本下載對(duì)應(yīng)版本的OpenCV

          step 5. 安裝CUDA

          安裝cuda這里解答幾點(diǎn)疑惑

          • 安裝直接默認(rèn)即可,不用設(shè)置不同的路徑,設(shè)置相同路徑不會(huì)互相影響。- 一臺(tái)電腦安裝可以安裝多個(gè)cuda版本, 且不同版本之間不會(huì)覆蓋- 不同版本的cuda之間的切換,只需將環(huán)境變量的路徑置前即可。我這里安裝了兩個(gè)cuda版本,所以有兩個(gè)文件夾

          step 6. 安裝cuDNN、TensorRT以及驗(yàn)證TensorRT是否安裝成功

          1. 安裝cuDNN

          • 1 將cuDNN壓縮包解壓- 2 將cuda\bin中的文件復(fù)制到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin- 3 將cuda\include中的文件復(fù)制到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\include- 4 將cuda\lib中的文件復(fù)制到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\lib4步完成cuDNN安裝

          2. 安裝TensorRT

          • 1 將TensorRT壓縮包解壓- 2 將 TensorRT-7.0.0.11\include中頭文件復(fù)制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\include- 3 將TensorRT-7.0.0.11\lib 中所有lib文件復(fù)制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\lib\x64- 4 將TensorRT-7.0.0.11\lib 中所有dll文件復(fù)制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin
          • 4步完成TensorRT安裝

          3. 驗(yàn)證TensorRT是否安裝成功

          • 1-用VS2015 打開(kāi) TensorRT-7.0.0.11\samples\sampleMNIST\sample_mnist.sln- 2- 在VS2015中,右鍵工程,選擇屬性->配置屬性->常規(guī)->目標(biāo)平臺(tái)版本->8.1- 3- 在VS2015中,右鍵工程,選擇屬性->配置屬性->常規(guī)->平臺(tái)工具集->vs2015(v140)- 4- 右鍵工程->重新生成- 5- 用anaconda 進(jìn)入TensorRT-7.0.0.11\data\mnist 目錄,運(yùn)行python download_pgms.py- 6- 進(jìn)入TensorRT-7.0.0.11\bin,雙擊sample_mnist.exe,如果沒(méi)有報(bào)錯(cuò)則說(shuō)配置成功。

          第6步運(yùn)行出現(xiàn)如下結(jié)果,則說(shuō)明配置成功:如果提示沒(méi)有.pgm文件,則檢查第5步是否下載了數(shù)據(jù)

          step 7. 下載Cmake軟件,利用Cmake軟件編譯生成yolov5的VS工程,測(cè)試并完成推理

          1. 下載Cmake軟件 略 2. 配置OpenCV環(huán)境變量

          • 1-新建一個(gè)系統(tǒng)變量OpenCV_DIR- 2- 在系統(tǒng)變量Path中添加OpenCV343路徑

          3. 修改tensorrtx/yolov5/CMakeLists.txt文件中的OpenCV和TensorRT路徑

          注:CMakeLists.txt為生成VS工程的配置文件,源碼為作者的路徑,需要設(shè)置成自己的路徑,主要是 OpenCVTensorRT的路徑

          4. 利用Cmake軟件編譯生成yolov5VS工程

          • 1- 打開(kāi)CMake- 2- source code 為源碼的路徑 build the binaries 為生成的VS工程的路徑- 3- 路徑設(shè)置完成后,點(diǎn)擊左下方 Configure,然后選擇VS的版本以及x64平臺(tái)- 4- 點(diǎn)擊Generate生成項(xiàng)目 注:配置時(shí)出現(xiàn)這樣紅色的警告忽略 注:最后一步生成報(bào)錯(cuò)也忽略,然后打開(kāi)工程

          5. 打開(kāi)yolov5VS工程,生成engine模型

          • 1- 在剛剛設(shè)置的build the binaries 路徑下,打開(kāi)yolov5的工程- 2- 編譯生成- 3- 可以看到在\tensorrtx\yolov5\build\Debug文件下生成了一個(gè)yolov5.exe文件- 4- cmd進(jìn)入到\tensorrtx\yolov5\build\Debug目錄下,然后執(zhí)行yolov5.exe -s 命令, 可以看到在當(dāng)前目錄下生成了一個(gè)yolov5.engine文件,說(shuō)明轉(zhuǎn)換成功。- 5- 在\tensorrtx\yolov5\build\Debug目錄下新建一個(gè)samples文件夾然后放入測(cè)試圖片,最好通過(guò)cmd執(zhí)行yolov5.exe -d ../samples,調(diào)用yolov5.engine進(jìn)行測(cè)試

          最后打個(gè)廣告,點(diǎn)個(gè)贊再走!

          總結(jié)

          在中間的過(guò)程中可能會(huì)出現(xiàn)以下問(wèn)題:

          • 找不到dll,請(qǐng)檢測(cè)自己的cuDNN,和TensorRT是否安裝成功。- 如果有Assertion failed: engine != nullptr錯(cuò)誤,請(qǐng)檢查自己的TensorRT版本是否匹配。- 如果CMake生成的yolov5VS工程編譯不通過(guò),請(qǐng)檢查自己的cuda, cuDNN, 以及TensorRT的版本。


          瀏覽 208
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲第一页中文字幕 | www.污污污在线观看 | 成人少妇视频 | 色婷婷欧美亚洲激情综合另类在线 | 欧美高清中文字幕精品日韩不卡国产在线 |