Hand Avatar: Free-Pose Hand Animation and Rendering from Monocular Video

news2024/11/15 11:52:47

Github: https://seanchenxy.github.io/HandAvatarWeb

1、结构摘要

  1. MANO-HD模型:作为高分辨率网络拓扑来拟合个性化手部形状
  2. 将手部几何结构分解为每个骨骼的刚性部分,再重新组合成对的几何编码,得到一个跨部分的一致占用场
  3. 纹理建模:在MANO-HD表面设计了可驱动的anchor,记录反照率;定向软占用用于描述光线-表面关系,生成照明场,进一步用于解耦与姿态无关的反照率和与姿态相关的照明

2、重建方法

  1. 传统:纹理图、彩色网格。
  2. 蒙皮的方法很难为任意查询找到准确的蒙皮权重,而部分感知方法通常存在跨部分不一致问题
  3. 思路:(1)显示网格描述手型,MANO-HD(12337个顶点+24608个面);(2)局部占用场(PairOF):每两个部分级几何编码通过物理连接重新组装,以产生跨部分一致的场;(3)对于手部纹理,通过由反照率场和照明场组成的自遮挡感知阴影场(SeLF)计算纹理,反照率场通过MANO-HD表面的anchor(位置和反照率编码)模拟手部区域,照明场应对自遮挡。

3、Method

  • MANO-HD 是一个通用的高分辨率手部网格模型,可以通过单目 RGB 视频数据拟合个性化手部形状。
  • 关注详细的个性化纹理,包括反照率和照明。为了增强表面纹理表示,以显式网格为指导开发了局部表示。遵循局部建模范式,并使用重心采样在 MANO-HD 表面上均匀放置anchor以跟踪局部信息。
  • 在关节自遮挡条件下专门对照明进行nerf建模。

给定手部姿势,MANO-HD 产生个性化的网格, PariOF 产生相应的占用场。SelF估计自遮挡下的反照率和照明场。然后,通过立体渲染绘制合成手部外观

  1. MANO-HD
    (1)细分网格(提升分辨率):在边缘的中间点添加定点统一细分MANO网格,增加顶点和面;添加顶点的蒙皮权重由其重要的顶点的平均值给出。为了消除蒙皮过程中的伪影,优化了上采样蒙皮权重以获得更好的动态性能。
    (2)Shape Fitting:摆脱 β,使用MLP推导并细化形状。
  2. Local-Pair Occupancy Field
    给定查询点x,PairOF预测占用值α。手表面:{q|αq = 0.5}。
    (1)Part-Space Encoder:线划分手部网格,在网格上均匀采样得到点云,法线,并转换回规范空间通过PointNet提取几何特征。
    (2)Local-Pair Decoder:作者认为划分的局部之间有很强的关系,基于 PointNet 的局部对解码器 Qpair 来融合每个配对编码并预测占用值,最后,通过融合part-level值获得全局占用值。
  3. Self-Occlusion-Aware Shading Field
    给定query q,通过SelF(q)预测反照率和照明度
    (1)对于视图方向上的光线投射,我们统一采样N个查询,每个查询具有占用场α、反照率a和光照值u。我们用立体渲染神经场:在这里插入图片描述
    (2)Albedo Field:因为手部表面点是不变的,因此在MANO-HD表面固定anchor。在MANO-HD模板上均匀采样获得N个点的点云P,并用重心坐标表示它们(重心anchor更均匀,以覆盖手部表面)。然后,我们开发了随机初始化的反照率编码A,并将它们附加到锚点上。给定手部姿势,可以根据变形的顶点和固定的重心坐标重新采样锚点,形成变形点云P。对于查询 q,我们在P 中找到 n 个最近点,并使用逆欧几里得距离作为权重插值 A。因此,我们得到反照率编码 Aq,然后将其馈送到 MLP 以预测反照率值 aq,即 aq = Malbedo(Aq)。
    (3)Directed Soft Occupancy:
    对于自遮挡照明估计,我们需要骨骼部分的近远关系。也就是说,当 q 接近多个部分时,查询 q 的光照会受到自遮挡的影响。虽然占用值可以描述q和部分之间的关系,但值几乎是二进制的,因此只能描述内外关系。因此,在sigmoid函数中引入软因子τ,软化占用值:

    此外,作者设计了定向软占用来反映光线投射和铰接部分之间的近远关系,而不是对单个查询进行建模。对于可以达到 q 的光线投射 r,有向软占用 αs b,q,r 定义为光线命中 q 之前 r 的最大值。对于离散化,我们在光线投射 r 上统一采样查询 {qi}N qi=1,并将有向软占用计算为 αs b,q,r = max{αs b,qi |qi ≤ q},其中 qi ≤ q 选择光线在到达 q 之前遍历的查询。例如,下图中最深紫色查询的 αs b3,q,r 等于 αs b3。
    图2

(4)Illumination Field:当我们考虑了自遮挡的情况后,我们需要估计一个查询点的照明强度。这个强度受到许多因素的影响,包括光源分布、辐照度和反射。在这个问题中,我们关心的是辐照度,它表示能量到达一个特定点的数量。
为了解决这个问题,我们使用了两个关键线索:手部的姿态和查询点的位置。我们通过对这些信息进行编码,得到了关于姿态和位置的表征。
然而,自遮挡是一个复杂的问题。我们引入了一个被称为软因子 τ 的参数,将其加入到 Sigmoid 函数中,以柔化占用值。这个 Sigmoid 函数用于描述一个点是否被遮挡,软因子使得它的取值范围从0到1之间。
为了更好地处理自遮挡,我们引入了一个称为“有向软占用”的概念。它表示在一个射线方向上,能量被部分阻挡的程度。如果一条射线在到达查询点之前接近了多个部位,那么查询点的照明将受到自遮挡的影响。
我们选择了一组射线方向,使得它们能够到达查询点,并能描述所有关节部位的近-远关系。此外,我们还考虑到一个关节部位只会影响其周围的照明情况。
最终,我们使用一个多层感知器(MLP)来预测查询点的照明强度。这个预测过程涵盖了姿态信息、位置信息以及有向软占用作为输入,从而得到了查询点的照明强度估计值。

4、实验

在这里插入图片描述
可以看到,该方法重建的效果还是很好地:
在这里插入图片描述

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

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

相关文章

?SW转cad尺寸不一致

应该是330 中心线不对

x86-32-Linux下栈溢出攻击原理

在x86-32-Linux下构造一个栈溢出攻击 栈缓冲区溢出攻击:向栈上的数组写入超过数组长度的数据导致覆盖到正常数据{栈帧上的返回地址}。 IA-32下C函数调用约定: 调用者将参数从右向左入栈,构造参数call 指令短跳转,会将call指令下一…

【每日一题】从数量最多的堆取走礼物

文章目录 Tag题目来源题目解读解题思路方法一:排序方法二:优先队列 其他语言python3 写在最后 Tag 【优先队列】【排序】【数组】【2023-10-28】 题目来源 2558. 从数量最多的堆取走礼物 ​ 题目解读 执行 k 次操作,每次从数量最多的堆中取…

VirtualBox 安装 麒麟Linux

为了验证Oracle EM是否可以管理麒麟OS和其上的Oracle数据库,今天试着在VirtualBox上装了麒麟Linux,也就是银河麒麟。整个过程比较顺畅。 选定ISO文件后,操作系统自动识别为Red Hat。勾选“跳过自动安装”: 内存和CPU选的默认值&…

AFsim 仿真运行

创建完仿真模型平台后,点击Warlock.exe程序,弹出仿真运行的窗口,点击浏览选择创建好的test文件,点击运行。 点击运行后,进入仿真运行的主页面,如下图所示: 1.仿真控制 顶部工具栏中文件的内容。…

【C++】mapset的底层结构 -- AVL树(高度平衡二叉搜索树)

前面我们对 map / multimap / set / multiset 进行了简单的介绍,可以发现,这几个容器有个共同点是:其底层都是按照二叉搜索树来实现的。 但是二叉搜索树有其自身的缺陷,假如往树中插入的元素有序或者接近有序,二叉搜索…

数据结构 | 算法的时间复杂度和空间复杂度【详解】

数据结构 | 算法的时间复杂度和空间复杂度【详解】 1. 什么是数据结构? 数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。 2. 什么是算法? 算法(Algorithm):就是定义良好的计算过…

C++前缀和算法的应用:预算内的最多机器人数目

本文涉及的基础知识点 C算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 单调双向队列 滑动窗口 题目 你有 n 个机器人,给你两个下标从 0 开始的整数数组 chargeTimes 和 runningCosts ,两者长度都为 n 。第 i 个机器…

Maven - no main manifest attribute(SpringBoot 多模块)

问题描述 no main manifest attribute 解决方案 一个主项目下,多个业务模块,假设 starter 模块作为启动器,以及主项目(project)最外层父 pom.xml 最关键要关注这 2 个 pom.xml(starter - pom.xml & p…

python画气泡标尺图

目录 渐变气泡图彩色气泡图 在进行实验结果分析的时候,气泡标尺图能非常清晰对不同的结果进行多维度的比较,特别是在深度学习模型大小和精度进行比较的时候非常合适使用,以下是几个例子。 渐变气泡图 import seaborn as sns import matplotl…

正点原子嵌入式linux驱动开发——Linux 串口RS232/485/GPS 驱动

串口是很常用的一个外设,在Linux下通常通过串口和其他设备或传感器进行通信,根据 电平的不同,串口分为TTL和RS232。不管是什么样的接口电平,其驱动程序都是一样的,通过外接RS485这样的芯片就可以将串口转换为RS485信号…

RZMO-A-030/210、HZMO-A-030/315电控比例压力阀控制器

RZMO-A-030/50、RZMO-A-030/210、RZMO-A-030/350、RZMO-A-030/100、RZMO-A-030/315、HZMO-A-030/50、HZMO-A-030/210、HZMO-A-030/350、HZMO-A-030/100、HZMO-A-030/315滑阀型先导式数字型比例溢流阀,用于压力开环控制,可提供板式或叠加式安装。A型&…

web - 前段三剑客

目录 前言 一. HTML 常用标签演示 图片标签 ​编辑 表格标签(重点) ​编辑 表单标签 (重点) 布局标签 其余标签 二. CSS 2.1 . css的三种引入方式 2.2 . 三大选择器 2.3 . css样式 - 浮动 2.4 . css样式 - 定位 1.static 2.absolute(绝对位置) 3.relavite(相…

Binder机制总结笔记

Binder机制总结笔记 什么是Binder? Binder的Android特有的IPC通信机制。Android的四大组件Activity、Service、Broadcast、ContentProvider,不同的App等都运行在不同的进程内,他们之间的通信都需要依靠Binder完成。因此Binder在整个Android系…

好用的ps滤镜插件Portraiture2024

Photoshop 是最常用到的综合性的设计工具,虽然PS一直在迭代升级,但是在细节功能上,PS总是无法完全满足全部所有的用户需求,今天coco玛奇朵推荐一个个截至目前最受欢迎的免费的PS插件,有了这些功能扩展的插件后PS如虎添…

OpenCV C++ 图像处理实战 ——《缺陷检测》

OpenCV C++ 图像处理实战 ——《缺陷检测》 一、结果演示二、缺陷检测算法2.1、多元模板图像2.2、训练差异模型三、图像配准3.1 功能源码3.1 功能效果四、多元模板图像4.1 功能源码五、缺陷检测5.1 功能源码六、源码测试图像下载总结一、结果演示

拓世大模型 | 立足行业所需,发力终端,缔造智能无限可能

蒸汽机的发明为人类工业革命揭开序幕,引领了近现代产业变革。众所周知,而今AI技术的革命性突破,站在了时代舞台的中心,特别是大模型的崛起,无疑是第四次产业革命的焦点,它的地位可与当年的“蒸汽机”相提并…

AndroidSDK下载及安装(Windows)

下载地址:https://www.androiddevtools.cn/ 找到SDK工具并下载安装 都是傻瓜式一键安装 除了注意安装路径应避免选择中文或特殊字符路径,应该没什么大问题。 下载安装Android SDK Android SDK Tools安装后,启动SDK Manager.exe:…

综合OA管理系统源码 OA系统源码

综合OA管理系统源码 OA系统源码 功能介绍: 编号:LQ10 一:系统管理 系统配置,功能模块,功能节点,权限角色,操作日志,备份数据,还原数据 二:基础数据 审批…

Linux-组管理和权限管理

一、组管理—基本介绍 在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念。 1)所有者 2)所在组 3)其它组 4)改变用户所在的组 二、组管理—文件/目录所有者 1、查看文件或者目录的所有者和所在组的指令 所有…