【论文阅读】Bayesian Loss for Crowd Count Estimation with Point Supervision

人群计数:Bayesian Loss for Crowd Count Estimation with Point Supervision 贝叶斯损失 阅读详情

这篇论文是评估在一个人群场景中估计总的人数。广泛使用的人群计数基准数据集有UCF-QNRF 、ShanghaiTech 、UCFCC50 。

数据集标注的是图片中人头的点标注。这些点标注只包含一个像素,并且不包含对象的形状和大小信息,因此直接拿来训练是困难的。

主要思路是使用高斯核将人头的点标注转换为带有ground truth的密度图,将它作为训练的target,学习这个target训练一个密度图估计器。但是实际场景中,由于遮挡,物体形状的变化,这种带有ground truth的密度图是不完整的。因此作者提出构造密度贡献概率的新颖损失函数Bayesian Loss来对每个点标注的计数期望值采用可靠的监督。

The Proposed Method

这是一个密度图;Xm是2D pixel的坐标;M是密度图的像素数;

表示样本图像中的点注释图;n={1,2,...N};N是总人数;Zn是头点的位置;Yn=n表示相关的标签

将真值ground truth点标注通过高斯核转换为带ground truth 的密度图

并使用以下损失函数训练密度估计器:

F()是距离函数,

假设数据集中所有的人都有同样的头部大小和形状,则可以Gaussian kernel 设置为一个固定大小,显然这和实际情况是不符的;另一种解决方案是为每一个n设置一种自适应Gaussian kernel:

d n​ 是一个距离,取决于其所在空间域的最近邻点,它假定人群是均匀分布的

Bayesian Loss

设x为表示空间位置的随机变量,y为表示标注的点的随机变量。在以上讨论的基础上,我们不以Eq.(1)生成的“ground truth”密度图作为学习目标,而是根据所给的标签yn提出构建xm的似然函数。

根据贝叶斯定理,给定密度图中的像素位置xm,xm具有yn标签的后验概率可以计算为:

在上面的推导中,第三个等式成立,因为我们假设每个类别标签y n 的先验概率相等,即p(yn)相等,P(yn)=1/N。

利用后验标记概率p(yn|xm)和估计密度图Dest。我们得出Bayesian loss如下:

令cmn表示xm对yn的贡献,而cn是与yn相关的总数,我们对cn的期望为:

显然,每个注释点的真实计数cn为1,因此我们具有以下损失函数:

其中F(·)是距离函数,在实验中采用l1距离。 当训练图像中没有物体时,应处理特殊情况。 在这种情况下,直接将密度图的总和强制为零。 建议的损失函数是可微的,可以使用标准的反向传播训练算法轻松应用于给定的CNN。

在推断阶段,不必事先知道后标签概率p(yn | xm),因为当我们对估计的密度图求和时,我们消除了p(yn | xm),如下所示:

背景像素建模

对于远离任何注释点的背景像素,将它们分配给任何头标yn都是没有意义的。 为了更好地对背景像素建模,在头标签{yn = n:n = 1,2,...,N}的基础上引入了额外的背景标签y0 = 0。 然后,后标签概率可以重写为:

p(yn) = p(y0)=1/N+1

每个人和整个背景的预期计数定义为:

希望背景计数为零,并且每个注释点的前景计数等于1,因此,具有以下增强的损失函数:

为了定义背景似然性,我们为每个像素构造一个虚拟背景点:

其中zmn表示xm的最接近的起点,而d是控制起点和虚拟背景点之间的边距的参数。 如图1所示,对于定义的虚拟背景点zm0,对于远离头点的像素xm,可以将其分配给背景标签。

在这里,我们还使用高斯核来定义背景似然性:

后验可以大致确定人与人之间的界限:

•密集人群区域比稀疏区域具有更高的熵值。

•通过比较(b)和(c),参数σ控制后标签概率的软度。

•通过比较背景像素建模(b)和(e),可以更好地处理远离人群的像素。

•参数d控制前景和背景之间的裕度,比较(e)和(f)。

人群计数估计方法通过两种广泛使用的度量标准进行评估:

其中K是测试图像的数量,Nk和Ck分别是第k个图像的真实计数和估计计数。

实验细节:

使用随机裁剪和水平翻转来扩充训练数据。UCF-QNRF中的图像分辨率从0.08到66M像素变化很大。 但是,由于常规CNN的接收场有限,因此无法处理各种比例的图像。 因此,我们在UCF-QNRF中将每个图像的较短边限制在2048个像素内。 然后随机裁剪图像进行训练,对于图像分辨率较小的ShanghaiTechA和UCF CC 50,裁剪尺寸为256×256,对于ShanghaiTechB和UCF-QNRF,裁剪尺寸为512×512。

使用VGG19和AlexNet,将最后一个池化层和随后的完全连接层给删除,通过双线性插值将主干网络的输出上采样到输入图像大小的1/8,然后将其馈送到回归标头,标头分别由256和128通道的3*3卷积层和1*1卷积层,得到密度图。 回归头由MSRA初始化器初始化,主干在ImageNet上进行了预训练。 初始学习速率为10-5的Adam优化器用于更新参数。

Effect of σ. σ控制后标签概率的软度;贝叶斯算法在各种σ值下都表现良好。 当σ从0.1变为32.0时,MAE和MSE小于98.0和180.0。BASELINE对此参数更敏感,其MAE和MSE分别从118.4到136.2和192.3到250.6。 Effect of d. 控制前景和背景之间的余量。当d为图像短边的3%至100%时,BAYESIAN +始终优于BAYESIAN。参数d的含义是,d的大小不会超过d,因此d不能太小。

人群计数Bayesian Loss for Crowd Count Estimation with Point Supervision文章解读 摘要 阅读详情

相关推荐

论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision

论文: http://openaccess.thecvf.com/content_ICCV_2019/papers/Ma_Bayesian_Loss_for_Crowd_Count_Estimation_With_Point_Supervision_ICCV_2019_paper.pdf 代码:http://openaccess.thecvf.com/content_ICCV_2019/pape...

shuijinghua的博客 1798

ICCV19 (Oral) | 基于贝叶斯损失函数的人群计数

点击上方“视学算法”,选择加"星标"或“置顶”重磅干货,第一时间送达本文作者:洪晓鹏https://zhuanlan.zhihu.com/p/127956794本文已由原...

zandaoguang的博客 1828

手把手教你用ShanghaiTech数据集跑BL(Bayesian Loss)模型— 1.数据预处理

本文通过改写BL模型官方源代码中的preprocess_dataset.py文件,实现了将ShanghaiTech数据集处理为BL模型所需的数据格式。

johnhamtom的博客 3621

ESOD:高分辨率图像上的高效小目标检测

小目标检测

追赶时代的博客 496

别光看数据集大小!用ShanghaiTech、NWPU、JHU_CROWD++、UCF-QNRF做人群计数,选哪个更准?

本文深度对比了ShanghaiTech、NWPU、JHU_CROWD++和UCF-QNRF四大主流人群计数数据集的核心特性与实战表现。从标注质量、场景覆盖度到异常情况处理,详细解析各数据集在真实项目中的适用场景,并提供跨数据集泛化能力测试结果。特别适合需要选择高精度人群计数数据集的算法工程师和研究人员参考。

weixin_30823001的博客 483

[AMRNet] Adaptive Mixture Regression Network 复现过程记录

目录一、开发环境二、论文代码三、导入项目四、数据准备五、训练模型六、测试模型tips 一、开发环境 windows10+Anaconda3+Python3.6+CUDA10.0+Pytorch1.5+Pycharm 二、论文代码 AMRNet代码链接 三、导入项目 1、通过git下载或者zip网页下载,二选一 2、导入项目至pycharm 四、数据准备 1、数据集 从官网上下载数据集,并解压至目录 ./ProcessedData ShanghaiTech下载链接 UCF-QNRF下载链接 UCF_CC_

wpw5499的博客 3083

人群计数-python生成人群密度图

人口密度图生成过程总共分为两部分 1.利用坐标数据mat文件生成点注释-ground_truth图 2.利用gaussian_filter函数生成人口密度图 数据集介绍: 这里我们采用UCF-QNRF_ECCV18的图片作为训练集,如下图所示。 ​ ground_truth数据集是由mat文件组成的,数据格式为[y0,x0](不同数据集表示的方法不同)表示人头所在的像素点。利用scipy函数即可读取数据。 加载数据,加载图片和mat文件 gt = scipy.io.loadmat("

qq_37713366的博客 5971

Bayesian-Crowd-Counting:ICCV 2019 口头论文贝叶斯损失的官方实现,用于带点监督的人群计数估计

Bayesian-Crowd-Counting(ICCV 2019 口头报告) | ICCV 2019 口头论文“Bayesian Loss for Crowd Count Estimation with Point Supervision”的官方实现 可视化 贝叶斯 贝叶斯+ 密度 引文 如果您使用此代码进行研究,请引用我们的论文: @inproceedings{ma2019bayesian, title={Bayesian loss for crowd count estimation with point supervision}, author={Ma, Zhiheng and Wei, Xing and Hong, Xiaopeng and Gong, Yihong}, booktitle={Proceedings of the IEEE Internation

行人检测数据集

行人检测数据集 行人检测( Pedestrian Detection) 是计算机视觉领域内应用比较广泛和比较热门的算法,一般会与行人跟踪,行人重识别等技术进行结合,来对区域内的行人进行检测识别跟踪,广泛应用于安防,零售等领域。由于行人的外观易受穿着、尺度、遮挡、姿态和视角等影响,行人检测也具有一定的挑战性。本文我们收集了行人检测常用的一些数据集,方便大家来学习和研究行人检测算法。所有数据集均为网上公开数据集,文末附有下载链接。 1.MIT-CBCL Pedestrian Database(MIT行人

qwj的博客 1万+

UCF_CC_50

UCF_CC_50数据集,包含图片,json,mat

USB2.0协议解读

就写到这吧,其他协议层等属于软件需要了解的东西了。简单看了下,本文总结的有点乱,有两个原因吧,其一是理解的不够透彻,无法用简单明了的语言总结;其二是感觉这个协议文档章节划分的也不是很好,有点大杂烩。

qflook的博客 3673

人群计数主流数据集介绍

一、ShanghaiTechPartA/B 二、NWPU-Crowd 三、JHU_CROWD++ 四、UCF-QNRF 五、待更新...

Carpe_Diemly的博客 6432

基于 transformer、lstm、LSTM多特征的交通流量预测 完整数据代码 超全项目 本科硕士毕设卓卓有余

基于 transformer、lstm、LSTM多特征的交通流量预测 完整数据代码 超全项目 本科硕士毕设卓卓有余

4655

开源目标检测数据集汇总

计算机视觉中关于图像识别有四大类任务:分类,定位,检测,分割。分类问题:即图片(或某个区域)中的图像属于哪个类别。定位问题:目标可能出现在图像的任何位置。大小问题:目标有各种不同的大小。形状问题:目标可能有各种不同的形状。

FL1623863129的博客 2935

069_死区效应对输出电压畸变的补偿思路

死区效应导致逆变器输出电压在过零点出现台阶畸变,引发THD升高。其本质是死区期间续流二极管钳位造成的非线性误差,与电流方向、负载大小、母线电压耦合。补偿需结合前馈(基于电流方向自适应调整偏置)与反馈(抑制残余谐波),关键在于准确判断电流方向(采用滞环滤波避免跳变)、合理设置补偿量(随负载动态调整),并注意补偿位置、极性及限幅防漂移。调试应通过差分探头、FFT频谱等手段验证效果,最终实现全负载范围内的低畸变输出。

2401_88858637的博客 21

SKUA-GOCAD入门教程-第七节 点的创建与编辑3

本文介绍了四种从井数据创建点集的方法

江洋大葱的博客 963

【PyTorch】数据的读取和操作(Dataset, DataLoader)

文章目录前言DatasetDataLoader 前言 Pytorch 中比较重要的是对数据的处理,其中,进行数据读取的一般有三个类: Dataset DataLoader DataLoaderIter 其中,这三是一个依次封装的关系:“Dataset被封装进DataLoader,DataLoader再被封装进DataLoaderIter” Dataset class torch.utils.d...

Tra_cy的博客 2376

SAP Joule Studio 能不能用来开发 skill:可以,但它开发的是 Joule 语境下的企业级 skill,而不是替代所有 SAP 开发技术的万能锤

SAP Joule Studio 专为开发Joule技能(Joule skills)而设计,这些技能是执行确定性单步业务动作的原子能力。它通过自然语言接口连接SAP和非SAP系统,适合处理边界清晰、可审计的任务(如创建工单、查询发票)。Joule技能作为会话式业务编排层,与ABAP、CAP等核心技术互补而非替代。开发支持低代码和专业代码两种方式,并具备企业级治理能力,但需要相应的BTP订阅和技术基础。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 199

CV笔记:图片数据处理

人群计数数据处理

xieocean的博客 1456

【MODBUS】Java实现的Modbus协议类库——推荐j2mod库

Jamod是另一个开源的Modbus Java库。这个库的设计是完全面向对象的,基于抽象,应该支持易于理解、可重用性和可扩展性。它支持Modbus RTU和Modbus TCP,并且提供了主站和从站的功能。这是jamod Modbus库的一个分支,取自1.2.1版本,根据Apache 2许可证发布,包含在该项目的SVN存储库中。j2mod项目的目标是基于Java编程语言生成一个功能更全面的Modbus(tm)通信库。这是一个积极开发的项目,接受具有Modbus主站和从站开发经验的专业软件工程师提交的文件。

开源物联网项目商业化作者 5639

TypeError: ‘<=‘not supported between instances of ‘float’and ‘str‘解决方案

本文主要介绍了TypeError: '

weixin_43178406的博客 28万+

行人重识别与人群计数数据集大盘点:推动智能监控研究的利器

关注公众号,发现CV技术之美本文转自趋动云。行人重识别(Person re-identification)也称行人再识别,是利用计算机视觉技术判断图像或者视频序列中是否存在特定行人的技术。广泛被认为是一个图像检索的子问题。给定一个监控行人图像,检索跨设备下的该行人图像。旨在弥补固定的摄像头的视觉局限,并可与行人检测/行人跟踪技术相结合,可广泛应用于智能视频监控、智能安保等领域。本文将分享一些行人重...

OpenCV中文网 668

视觉Transformer实战 | Vision Transformer(ViT)详解与实现

在计算机视觉领域,卷积神经网络 (CNN) 长期以来一直是处理图像任务的主流架构。然而,随着 Transformer 在自然语言处理领域的巨大成功,研究人员开始探索将这种基于自注意力机制的架构应用于视觉任务。Vision Transformer (ViT) 是这一探索的重要里程碑,它首次证明了纯 Transformer 架构在图像分类任务上可以超越最先进的 CNN 模型。本文将详细介绍 ViT 的技术原理,并使用 PyTorch 从零开始构建 ViT 模型用于图像分类任务。

盼小辉丶的博客 4万+

江大白 | 高密度人群计数算法,苏大发布VMambaCC,既要全局感受野,也要推理速度!

在本研究中,作者引入了VMamba并提出了一个创新的人群计数模型VMambaCC。这个计数模型在人群计数背景下具有全局感受野和线性增长的计算复杂性。本研究设计了一种新的注意力机制MHF。MHF利用高级语义来指导低级语义细节的细化,因此它可以在特征融合过程中避免高级语义信息的丢失。

csdn_xmj的博客 1502

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

基于卷积神经网络的密集人群估计/人群计数算法/Yolov4行人检测【内含教程和踩坑】

面向本科毕业设计,对人群密度估计的研究流程进行概述,旨在帮助小白从零开始了解人群估计算法。

weixin_43594279的博客 2万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

上一篇: docker命令
下一篇: N个数中选择任意个异或和最大
amazingcode_lyl
博客等级 码龄11年 21粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值