如何在colab中调用VOC数据集

我这里使用的数据集是VOC2007。
首先把数据集上传到colab云端硬盘。
上传后各文件夹如下:
如何在colab中调用VOC数据集_第1张图片
然后新建.ipynb文件使用torchvision.datasets.VOCDetection()进行调用:

import os
from google.colab import drive
import torchvision.datasets as datasets
drive.mount('/content/drive') #加载硬盘,按照提示输入验证码
path = "/content/drive/My Drive/VOC2007" #添加路径

os.chdir(path)
os.listdir(path)
voc_trainset = datasets.VOCDetection(path,year='2007', image_set='train', download=False)
print(len(voc_trainset))
image, annotation = voc_trainset[0][0],voc_trainset[0][1]
print(annotation)
show_image = np.array(image)
plt.imshow(show_image)
plt.show()

输出结果如下:
如何在colab中调用VOC数据集_第2张图片

可以看出,image_set=‘train’数据集中第一个图片的filename’: ‘000012.jpg’。
这也从train.txt文件中得到了验证。第一个图片为000012。
在这里插入图片描述

可能有些人对 voc_trainset[0][0],voc_trainset[0][1]有些疑惑,我们在colab中输入:如何在colab中调用VOC数据集_第3张图片
这样就很清晰了。
voc_trainset[0][0]即为RGB格式图片;voc_trainset[0][1]为一个字典,是其“Annotations“标签内容。不信的话打开000012.xml文件一探究竟吧。

<annotation>
	<folder>VOC2007</folder>
	<filename>000012.jpg</filename>
	<source>
		<database>The VOC2007 Database</database>
		<annotation>PASCAL VOC2007</annotation>
		<image>flickr</image>
		<flickrid>207539885</flickrid>
	</source>
	<owner>
		<flickrid>KevBow</flickrid>
		<name>?</name>
	</owner>
	<size>
		<width>500</width>
		<height>333</height>
		<depth>3</depth>
	</size>
	<segmented>0</segmented>
	<object>
		<name>car</name>
		<pose>Rear</pose>
		<truncated>0</truncated>
		<difficult>0</difficult>
		<bndbox>
			<xmin>156</xmin>
			<ymin>97</ymin>
			<xmax>351</xmax>
			<ymax>270</ymax>
		</bndbox>
	</object>
</annotation>

好的,使用torchvision.datasets.VOCDetection()调用VOC2007的方法就给大家介绍到这里。

你可能感兴趣的:(如何在colab中调用VOC数据集)