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~