购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

第2章
常用的数据集

迄今为止,在机器学习和深度学习领域,数据本身对一个算法的好坏依旧起着至关重要的作用—数据的有无、数据量的大小以及数据的质量都会直接影响一个算法的实际性能。在大多数时候,可能算法本身在理论层面是很优秀的,但在处理糟糕的数据时,再优秀的算法性能也要大打折扣。

如今,社会发展已进入大数据时代,这就意味着数据获取会变得更加容易,而这在一定程度上也大力推动了深度学习的发展。例如早期的图像分类任务,在李飞飞团队公布了庞大的ImageNet数据集并举办了相关比赛后,吸引了大量的研究团队,充分利用ImageNet数据集所包含的百万级的数据来构建强大的图像分类器,越来越多的优秀算法应运而生,为后续诸多的下游任务做足了技术储备。而在目标检测领域,正是在MS COCO数据集 [32] 被公布后,促进了目标检测领域的发展,使得越来越多的检测算法被部署到实际场景中,从而解决实际任务中的问题。诸如此类的例子还有很多,总结起来,就是深度学习的每一条分支的发展都离不开一个庞大的、高质量的、场景复杂的、具有挑战性的数据集。因此,在步入目标检测领域之前,了解该领域常用的数据集是十分必要的。

当然,有时一个数据集可能会服务于多个任务,因此会存在不同形式的数据标签。为了配合本书,我们只介绍数据集中的部分内容。倘若读者对数据集的其他部分也感兴趣,不妨前往数据集的官方网站查看更多的信息。

2.1 PASCAL VOC数据集

PASCAL VOC(PASCAL Visual Object Classes)数据集 [12] 是目标检测领域中的经典数据集,该数据集中共包含20类目标,一万多张图像。该数据集中最为常用的是VOC2007和VOC2012数据集。通常,VOC2007的 trainval数据与VOC2012的trainval数据会被组合在一起用于训练网络,共包含16 551张图像,而VOC2007的test数据则作为测试集来验证网络的性能,共包含4952张图像。当然,还有其他数据组合方式,但由于这一组合最常见,因此读者只需了解这一种方式。如果读者对更多的组合使用方式感兴趣,可自行查阅相关资料。图2-1展示了VOC数据集的一些实例。

图2-1 VOC数据集的一些实例

读者可以登录PASCAL VOC官方网站下载VOC2007和VOC2012数据集,或者使用本书配套源代码的README文件中的下载链接来获得该数据集。为了配合后续的代码实现,作者推荐各位读者使用本书所提供的下载链接去下载数据集,以便和后续的实践章节相对应,以减少一些不必要的麻烦。

以作者提供的数据集下载链接为例,读者会看到一个名为VOCdevkit.zip的压缩包,下载后对其进行解压,即可获得VOC2007和VOC2012 数据集。我们将会在实践章节中使用VOC数据集,因此强烈建议读者提前将其下载下来。

以VOC2007数据集为例,打开VOC2007文件夹,我们会看到几个主要文件,如图2-2所示。其中,JPEGImages 文件夹下包含数据集图像,Annotations文件夹下包含每张图像的标注文件。标注文件的命名与图像的命名相同,仅在后缀上有差别。而对于带有“Segmentation”字眼的文件,我们暂时不需要考虑,因为它们是用于语义分割和实例分割任务的,不在本书的讨论范畴内。

随后,进入ImageSets文件夹,我们主要关心的是其中的Layout文件夹,因为该文件夹下包含4个后面会常用到的txt文档,其作用是用来划分数据集,以便分别用于训练和测试。图2-3展示了这4个txt文档。

图2-2 VOC2007文件夹中的主要文件

图2-3 ImageSets/Layout文件夹下的4个txt文档

2.2 MS COCO数据集

MS COCO [32] (Microsoft Common Objects in Context,简称COCO)数据集是微软公司于2014年公布的大型图像数据集,包含诸如目标检测、图像分割、实例分割和图像标注等丰富的数据标签,是计算机视觉领域最受关注、最为重要的大型数据集之一。图2-4展示了COCO数据集的实例。

图2-4 COCO数据集的实例

相较于VOC数据集,COCO数据集包含更多的图像,场景更加丰富和复杂,用于训练的图像数量高达11万余张,包含80个类别,远远大于VOC数据集。COCO数据集不仅所包含的图像更多,而且更重要的是,COCO数据集的图像具有更加贴近自然生活、场景更加复杂、目标尺度多变、光线变化显著等特点,这些特点不仅使得COCO数据集极具挑战性,同时也赋予了检测算法良好的泛化性能,使得在该数据集上训练好的检测器可以被部署到实际场景中。

在COCO数据集中,目标物体分别被定义为小物体、中物体和大物体这3类,其中小物体是指像素面积小于32×32像素的目标;中物体是指像素面积介于32×32至96×96像素之间的目标;其余的为大物体。

迄今为止,COCO数据集的小目标检测依旧是一大难点。图2-5展示了一张COCO数据集的实例,读者能否凭借肉眼分辨出处于图像中间位置的那条犬和旁边的小孩子呢?不难看出,检测这种外观不够显著的小目标是有很大的难度的,因为相较于大目标,小目标包含的像素往往很少,所能提供的信息也就很少,同时,大多数检测器的主干网络都会存在降采样操作,如步长为2的最大池化层或者卷积,这些降采样操作会丢失小目标的特征,这些因素都会导致网络很难充分地学习到小目标的信息。另外,也正是由于小目标的像素量远小于大目标,因此在训练网络的过程中大目标的信息会占据主导位置,也不利于网络学习小目标的信息。因此,针对小物体的目标检测一直以来都是该领域的研究热点之一。

图2-5 COCO数据集的实例

因为COCO数据集具有更大的数据规模,挑战性更高,数据内容也更贴近于实际环境,所以在数据公布后,目标检测领域的发展迅速,经由COCO数据集训练出来的模型也可以被更好地应用在实际环境中,促进了相关部署工作的开展。

不过,也正是由于COCO数据集包含大量的图像,使得训练网络所花费的时间成本也会更高,因此,为了加快训练的进度、缩减时间成本,需要研究者具备更多的算力硬件(如GPU),以便使用分布式训练来缩短训练时间。倘若不具备足够多的GPU,就只能花费更多的时间。因此,读者在本书第3章至第7章中学习YOLOv1至YOLOv3时,不要求读者必须使用COCO数据集,仅使用较小的VOC数据集就足够了,但在第8章后,希望读者能够准备COCO数据集,通过编写相关的代码,即便暂不具备训练的条件,运行由作者提供的模型权重也会有不菲的收获,且能够加深对COCO数据集的认识,这也便于开展日后的相关研究工作。读者可以前往COCO官方网站或者使用本书配套源代码中提供的下载文件来下载COCO数据集。

2.3 小结

本章介绍了目标检测领域中常见的PASCAL VOC数据集和COCO数据集,其中,COCO数据集更具挑战性,是目标检测领域中最为重要的数据集之一。就本书的目标而言,了解VOC数据集即可。在后续章节的代码实现中,我们将会频繁使用VOC数据集。同时,也希望读者在本书之外去了解一些有关COCO数据集的资料,在本书第5章之后的章节中,COCO数据集也将被频繁地使用。 w+8Q7/Z/ZpcnpzkmhqmVzWiY6QzMUTB6dx3c7tFf5xXvfOkUO3ZmzGch3WFEhul8

点击中间区域
呼出菜单
上一章
目录
下一章
×