[TPAMI‘21] Heatmap Regression via Randomized Rounding

news2024/11/17 19:32:58

paper: https://arxiv.org/pdf/2009.00225.pdf

code: https://github.com/baoshengyu/H3R

  • 总结:本文提出一套编解码方法:
    • 编码:random-round整数化 + 激活点响应值表征小数部分,使得GT可以通过编码后的heatmap解码得到;
    • 解码:提出两种激活点选择,最终预测值为激活点坐标 * 激活值的加权和。
  • WFLW上结果非常好
  • 该方法是2021年8月26日挂载arxiv上,早于Local Soft-max(Subpixel Heatmap Regression for Facial Landmark Localization),两篇文章都是想解决热图的量化误差问题,解码思路很相近。

beyond the scope of this paper;

目录

摘要

方法

量化系统

量化误差

激活点的选择

实验

人脸关键点检测​编辑

全身位姿检测

消融实验


摘要

  • 本文探索了热图回归中的量化误差问题;
  • 本文提出了一个简单但有效的系统randomized rounding operation,包含两个部分:
    • 在训练时,用一种概率方法,将坐标小数部分编码到GT heatmap中;
    • 在测试时,从激活点集合中解码预测坐标
  • 本文在人脸关键点数据集(WFLW、300W、COFW和AFLW)和人体位姿检测数据集(MPII和COCO)上实验验证了本文方法的有效性。

方法

  • 介绍热图回归中的量化系统;
  • 在该系统中公式化描述量化误差;
  • 通过随机近似(randomized rounding)设计了新的量化系统。

量化系统

现有方法:1)编码:针对浮点坐标,计算Gaussian kernel matrix开销大,现有方法是将坐标整数化后,使用kernel模型填充;2)解码:最大激活点。

本文从误差出发,将误差拆分为热图误差和量化误差:

其中,x^p是预测值,x_q是GT,x_opt则是自设GT,自设GT是指根据GT坐标编码后的热图,解码得到的坐标值。本文只考虑量化误差。

量化误差

首先定义误差,其中s为放缩倍数,例如原图大小为256,热图为64,则放缩倍数为4。

其次定义坐标整数化,其中t为整数化阈值,对round来说,t=0.5。

 

量化偏差(quantization bias)为: 

因此,当t=0.5,也即整数化方法是round时,编码方法是无偏的。对于t的其他取值,可以在解码时加入偏移量,使它无偏:

虽然,上述编码系统是无偏的,但是它会导致non-invertible localization error,也即当整数化后,误差就不可避免了。

定理1:当量化系统是无偏时,量化误差的上限是:

由定理1可知,当s越大,误差也即越大。

Randomized Rounding

本文提出Randomized Rounding,通过多个激活点去表示整数化误差,

 并提出random-round:

希望预测热图为:

 

最后的解码为:
 

激活点为四个:

 

定理2:当为上述编解码操作时,量化系统是无偏的,且没有量化误差。

激活点的选择

 包含两套方案:

1)取得极值点后,包围近邻点都是激活点,例如上图;

2)选择tok p个点,这些点为激活点。

实验

人脸关键点检测

全身位姿检测

消融实验

当使用高斯热图时,sigma越大,需要的激活点越多,最好效果在sigma=1.0/1.5时取得。

 

 

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

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

相关文章

flowable的变量实操及排坑

主要理解一下知识点 一、名字解释 详情解释传送门 setVariables 和 setVariablesLocal区别? 1.流程变量 在流程执行或者任务执行的过程中,用于设置和获取变量,使用流程变量在流程传递的过程中传递业务参数。 对应的表: act_ru_variable&…

操作系统——4.操作系统的运行机制和体系结构

这篇文章,我们一起来学习一下操作系统的运行机制和体系结构 目录 1.概述 2.运行机制 2.1两种指令 2.2两种处理器状态 ​编辑2.3两种程序 ​编辑2.4 操作系统运行机制小结 3.操作系统内核 ​4.操作系统的体系结构 5.小结 1.概述 首先,我们来看一下…

OpenResty | nginx内部发送请求

文章目录一. http请求的API二. 封装http工具函数三. CJSON工具类四. hash均衡(1) 原理(2) 实现一. http请求的API 关于OpenResty如何安装和编写业务逻辑可以参考这篇文章:点击跳转 nginx提供了内部API用以发送http请求: local resp ngx.location.capt…

听说2年以上的自动化测试都有16k+,4年10k的你还要等待奇迹吗?

个人简介学渣一枚,2017年6月某xx学校毕业。从事自动化测试已经4年,。2018年的时候,由于项目的原因,开始使用Robot Framework测试框架,正因为有Python的基础所以很快就理解了Robot Framework框架的工作原理,…

【Vue】浅谈vue2、vue3响应式原理,vue中数组的响应式,响应式常见问题分析

前言:此处响应式指的是数据响应式变化,而不是页面的响应式布局,页面的响应式布局在我的其他文章中有提到。 一、什么是vue响应式 Vue 最标志性的功能就是其低侵入性的响应式系统。组件状态都是由响应式的 JavaScript 对象组成的。当更改它们…

以太网基础

1.系统概述网卡(Network Interface Card,简称NIC),也称网络适配器,一个网卡主要包括OSI的最下面的两层,物理层和数据链路层。物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并…

Ambire 最新消息——2023 年 1 月

大家好,这里是我们在过去几周所做的一切的快速回顾。 发展 整个钱包的交易模拟和余额预测 我们推出了一项真正改变加密钱包 UX 游戏规则的功能:Ambire 现在向用户显示他们的钱包余额将如何更新,甚至在签署交易之前。 这项新功能可以分解为 Am…

PMP证书在哪个行业比较有用?

PMP 各个行业都能用,PMP 的知识体系是通用的,管理层的考试也有借鉴PMP知识的地方。历年考生考的最多的是IT 行业,其他行业也都有分布。PMP认证从国外引进大陆这么多年了,其火热程度依然不减,我个人认为是取决于市场的运…

34、基于51单片机锂电池电压电流容量检测仪表LCD液晶显示 原理图PCB程序设计

方案选择 单片机的选择 方案一:AT89C52是美国ATMEL公司生产的低电压,高性能CMOS型8位单片机,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元…

水泥|物流行业停车场电动发卡机读卡器K720的维护及使用注意事项

水泥|物流行业停车场电动发卡机读卡器K720采用工业级设计,表面烤漆处理,具有良好的耐磨耐腐蚀性。适应各种高、低温, 多灰尘等恶劣 环境。其发卡原理为拟人型摩擦式发卡,对各类变形卡有非常好的适应性。预留了活动式票箱安装位&am…

MyBatis 插件 + 注解轻松实现数据脱敏

问题在项目中需要对用户敏感数据进行脱敏处理,例如身份号、手机号等信息进行加密再入库。解决思路就是:一种最简单直接的方式,在所有涉及数据敏感的查询到对插入时进行密码加解密方法二:有方法一到出现对所有重大问题的影响&#…

C++如何实现系统语言切换功能,MessageBox的确认/取消按钮语言显示如何跟程序一致

文章目录前言 一、新建工程二、添加多国语言的资源三、程序语言设置四、语言切换五、字符串处理六、MessageBox的问题七、相关函数和类型参考文章前言 目前很多软件都是要出口到多个国家,多个地区,因此,为软件提供多国语言支持就成为了一个基…

20230215使用X99主板的电脑的性能测试(intel E5-2696V3 )

20230215使用X99主板的电脑的性能测试 2023/2/15 22:59 1850¥ 套餐七 模拟器参考20开 18核心36线程单路 适用 设计渲染 模拟器虚拟机工作室游戏多开 处理器 intel E5-2696V3 主频2.3G 18核心36线程 散热器 定制12CM大六铜管温控静音 主板 intel芯片X99-D3全固态大…

[项目篇] 音乐播放器开发报告

文章目录1. 项目描述:2. 项目上线展现:3. 项目具体实现:1. 登录2. 注册3.退出系统4.添加音乐4.1前后端交互约定4.2上传文件业务逻辑:4.3创建model包中的music类4.4在MusicMapper接口中,声明insertMusic抽象方法4.5在mybatis包中添…

既然有HTTP协议,为什么还要有RPC

既然有HTTP协议,为什么还要有RPC? 从TCP聊起 作为一个程序员,假设我们需要在A电脑的进程发一段数据到B电脑的进程,我们一般会在代码里使用socket进行编程。 这时候,我们可选项一般也就TCP和UDP二选一。TCP可靠&…

第六章 - 数据过滤where(where与and和or的组合用法)

第六章 - 数据过滤&#xff08;where的用法&#xff09;基本用法where的条件限制符等于号不等号! 或者<>小于<大于>小于等于<大于等于>between 的用法空值和非空值组合条件 and组合条件 orand 和 or 的计算次序in 和 not in基本用法 在查询语句中&#xff0…

JAVA面试八股文一(并发与线程)

并发的三大特性原子性&#xff1a;cpu在执行过程不可以暂停然后再调度&#xff0c;不可以中断&#xff0c;要不全部执行完&#xff0c;要不全部不执行。可见性&#xff1a;当多个线程访问同一个变量时&#xff0c;一个线程改变了这个变量的值&#xff0c;其他线程能够立即看到修…

PDF加密如何批量解除?快来了解下这个方法

在现代办公环境中&#xff0c;PDF文档的使用非常普遍。然而&#xff0c;由于一些安全需求&#xff0c;有时候PDF文档会被加密&#xff0c;使得只有授权人员可以查看或修改它。但是&#xff0c;如果您需要对许多加密PDF文档进行操作&#xff0c;逐个解密这些文档可能非常费时费力…

一文了解JAVA中同步、异步、阻塞和非阻塞

&#x1f3c6;今日学习目标&#xff1a; &#x1f340;JAVA中同步、异步、阻塞和非阻塞 ✅创作者&#xff1a;林在闪闪发光 ⏰预计时间&#xff1a;30分钟 &#x1f389;个人主页&#xff1a;林在闪闪发光的个人主页 &#x1f341;林在闪闪发光的个人社区&#xff0c;欢迎你的加…

阿里云服务器入门使用流程 新手学习教程

一、阿里云根据个人需要选合适的云服务器&#xff0c;选好cpu、内存、带宽&#xff0c;地域&#xff0c;这四个是主要的。其他可以默认选择。 二、登陆控制台 输入账号密码&#xff0c;进去看到服务界面&#xff0c;新手可能不容易看懂。点击左侧菜单&#xff0c;点击云服务器…