【论文精读】Focal Inverse Distance Transform Maps for Crowd Localization

news2025/1/12 23:14:03

文章目录

    • 摘要
    • 主要贡献
    • 主要内容
    • 一、FIDT
    • 二、LMDS
    • 三。I-SSIM loss

摘要

在本文中,我们关注人群定位任务,这是人群分析的一个重要课题。基于回归的方法大多使用卷积神经网络( CNN )对密度图进行回归,在极度稠密的场景中无法准确定位实例,主要原因有两个:

1 ) 密度图由一系列模糊的高斯斑点组成;
2 ) 密度图的稠密区域存在严重的重叠。

为了解决这个问题,我们提出了一种新的用于人群定位任务的聚焦反距离变换( FIDT )地图Focal Inverse Distance Transform)。与密度图相比,FIDT图准确地描述了人员在密集区域的位置,没有重叠。
基于FIDT映射,提出了一种局部最大检测策略( LMDS )来有效地提取每个个体的中心点。
此外,我们引入Independent SSIM ( Independent SSIM,I-SSIM )损失使模型倾向于学习局部结构信息,更好地识别局部极大值。大量实验表明,所提出的方法在6个人群数据集和1个车辆数据集上具有先进的定位性能。此外,我们发现所提出的方法在消极和极稠密场景上表现出优越的鲁棒性,进一步验证了FIDT映射的有效性。

github链接:FIDTM

主要贡献

其实主要贡献在摘要里面基本都提到了,再细化一下:

  1. 为了有效应对密集场景下的人群定位任务,我们提出了FIDT。FIDT地图的局部极大值表示精确的人员位置
  2. 引入I - SSIM损失,使模型关注独立区域,增强模型处理局部极大值和背景区域的能力。
  3. 基于FIDT地图,设计了一种局部最大值检测策略LMDS,可以有效地定位预测的局部最大值(头部中心)。
  4. 大量的实验表明,所提出的方法达到了先进的定位性能。此外,我们的方法对消极和极度密集的场景具有鲁棒性。

主要内容

下图是这篇论文总的pipeline
在这里插入图片描述

在训练阶段,采用MSE损失和提出的I - SSIM损失。在测试阶段,通过LMDS可以得到每个人的位置,最终计数等于局部极大值的个数。此外,边界框可以通过尺寸估计步骤获得。

一、FIDT

一般来说,基于CNN的人群密度估计的方法有三种:基于检测的,基于回归的,Density map(密度图)的。Density map预测每个像素存在人头点的概率分布,他的标注一般是在人头除点一个点,这种方法计数精度高,位置精度中等,缺点是低密度场景计数精度差(相对另外两类方法而言)。基于归回的方法是直接预测人数,计数精度中等,标记简单,缺点是缺少位置信息,缺乏可解释性。
后来Inverse Distance Transform(反距离变换)被用在人群计数领域,相当于把回归和density map的的方法结合了。先看Distance Transform(距离变换),它是把map上每个像素用到最近标记点的距离来表示

在这里插入图片描述
P(x,y)表示map上任意一点(x,y)上的值,B是标记点的集合。
Inverse Distance Transform (IDT) 就是取倒数, C是常量1,避免除0,也保证值域为[0,1](P(x,y)取0时I’=1,P(x,y)取+∞时I’趋向于0 )
在这里插入图片描述
这种方法是预测每个像素的IDT,而IDT值高的点(P(x,y)接近0)就是人头所在位置, 这种点称作local maxima(局部极大值), 相当于候选人头中心点,再通过一些过滤策略后得到接近真实的人头中心点,再数这些点的数量获得人数。
这篇文章认为IDT在前景(人头区域内)下降太快,在背景处下降太慢,这使得背景不容易和前景区分。提出了FIDT, 相当于加了调节器,通过α和β来控制表达式随P(x,y)增大的下降趋势。文中有消融实验说明α=0.02, β=0.75是比较好的选择。
在这里插入图片描述
比如下图FIDT map的背景部分颜色更深,能更清楚地看到前景区域(亮点外一圈浅蓝色区域)和背景区域的区别。

在这里插入图片描述

二、LMDS

该文以HRNET为主干网络,加一个卷积和两个反卷积作为head, 回归head上每个点的FIDT值。怎么得到人数?该文提出了Local Maxima Detection Strategy(LMDS) , 人头点检测策略。
在这里插入图片描述
1.用maxpool抑制3x3邻域内非最大值的点,非最大值都置0
2.若全局最大值<0.1,认为没人
3.取全局最大值的100/255为阀值,大于这个阈值的是头中心,小于阈值的是背景
这样就得到人数和人头中心坐标了。

三。I-SSIM loss

他们的另一项重要工作是I-SSIM loss。仅用预测的特征图和FIDT map的MSE损失,他们觉得不足以约束人头区域的学习。前人已经用了SSIM loss
在这里插入图片描述
E表示estimated map(估计图), G表示groundtruth map, μ和σ2 分别表示map的均值和方差,σEG表示E和G的协方差,λ1=0.0001, λ2=0.0009,避免除0 。SSIM范围是[-1,1], 这个值越大代表两个图越像,这在评价图像质量里常用。那么损失就是加个1减。一般用时会用一个滑动窗口去扫描全图,不区分前景背景。他们认为对于定位任务,损失应该关注前景区域,关注local maxima区域。之后就是文章提出了I-SSIM loss,实验效果还不错。
在这里插入图片描述

这里的I是independent的意思,对每个indenpendent instance region(独立实例区域)计算SSIM loss再求和。region的大小被设置为30x30. 前面说了关注local maxima,instance可能指的就是local maxima, 即候选头中心点。下图是这两个loss的对比实验结果。
在这里插入图片描述
最终的训练目标损失函数定义如下:
在这里插入图片描述
其中LMSE和LI-S分别表示MSE损失和提出的I - SSIM损失。
人群密度估计任务中在做定位的评价时,是需要将预测点和标记点做匹配的,匹配上了才算位置对了,匹配需要距离阈值σ,小于阈值说明预测点和标记点匹配上了。上边的实验就取的σ=8。下表是和其他网络的评价对比:
在这里插入图片描述

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

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

相关文章

跨境卖家如何以最少量的预算建立品牌知名度?

关键词&#xff1a;跨境卖家、品牌知名度 什么是品牌知名度&#xff1f; 品牌知名度反映了您的目标受众对您的品牌的了解、认可和记忆程度。 为什么品牌知名度至关重要&#xff1f; 当您的目标受众需要您提供的产品或服务时&#xff0c;您希望他们考虑您的品牌。为此&#xf…

windows下nginx隐藏HTTP 请求头文件中的Server信息

简介 本文主要是隐藏HTTP 请求头文件中的Server信息 解决问题主要分下面几步 一、准备编译所需要的环境 二、修改nginx源码改变配置 三、编译nginx源码生成新的nginx.exe 四、替换nginx.exe&#xff0c;重新启动nginx 1. 准备所需环境 环境都需要准备好&#xff0c;因为编译是…

精品spring boot+MySQL线上点餐系统vue

《spring bootMySQL线上点餐系统》该项目含有源码、论文等资料、配套开发软件、软件安装教程、项目发布教程等 使用技术&#xff1a; 操作系统&#xff1a;Windows 10、Windows 7、Windows 8 开发语言&#xff1a;Java 使用框架&#xff1a;spring boot 前端技术&#xff…

大数据毕业设计人体跌倒检测系统

文章目录前言1 实现方法传统机器视觉算法基于机器学习的跌倒检测SVM简介SVM跌倒检测原理算法流程算法效果实现代码深度学习跌倒检测最终效果网络原理最后前言 背景和意义 在美国&#xff0c;每年在65岁以上老人中&#xff0c;平均每3人中就有1人发生意外跌倒&#xff0c;每年…

[附源码]Node.js计算机毕业设计关于人脸识别的实验教学管理系统Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

嵌入式分享合集122

一、分析电容降压电路工作原理 电容降压电路&#xff0c;因其成本低廉、体积小而被广泛地使用&#xff0c;此一优点足以掩盖其它所有缺点&#xff1a;输出电流小&#xff08;一般控制在100mA以内&#xff09;&#xff0c;与市电直通非隔离而存在安全隐患&#xff0c;输出电压波…

饥荒服务器搭建(windows)

文章目录1. 获取服务器票据2. 新建游戏存档3. 饥荒服务器配置1. 获取服务器票据 步骤1&#xff1a;登录Klei官网 步骤2&#xff1a;点击菜单栏游戏——选择饥荒服务器 步骤3&#xff1a;创建服务器获取票据&#xff0c;后面将会用到。 2. 新建游戏存档 步骤1&#xff1a;下载…

Python开发游戏?也太好用了吧

程序员宝藏库&#xff1a;https://gitee.com/sharetech_lee/CS-Books-Store 当然可以啦&#xff01; 现在日常能够用到和想到的场景&#xff0c;绝大多数都可以用Python实现。 效果怎么样暂且不提&#xff0c;但是得益于丰富的第三方工具包&#xff0c;的确让Python能够很容易…

二进制包安装公有云版k8s

目录公有云版k8s的架构是怎样的公有云中创建k8s实例的过程如下二进制法创建k8s的一般过程Kubernetes的重要性check nodes每台服务器执行基线配置CA rootetcd HA cluster根据CA根证书创建etcd的专有CA证书将etcd注册成为systemd服务配置各master节点的etcd.confansible配置各个m…

4线SPI驱动OLED常规操作

拿到一块点阵屏幕&#xff0c;首先找卖家拿驱动例程 步骤 目录 1.void LCD_IO_Cfg(void) 2.void wr_cmd(u8 wrcmd) 3.void wr_data(u8 wrdata) 4.void init_lcd(void) 5.void disp_all(void) 6.void Fresh(void) 注&#xff1a;根据商家的时序图可以知道数据在上升沿/下降…

[附源码]Node.js计算机毕业设计高校学科竞赛报名系统Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

CBCC3 – A CBCC Algorithm with Improved Exploration/Exploitation Balance

0、论文背景 本文是在CBCC1和CBCC2的基础上提出了CBCC3。在本文中&#xff0c;证明了过度探索和过度开发是现有CBCC变体中性能损失的两个主要来源。在此基础上&#xff0c;提出了一种新的基于贡献的算法&#xff0c;可以在探索和开发之间保持更好的平衡。 Omidvar M N, Kazimi…

复现readme中的一个坑...

今天在运行一个项目的时候“Molecule Optimization via Fragment-based Generative Models”&#xff1a;GitHub - ninglab/Modof: The implementation of Modof for Molecule Optimization 然后妈的死活运行不出来&#xff0c;就是说在运行readme的时候都不行&#xff0c;我看…

Win10系统下与VMware中Ubuntu20.04建立共享文件夹

一、在VMware中设置 二、在Ubuntu中设置 1.在终端中输入下面命令&#xff0c;列出步骤一中设置的VMware共享文件夹名称&#xff0c;说明可以挂载 ~$ vmware-hgfsclient 返回 ubuntushare 2.执行下面命令&#xff0c;创建共享文件夹专用的挂载目录 ~$ sudo mkdir -p /mnt/hgfs …

基于ESP32-S3方案的2.1寸旋钮屏ZX2D10来了,同步分享ESP32应用功能技术之「WEB API接口」

启明智显基于ESP32-S3与国产芯高效开发平台8ms设计开发的一款磁编码结构的旋钮屏。结构紧凑、简单&#xff0c;外观精致&#xff1b;支持WIFI、蓝牙&#xff0c;语音交互等功能。 产品说明&#xff1a; 1. 使用乐鑫ESP32-S3 WI-FI SOC芯片&#xff0c;SOC提供WI-FI与BLE连接能力…

Java容器源码重点回顾——CopyOnWriteArrayList

1. CopyOnWriteArrayList概述 之前介绍过ArrayList&#xff0c;但是我们知道ArrayList是线程不安全的。如果多个线程同时写数据&#xff0c;就会抛出ConcurrentModificationException。然后我们又学过Vector&#xff0c;它的实现方式是在方法中都加入synchronized关键字&#…

selenium自动测试常用脚本

一、控制已经打开页面的浏览器&#xff08;已登录状态&#xff09; 1、简述&#xff1a; 自动化执行时&#xff0c;一些页面操作需要用户是登录状态才能进行访问。如果每次运行自动化脚本都需要重新登录、输入短信验证码&#xff0c;不利于自动化快速运行。因此&#xff0c;需…

[附源码]Python计算机毕业设计高校学生宿舍管理信息系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

C语言易错的选择判断题解析

有定义语句&#xff1a;int a10;&#xff0c;则表达式a的值是10。 ( A ) A.正确 B.错误 以下程序段完全正确的是( A ) A.int k, *p&k; scanf(“%d”,p); B.int k,*p: *p&k;scanf(“%d”,p); C.int *p;scanf(“%d”,p); D.51 以下程序段运行后&#xff0c;循环体运行…

Java发布和溢出简述

发布和溢出前言前置知识发布溢出简述类型案例环境发布溢出溢出类型1——未完全初始化就企图获取该对象中数据溢出类型2——在构造函数中调用非private和final的方法前言 回顾《Java并发编程实战》&#xff0c;这里附上一些总结和小案例加深理解。这里重点是对溢出的阐释。 前…