在 cfg/voc.data 中
classes= 20
train = <your work directory>/darknet/train.txt
valid = <your work directory>/darknet/2007_test.txt
names = data/voc.names
backup = backup
classes 参数需要改成你的数据集中具体的分类数目,下面用来训练和测试的图片列表都是有上述的脚本自动生成的,voc.names 里面保存了所有分类。打开 train.txt 可以看到里面保存的是用来训练的图片的绝对路径,但是,真正的标注信息却没有体现,也就是 VOCdevkit/VOC2007/labels 下面的标签文件。本来百思不得其解,后来发现是在源码中写死的,在src/data.c 中有。
find_replace(path, "images", "labels", labelpath);
find_replace(labelpath, "JPEGImages", "labels", labelpath);
也就是说他会根据 train.txt 中图片的路径,替换 JPEGImages 为labels 作为标签路径,因此在生成标签的时候一定要让标签目录与图片目录同级。