win10下yolo環境配置(GPU+CPU)
1.無GPU版本 vs2015+opencv3.2
1.1安裝vs2015
首先需要下載vs,有vs2015最好,如果使用vs2017的話,需要下載v140工具集。
我之前安裝了vs2017,便偷個懶。

1.2安裝opencv3.4.0
下載源:(ps:速度着實有些慢)
(這里不知道為什么,我不記得這個版本中的opencv有什么用)
血淚教訓,之前用3.2.0版本不知道為什么總是報錯,如果是非GPU版本,好像暫時還用不到。
1.3安裝darknet
https://github.com/AlexeyAB/darknet
下載darknet的壓縮包,解壓並進入\darknet-master\build\darknet,打開如下圖所指的項目darknet_no_gpu.sln(無gpu版本)

1.4下載yolov3.weights
https://link.zhihu.com/?target=https%3A//pjreddie.com/media/files/yolov3.weights
下載完后把文件放在x64文件夾下
1.5調試

控制台無報錯
進入\darknet-master\build\darknet\x64,並在該路徑下打開命令行
輸入以下命令即可,可以看到生成的predictions.jpg
darknet_no_gpu.exe detector test data/coco.data yolov3.cfg yolov3.weights -i 0 -thresh 0.25 dog.jpg -ext_output

2.帶GPU版本 MX150+vs2017+tensorflow-gpu1.14.0+cuda10.0+cudnn7.4
官方支持搭配如下:
https://tensorflow.google.cn/install/source_windows

判斷自己的機器:
-
首先打開NVIDIA控制面板(我的電腦找不到,我自己又重新安裝了)
-
查看--系統信息

- 查看自己電腦的驅動版本,我這里是442.50,說明我可以安裝CUDA 10.2.89及以下的版本。


兼容性參考來源:
https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
2.1安裝cuda
https://developer.nvidia.com/cuda-zone
在這里我選擇了10.0版本的,安裝完成后將以下路徑加入環境變量
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\extras\CUPTI\libx64
2.2安裝cudnn
https://developer.nvidia.com/cudnn
下載完成后解壓,得到壓縮包里的cuda文件

將bin文件夾所在目錄加入環境變量,我這里是:
D:\config\cudnn7.4\cuda\bin
ps:后續在編譯的時候若有提示說找不到"cudnn.h"則可以選擇把三個文件夾下的文件復制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0對應的三個文件夾中,(路徑中的v10.0基於每個人選擇的版本不同),就不會報錯了。
測試一下,成功
import tensorflow as tf
#Creates a graph.
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
c = tf.matmul(a, b)
#Creates a session with log_device_placement set to True.
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
#Runs the op.
print(sess.run(c))
從打印出來的日志我們可以判斷出使用了gpu。
2.3安裝darknet
接下來繼續我們的yolo
下載darknet的步驟同無GPU版本,這里不再贅述。
- 如果是cuda 10.0版本就不需要修改了,如果是其他版本需要進入\darknet-master\build\darknet,修改如下圖所示的文件。

用關鍵詞搜索,修改成當前所用的對應版本,一共可以找到兩處。


- 確認C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140\BuildCustomizations中是否有自己當前版本的CUDA

如果沒有的話可以參考https://zhuanlan.zhihu.com/p/45845454中敘述的步驟進行
2.4調試
- 用vs2017打開darknet文件夾下的darknet.sln

配置opecv環境,可以參考這篇文章,主要就是添加環境變量、引入頭文件等
https://note.youdao.com/ynoteshare1/index.html?id=04fb326760a726f23cbd9ae8ff6b1fc6&type=note#/
並在debug x64下運行
- 如果一切順利,很快你會x64文件夾下看到生成的darknet.exe

- 按照無GPU版本的步驟下好yolov3.weight3
2.5運行!
在darknet.exe下打開命令行,輸入命令
darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
不出意外可以看到結果predictions.jpg

參考來源:
https://zhuanlan.zhihu.com/p/107683614?utm_source=qq&utm_medium=social&utm_oi=606170806108164096
后話:總之麻煩還是麻煩,不如ubuntu~
