日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 目标检测 >内容正文

目标检测

YOLO3实现目标检测(VS2015+OPENCV3.4.2+YOLO3+CUDA10.0+CUDNN7.5)

發(fā)布時間:2025/3/21 目标检测 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 YOLO3实现目标检测(VS2015+OPENCV3.4.2+YOLO3+CUDA10.0+CUDNN7.5) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本人YOLOv3剛剛?cè)肟?#xff0c;走了不少彎路,自己摸索了一下,首先給大家配置一下yolo3,后續(xù)會有具體的算法分析講解。安裝VS2015+opencv3.4.2,這個就不用多說了吧,網(wǎng)上很多教程可以參考,主要是安裝好opencv,添加環(huán)境變量后,切記勿忘,重啟一下電腦。
本文電腦:windows7+i7-7700cpu+內(nèi)存16G+顯卡P620
一、github下載darknet。鏈接:https://github.com/AlexeyAB/darknet
二、安裝cuda10.0,安裝過程直接默認。安裝之前需要了解cuda對應(yīng)的顯卡驅(qū)動,我的電腦支持cuda10.0,直接下載安裝就行。下面有個對比圖,可以參考一下。

安裝完成后,接下來需要設(shè)置環(huán)境變量:

計算機上點右鍵,打開系統(tǒng)屬性->高級系統(tǒng)設(shè)置->環(huán)境變量,可以看到安裝完cuda之后,系統(tǒng)中自動生成CUDA_PATH和CUDA_PATH_V10_0兩個環(huán)境變量,但還要在系統(tǒng)中添加以下幾個環(huán)境變量: CUDA_SDK_PATH = C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.0(這是默認安裝位置的路徑,自定義安裝的話需要自己設(shè)置路徑) CUDA_LIB_PATH = %CUDA_PATH%\lib\x64 CUDA_BIN_PATH = %CUDA_PATH%\bin CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\win64 CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\common\lib\x64

添加完成后在系統(tǒng)變量path的末尾添加:

%CUDA_LIB_PATH%; %CUDA_BIN_PATH%; %CUDA_SDK_LIB_PATH%; %CUDA_SDK_BIN_PATH%; C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\lib\x64; C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin; C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.0\common\lib\x64; C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.0\bin\win64;

下面檢查一下cuda安裝是否成功:
cmd 運行 nvcc -V

上面顯示已經(jīng)安裝成功,可以再檢查一下相應(yīng)的環(huán)境變量目錄

上述可以看到之前添加的環(huán)境變量,如果cuda是自定義安裝的,改為自己的安裝路徑即可。
三、安裝cudnn v7.5
注意cudnn版本與cuda版本兼容問題。你可以通過鏈接下載:https://developer.nvidia.com/rdp/cudnn-download,下載前需要注冊會員。里面會顯示和cuda對應(yīng)的版本。安裝cudnn后,里面有個cuda文件夾。將cudnn里面的bin、include、lib文件下的文件分別復(fù)制到cuda安裝的bin、include、lib文件夾下,如下圖所示。


四、用VS2015打開darknet-master/build/darnet文件,你會發(fā)現(xiàn)里面有g(shù)pu和no_gpu版本,本文是基于gpu版的。但請不要直接打開darknet.sln,這一步很重要。
首先用notepad++或者寫字板打開darknet.vcxproj,有兩處CUDA版本的配置,默認的是10.0。因為我是安裝的cuda10.0,所以不用修改。但是很多小伙伴安裝的不是這個版本,所以會出現(xiàn)darknet.sln打不開的情況。假如你安裝的是9.0,就把CUDA10.0.targets改為CUDA9.0.targets,修改兩處即可。
五、打開darknet.sln之后,設(shè)置為Release x64模式。然后開始進行相關(guān)庫的配置,主要就是配置opencv、cuda、cudnn的相關(guān)庫。
因為本人之前已經(jīng)新建了自己的opencv屬性頁,所以vs2015打開darknet.sln之后,直接在它的屬性管理器中Release64中添加屬性頁即可,opencv就配置好了。

  • 右鍵darknet項目>屬性>VC++目錄>包含目錄,參照下圖。
  • VC++目錄>庫目錄,參照下圖。
  • 鏈接器>附加依賴項,參照下圖。加入opencv_world342.lib等。

    大家也可以pthreadVC2、cuda相關(guān)的庫文件目錄加到上面去。
  • 點擊調(diào)試,生成解決方案,就會在darknet-master/build/darknet/x64生成darknet.exe文件。
    測試圖像:darknet.exe detector test data/coco.data yolov3.cfg yolov3.weights -i 0 -thresh 0.25 bird.jpg

    下面是具體參數(shù)顯示:可以看出時間是81ms,還湊合

    再測試一個,時間大概也是80ms。不過大家可以看出yolo3功能的強大,很多小目標都可以檢測到,效率還可以。
    可以給大家分享一個提高檢測效率的方法,就是使用yolo3-tiny.weights,但是有時候會存在檢測準確率下降的問題,可以看一下下面的測試,用的是tiny版本,檢測時間是11ms。大大提高了檢測效率。

    備注:
    我用的yolo3版本可以檢測80種目標,如:人、自行車、汽車、船、鳥…因為具體的工程需要,沒必要檢測這么多目標的時候,可以在源碼中修改。但是你會發(fā)現(xiàn),當你檢測一個圖像,假如你原本可以識別上面的兩種目標,但你只標記識別了一種,但是測試時間和識別兩種目標時間一樣。
    另外,本人也在做相關(guān)的視頻檢測,調(diào)用攝像頭進行實時檢測,我用的是yolo3.weights,幀率是12FPS。用tiny版本時,幀率可以達到65FPS,但是檢測準確率會下降。后續(xù)會有具體的代碼詳解以及更改調(diào)試,感興趣的朋友可以一起學(xué)習,共同進步。
  • 《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

    總結(jié)

    以上是生活随笔為你收集整理的YOLO3实现目标检测(VS2015+OPENCV3.4.2+YOLO3+CUDA10.0+CUDNN7.5)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。