CSRNet: Dilated Convolutional Neural Networks for Understanding the Highly Congested Scenes

本文首先针对MCNN,提出了其两个缺点:大量的训练时间和无效的分支架构。


在这里插入图片描述

MCNN由于使用了多列网络,参数比较多,需要训练时间长容易理解。可是作者为什么说MCNN的多列是“无效的分支”呢?文中给出了实验。
MCNN的主要设计目的是利用每一列的不同感受野来估计不同拥挤等级的场景。即设计者想让三列网络提取出不同的特征。作者取出了Shanghai Part_A中的50个样例,分别输入到MCNN的三列网络中,得出了如下结果


在这里插入图片描述

作者认为,这三列网络的错误率曲线非常相似,证明了MCNN的三列网络提取出的特征是相似的,这与MCNN的设计初衷是相悖的。
既然加宽网络不能达到目的,作者提出了加深的单列网络。这里作者又提出了多列网络的缺点:
(1)训练时间过长,多列网络往往意味着更多的参数。
(2)多列网络的各列表现并没有很大的不同(基于以上实验提出)。
(3)多列网络往往需要分类,但是复杂场景下的人群数量往往在不断改变,很难实时定下人群的密度等级。而且使用一个好的分类器往往意味着需要更多的参数,而这会使网络更加复杂冗余。而且,由于大量参数都用于分类,生成密度图的参数所占比重就会减少,这会造成准确率的进一步降低。

本文提出的CSRNet由两部分组成。前端直接使用了VGG-16网络的卷积层,因为其由强大的迁移学习能力和灵活的结构。为了生成高质量的密度图,必须保证VGG-16网络的输出不能太小。因此作者使用了空洞卷积。

这里需要首先理解一下什么是空洞卷积。

Dilated Convolutions,翻译为扩张卷积或空洞卷积。扩张卷积与普通的卷积相比,除了卷积核的大小以外,还有一个扩张率(dilation rate)参数,主要用来表示扩张的大小。扩张卷积与普通卷积的相同点在于,卷积核的大小是一样的,在神经网络中即参数数量不变,区别在于扩张卷积具有更大的感受野。感受野是卷积核在图像上看到的大小,例如3×3卷积核的感受野大小为9。


在这里插入图片描述
在这里插入图片描述

空洞卷积的一个突出优点是在提高了感受野的同时,卷积核的大小不变,也就意味着参数的数量不变。

文中说,空洞卷积层是池化层的一个替代方案。尽管池化层被广泛地用来维持不变性和控制过拟合,但是仍然会剧烈减少空间分辨率,这意味着空间信息的丢失。虽然使用解卷积层可以减少信息丢失,但是会增加复杂性。从动图也可以看出来,同为5×5的感受野,若使用最大池化层则仅仅使用其中一个像素的信息,丢弃了其余24个。使用空洞卷积则利用了9个像素的信息,所以最终结果信息会多于使用池化层。

文中列出了4种空洞卷积结果,扩张率分别为1、2、2与4、4。通过实验比较选择了扩张率为2的结构。最后经过实验,效果非常好。

猜你喜欢

转载自blog.csdn.net/m0_37973735/article/details/87868439