一开始我电脑只安装了CUDA8.0,按照网上博主的方法更改配置文件出错了,如下:
CUDA已经装好了,如下图版本是8.0
opencv也在VS2015中配置好了,在我的电脑里的系统变量里已经配置好Debugx64。
可以运行一个简单的示例代码。没有问题。
下载好的darknet-master,下载地址是:https://github.com/AlexeyAB/darknet
我解压后放到了E盘目录下。
更改E:\darknet-master\build\darknet\目录下的darknet.vcxproj
将其中的CUDA 10.0 更改为CUDA 8.0,一共有两处,如图所示
然后用VS2015打开darknet.sln
哇塞!出错了耶! 而且还不告诉我错在哪里。。。
真心求救!!这该怎么办!!
—2020.1.11更新–
最终的解决方案还是把CUDA升级成了10.1 打开就没问题鸟。好的正文现在开始。
环境配置
CUDA10.1安装
这一部分可以看我的另一篇文章
https://blog.youkuaiyun.com/bozki1995/article/details/103833062
opencv3.4安装
下载链接:
https://opencv.org/opencv-3-4/
下载好了以后配置好环境变量就好了。
然后新建一个空的C++项目,打开Reales x64的属性表配置VC++ 包含目录、库目录,以及打开链接器,编辑附加依赖项。
YOLO V3源码配置
下载地址:https://github.com/AlexeyAB/darknet#how-to-use
…\darknet-master\build\darknet下打开darknet.vcxproj,把里面CUDA的字段10.0改成10.1
然后就可以正常用VS2015打开darknet.sln了(注意改成release x64)打开属性管理器,视图->其他窗口->属性管理器
右击releasex64打开属性进行相关的配置,保证opencv配置正确
包含目录、库目录
附加依赖项
然后就启动生成darknet
生成成功后会生成darknet.exe文件
之后我们就可以用它进行数据的训练和测试啦。
注意把上面三个dll复制到\darknet-master\build\darknet\x64下
下载一个权重文件,测试一下搭建的环境是否成功
在github上下载作者训练好的模型,网址:https://github.com/AlexeyAB/darknet/blob/master/README.md
懒的话直接点这里下载https://pjreddie.com/media/files/yolov3.weights
下载后放在darknet-master\build\darknet\x64下,打开该目录,双击darknet_yolo_v3.cmd会出现以下结果,表明成功编译。
训练自己的数据集
这里默认我们的数据集已经是建立好了的VOC格式的数据集
1.划分训练集、验证集、测试集
import os
import random
trainval_percent = 0.8 # trainval数据集占所有数据的比例
train_percent = 0.8 # train数据集占trainval数据的比例
xmlfilepath = 'Annotations'
txtsavepath = 'ImageSets\Main'
total_xml = os.listdir(xmlfilepath)
num=len(total_xml)
list=range(num)
tv=int(num*trainval_percent)
tr=int(tv*train_percent)
trainval= random.sample(list,tv)
train=random.sample(trainval,tr)
ftrainval = open