ACSCP(Crowd Counting via Adversarial Cross-Scale Consistency Pursuit)(部分翻译)

0、写在前面

        第一次写博客翻译论文,翻译可能有点生硬,部分字词采用英文,但是翻译过程确实比仅仅阅读论文体会得多了一些!只翻译了其中的重点章节,其他部分未进行翻译。

         欢迎转载,转载请注明出处!

1、密度回归回顾分析

       最近state-of-art人群密度估计(人群计数)算法主要选择基于L2的损失函数来回归人群密度图。为了应对人头不同尺寸的变化,[37][3][20][28]使用了多路卷积网络融合的方法用于密度图的预测,每路CNN具有不同的卷积核大小,用于提取不同尺寸的人头特征。假设Si表示第i路尺度CNN网络的前向计算,那么总体的损失函数可表示为:

                                                                      

       这里,M表示ground truth密度图,F(S1,S2,S3…)表示多路scale paths输出密度图的融合。这些方法有以下两个问题:

       1)虽然应用了不同卷积核的CNN网络来提取不同尺度的特征,但是这些路之间处于一种竞争、互相抵触的方式(competing way),而不是互相合作的方式(collaborating way)。也就是他们各自都试图最小化回归损失来预测相应尺度的准确的人群密度图。由于模型的平均效果,对于每个子网络很容易生成一个模糊的密度图。这是基于密度图估计的方法固有的缺点,不可能通过简单的多尺度Conv paths来减弱。请参见下图的解释。

                                                     

        2)在众多的scale-sensitive paths的多尺度密度图估计网络中,缺少一个标准。由于每个子网络的input paths会随着人头尺寸的变化而behaves differently,给他们输入相同的patch,不同子网络的输出不同(有时相差会很大),这直接导致了密度估计的不可靠。如果将一个图像分为互不重叠的几部分,很可能各子网络得到的人数估计的和并不等于将整个图像输入网络直接估计得到的人数。换句话说,就是现有的多尺度人群密度估计网络对如何提取local patches非常敏感,patch尺寸的一个小小的变化可能会导致人数估计很大的变化。

        为了解决这两个问题,作者提出了一个前卫的人数估计算法结构,称之为对抗跨尺度一致性追求网络(ACSCP)。

2、网络结构

                                       

       上图为ACSCP的网络结构,主要受最近pixel-to-pixel translation结构成功的启发。其中,生成网络G是一个从输入为人群图像patch到相应通尺寸密度图的端到端射。为应对尺度变化,使用了一个具有两个back-to-back encoder-decoder结构的网络结构,Glarge和Gsmall。这两个互补的生成器互相合作,Glarge提取大尺度信息,Gsmall提取小尺度细节。Glarge具有8个Conv层和8个deConv层,每个Conv层后面有BN层和LeakyReLU,每个deConv层后面有BN层和ReLU(除去最后一层),最后decoder层连接了一个tanh激活函数。注意deConv层是前面Conv层的镜像。另外,为抑制过拟合,前3个deConv层后面添加了ratio=0.5的dropout层,在镜像对称的卷积和deConv层中间还添加了skip连接,用于提升网络性能和效率。Gsmall和Glarge具有类似的结构,他们的输入分别为240*240和120*120,输入和输出的尺寸相同。

                                                         

3、基于对抗的密度估计

       前面提到由于网络的平均作用,基于L2回归的多尺度网络会导致产生的密度图模糊,受最近GAN网络成功应用的影响,作者提出了一种对抗损失。这里涉及到的生成器G和判别器D类似于两人在玩最小最大化游戏,训练G用于生成图像来迷惑D,而训练D用于从ground truth中区分合成的图像。在人群计数问题中,从图像生成人群密度图的对抗损失表示为:

                                                                 

       这里x表示训练patch,y表示相应的ground-truth密度图,G试图将其最小化,而D试图将其最大化。

       从ACSCP结构可知,判别器的输入是成对串联的crowd patches和密度图(生成的和真实的)。判别器有5个Conv层作为特征提取器,前4个Conv层后带有BN层和LeakyReLU激活层,最后用一个tanh激活函数来回归其概率分值,从-1.0到1.0,用于表明其输入是real(接近1.0)或fake(接近-1.0)。判别器结构和网络参数:C(48, 4, 2) − C(96, 4, 2) − C(192, 4, 2) − C(384, 4, 1) − C(1, 4, 1) – tanh,这里C表示Conv层,其中的数字代表滤波器数量、尺寸、步长。同样,ACSCP网络结构有两个判别器,Dlarge和Dsmall,他们具有同样的结构。

       相对于回归损失,对抗损失的有如下优点:由于传统pixel-wise欧拉损失依赖于特定像素的偏差大小,当其遇到尖锐的边缘和异常值时,它往往会产生模糊值,从而产生一个平均、模糊的密度图。而对抗损失给定了一个二值判断,是真还是假,使其更加匹配其真实分布。原则上这可以降低模糊,并且使其密度图更加尖锐。

       由于缺少来自ground truth的惩罚措施,只是简单的使用对抗损失可能会导致其空间结构异常(aberrant spatial structure),甚至在输入label空间中不存在。受[9,21,35]的启发,作者引入了两个卷积损失来平滑、提升算法性能。

       1)欧拉损失:在模型中,L2损失使得从G生成的密度图不仅用于迷惑D,还可以使其在L2层面上更加接近ground truth。给定W*H*C的图像,像素级别的(pixel-wiseL2损失定义为:

                                                                         

       这里,代表生成的密度图的像素,代表ground truth密度图的像素,C=3

       2)感知损失:此模型中,生成图像的高层感知特征和目标图像分别来自[26]中预训练的VGG-16relu2_2层。其基本思想是,通过最小化两幅图像的感知差异,生成图像可以在语义上和目标图像更加相似。感知损失定义为:

                                                                         

       这里,代表生成密度图中高层感知特征像素,代表ground truth密度图中高层感知特征像素,C=128。整体损失可以表示为:

                                                                           

       这里,λeλp是欧拉损失和感知损失的权重,受[35]启发,这里设为λep=150

4、跨尺度一致性追求损失

       作者提出了一种新的regularizer——跨尺度一致性约束来限制父子密度图之间的跨尺度一致性,这种先进的约束目的在于最小化整体大图像中人数估计和4个子图像中人数估计的和之间的残差。这种正则化结构是为了解决之前密度估计方法的不足,由于每个子网络只对特定尺度的人头敏感,而且他们之间不是处于一种互补的方式,这种不足很容易产生不一致的结果。训练时,将一个crowd patch送入GlargeGsmall,可以获得密度估计图Pparent4Pchild,按照Pparent4Pchild组合得到Pconcat。跨尺度一致性追求损失定义为PconcatPparent之间的discrepancy/距离,这里可以通过L2正则化计算得到。W*H*C的密度图的跨尺度一致性损失可以表示为:

                                                                          

       这里代表Pparent中的像素,代表Pconcat中的像素,C=3。通过最小化这个regularizer,父密度图和子密度图之间的距离会变小。如果知道每个子patchground truth人数,也可以对每个Pchild定义L2损失,这也许会有和提出的跨尺度一致性损失类似的作用。必须强调的是,大多数情况下我们只知道一张图像的总人数,却没有任何局部人头位置的标注或ground truth密度图,因此只有作者提出的跨尺度一致性regularizer。因此这种新的regularizer更具有普适性。

       上面的4个损失函数可以加权求和得到最终损失:

                                                                              

       这里,λc代表跨尺度一致性追求损失,如果λc=0,两种生成器将会独立训练。为了确定其值,在4.4中关于参数敏感性做了一个实验,最终取值为λc=10

5、训练细节

       训练时,输入是由crowd patch及其对应的密度图,先输入到大尺度子网络Glarge,然后平均分为无重叠的4等份输入到小尺度子网络Gsmall。每个子网络都是联合训练的,使用RMSprop优化器,学习率为0.00005。遵循的更新原则:每次迭代进行4Gsmall更新+1Glarge更新。

       为增加训练数据,一个普遍方法是调整输入图像pair的尺寸到一个较大的尺寸进行随机裁剪一个特定尺寸的图像pair。但是在人群计数任务中这种数据增强的方式并不适用,因为图像的临近插值和二插值算法不可避免地改变了密度图的人群数目。因此我们采用了以50%概率添加边缘和反转图像的方式。

       训练模型到收敛用了300epoch,为了平衡训练各个子网络,epoch<=100,取λc=0epoch>100λc=10,继续训练。最终将训练好的生成器Glarge用于预测密度图用于测试,训练和测试都是基于Torch7框架实现的。

6、ShanghaiTech数据集实验

       为增加训练数据集,作者将所有图像尺寸调整到720*720,并从中截取一小块,每个小块是240*240,且截取自不同的位置。ground truth密度图通过几何自适应高斯核函数生成,测试时用240*240的滑窗在测试图像上以50%重叠度截取一小块作为训练好的生成器的输入。上述的方法同样适用于其他数据集的测试。

7、实验参考

        作者并没有公布算法实现过程,算法实现请参考ACSCP_cGAN,拜谢!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值