【CV】如何使用Tensorflow提供的Object Detection API--3--手工标注数据

版权声明:本文为博主原创文章,未经博主允许不得转载。 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.

参考:

https://medium.com/@WuStangDan/step-by-step-tensorflow-object-detection-api-tutorial-part-3-creating-your-own-dataset-6369a4d30dfd

猜你喜欢

转载自blog.csdn.net/u011240016/article/details/83992496