最近要一个基于深度学习识别水果项目,然后利用了就在Darknet上跑起了yolov3,做好数据集和改好网络以后,就放在实验室的1080Ti上训练者,从昨天中午开始到今天上午才训练了9800多个轮次,我设置的是训练10w次,估计可能要训练一个星期,第一次深切的体会到深度学习是一个很吃机器的游戏,利用在等训练权重的这个时间我就来记录一下做这个过程,便于以后查阅。
水果识别
水果识别-搭建框架
水果识别-数据集制作
水果识别-训练
水果识别-测试
先贴上YOLO官网 (官网上的安装教程很详尽,官方教程总是最权威的教程)
搭建框架包括:
- 安装相关依赖
- 安装darknet框架
1.安装相关依赖
(只要对应版本对就行,好像版本要求不是很严格)
2.安装darknet
- 在github上clone darknet
1234git clone https://github.com/pjreddie/darknetcd darknetmake
较新的机型建议使用下面这个版本的darknet
1234git clone https://github.com/AlexeyAB/darknet.gitcd darknetmake - 更改Makefile
123456789101112131415GPU=1 #是否需要用GPUCUDNN=1 #是否需要用CUDNN,这是NVIDIA做的一些优化,实际上就是一些库文件,优化一些常用的矩阵操作OPENCV=1 #用来对图片进行操作,打开,画图等等,如果你不用的话,,在测试时就不会有直接显示图片的效果OPENMP=0 #CPU的多线程#Arch GPU的架构版本ARCH= -gencode arch=compute_20,code=[sm_20,sm_21] \# Fermi 架构 常见 gtx480 gtx580-gencode arch=compute_30,code=sm_30 \# Kepler 架构 常见 gtx680-gencode arch=compute_35,code=sm_35 \# Kepler 架构 常见 gtx780-gencode arch=compute_50,code=[sm_50,compute_50] \# Maxwell 架构 常见 gtx750Ti gtx8 到9 系列 M-gencode arch=compute_52,code=[sm_52,compute_52]# Maxwell 架构 常见 gtx8 到9 系列-gencode arch=compute_61,code=[sm_61,compute_61]# Pascal 架构 常见 gtx 10系列-gencode arch=compute_70,code=[sm_70,compute_70]# Volta 架构 这个不常见,用作超算或者数据中心#高版本code不能在低版本的卡上跑,架构不同的其特性也有差距,所以尽量查一下你的显卡是在那个计算能力上的
注意两个问题,第一是上面把GPU,CUDNN,OPENCV这些都设为1,因为是做目标检测所以这些都要用到,另外要查实验机器对应的GPU型号,比如我用1080Ti所以只要-gencode arch=compute_61,code=[sm_61,compute_61]
这一行,其他的都注释掉。改好配置文件以后在执行make
。这样框架基本就搭建好了,感觉搭建框架最麻烦的就是相关依赖的安装,没有安装好依赖编译就会不通过。
- 检验安装下载训练权重(权重大约237M)
12wget https://pjreddie.com/media/files/yolov3.weights
测试
12./darknet detect cfg/voc.data cfg/yolov3.cfg yolov3.weights data/dog.jpg会看到在命令行中显示
很有用