CVPR2019   主页: https://gjy3035.github.io/GCC-CL/index.html  

才发现之前一直看的人群计数总结也是这位作者的: https://github.com/gjy3035/Awesome-Crowd-Counting#GWTA-CCNN  ,很赞!

解决问题:真实场景中存在多变的环境、更拥挤的人群,现存的方法不能很好解决问题;除此之外,因为数据的稀缺,许多方法都存在不同程度的过拟合现象。

提出办法:作者从数据和方法两个角度解决问题;首先是数据方面,开发了一个数据收集和标注器,可以生成并标注合成的数据集(这个挺有意思的,是从游戏中获取的图片);其次是方法,提出两类方法,一个是将网络在游戏数据集上预训练之后,再用真实数据微调;二是从域适应的角度提出一个人群计数方法,从而避免大量数据标注工作;

创新点:看了项目主页,虽然现在还没全弄懂代码,个人认为创新点一是数据集的处理,文中也提到,尽管前人工作也利用GTA5数据集,但是受限于GTA5的特性(同一场景下最多256人),因此作者设计了一个策略构造出拥塞场景(分割出几个不重叠区域,在不重叠区域放置人群,最后将多个区域拼接成一个场景);创新点二是方法中的第二类域适应方法。

结论:第一类方法取得SOTA的结果;第二类方法虽然没那么卓越的性能,实验结果也在接受范围内;

CV需要海量数据集,但是数据的获取很困难,同时现有的部分数据标注也存在一些错误,那么可否考虑使用不带标签的数据集,作者基于游戏中的虚拟图像场景,得到合成数据集,合成数据集的人数、场景分布情况见下方,从这个分布情况来看,这份数据集更贴近真实场景的情况,表中列出与其他数据集的比较:

论文理解《Learning from Synthetic Data for Crowd Counting in the Wild》论文理解《Learning from Synthetic Data for Crowd Counting in the Wild》

方法一:监督式人群计数

网络结构基于FCN

论文理解《Learning from Synthetic Data for Crowd Counting in the Wild》

实验部分对数据集的处理采取三种不同的训练策略:(1)随机切分:75%作为训练集,25%作为测试集;{2}跨相机分割数据集:对于一个特定位置,随机选择一个相机作为测试,其余作为训练;(3)跨场景分割:随机选择75%场景作为训练,25%作为测试。

下表是不同方法在GCC数据集上预训练的性能比较:

论文理解《Learning from Synthetic Data for Crowd Counting in the Wild》

下表是SOTA和提出方法在真实数据集上的性能比较,可以看到性能基本都提升了:

论文理解《Learning from Synthetic Data for Crowd Counting in the Wild》

方法二:通过域适应进行人群计数

解决问题:怎么在不同领域数据集中迁移学习到有效的特征——domain adaptation

提出方法:基于Cycle GAN,嵌入SSIM,从而实现合成图像到真实图像的迁移工作;之后把迁移后的数据放到SFCN中训练,图示流程见下图:

 

 

论文理解《Learning from Synthetic Data for Crowd Counting in the Wild》

Cycle GAN:

我对GAN不是很了解,就简单的从对文章的理解角度讲下这部分,有讲错的地方麻烦指正~首先关于损失函数的定义:下方式(1)是cycle-consistent loss,GAN的两个重要角色是生成器和判别器,生成器在这里分别是论文理解《Learning from Synthetic Data for Crowd Counting in the Wild》   作用是学习合成图像S迁移到真实图像域R的映射函数;论文理解《Learning from Synthetic Data for Crowd Counting in the Wild》 则相反; 那么我们想要生成的合成图像尽量和原来的合成图像接近,目标便是:论文理解《Learning from Synthetic Data for Crowd Counting in the Wild》.

论文理解《Learning from Synthetic Data for Crowd Counting in the Wild》

除此之外,还有两个判别器论文理解《Learning from Synthetic Data for Crowd Counting in the Wild》分别对应生成器论文理解《Learning from Synthetic Data for Crowd Counting in the Wild》,比如论文理解《Learning from Synthetic Data for Crowd Counting in the Wild》想鉴别这个图像是来自真实图像还是合成图像生成的”假真实图像“,损失定义如下:

论文理解《Learning from Synthetic Data for Crowd Counting in the Wild》

最终损失定义为:

论文理解《Learning from Synthetic Data for Crowd Counting in the Wild》

SSIM

之前在CSRNet和SANet中看到过,作者利用SSIM进行图像重建质量评估,从局部特征角度计算两张图的相似性,该值越大越能说明图像之间差别小,值范围在[-1,1],损失定义如下:

论文理解《Learning from Synthetic Data for Crowd Counting in the Wild》

最终SE Cycle GAN损失定义为:

论文理解《Learning from Synthetic Data for Crowd Counting in the Wild》

在此作者还提出了一个正则化方法:因为发现真实数据中的分布可能存在一些异常,比如图片中的背景被预测为极大的值,解决办法是定义一个值上界,超过该上界的值都被置为0。

论文理解《Learning from Synthetic Data for Crowd Counting in the Wild》

 

相关文章: