voc数据格式:
- –VOC
- –Annotations //存放xml文件,每一个xml对应一张图像及各个目标的位置和类别信息
- –ImageSets
- –Main //存放train.txt、val.txt等,该文本文件里为图像名字(无后缀无路径)
- –Layout
- –Segmentation
- –JPEGImages //原始图像
- –SegmentationClass
- –SegmentationObject
数据准备:
- 根据voc数据格式新建所有文件夹;
- 将图片放到JPEGImages下;
- ImageSets/Main下,新建train.txt存放训练图片名称,val.txt存放验证图片名称;
- 用lableimage生成xml
- 修改darknet\scripts\voc_label.py中对应文件位置;
- 注意Difficult首字母大写;
- 运行完后会在VOC新生成文件夹labels,同时在scripts\下应该生成了2017_train.txt、2017_val.txt,txt文件存放图片路径
- labels文件夹存放图片坐标及其对应的类别
txt文件可放到JPEGImages ,也可不放,注意文件夹名称不同时,需要放。
训练流程:
- 新建voc.data
classes= 2
train = E:/darknet/build/darknet/x64/data/myvoc/2017_train.txt
valid = E:/darknet/build/darknet/x64/data/myvoc/2017_val.txt
names = E:/darknet/build/darknet/x64/data/myvoc/voc.names
backup = E:/darknet/build/darknet/x64/data/myvoc/backup/
- 新建voc.names
person
car
- 修改tiny-yolo-voc.cfg
- 修改region/classes
- 修改最后convolutional/filters,filter=num×(classes + coords + 1)=5×(2+4+1)=35
- 训练
- darknet detector train E:\darknet\build\darknet\x64\data\myvoc\voc.data E:\darknet\build\darknet\x64\data\myvoc\tiny-yolo-voc.cfg
- ./darknet detector train data/myvoc/voc.data data/myvoc/tiny-yolo-voc.cfg
- 加载训练好的权重进行训练
- 测试
- darknet.exe detector test data/myvoc/voc.data data/myvoc/tiny-yolo-voc.cfg data/myvoc/tiny-yolo-voc_200.weights E:/darknet/scripts/VOCdevkit/myVOC2017/JPEGImages/s8.jpg -thresh 0.3