
本文讨论使用生成数据集来做目标检测的一些基础概念。
今天,我们开始一系列专门讨论一个特定的机器学习问题,这个问题通常由合成数据来补充:物体检测。在这个系列的第一篇文章中,我们将讨论什么是目标检测,以及数据从哪里来,以及如何让你的网络来检测物体的边界框下面。


问题设定:什么是物体检测
如果你有过计算机视觉方面的经验,或者听过许多关于现代深度学习的神奇之处的介绍,你可能知道图像分类问题:如何区分猫和狗?

尽管这只是一个二元分类(一个回答是/否的问题),但这已经是一个非常复杂的问题了。真实世界的图像“生活”在一个非常高维的空间中,以数百万计的特征为数量级:例如,从数学上讲,一张一百万像素的彩色照片是一个超过三百万数字的向量!因此,图像分类的重点不在于实际学习决策面(分离类),而在于特征提取:我们如何将这个巨大的空间投射到更易于管理的东西上,而分割平面可以相对简单?
这正是深度学习取得如此成功的原因:它不依赖于人们以前用于计算机视觉的手工功能SIFT,而是从零开始学习自己的特征。分类器本身仍然非常简单和经典:几乎所有用于分类的深度神经网络都带有一个softmax层,即基本的逻辑回归。关键是如何将图像空间转换为逻辑回归足够的表示,而这正是网络的其他部分的切入点。如果你看一些早期文章你可以找到例子,人们学习深度神经网络提取特征,然后应用其他分类器,如支持向量机:


一旦你完成了这些,网络已经学会了为真实世界的摄影图像提取信息丰富的、有用的特征,所以即使你的类不是来自ImageNet,它也通常是一个调整以适应这个新信息的问题。当然,你仍然需要新的数据,但通常不是数以百万计的图像。当然,除非这是一个完全新颖的图像领域,如x射线或显微镜,在那里ImageNet不会有太大帮助。
但视觉并不是这样工作的。当我环顾四周,我在脑海中看到的不仅仅是单一的标签。我在我的视野中区分不同目标:现在我看到了键盘,我自己的手,一个监视器,一个咖啡杯,一个网络摄像头等等,基本上是在同一时间。我能够从一个单一的静止图像中同样区分所有这些物体。
这意味着我们需要从分类开始继续下去、分类时为整个图像分配一个标签(你可以分配多个multilabel分类模型,但是他们仍然是整个图像打标签),其他问题,需要更细粒度的分析图像中的目标。人们通常会区分几种不同的问题:
分类,就像我们上面讨论的那样。
分类 + 定位,你假设图像中只有一个中心目标,你需要去定位这个目标,画一个包围框出来。
物体检测,我们今天的主题,需要在一张图像中找到多个目标,并框出来。
最后,分割是更加复杂的问题,你需要找到物体的实际轮廓,即,基本上把图像上的每一个像素划分为一个物体或背景,分割也有几种不同的方式(语义分割、边界分割和实例分割)。
目标检测数据集:真实
让我们首先看看我们有什么样的使用真实目标和人工标注的目标检测数据集。首先,让我们快速回顾最流行的数据集。
ImageNet数据集作为ImageNet大规模视觉识别挑战(ILSVRC)的关键部分而受到欢迎,这是2010年至2017年举办的一系列比赛。ILSVRC系列见证了一些卷积神经网络中最有趣的进展:AlexNet、VGG、GoogLeNet、ResNet和其他著名的架构都在这里首次亮相。
一个不太为人所知的事实是ILSVRC也一直有一个物体检测竞赛,而ILSVRC系列实际上是与另一个著名的竞赛合作发展起来的,2005年至2012年举办的PASCAL Visual Object Classes (VOC) Challenge。这些挑战也从一开始就体现了目标检测,这就是第一个著名的数据集的由来,通常被称为PASCAL VOC数据集。以下是“飞机”和“自行车”类别的一些示例图片:


按照今天的标准,PASCAL VOC是相当小的:20个类,只有11530张图片,27450个目标标注,这意味着PASCAL VOC每幅图片只有不到2.5个目标。目标通常是相当大的和突出的照片,所以PASCAL VOC是一个“容易”的数据集。尽管如此,在很长一段时间里,它仍然是最大的手动标注的目标检测数据集之一,并在数百篇关于目标检测的论文中默认使用。
在规模和复杂性方面的下一步是Microsoft Common Objects in Context (Microsoft COCO)数据集。到目前为止,它已经超过200K带有150万个目标实例的标记图像,它不仅提供了边界框,而且还提供了(相当粗糙的)分割轮廓。以下是一些示例图片:

正如你所看到的,现在的目标更加多样化,它们可以有非常不同的大小。这实际上是一个物体检测的大问题:很难让一个单一的网络同时检测大大小小的物体,这也是为什么MS COCO被证明是一个比PASCAL VOC更难的数据集的主要原因。数据集仍然是非常相关的,在目标检测,实例分割和其他赛道每年举行比赛。
我想谈论的最后一个通用目标检测数据集是目前最大的可用数据集:谷歌的Open Images Dataset。到目前为止,他们到了Open Images V6,它有大约190万张图片和1600万个边界框600个目标类。这相当于每幅图像有8.4个边界框,所以场景相当复杂,物体的数量也更加均匀分布:

这些例子看起来有趣、多样,有时非常复杂:


目标检测数据集:为什么要合成数据?
有10万+人 在看 我哦!
往期回顾


