Top-Down Feedback for Crowd Counting Convolutional Neural Network

本文提出一种结合上下文信息的人群密度估计方法,通过top-down反馈修正bottom-up CNN网络的密度预测,有效解决了背景误检问题,提升了人群计数准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文方法:Feedback as a Correcting Signal

人群密度系统依赖于CNN回归人群密度图,但是这些回归模型不能够独立检测并对人群进行计数。回归模型直接学习人群特征而非个人特征,导致 树、聚集的背景这些类似人群特征被回归模型检测为人群。该问题可以通过密度回归器利用high-level上下文信息解决。因此本文的方法采用top-down feedback作为修正信息评估CNN的密度预测结果。top-down network学习如何将high-level context与CNN回归器的low-level response关联起来。top-down network 产生mask,可以衡量低层的feature activations,对错误检测赋予较小权重,合理结果赋予较大的权重,从而抑制错误检测,通过正确检测。

Top-Down Feedback CNN

本文提出的模型中包含一个bottom-up CNN用于密度预测,一个top-down CNN 用于反馈。bottom-up network包含两列CNN,CNN网络最后一层的特征图通过1*1大小卷积核进行卷积得到密度图。Bottom-up网络包含两列,第一列和第二列网络均包含4个卷积层和两个Max Pooling层,第一列网络第一个卷积核大小为9*9,接受域比较大适合处理big face等情况。第二列网络大小为5*5,适用于处理密集人群等情况。两列的feature map通过1*1大小卷积核处理得到最终的density map。

top-down 网络与bottom-up 网络平行,将bottom-up 网络输出的high-level feature map作为网络输入产生feedback。使用bottom-up CNN网络中pooling layer处理之前的feature map,能够保证top-down网络能够接受未损失的信息。2(b)中,bottom-up CNN网络C1c和C2c层的feature map进行拼接并进行MP3a池化操作经,然后进行C3a卷积操作,产生的feature map经过unp3a,使得处理后的feature map的大小与bottom-up网络对应的fature大小相同。处理后的feature map与C1b和C2b的feature map进行拼接,然后用两种卷积层C3c和C3d进行操作产生feedback Gate Features。C3c和C3d采用sigmoid作为激活函数,保证feature map中的value位于0~1范围内。整个网络中其他卷积层均采用ReLU 非线性激活函数。

整个流程如下:对于一张输入图片,通过bottom-up network得到feature map;feature map输入到top-down network中计算gate feedback maps。接下来gate features与bottom-up 的feature map进行逐元素乘法得到正确的密度图。模型的训练过程分为两个阶段,首先训练bottom-up CNN,确定网络参数;然后训练feedback network。

Bottom-Up CNN训练过程

bottom-up CNN网络模型首先进行单独训练回归人群密度图,所包含的两列CNN网络分别进行训练,以方便可以更有效提取特征,另外一方面可以方便后续的finetune。

l_2距离表征预测的density map与ground truth之间的距离,作为训练CNN回归器的损失函数。

L_{l_2}(\Theta)=\frac{1}{2N}\sum^N_{i=1}\left \| D_{X_i}(x;\Theta)-D^{GT}_{X_i}(x) \right \|^2_2

其中D^{GT}_{X_i}是输入X_i的ground truth,损失函数采用随机梯度下降算法优化。

Top-Down CNN训练过程

在bottom-up 网络训练之后,对应的网络参数都已经确定。Top-down网络通过feedback纠正后的estimated density的损失进行反向传播训练。训练过程中,只有top-down网络中的参数进行调整。调整的目标就是使得最终的人群计数误差尽可能小。Top-down CNN通过使用上下文信息对bottom-up产生的激活值进行过滤,从而纠正bottom-up 网络输出的人群密度预测。

对于输入X_i,密度预测为D_{X_i},对应的人群数量为C_{X_i}=\sum_x D_{X_i}(x;\Theta),ground true对应的人群数量为C^{GT}_{X_i}=\sum_x D^{GT}_{X_i}(x;\Theta).

人群计数损失函数为:L_C(\Theta)=\frac{\lambda }{2N}\sum^N_{i=1}(C_{X_i}-C^{GT}_{X_i})^2 其中\lambda为常数因子,采用l_2损失函数训  练bottom-up 网络。

加入正则化项:L_C(\Theta)=\frac{\lambda }{2N}\sum^N_{i=1}(C_{X_i}-C^{GT}_{X_i})^2+\frac{\mu }{N}\sum^N_{i=1}G_{X_i}  

G_{X_i}为feedback gate feature之和,\lambda=10^{-2},\mu =10^{-3}

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值