环境:ubuntu16.04 cuda8.0 cudnn6.0.1 GT1070
1,GitHub:https://github.com/AlexeyAB/darknet下载
2,编译;
①修改makefile文件
GPU=1
CUDNN=1
CUDNN_HALF=0#这里如果显卡计算能力小于7.0,不需要改为1
OPENCV=1
AVX=0
OPENMP=1
LIBSO=1
’‘’
DEBUG=1
‘’‘
NVCC=/usr/local/cuda-8.0/bin/nvcc#改为自己的路径
②make
备注:常见错误均可网上搜到,无非是版本问题
3,下载预训练模型:GitHub上均有
4,简单测试:
./darknet detect cfg/yolov4.cfg yolov4.weights data/dog.jpg
测试效果:
Done! Loaded 162 layers from weights-file
data/dog.jpg: Predicted in 67.411000 milli-seconds.
bicycle: 92%
dog: 98%
truck: 92%
pottedplant: 33%
5,训练自己数据集:
①收集数据集,这个根据自身项目要求进行收集,网上有绝大多数需要的数据集,下载归类。
②对于数据集的预处理:可以将众多图片名称改为VOC数据集的格式,即000**.jpg。修改代码如下:
import os
path=input('请输入文件路径(结尾加上/):')
#获取该目录下所有文件,存入列表中
f=os.listdir(path)
n=0
for i in f:
#设置旧文件名(就是路径+文件名)
oldname=path+f[n]
#设置新文件名
newname=path+'000'+str(n+1)+'.jpg'
#用os模块中的rename方法对文件改名
os.rename(oldname,newname)
print(oldname,'======>',newname)
n+=1
③对数据集进行标记:本人使用labelImg工具进行标记,附上GitHub链接:https://github.com/tzutalin/labelImg 非常简单的安装和操作。
④对数据集进行增广:一般常用翻转、剪切、旋转,根据自身项目需要增广至所需数据集数量。(代码较多,不便粘贴,需要的小伙伴儿可以私聊)
⑤将数据集改为VOC数据集格式:
一、数据集文件夹格式
<