第一步:收集图片,按照一定比例分别放置在train文件夹和test(或者val数据集)文件夹中的JPEGImage文件夹下;注意:训练集和验证集文件夹下分别有Annotation文件夹和JPEGImage文件夹;
第二步:分别对文件夹下的图片进行统一命名,一般多以数字升序来命名;
1、可以使用Windows自带的重命名,一般数字名称会带有括号,可以按照另一个博主的文章进行对应的修改;地址链接如下:https://blog.youkuaiyun.com/zhan10001/article/details/78607547
2、也可以自己用C++或python代码来对数据集图片进行统一命名;
第三步:用数据标注工具对数据集进行标注;另外需注意,使用标注工具时,对类别名称的命名。注意:不同的标注工具标注的数据集,输出的XML文件可能略有差异;比如object的名称,有的显示为1、2、3、等等纯数字,有的则显示为1.jpg、2.jpg 等等;。
第四步:方法一:可以直接利用所给出的tf_covert _data.py 等相关代码直接转换为tfrecord格式;需注意:可以多个XML文件转换为一个tfrecord文件,但应使XML文件数 / tfrecord文件数 ;其商为整数;否者将有图片对应的XML文件不能被转换;
代码网址链接:https://github.com/balancap/SSD-Tensorflow
方法二:可以将XML文件转换为 .csv文件,然后再由 .csv 文件转换为 tfrcord 文件;注意:需要时,可对标注数据集图片信息进行统计(如:包含目标的图片数量、各类目标的总数、标注框的长宽比等),既可以在XML文件下直接读取进行统计,也可以利用python的数据分析在 .csv文件下进行信息统计。详细内容见另一篇博客:https://github.com/XiangGuo1992/Screen-Vehicle-Detection-using-Tensorflow-API 对于Tensorflow,需要输入专门的 TFRecords Format 格式。该博主写了两个小python脚本文件,第一个将文件夹内的xml文件内的信息统一记录到.csv表格中(xml_to_csv.py),第二个从.csv表格中创建TFRecords格式(generate_tfrecord.py)。
另外:如果由于标注工具不同,第三步输出的XML文件略有差异时,如果第四步提示找不到对应的图片(如:1.jpg),可能是因为 .csv文件中名称是 1 而不是对应的 1.jpg ;可以利用表格的特性直接对 .csv 文件中的名称列 进行修改即可;然后再转换为tfrecord格式。