版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011240016/article/details/83992496
前面两篇看完,我们已经知道如何选用预训练模型以及将现存的其他数据集变成TFRecord
格式的数据了。
但是如果需要用你自己的数据集,该怎么办呢?
本篇主要讲如何创建自己的数据集,并用object_detection
提供的模型来进行训练,识别。
首先需要的是标记数据。
LabelImg工具
这个工具能够方便我们标注图片。
话不多说,先安装:
git clone https://github.com/tzutalin/labelImg.git
具体安装这里给出的是在Linux上的:
sudo apt-get install pyqt5-dev-tools
sudo pip3 install lxml
make qt5py3
安装完毕后,就可以到这个文件下,打开LabelImg:
python labelImg.py
弹出一个图形界面,用于标注。在Mac上我很久之前装的,安装步骤未记录,简单查询一下即可。
标注完图片保存后,会保存为一个.xml
文件,如果选择了VOC
格式的话。
<annotation>
<folder>demo</folder>
<filename>demo4.png</filename>
<path>xxx/labelImg/demo/demo4.png</path>
<source>
<database>Unknown</database>
</source>
<size>
<width>1919</width>
<height>1079</height>
<depth>3</depth>
</size>
<segmented>0</segmented>
<object>
<name>flower</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>452</xmin>
<ymin>332</ymin>
<xmax>983</xmax>
<ymax>864</ymax>
</bndbox>
</object>
</annotation>
再认真标注一个:
<annotation>
<folder>frames</folder>
<filename>0013.png</filename>
<path>xxx/labelImg/frames/0013.png</path>
<source>
<database>Unknown</database>
</source>
<size>
<width>960</width>
<height>544</height>
<depth>3</depth>
</size>
<segmented>0</segmented>
<object>
<name>apple</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>164</xmin>
<ymin>381</ymin>
<xmax>293</xmax>
<ymax>500</ymax>
</bndbox>
</object>
<object>
<name>lamp</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>756</xmin>
<ymin>410</ymin>
<xmax>879</xmax>
<ymax>535</ymax>
</bndbox>
</object>
<object>
<name>orange</name>
<pose>Unspecified</pose>
<truncated>1</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>148</xmin>
<ymin>1</ymin>
<xmax>522</xmax>
<ymax>413</ymax>
</bndbox>
</object>
<object>
<name>remote control</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>392</xmin>
<ymin>447</ymin>
<xmax>574</xmax>
<ymax>539</ymax>
</bndbox>
</object>
</annotation>
保存为YOLO格式时,程序就崩了,但是可以看到保存出来是两个.txt
文件。
VOC转TFRecord格式的脚本官方有提供:create_pascal_tf_record.py
。
END.
参考: