[TPAMI‘21] Heatmap Regression via Randomized Rounding

2023-11-11

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时取得。

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[TPAMI‘21] Heatmap Regression via Randomized Rounding 的相关文章

随机推荐

  • Python列表字符转为数值

    列表常遇到的几个问题 1 列表元素有非数字的字符串 2 列表元素有数字为字符串类型 如何将列表元素为 的替换为0 列表字符转换为数值可用以下三种方法 循环 列表生成式 numpy 推荐 二维数组建议用Numpy 方法1 循环方法 num l
  • flask中文文档_「Flask系列」 初识Flask

    引子 作者有多年的编程打杂经验 之前一直参与基于Java的各种项目以及产品规划与设计 后因自己创业维持一家小公司 有些项目与产品 想降低开发成本 故在公司内部推行基于Python Flask的后端开发 因作者不是纯技术研究者 一切以结果为导
  • Python:解一元二次方程

    今天看到廖雪峰老师的python3 看到函数后面的练习 如何解一元二次方程 感觉蛮简单的就打开text sblime去试试 糟糕 竟然忘了怎么求一元二次方程 查资料 终于查好了 开始动手 1 导入math模块 2 定义函数def n d r
  • ajax的两种写法

    一 原生ajax的实现 1 什么是ajax ajax是异步的javas和xml Asynchronous JavaScript And XML 通过在后台与服务器进行小量的数据交换 ajax可以使网页实现异步更新 就是说可以在不刷新页面的情
  • IntelliJ IDEA 2020版 修改 idea64.exe.vmoptions文件位置

    IntelliJ IDEA 2020版 修改 idea64 exe vmoptions文件位置 IDEA文件新的改变 2021 8 10 针对IntelliJ IDEA 2020 2 x64版本 亲验有效 idea64 exe vmopti
  • AcEdJig类

    以多段线类举例 class AsdkPolyLineJig public AcEdJig public AsdkPolyLineJig constAcGePoint3d po AsdkPolyLineJig voiddoIt 操作画图的主流
  • mysql在Windows下使用mysqldump命令手动备份数据库和自动备份数据库

    手动备份 cmd控制台 先进入mysql所在的bin目录下 如 cd C Program Files MySQL MySQL Server 5 5 bin mysqldump u root p 数据库 表名1 表名2 gt 文件路径 比如
  • 个人理财 第七章 理财师的工作流程和方法 8.33%

    第七章 理财师的工作流程和方法
  • 堆排序与新元素插入(对应王道考研数据结构)

    文章目录 代码 主要针对王道的代码增加了新元素的插入 上浮 操作 测试1 对大 小 根堆插入 上浮 一个新元素 时间复杂度与树的高度h有关 根据完全二叉树的性质 O l o g 2
  • 16_C#正则表达式之06将邮箱中的名字替换成星号

    using System using System Collections Generic using System Linq using System Text using System Threading Tasks using Sys
  • gscale

    一 处理可变数量的输入和输出 利用nargin和nargout进行检测 T testhv 4 5 该函数体中使用nargin返回2 使用nargout返回1 函数nargchk可用于一个M函数体中 以检测传递函数的参量数目是否正确 msg
  • Linux脚本调试

    输出脚本运行每行的命令及状态 bash x 脚本名 或在脚本开头加上 bin bash x 仅对脚本中部分内容调试 set x set x bash 脚本名 运行脚本前先打印脚本 bash v 脚本名 或在脚本开头加上 bin bash v
  • String类

    String类 String 类的特点 字符串一旦初始化就不会被改变 1 获取 1 1 获取字符串中字符的个数 长度 int length 1 2 根据位置获取字符 char charAt int index 1 3 根据字符 串 获取在字
  • django返回html标签

    记录一下 使用from django utils html import format html return format html 例子 from django contrib import admin from models impo
  • python 多版本虚拟环境的安装以及常见报错的处理(解决python2.7 - pip wheel failed with error code 2 问题)

    安装 虚拟环境 注意虚拟环境的 包安装 不要加sudo sudo会装在全局 注意虚拟环境的 包安装 不要加sudo sudo会装在全局 注意虚拟环境的 包安装 不要加sudo sudo会装在全局 1 虚拟环境的创建和使用 项目1 gt 依赖
  • 【vscode】快捷键一键生成vue模板

    vscode 快捷键一键生成vue模板 点击File gt Preferences gt User Snippets 搜索框搜索vue 打开vue json 会有如下代码 可自行配置 可默认 Place your snippets for
  • Webkit for Android分析

    转自 http mogoweb net archives 182 网上有许多webkit的分析文章 其中针对android porting的一篇文章WebKit WebKit For Android 写的非常好 分析得非常深入 不过这篇文章
  • 二、svg文字之排版

    1 transform rotate 90 80 80 的使用
  • 【Segment Anything Model】一:SAM分割任何事物模型官网使用介绍

    点击订阅专栏 查看专栏列表和对应知识点 本文为seg SAM系列文章 在持续更新 文章目录 1 简明扼要 2 分割效果 3 开始探索 Segment Anything Model的核心愿景 Segment Anything Model已经实
  • [TPAMI‘21] Heatmap Regression via Randomized Rounding

    paper https arxiv org pdf 2009 00225 pdf code https github com baoshengyu H3R 总结 本文提出一套编解码方法 编码 random round整数化 激活点响应值表征