论文笔记《CityPersons: A Diverse Dataset for Pedestrian Detection》

Abstract

CNN在行人检测上的发展显著,但是考虑训练数据和模型架构上仍有需要解决的问题。我们回顾CNN的设计和适应性使得Faster R-CNN在Caltech上实现先进的结果。

为了从更多更好的数据中得到改进,我们提出CityPersons行人数据集,该数据集在Cityscapes数据集的基础上标注。CityPersons的多样性使得我们第一次实现训练一个的CNN模型能够在多个基准数据集上具有较好的泛化性能。并且使用CityPerson训练的FasterR-CNN模型在Caltech上实现更高的检测率和定位精度。

  • CVPR 2017
  • CityPerson DataSet
  • ShanShan Zhang
  • pdf

理解

本文的创新的主要在两个方面:
1.建立了一个行人检测数据集,包含丰富的信息;
2.证明该数据集训练的分类器泛化性更好。

从作者张珊珊以前的工作看,她对如何标记行人检测数据集是有经验的。16年CVPR她就对caltech进行的重新标记,使得检测器性能有较大的提升。然后这一次又是在别人的数据集基础上进行标记,不同的是该数据集为语义分割数据集,本身没有行人检测所需的bounding box,然后她把在caltech上标记的技巧应用上来,并且利用语义分割信息,简化了可见区域的标注问题。但是本文最大的创新点还是该数据集对检测器泛化性能的影响。该影响可能会使得CityPersons数据集成为可见光行人检测领域的ImageNet。

最后,对目前工作有借鉴的是对Faster R-CNN的改动。改进的思路仍然是提高特征图尺寸、对CityPersons数据集调整proposal的候选尺寸、剔除干扰样本、使用更新的求解器。这些改进有的不是最优的,但是可以作为tracke在以后的优化处理上用到。

1. Introduction

行人检测是计算机视觉的流行领域,广泛的应用于监控、辅助驾驶、移动机器人等。近10年发布了多个行人检测基准数据集,使得该领域得到长足的发展。

虽然在这些基准数据集上相关方法的效果得到长足进步,但是这些方法在实际应用中的效果缺不明朗。我们认为是时候不仅关注数据集内的性能,而是跨数据集间的性能。

最近,一系列卷积神经网络的方法在Caltech鞠准数据集上得到较好的排名。大部分模型是基于Faster R-CNN的变种。我们提出对Faster R-CNN的适当调整就能实现这些变种相同的效果。然而,由于卷积网络是高容量模型,不清楚是否更多的数据能够使这类模型变得更好。

为了推动行人检测领域,我们提出“CityPersons”数据集,具有高质量的标注、丰富的多样性、可以用于训练新的模型或作为新的基准数据集。

我们的主要贡献是:

  1. 提出CityPersons数据集,将公开,并提供在线评估。
  2. 使用CityPerson预训练的Faster R-CNN,通过适当的调整在Caltech和KITTI数据集上实现先进的结果,尤其是对于困难实验(小目标、遮挡),并且定位精度更高。
  3. 使用CityPersons能够实现更好的跨数据集的泛化性能。
  4. 我们的初步试验结果显示。使用语义标签作为增加的监督信息有希望能够改进小目标的检测。

![](http://zavix-image.oss-cn-shenzhen.aliyuncs.com/note/CityPersons- A Diverse Dataset for Pedestrian_Attachments/f10c.png)
![](http://zavix-image.oss-cn-shenzhen.aliyuncs.com/note/CityPersons- A Diverse Dataset for Pedestrian_Attachments/f10d.png)

本文,我们研究了卷积神经网络、数据集和语义标签用于行人检测,所以对这三个方面的相关工作进行讨论。

卷积网络用于行人检测

卷积神经网络在ImageNet、Pascal、MS COCO数据集上实现了较好的分类和检测效果。Faster R-CNN已经成为了标准的检测器架构。许多研究尝试在此基础上扩展,但是少数几个效果更好的方法却具有更简单的架构。一个需要注意的例外的SSD[^23],其使用更简单的架构实现的相似的效果。

早期尝试将convnet用于行人检测的方法,使用传统检测器的输出(主要是决策森林和手工特征),然后convnet对他们进行重新打分(并进行bbox回归)。现在更好的方法是用convnet的输出作为proposal,然后用决策森林进行重新打分(利用卷积特征)。

本文我们提出对Faster R-CNN适当的调整就能实现现金的检测效果,而不需要其他的部件。

行人数据集

过去十年间发布了多个行人检测数据集。INRIA,ETH,TudBrussels,Daimler,这些数据集被更大更流行的Caltech-USA和KITTI超过。这两个数据集都是基于车载视角在大城市中采集,并提供标注的视频序列。

尽管帧数多,但是数据集密度低。一张图像平均1人,遮挡情况数量不足。并且两个数据集都只在一个城市采集,因此行人和背景的多样性受限。

基于Cityscapes数据集的优势,我们在其基础上标注高质量的bbox,保护大量被遮挡的行人,27个不同的城市。数据集的多样性是的在CityPersons上训练的模型更具泛化性。

语义标签用于行人检测

在4.3节,我们采用CityPersons中的语义标签用于训练行人检测器,实现更好的语义建模。我们使用语义标记网络得到的语义概率图作为增加通道输入行人检测convnet中。

2. 一个行人检测convnet

首先建立一个较强的参考检测器,作为我们的试验工具。我们的目标是找到一个直接的架构实现在Caltech-USA数据集上更好的性能。

训练、测试($MR^O$,$MR^N$)

我们训练Caltech模型使用改进的标注,更少的位置错误、更高的召回率、改进的忽略区域、更对齐的bbox)。遵循标准的Caltech评估方法;log miss-rate在0.01到1 FPPI之间。我们同时评估原始标记$MR^O$和改进标记$MR^N$。其他的设置均为Reasonable。

Faster R-CNN

使用Faster R-CNN的默认参数训练,在行人检测上效果不是太好。因为Faster R-CNN在处理小尺度目标(50~70pixel)事的效果不好,而这类尺度目标是Caltech等行人检测数据集上的主要尺寸。为了处理小行人,我们提出了5点改进,使得$MR^O$的漏检率从20.98降到10.27。在本论文写作的时候,Caltech上的最好成绩是9.6,我们的Faster R-CNN排名第三。

改进1 量化 RPN 尺度

Faster R-CNN中RPN的默认尺度是稀疏的[0.5 1 2],并且认为目标尺度的分布是均匀的。然而,当我们观察Caltech的训练数据时,我们发现小尺度行人比大尺度多。我们的目标是让网络生成更多的小尺寸proposals,以至于更好的处理。我们将所有尺寸范围分解为10个小bin,每个bin的样本数量相同。最后使用11个点的尺寸作为RPN的proposal的尺寸。

改进2 输入图像升采样

对输入图像进行升采样,能够提升$MR^O$3.74。我们将其原因归结于升采样后目标的尺寸与ImageNet目标尺寸的分布更接近。同时我们发现,使用更大的升采样因子不能实现更好的提升。

改进3 细化特征步长

Caltech中大部分行人的尺寸为80x40。VGG16的特征步长是16个像素。这样大的步长减少了bbox覆盖行人的机会,强迫网络处理偏移行人较大的bbox的识别。去除VGG16第四个max-pooling层使得特征的步长变为8pixels,帮助检测器更好的处理小目标。

改进4 处理忽略区域

传统的Faster R-CNN是不处理忽略区域的。一般做法是将该区域认为是背景、混淆区域,这样会影响检测器的性能。通过避免选择忽略区域作为负样本训练RPN,我们得到了1.33 MR的提升。

改进5 求解器

我们将Caffe标准的SGD求解器改为Adam,得到了性能提升。

表1显示了我们每个改进加入后的性能提升。

![](http://zavix-image.oss-cn-shenzhen.aliyuncs.com/note/CityPersons- A Diverse Dataset for Pedestrian_Attachments/t1.png)

其他架构

我们也探索了其他架构如SSD,MS-CNN等,但是调整之后没有得到改进的效果。在上述改进后,我们的Faster R-CNN得到10%的改进。

结论

通过适当的调整,Faster R-CNN在Caltech数据集上能够实现较好的性能。我们在后续的实验中将使用该模型。

3. CityPersons数据集

Cityscapes数据集用于城市道路场景的语义分割任务。其包括一个很大且多样的立体视频序列,从德国和周边其他国家的多个城市采集。具有精细的像素级的标注信息,包含30个语义类别,超过5000个图像,采集自27个城市。精细的标注包括行人个体和车辆。另外20000张图像从其他23个城市采集,包括粗糙的语义标签,不标记个体标签。

本论文提出的CityPersons数据集,在Cityscapes基础上建立,为行人检测领域提供了一个新的有趣的数据集。在5000个精细标注的数据集上,我们为每个行人都建立了高质量bbox标记。第3.2节,我们比较了CityPersons与其他数据集在体积、多样性和遮挡上的差异。第4节,我们现实了新数据如何改进在其他数据集上的结果。

3.1 Bounding Box 标注

Cityscapes已经提供了实例级别的标记。但是这些标记只提供了可见区域的像素。直接使用这些标记进行训练会有以下问题:1)box的比例是不规则的会影响bbox的归一化;2)没有对准每个行人,可能在水平和垂直方向上不是行人的中心。3)现有的数据集都是标记整个行人,而不只是可见区域。因此我们需要对这些行人进行重新标记。

精细化分类

Cityscapes数据集对行人的分类为:person和rider。本文我们将所有humans分为四类:pedestrian(walking,running,standing up),rider(riding bicycles or motorbikes),sitting person,other person(非正常姿势)

标注规则

对于pedestrians和riders我们遵循相同的标注规则。我们对其头顶到两腿之间划一条线,然后bbox自动按照固定比例(0.41)生成。这种规则能够实现更加精确的对准效果。行人的可见区域可以通过segment mask自动生成。如图2所示。

![](http://zavix-image.oss-cn-shenzhen.aliyuncs.com/note/CityPersons- A Diverse Dataset for Pedestrian_Attachments/f2.png)

其他类别的person,如sitting和其他persons,没有统一的对准策略,所以我们只提供分割区域的bbox,而不是全身的bbox。

同时,我们要求标注者在图像中搜索包含虚假行人的区域,例如雕塑、海报、模特、镜子反光等,都被标记为ignore区域。

标记工具

由于我们已经有了每个个体的segment mask,我们标记更加快速。基于此,我们开发了一个新的标注工具,避免人工在图像上寻找分割实例。该工具自动提出一个行人分割区域,询问标注者对其进行细化分类。然后对其进行全身标记。感谢高质量的分割标记,使用该工具避免了遗漏行人,尤其是人气场景。但是忽略区域的标记还是需要人工在全图上搜索。

3.2 统计

体积

我们数据集的bbox标注的数量如表2所示。一共5000张图像,35k个行人,13k个忽略区域。训练、验证、测试集的设置按照Cityscapes。

![](http://zavix-image.oss-cn-shenzhen.aliyuncs.com/note/CityPersons- A Diverse Dataset for Pedestrian_Attachments/t2.png)

多样性

我们比较了Caltech,KITTI,CityPersons的多样性如表3所示。由于KITTI测试集的标注非公开,我们只考虑训练集。

![](http://zavix-image.oss-cn-shenzhen.aliyuncs.com/note/CityPersons- A Diverse Dataset for Pedestrian_Attachments/t3.png)

CityPersons的训练集包括18个不同城市,3种季节,多种天气条件。Caltech和KITTI数据集只在一个城市、一个季节采集。

从密度上看,我们的数据集平均每个图像有7个行人,其他的大约只有1个行人。

独立的行人也是多样性的重要体现。我们的数据集中,独立行人接近20000个,其他两个分别为1300个,和6000个。注意,在KITTI和CityPersons中,采样间隔非常大,因此每个行人都认为是独立行人。

CityPersons提供了更加精细的标记。如图3所示,其中大部分是行人,骑行和坐着的人只有10%和5%。

![](http://zavix-image.oss-cn-shenzhen.aliyuncs.com/note/CityPersons- A Diverse Dataset for Pedestrian_Attachments/f3.png)

遮挡

Cityscapes数据集是通过车辆进行采集,其中包含一些著名城市的中心,如法兰克福、汉堡。有些图片中包含100多个行人,每个都有很多的遮挡。如此多的遮挡情况在其他数据集上是很少见的。图4显示了不同遮挡等级的行人的分布。我们注意到Caltech种包含60%的行人是完全可见的,而CityPersons中是30%。这表明,我们有更多的遮挡情况,这也使得我们的数据集对处理遮挡更有兴趣。并且在Resonable子集中,Caltech大部分都是非遮挡行人,而CityPersons得遮挡情况更多。

![](http://zavix-image.oss-cn-shenzhen.aliyuncs.com/note/CityPersons- A Diverse Dataset for Pedestrian_Attachments/f4.png)

为了更好的理解那种情况的遮挡更多,我们将所有遮挡模式量化为11种,图5显示了其中的9种。如图5所示。前两种遮挡基本覆盖了resonable,有55.9%。第三、第四个情况是左边或右边遮挡。除了这些之外,还有30%的其他遮挡类型。遮挡类型的分布多样性使得数据集更加具有挑战性。

3.3 基准

本论文发表时,我们将建立一个CityPersons的网站,包含训练和验证集下载。以及一个在线评估服务器用于计算提交的测试集的结果。

![](http://zavix-image.oss-cn-shenzhen.aliyuncs.com/note/CityPersons- A Diverse Dataset for Pedestrian_Attachments/f5.png)

我们遵循Caltech相同的评价规则,分为不同的自己进行评估。本文中MR代表log平均漏检率,在Resonable设置下。在评估行人检测性能时,cyclists、sitting、其他行人、忽略区域不予考虑,同时,检测到该区域的部分不认为是虚警。

3.4 基准实验

为了更好的理解CityPersons数据集的困难,我们用三个检测器训练评估。ACF、Checkerboard、Faster R-CNN。我们队Faster R-CNN的设置从Caltech实践经验中得到。由于CityPersons的每张图像有7个行人,因此我们只采用1.3倍升采样来匹配12GB的GPU内存。

我们使用CityPersons进行再训练,然后用验证集验证。图6显示了三个不同的检测器在两个数据集上的对比。FasterRCNN相比于ICF检测器有巨大提升,三个检测器的排名在两个数据集上相同,并且CityPersons得分更低,说明更具挑战性。

![](http://zavix-image.oss-cn-shenzhen.aliyuncs.com/note/CityPersons- A Diverse Dataset for Pedestrian_Attachments/f6.png)

为了理解数据量队训练效果的影响,我们显示了随着数据增加的性能的提升如图7所示。我们可以看见随着数据的增加漏检率降低,说明数据量对CNN模型有较大影响。

考虑到速度和质量的权衡,我们使用交替模型来开关是否升采样,速度快了两倍,但是性能降低2%。

![](http://zavix-image.oss-cn-shenzhen.aliyuncs.com/note/CityPersons- A Diverse Dataset for Pedestrian_Attachments/f7.png)

4. 使用CityPersons改进质量

CityPersons在手,我们有两个不同的方法提升行人检测结果。我们将会看到,CityPersons能够提升小尺度行人、遮挡、的检测率,并且定位更精确。

4.1 跨数据集的泛化性

通常,一个检测器在基准集的训练集上训练。因此在多个基准集评价时都进行重新训练。然而,我们希望在一个数据集上训练然后在多个基准集的效果都很好。由于CityPersons的大量、多样性,我们考虑,这个数据集能否训练出一个具有良好泛化性的检测器呢?

为了体现CityPersons的跨数据集的泛化能力,我们分别在Caltech、KITTI、CityPersons上训练分类器,然后将他们在6个不同的数据集上进行测试。检测器分别为ACF和Faster R-CNN。

![](http://zavix-image.oss-cn-shenzhen.aliyuncs.com/note/CityPersons- A Diverse Dataset for Pedestrian_Attachments/t4.png)

总体上看Faster R-CNN比ACF的泛化性更好。CityPersons训练的分类器的平均MR比其他两个数据集好。

4.2 更好的预训练改进质量

我们可以发现,CityPersons可以作为很好的训练原数据,应用于不同的数据集。即可以用CityPersons进行预训练,或者是额外的训练数据来改进性能。

例如,我们的目标域是Caltech,我们可以先在CityPersons上进行训练,然后在Caltech上finetune。表5显示了性能的提升。

![](http://zavix-image.oss-cn-shenzhen.aliyuncs.com/note/CityPersons- A Diverse Dataset for Pedestrian_Attachments/t5.png)

同理,在KITTI上也是。

![](http://zavix-image.oss-cn-shenzhen.aliyuncs.com/note/CityPersons- A Diverse Dataset for Pedestrian_Attachments/t6.png)

4.3 开发Cityscapes的语义标签

![](http://zavix-image.oss-cn-shenzhen.aliyuncs.com/note/CityPersons- A Diverse Dataset for Pedestrian_Attachments/f9.png)

使用FCN-8s在Cityscapes的粗糙语义标记图上进行训练,将FCN-8s的结果作为一个通道输入给convnet作为语义补充信息。实现大约0.6%的提升。

![](http://zavix-image.oss-cn-shenzhen.aliyuncs.com/note/CityPersons- A Diverse Dataset for Pedestrian_Attachments/t7.png)