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

crowd counting_[crowd_counting]-SFCN-CVPR2019&&GCC dataset_第1张图片

crowd counting_[crowd_counting]-SFCN-CVPR2019&&GCC dataset_第2张图片

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数据集,拥有丰富的场景,大量的图片。

crowd counting_[crowd_counting]-SFCN-CVPR2019&&GCC dataset_第3张图片

(1)场景的选择

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

(2)人模型的设计

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

(3)场景合成

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

crowd counting_[crowd_counting]-SFCN-CVPR2019&&GCC dataset_第4张图片

最终人数分布如下:

crowd counting_[crowd_counting]-SFCN-CVPR2019&&GCC dataset_第5张图片

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

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

crowd counting_[crowd_counting]-SFCN-CVPR2019&&GCC dataset_第6张图片

(5)如何利用GCC数据集

crowd counting_[crowd_counting]-SFCN-CVPR2019&&GCC dataset_第7张图片

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

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

3.SFCN

(1)模型配置

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

crowd counting_[crowd_counting]-SFCN-CVPR2019&&GCC dataset_第8张图片

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

crowd counting_[crowd_counting]-SFCN-CVPR2019&&GCC dataset_第9张图片

提出了采用两种不同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上训练的情况,采用了三种不同的训练集测试集划分方法:

crowd counting_[crowd_counting]-SFCN-CVPR2019&&GCC dataset_第10张图片

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

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

crowd counting_[crowd_counting]-SFCN-CVPR2019&&GCC dataset_第11张图片

感觉如果不用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

crowd counting_[crowd_counting]-SFCN-CVPR2019&&GCC dataset_第12张图片

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

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

crowd counting_[crowd_counting]-SFCN-CVPR2019&&GCC dataset_第13张图片

crowd counting_[crowd_counting]-SFCN-CVPR2019&&GCC dataset_第14张图片

crowd counting_[crowd_counting]-SFCN-CVPR2019&&GCC dataset_第15张图片

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

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

crowd counting_[crowd_counting]-SFCN-CVPR2019&&GCC dataset_第16张图片

crowd counting_[crowd_counting]-SFCN-CVPR2019&&GCC dataset_第17张图片

μ设置为1

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

crowd counting_[crowd_counting]-SFCN-CVPR2019&&GCC dataset_第18张图片

(2)Density/Scene Regulation

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

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

(3)ablation Study

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

crowd counting_[crowd_counting]-SFCN-CVPR2019&&GCC dataset_第19张图片

crowd counting_[crowd_counting]-SFCN-CVPR2019&&GCC dataset_第20张图片

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

5.评价

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

你可能感兴趣的:(crowd,counting)