人群计数 AAAI2019 Almost Unsupervised Learning for Dense Crowd Counting(GWTA-CCNN )

Almost Unsupervised Learning for Dense Crowd Counting

概述

  本文提出了一种弱监督的方式进行人群计数。网络的大部分参数仅仅使用无标签数据训练得到。由于在人群计数的任务中,有标签的数据非常少,并且标注这样的数据需要花费大量的精力。所以如果有一种无监督的方法能够很好地获得我们需要的特征表示,对人群计数任务有很大的帮助。
  文章先介绍了一种叫WTA Autoencoder的算法。不同于正常的Autoencoder,WTA Autoencoder模仿了人脑的活动。在每次的训练中,并不是网络所有的权重都会被更新,只有那些输出值最大的神经元会被更新。因为这常常代表着重要的特征。但这样会带来encoder的输出太过稀疏,decoder不能很好工作的结果。因此本文提出了一种GWTA Autoencoder的办法。

方法

   GWTA Autoencoder会将每个feature map分成很多小的子块,对每个子块应用WTA,即保留每个小块中更多最大输出。这样就保留了很多局部的特征,使得decoder能够正常的训练。同时,GWTA Autoencoder是逐层训练的。
人群计数 AAAI2019 Almost Unsupervised Learning for Dense Crowd Counting(GWTA-CCNN )_第1张图片
  由于使用了GWTA的方式,此时我们得到的特征依然会是很稀疏的,但这些特征同样是重要的。这样会强迫decoder从这些关键特征中恢复图像,学到更好的人群模式的表征。网络的整体结构如下:
人群计数 AAAI2019 Almost Unsupervised Learning for Dense Crowd Counting(GWTA-CCNN )_第2张图片
  首先,将图片输入Conv1,再运用GWTA得到处理后的特征,经过一个反卷积模块输出复原的图像。将复原的图像与原图做L2 LOSS,从而训练好第一层的Conv。随后将Conv1得到的特征进行Pooling,作为第二层Conv2的输入。此时需要注意,Conv1的参数在训练Conv2时已经被冻结。这样逐层依次进行训练,直到得到Conv4。而最后两层的卷积层则需要有标签的数据进行训练,损失函数使用了正常的L2 LOSS,但此时Conv1到Conv4的参数是被冻结的,并且最后的卷积层的参数量只占了整个模型的非常小的一部分。

实验结果

在ShanghaiTechA上的实验结果如下:
人群计数 AAAI2019 Almost Unsupervised Learning for Dense Crowd Counting(GWTA-CCNN )_第3张图片
虽然文中提出的方法比起正常的Autoencoder有所提升,但是距离有监督训练的结果还有很大的差距。并且文中的方法仍然不能摆脱有标签数据少,不同数据集间人数差距较大的问题。不过本文作为人群计数中少数的弱监督的方法也提供了一些新的思路,希望未来有更多效果更好的研究。

论文地址

下一篇:人群计数 ICCV2019 Crowd Counting with Deep Structured Scale Integration Network (DSSINET)

上一篇:人群计数 ICCV2019 Multi-Level Bottom-Top and Top-Bottom Feature Fusion for Crowd Counting(MBTTBF)

你可能感兴趣的:(深度学习,人群计数)