现在关于目标的检测,以及一些的比赛关于目标检测的。我觉得一开始想的模型基本都是faster-rcnn吧,毕竟是一个经典模型。如果追求速度的话,就是yolo了,求更好的性能就是SSD了。基本就是这样,而这些模型最基本的训练集的形式都是pascal_voc数据集。我们要想训练自己的数据集。有两种办法:一种是修改数据接口,将代码与自己数据集的形式结合起来。比较麻烦,修改的东西挺多。我不是很建议这种方法。第二种就是我要讲的。把自己的数据集制作成VOC数据集的形式。主要制作的是annotations的文件。
我这里以csv-----xml形式来解释(txt差不多):
1.读取csv文件。
with open(filename) as f:
reader = csv.reader(f)
head_row = next(reader)
for row in reader:
逐行读取文件,每一行的我通过打印最终的格式为:
e3d5c101-6bb9-48af-ac80-08c73304456b.jpg,173_179_162_180;508_197_157_194
第一个是图片名字。后面有分号隔开了,其实就是两个目标的框框坐标(格式为x,y,w,h)
2.那么重点来了,如何将上述得到的结果转化为一个对应的xml文件呢?
num = label.count(';')