自定义数据
如使用本例中原始数据准备提供的图片数据集,则无需进行本节内容。以下流程将介绍如何使用自己的图片和数据构建数据集。
数据收集和记录
认定需要识别的物体种类后,为每个种类获取若干图片。图片应仅包含一个清晰可见的物体,不包含其他种类的物体。 物体所占区域面积至少应为50像素*50像素。图片面积较大、数量足够多,物体较清晰时,模型识别能力较强。
为每一张图片生成一个xml文件储存事实数据。xml的文件名记录了图片的类别,xml的文件内容记录图片名称、大小和物体位置。本例中所用文件格式:
Persian_01.jpg 600 400 3 0
其中需要自定义的数据为:size记录图片的宽高像素数,bndbox记录物体位置的上边界,左边界,下边界和右边界。其他数据按如上填入即可(name可任意填入,仅用于信息记录,不用于模型训练)。
数据整理和打包
整理好以上图片和事实数据集后,为每对图片-数据按规则命名。文件名称的格式为:[类型]_[数字序号].jpg/xml。
如:Persian_01.jpg, Persian_01.xml. 类型名为纯英文和下划线组合,序号为纯数字。图片和xml文件名前缀应完全相同。
创建文档并命名为trainval.txt,指示图片集中的哪些图片被用于训练。每行记录一张图片的前缀。例如:
Persian_01 Persian_02 basset_hound_01
在线训练将仅采用文档中记录了前缀的图片,文档中未记录的图片数据将不被采用。
创建文档并命名为label_map.pbtxt,指示所有物体类别的序号:
item { id: 1 name: 'Persian' } item { id: 2 name: 'basset_hound' }
此文件为类别标签文件,记录了物体识别中可能出现的所有类别,并赋予序号。
将数据保存在统一根目录下(此处为/object-prep/)并记录根目录路径,以进行下一步预处理。
/object-prep/[路径] /object-prep/label_map.pbtxt /object-prep/annotations/[路径] /object-prep/annotations/trainval.txt /object-prep/annotations/xmls/[路径] /object-prep/annotations/xmls/Persian_01.xml /object-prep/annotations/xmls/Persian_02.xml /object-prep/annotations/xmls/basset_hound_1.xml /object-prep/images/[路径] /object-prep/images/Persian_01.jpg /object-prep/images/Persian_02.jpg /object-prep/images/basset_hound_1.jpg
转至数据格式转换进行文件预处理。