1、收集图片
我是通过将视频每64帧保存一次收集的图片,图片格式为*.jpg
2、打标
使用labelImg进行数据标注,使用方法见lableImg使用详解
3、生成训练数据
修改darknet/script下voc_label.py文件中的类别,以及目录名称。
执行pyhon voc_label.py,会生成训练集和测试集的txt,为了代码改动少,我是参考VOC的目录进行文件存放
其中JPEGImages存放收集的图片,Annotations存放用labelImg打标的结果xml格式,ImageSets目录下存放训练集和测试集对应的图片的文件名(不包含后缀和路径),labels是voc_label.py将xml转为(C,H,W,H,W)格式的label
编辑data/obj.data
我只做人的识别
classes= 1
train = /home/xuerui/machine_learning/darknet/scripts/2018_train.txt
names = data/obj.names
backup = backup/
修改yolov3-voc.cfg
将classes修改为1,将filters修改为18(有三处需要修改)
4、训练模型(为了节省时间,使用预训练的权重)
./darknet detector train data/obj.data yolov3-voc.cfg darknet53.conv.74
4、使用训练的模型进行预测
生成的权重会保存在backup目录中
./darknet detect yolov3-voc.cfg backup/yolov3-voc_500.weights img/20180917102008_064.jpg -out marking_TCDS/20180917102008_064_5_20 -thresh 0.05