crowd counting_[crowd_counting]-SFCN-CVPR2019amp;amp;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社区来说,确实是一个不错的数据集

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/532101.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码更换ui图片_用技术的方式,在UI设计稿中设置随机码,保证高清

本文首发于:行者AI 在工作中会遇到批量给图片添加文字,随机码等需求,当数据码数量较大时,UI的工作量就会非常大,这时候我们可以用python来帮我们提高工作效率。1. 需求分析我们有这样一张图片,我们需要将一…

hash地址_redis中的hash扩容、渐进式rehash过程

背景: redis字典(hash表)当数据越来越多的时候,就会发生扩容,也就是rehash对比:java中的hashmap,当数据数量达到阈值的时候(0.75),就会发生rehash,hash表长度变为原来的二…

是什么牌子_水晶项链什么牌子好

阅读本文前,请您先点击上面的蓝色字体,再点击“关注”,这样您就可以免费收到最新内容了。每天都有分享,完全是免费订阅,请放心关注! …

什么是机器人的五点校正法_机器人校正方法

机器人校正方法【专利说明】机器人校正方法[0001]本申请案主张于2012年9月18日申请之美国临时专利申请案第61/702,377号的优先权,所述专利申请案的揭示完整结合于此以供参考。技术领域[0002]本发明涉及一种工件加工,尤其涉及一种用于工件加工…

stn算子_深度学习常用算子(二)

1、Tensor维度变换1)Flatten作用:将输入tensor中从start_axis维度到end_axis维度合并为1维2)Reshape作用:将输入Tensor描述转换为新的shape3)FreespaceExtract作用:将h维变成1,其他维度不变,从而完成对h的采样&#xf…

iframe异步加载_5种延迟加载图像的方法以帮助你提升网站性能与用户体验

英文 | https://www.sitepoint.com/five-techniques-lazy-load-images-website-performance/翻译 | web前端开发(ID:web_qdkf)由于图像是Web上最流行也是必不可少的内容类型之一,因此网站上的图片页面加载时间很容易成为一个问题。即使进行了适当的优化&…

ubuntu18安装python3.6.8_ubuntu 18.04 + Python 3.6.8 更换软件安装源

国外的开源项目开展的是如火如荼,我们国内的当然也不甘落后。为了更好的玩转 Python,我使用了 ubuntu Linux 来作为开发环境。但是由于国内网络的限制,访问国外的一些软件源的时候,速度比较慢,这时我们需要更换成国内的…

springframework报错_应对报错信息的必杀技!

今天遇到了一个错误,一般的错误提示会很明显,一看就知道是什么问题。今天遇到的这个说实话真的不好找原因,一般在这种情况下该怎么解决呢?分享下我的思路吧,不一定是最好的,至少有用。直接上图吧&#xff0…

电脑运行卡顿怎么处理_【众点学】电脑运行PS卡顿?可能是你的虚拟内存没设置好!...

不少小伙伴都遇到过这样的烦恼明明自己的电脑拥有大内存PS用着用着就卡顿了经过教体君的仔(bai)细(du)研(yi)究(xia)发现原来电脑的 虚拟内存 只有2G当我们用大型软件或玩大型游戏电脑越用越卡时该怎么做?今天【众点学】我们一起来看看Win7和Win10系统下分别如何设置…

线程池拒绝策略 开发中常用什么策略_面试官:说说你知道多少种线程池拒绝策略...

往期文章为什么阿里Java规约要求谨慎使用SimpleDateFormathttps://www.toutiao.com/i6696127929048367629/为什么我强烈推荐你用枚举来实现单例模式https://www.toutiao.com/i6696861933687013901/为什么不要在MySQL中使用UTF-8编码方式https://www.toutiao.com/i6697966437727…

css html 双面打印_从 Linux 命令行进行打印 | Linux 中国

导读:在 Linux 命令行进行打印的内容比单单一个 lp 命令多得多,让我们来看一些可用选项。       本文字数:4305,阅读时长大约:5分钟https://linux.cn/article-13012-1.html作者:Sandra Henry-stocker译…

python保存快捷键是什么_python常用快捷键

最重要的快捷键1. ctrlshiftA:万能命令行2. shift两次:查看资源文件新建工程第一步操作1. module设置把空包分层去掉,compact empty middle package2. 设置当前的工程是utf-8,设置的Editor-->File Encodings-->全部改成utf-8,注释1. ctrl/:单行注释光标操作1. ctrlaltent…

服务器内存超限问题_服务器内存爆满最佳处置方案

内存爆满截图:分析:内存持续飙升,应该是有大量内存一直没有释放,考虑僵尸对象,僵尸进程,最简单的就是重启服务器,但是就无法找到罪魁祸首了。验证:top命令查看活跃进程的资源使用情况…

js map对象遍历_何时使用 Map 来代替变通的 JS 对象

JS 普通对象 {key: value} 用于存放结构化数据。但有一件事我觉得很烦:对象键必须是字符串(或很少使用的 symbol)。如果将数字用作键会怎样?在这种情况下不会有错误:const names { 1: One, 2: Two,};Object.keys(names); // > [1, 2]JS 会隐式地将…

mysql怎么显示结果窗口_mysql8中窗口函数

在以前的MySQL版本中是没有窗口函数的,直到MySQL8.0才引入了窗口函数。窗口函数是对查询中的每一条记录执行一个计算,并且这个计算结果是用与该条记录相关的多条记录得到的。1.窗口函数与聚合函数窗口函数与聚合函数很像,他们都是在一组记录而…

python控制台输入字符串作为参数_Python-如何将字符串传递到subprocess.Popen(使用stdin参数)?...

小编典典Popen.communicate() 说明文件:请注意,如果要将数据发送到进程的stdin,则需要使用stdin PIPE创建Popen对象。同样,要在结果元组中获得除None以外的任何内容,你还需要提供stdout PIPE和/或stderr PIPE。替换…

log4jdbc mysql_[简单]log4jdbc-log4j2配置简记_MySQL

log4jdbc-log4j2,就不多说了,不了解的可以谷歌,附上log4jdbc-log4j2的官方链接:https://code.google.com/p/log4jdbc-log4j2/ ,上面有非常详细的介绍。简单的贴下配置文件,其他的见附件:databas…

vb实时错误6 溢出_java内存溢出系列(6): Out of swap space?

本文是java内存溢出系列第6小篇。JVM启动参数指定了最大内存限制。如 -Xmx 以及相关的其他启动参数. 假若JVM使用的内存总量超过可用的物理内存, 操作系统就会用到虚拟内存。错误信息 java.lang.OutOfMemoryError: Out of swap space? 表明, 交换空间(swap space,虚拟内存) 不…

java备份还原mysql数据库_Java备份还原Mysql数据库

///实体类package com.ews.util;/*** 系统备份展示对象** */public class DataFile {private String fileName;//备份文件的名称private String fileDate;//备份文件的日期private String filePath;//备份文件的地址private String fileSize;//备份文件的大小public String get…

学pyqt5之前需要学python吗_快速学习pyqt5(1)--入门

学习于:PyQt5图形界面编程 想要系统学习的同学建议可以去这个专栏好好学习,没有任何语言基础和计算机基础的也建议直接去看那个专栏。我这里是有java基础了,所以就不重复,针对快速学习使用。学习这个的目的是完成学校的SIT项目&am…