Scale Match for Tiny Person Detection

一、介绍

  • 针对微小人物检测,本文提出了一种尺度匹配的方法,即将网络预训练的数据集(COCO数据集)和检测器学习(Tinypersons数据集)的数据集进行尺度匹配。

二、相关工作

  • 人物检测数据集
    INRIA [2], ETH [6], TudBrussels [24], Daimler [5],Caltech-USA [4], KITTI [8] and CityPersons [27]这些数据集图片容量大,范围广,标识的也很好,高分辨率,人物大小较大,不适合作为微小目标检测的数据集。
    TinyPerson:远距离,复杂背景下的微小人物数据集,图片主要是海岸和沙滩周围,低分辨率,大多数人物的像素范围都小于20像素。
    TinyNet涉及远距离目标检测,但是其不公开使用。WiderFace主要针对的是脸部的检测,其数据集的绝对大小分布与Tinyperson十分接近,但是其有更高的分辨率和更大的相对尺寸。
    Scale Match for Tiny Person Detection_第1张图片
  • 基于CNN的人物检测
    R-CNN为当下流行的检测框架。 OverFeat在图像金字塔上采用 Conv-Net作为滑动窗口检测器。R-CNN采用基于选择搜索的候选区域方法,然后使用 Conv-Net来分类尺度归一化的候选域。空间金字塔池化(SPP)在特征图上采用R-CNN来提取单幅图的尺寸大小,验证可得基于区域的检测方法效果更好。Fast R-CNN 和Faster R-CNN针对复杂任务形成了一个统一的目标检测器。Dai 等人提出的 R-FCN,采用位置敏感池化ROI的方法得到了更快更好的检测器。
    由于基于区域的检测器十分复杂,耗时且为单阶段检测器,所以又提出了YOLO和SSD这类方法来加速处理过程,但是该类方法的检测性能有所下降,特别是对微小目标的检测。
  • 小人物检测
    Lin et al. [14]提出了一种多尺度特征扭曲方法,即特征金字塔网络,该网络采用横向连接的自顶向下结构。 Zhang et al. [28] 提出了一种可对面部进行比例缩放的人脸检测框架,该方法用来处理不同比例的面部。J Li et al. [13] 提出了用于人脸检测的DSFD,这是SOTA开源人脸检测器。Hu et al. [12]提出图片的上下内容之间的关联是非常重要的,并定义了可利用巨大接收域的模板。 Zhao etal. [30] 提出了一个金字塔场景解析网络,该网络采用了合理的上下文结构。Shrivastava et al. [22]提出了一个在线实例探查方法,该方法可以大大提高小物体检测的性能。

三、 Tiny Person 基准

  • 物体的大小为边界框区域面积的平方根。
    Gij =(xij , yij , wij , hij )表示数据集中第i个图片Ii中第j个物体边界框。
    (xij , yij ) 表示边界框左上角点的坐标,wij , hij是边界框的宽度和高度。
    Wi, Hi表示第i个图片Ii的宽度和高度。
    某个物体的绝对大小和相对大小为:
    Scale Match for Tiny Person Detection_第2张图片
    接下来提到的物体大小,默认是物体的绝对大小。
    Scale Match for Tiny Person Detection_第3张图片

  • 基准描述
    1 数据集获取:
    Tiny Person中的全部图片都是从网上搜集的。首先,从不同网站上搜集高分辨率的视频。然后以50帧为间隔,从视频中采样图片。最后我们去除一些重复的图片,并手动标记出72651个物体矩形框。
    2 数据集特点:
    1)从图一和表一可以看出来,相比于其他代表性的数据集,Tiny Person中的人物十分的微小,这是该数据集的主要特点。
    2) 从表一可以看出,Tiny Person中人物的纵横比差异十分的大。由于人物的位置和视角的多变性,导致人物更加的复杂多变,对其检测更加困难。除此之外,该数据集可以对现存的一些在人物位置和视角多变的数据集上进行进一步的补充。
    3) 在该数据集中,我们主要针对海岸周围的人物进行检测,这是因为它能够运用到海上快速救援和海洋周围的防御。
    4)该数据集中存在大量的图片含有密集的物体(每张图片中超过200个人物),因此该数据集也可以用作其他任务,比如:人员清点。
    3 数据集注释规则:
    在该数据集中,我们将人物分为海上人和陆地人。我们确定了以下4个规则来判断某个人物该属于哪个类别。 1)在船上的人被视为海上人;2)躺在水中的人被视为海上人;3)身体超过一半在水中的人被视为海上人;4)其他被视为陆地人。
    在该数据集中,有以下4中情况,我们会将人物标记为忽略区域。1)人群,当用矩形框标记时,很难一一将其分开; 2)模棱两可的区域,很难清楚地区分是否有一个或多个人; 3)在水中的倒影;4)有些物体很难被识别为人类,也直接将它们标记为“忽略”。
    标注示例如图2所示:
    Scale Match for Tiny Person Detection_第4张图片
    4 评估

  • 我们通过平均准确率AP和丢失率MR来评估其性能的好坏。为了对实验进行更多的细节对比,我们将物体的大小分为3个级别: tiny[2, 20], small[20, 32] and all[2, inf]。对于tiny[2, 20], 又分为三个小的级别:tiny1[2, 8],tiny2[8, 12], tiny3[12, 20]。在性能评估时,我们将交并比IOU的阈值设为0.5。由于小人物检测的许多应用都涉及到寻找人员而不是精确定位(例如沉船搜索和救援),因此IOU阈值0.25也用于评估。
    对于Caltech和CityPersons,采用IOU标准进行性能评估。在Caltech和CityPersons中,大多数忽略区域的大小与行人的大小相同。但是,在TinyPerson中,大多数忽略区域都比人的区域大得多。 因此,我们将忽略区域的IOU标准更改为IOD(IOD标准仅适用于忽略区域,其他类仍使用IOU标准),如图3所示。在训练和测试时,我们将不确定的区域视为忽略区域。
    Scale Match for Tiny Person Detection_第5张图片

    5 训练和测试集
    训练和测试集是通过将图像随机分为两个子集而构建的,而来自同一视频的图像不能被分到相同的子集中。
    针对人物检测,我们将“海上人”和“陆地人”视为同一类(人)。 对于检测任务,我们仅使用有效人数少于200人的这些图像作为数据。

    • 数据集挑战
      Tiny absolute size
      Tiny relative size

四、小人物检测

  • 众所周知,用于训练的数据越多,性能就越好。但是,为指定任务收集数据的成本非常高。通常的做法是在额外的数据集上训练一个模型作为预训练模型,然后在任务指定的数据集上对预训练模型进行微调。由于这些数据集的数据量巨大,因此预训练的模型有时会在一定程度上提高性能。但是,当这些额外的数据集的域与任务指定的数据集的域相差很大时,性能的提升是有限的。我们如何使用带有大量数据的额外公共数据集来帮助为特定任务训练模型,例如小人物检测。公开可用的数据集在对象类型和尺度分布方面与TinyPerson完全不同,如图1所示。受人类认知过程的启发,当人类了解与尺度相似的对象有关的更多信息时,人类将变得擅长做某些与尺度相关的任务。 我们通过保持TinyPerson与额外数据集之间的尺度一致性,为小人物检测提出了一种简单而有效的尺度转换方法。

  • 对于数据集X,我们将X中对象大小为s的概率密度函数定义为Psize(s; X)。 然后,我们定义一个尺度变换T,该变换用于将额外数据集E中的对象大小概率分布转换为目标数据集D(TinyPerson)中的概率分布,如式(3)所示:
    在这里插入图片描述
    在不失一般性的情况下,将MS COCO用作额外的数据集,并使用Scale Match进行尺度变换T。
    Scale Match for Tiny Person Detection_第6张图片

  • Scale Match
    Gij =(xij,yij,wij,hij)表示数据集E的第i个图像中的第j个对象。尺度匹配方法可以简单地描述为以下三个步骤:
    Scale Match for Tiny Person Detection_第7张图片
    其中Gij是比例匹配后的结果。 当E中存在大量目标时,尺度匹配将应用于E中的所有对象以获得T(E),Psize(s; T(E))将接近Psize(s; D)。算法1描述了尺度匹配算法的详细信息。
    Scale Match for Tiny Person Detection_第8张图片
    1)估计Psize(s; D)
    在尺度匹配中,我们首先根据机器学习中的一个基本假设估计Psize(s; D):随机采样的训练数据集的分布接近实际分布。 因此,所有数据的概率分布Psize(s; D)近似等于训练集的概率分布Psize(s; Dtrain)。
    2)校正直方图
    离散直方图(H,R)用于估算Psize(s; Dtrain),R [k]-和R [k]+是其直方图中第k个bin的大小边界,K是直方图中的bin个数,N是Dtrain中的对象数,Gij(Dtrain)是数据集Dtrain的第i个图像中的第j个对象,H [k]是等式4中给出的第k个bin的概率:
    在这里插入图片描述
    但是,数据集分布的长尾巴(如图4所示)使直方图拟合效率低下,这意味着许多bin的概率接近0。因此,提出了一种更有效的方法来校正直方图(如算法2中所示)。 SR(稀疏率)用于计算所有bin中有多少bin的概率接近于0,是H拟合效果的量度。
    在这里插入图片描述
    其中,K定义为H的单元数,设置为100,SR的α设置为10,1 /(α*K)用作阈值。 使用校正后的直方图,TinyPerson的SR从0.67降至0.33。 校正后的直方图H更少地关注对分布贡献较小的长尾部分。
    Scale Match for Tiny Person Detection_第9张图片
    3)图像级缩放
    对于额外数据集E中的所有对象,我们根据Psize(s; Dtrain)来采样s,并将该对象的大小调整为s。在本文中,我们没有调整对象的大小,而是调整了容纳对象的图像的大小,以使对象的大小达到s。 如果仅调整对象的大小,会破坏图像结构。 但是,在一幅图像中可能有多个具有不同大小的对象。因此,我们对每张图像只采样一个s,并保证该图像中对象的平均大小为s。
    样本s :首先,我们根据H的概率对bin的索引进行采样。其次,根据 对象的最小大小等于R[k]-和最大大小等于 R[k] +的均匀概率分布来对s进行采样。第一步,要确保s的分布接近于Psize(s; Dtrain)。 第二步,使用统一的采样算法。

  • Monotone Scale Match (MSM) for Detection
    尺度匹配可以将其他数据集中对象的大小分布转换为指定任务的数据集大小,如图5所示。尽管如此,“尺度匹配”可能会使原始大小混乱:一个很小的对象可能会抽样成一个很大的对象,反之亦然。 所以,进一步提出了可以保持大小单调性的“单调尺度匹配”。
    众所周知,用于图像增强的直方图均衡和匹配算法可保持像素值的单调变化。 我们遵循这种想法,对物体大小进行单调更改,如图6所示,利用单调函数f将数据集E中的对象大小s映射到s ,使s的分布与Psize(s,Dtrain)相同。 对于任何s0∈[min(s),max(s)],其计算公式为:
    在这里插入图片描述
    其中min(s)和max(s)分别表示E中对象的最小大小和最大大小。
    Scale Match for Tiny Person Detection_第10张图片

五、实验

  • 实验设置
    1 忽略区域
    在Tiny Person中,我们必须对训练集中的忽略区域进行处理。由于忽略区域始终是一群人(而不是一个人)或不能被视为前景(正样本)或背景(负样本)的其他事物。在 训练时有两种处理忽略区域的方法:1)用训练集中图像的平均值替换忽略区域; 2)不要来自忽略区域的反向传播梯度。 在本文中,我们只是简单地采用第一种方法来忽略区域。
    2 图像裁剪
    TinyPerson中的大多数图片尺寸都很大,直接使用容易导致GPU内存不足。 因此,在训练和测试过程中,我们将原始图像切成一些重叠的子图像。 然后,使用NMS策略将子图像的所有结果合并为一个相同的图像进行评估。尽管图像切割可以更好地利用GPU资源,但存在两个缺陷:1)对于FPN,纯背景图像(此图像中没有对象)将不会用于训练。 由于图像切割导致许多子图像将变成纯背景图像,从而利用不充分; 2)在某些情况下,NMS无法很好地合并重叠区域中的结果。
    3 训练细节
    代码基于facebook maskrcnn-benchmark。 我们选择ResNet50作为骨干。 如果未指定,则选择Faster RCNN-FPN作为检测器。总共 训练12轮,基本学习率设置为0.01,在第6轮和第10轮后衰减0.1。 我们在两个2080Ti GPU上进行训练和评估。 通过聚类将锚点大小设置为(8.31、12.5、18.55、30.23、60.41),长宽比设置为(0.5、1.3、2)。 由于TinyPerson中某些图像上有密集的对象,因此对每张图片,检测器输出的最大矩形框个数都设置为200。数据增强:仅采用水平翻转来增强训练数据。 与将所有图像调整为相同大小的其他基于FPN的检测器不同,我们使用原始图像/子图像的大小而不进行任何缩放。

  • Tiny Person检测基准
    对于TinyPerson,分别选择了代表一级锚基检测器,无锚检测器和二级锚基检测器的代表RetinaNet [15],FCOS [23],Faster RCNN-FPN进行实验比较。 为了保证收敛,我们对RetinaNet使用Faster RCNN-FPN的一半学习率,对FCOS使用Faster RCNN-FPN四分之一的学习率。 对于自适应FreeAnchor [29],我们使用与Adaptive RetinaNet相同的学习率和主干,其他参数设置与FreeAnchor的默认设置相同。 在图1中,WIDER Face和TinyPerson在物体的绝对大小分布上类似。 因此,专门用于微小面部检测的最新DSFD检测器[13]也在TinyPerson上进行了比较。
    1)定位不良
    如表5和表6所示,当IOU阈值从0.25上升为0.75时,检测性能会明显下降。 由于微小物体的绝对和相对大小,在TinyPerson中很难实现较高的定位精度。
    2) 空间信息
    由于微小物体的大小,空间信息可能比网络模型的层数更重要。因此,对于RetinaNet,我们使用FPN的P2,P3,P4,P5,P6代替P3,P4,P5,P6,P7,这与Faster RCNN-FPN相似。我们将调整后的版本命名为Adaptive RetinaNet。与RetinaNet相比,它具有更好的性能(AP tiny 50提高了10.43%)。
    Scale Match for Tiny Person Detection_第11张图片
    最佳检测器:与MS COCO相比,RetinaNet和FreeAnchor的性能要优于Faster RCNN-FPN。如果样品不平衡得到很好解决,一级检测器也可以超越两级检测器[15]。与RetinaNet和Faster RCNN-FPN相比,基于无锚的检测器FCOS具有更好的性能。但是,当诸如TinyPerson中的物体的尺寸变得很小时,所有探测器的性能就会下降很多。 RetinaNet和FCOS的性能较差,如表5和表6所示。对于微小物体,两级检测器显示出优于一级检测器的优势。Li et al. [13] 提出了用于人脸检测的DSFD,它是代码开源的SOTA人脸检测器之一。但是,由于相对大小和纵横比之间的巨大差异,它在TinyPerson上的表现不佳,这也进一步证明了提出的TinyPerson面临巨大的挑战。通过性能比较,选择Faster RCNN-FPN作为实验的基准。

  • 尺度匹配分析
    1)TinyPerson
    通常,尽管ImageNet拥有更多数据,但对于检测而言,MS COCO上的预训练通常比ImagegeNet上的预训练具有更好的性能。但是,由于MS COCO的物体尺寸与TinyPerson的物体尺寸完全不同,因此在MS COCO上预训练的检测器在TinyPerson上的提升不大。然后,通过将每个图像的短边设置为100并保持高宽比不变,我们获得了一个新的数据集COCO100。 COCO100中物体大小的平均值几乎等于TinyPerson的平均值。但是,在COCO100上预训练的检测器的性能甚至更差,如表7所示。将对象大小的均值转换为TinyPerson中的值是无效的。然后我们通过基于尺度匹配的方法将MS COCO的整个分布转换为TinyPerson的分布来构造SM COCO。使用在SM COCO上预训练的检测器,我们得到的AP tiny 50提高了3.22%,如表7。使用MSM COCO作为预训练的数据集,检测性能AP tiny 50进一步提高到了47.29%,如表7。
    2)Tiny Citypersons
    为了进一步验证该尺度匹配方法在其他数据集上的有效性,我们在Tiny Citypersons上进行了实验,并获得了类似的性能提升,如表8。Scale Match for Tiny Person Detection_第12张图片
    六、 结论

  • 在本文中,引入了一个新的数据集(TinyPerson),用于检测微小的物体,特别是在大型图像中小于20像素的微小物体。 极小的物体对现有的人物检测器提出了巨大的挑战。我们建立了小人物检测的基准,并通过实验发现对象尺度不匹配可能会使特征表示和检测器恶化。 因此,我们提出了一种简单而有效的方法,尺度匹配,用于微小人员检测。 我们的方法受到人类认知过程的启发,而“尺度匹配”可以更好地利用现有的注释数据,并使检测器更加复杂。 Scale Match被设计为用于对象缩放处理的即插即用通用块,它为常规的对象检测任务提供了新的见解。

你可能感兴趣的:(Scale Match for Tiny Person Detection)