crowd counting_[crowd_counting]-SFCN-CVPR2019&&GCC dataset

b98d11425f183fb37e2dfde220f4050b.png

4d8cd37334f9dc3e05a916263bf638d6.png

1.Contribution

(1)主要是提出了基于GTA5的GCC数据集

数据集下载地址:

https://gjy3035.github.io/GCC-CL/​gjy3035.github.io

(2)提出了在如何在GCC上train,然后在传统的通用数据集上test的迁移学习方案,方案基于Cycle GAN,提出了SE Cycle GAN

(3)也提出了他们自己的counting模型SFCN,不过该模型本身不是亮点

2.GCC dataset

提出GCC数据集的目的是当前已经有的数据集图片数量太少,很容易overfitting,基于GTA5场景制作出的GCC数据集,拥有丰富的场景,大量的图片。

6895c64de63d165c52d54292f012f9c6.png

(1)场景的选择

基于GTA5,选择了100个地点,然后每个地点通过改变相机的位姿,最终获得400个场景,然后通过不同的ROI获得不同的图片

(2)人模型的设计

选择了265个人的模型,每个人的模型有不同的肤色,性别,形状,然后又衣服,发型等6个不同的外观参数,在场景中采用随机的动作

(3)场景合成

原始GTA5每个场景不超过256人,为了产生人多的图片,需要进行场景合成,就是将不同场景下的人拼到一块儿

be88f4bd4d72edde521395b5cf424eff.png

最终人数分布如下:

1c11532f23cbba2fe0627ea085e0f8ab.png

(4)添加了不同环境因素

通过设置不同的时间因素,以及天气因素,产生不同的环境:

efad32f878ecfa8a52c316767f1e9bc4.png

(5)如何利用GCC数据集

962ffea8e3af7fe25c05ec7e181cd426.png

①先在GCC在pretain,然后在其他数据集上进行fine-tune,有点在利用在ImageNet上pretrain模型的意思

②在GCC上train,然后直接在其他数据集上,不过中间利用了SE CycleGAN去将GCC的图片色调改成了测试数据集的风格,才去train,和test

3.SFCN

(1)模型配置

为了进行counting,本文也提出了自己的counting模型SFCN(Spatial FCN):

a4b72375fce054ac958cd25517d0a210.png

就是一个简单的单列全卷积,encoder-decoder的结构

625e3aaa58e8582f9867d94b8fb7f8f9.png

提出了采用两种不同backbone的模型,这里有个特殊的部分为Spatial Encoder结构,是《Spatial as deep: Spatial cnn for traffic scene understanding》这篇paper中提出的,具体看那篇paper

基本上backbone+Dilation conv+spatial encoder+upsample4个结构

采用1e-5的lr,Adam+MSE

(2)ablation study

①在GCC上训练的情况,采用了三种不同的训练集测试集划分方法:

194669d387259e1b40fac7274e731f69.png

第一种是75%train,25%test,第二种是每个场景(共4个相机),1个相机用来test,其他3个用来train,第三种是以场景为单位,75个场景做train,25个场景做test

②在GCC上pretrain,在其他数据集上fine tune

6c1f3804807164bd528f5001d8eacbea.png

感觉如果不用ResNet做backbone,效果不如用了ImageNet的CSRNet

4.SE CycleGAN & DA

DA是domain adaption,就是领域自适应,有点像迁移学习,要在让在数据集A上train的模型,更好地在数据集B上test,本文要做到的就是如何在GCC上train,然后在其他数据集上获得更好的效果

之所以要提到DA这个概念是因为GTA的图片太卡通了,相比于实际场景,有一定Gap

(1)SE Cycle GAN

本文采用SE CycleGAN,其实就是给CycleGAN添加了SSIM的loss

e431e00f18d5de08481f4d28a79cfa60.png

根据CycleGAN的原理,GCC的图片要通过一个Generator,产生于另一个数据集风格相似的图片,并让对应的distriminator去判断,然后又用另一个Generator转变回来,期望转变过去又转变回来的图片跟原来的图片越相似越好,

同理,另一条路是从另一个数据集转变到GCC的风格,再转变回去,采用的loss如下:

e6b9e3ca202870969f6fcfdf7b8c92f8.png

82bf02dcd67e68758088650f1a8a18da.png

2d38c92bca1361f1ca91478578b2f026.png

LGAN是Discriminator判断的loss,Lcycle是转变过去又转变回来的比较相似度的loss,λ是多少没说

因为要比较图像相似度,参考SANet采用SSIM作为loss,本文引入了SSIM作为loss,将CycleGAN转变为SE CycleGAN:

0ccdf7076704e830b7e6c7a7db278636.png

02e3960a8ddaae1d4c3cb45d0491b86e.png

μ设置为1

用了SE CycleGAN风格转换结果如下:

3d711d3c1c0e753d8deed02e114cf16f.png

(2)Density/Scene Regulation

Density Regulation,为了防止density map某些点预测了很大的值这种现象,本文设置了density map每个点出值得上限,超过这个上限,就把这个点设为0

Scene Regulation是对于不同的测试数据集,比如WorldExpo10,其人数不超过500,那么在GCC中也要选择少人数的场景图片进行train

(3)ablation Study

①用不用CycleGAN进行风格转换的对比

952a5b2aeb76673058e3224988fd5ad9.png

296216b9db0acc0c34091f23e38003e8.png

发现如果没有Density/Scene Regulation,加了GAN反而效果变差了,可能是因为加了GAN导致图像变模糊,带来了一些细节的丢失

5.评价

本文最大的亮点在于提出了GCC数据集,在这上面pretrain是否能取代ImageNet,似乎持保留意见,不过对于容易overfitting的counting社区来说,确实是一个不错的数据集

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值