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

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、实验

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2.数据结构-链表

概述 目标 链表的存储结构和特点链表的几种分类及各自的存储结构链表和数组的差异刷题(反转链表) 概念及存储结构 先来看一下动态数组 ArrayList 存在哪些弊端 插入,删除时间复杂度高需要一块连续的存储空间,对内存要求比较高,比如要申请…

CentOS 安装 Hadoop Local (Standalone) Mode 单机模式

CentOS 安装 Hadoop Local (Standalone) Mode 单机模式 Hadoop Local (Standalone) Mode 单机模式 1. 修改yum源 并升级内核和软件 curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repoyum clean allyum makecacheyum -y update2. 安…

如何让salesforce提交待审批后不锁定记录

在 Salesforce 中,默认情况下,当记录被提交待审批时,它会被锁定以防止其他用户对其进行修改。这是为了确保审批过程中数据的完整性和一致性。然而,有时可能希望提交待审批后不锁定记录,这时可以使用Apex代码来实现: Ap…

idea自动编译以及修改代码后需要执行 mvn clean install 才生效

idea自动编译以及修改代码后需要执行 mvn clean install 才生效 一. idea热部署一、开启IDEA的自动编译(静态)二、开启IDEA的自动编译(动态)三、开启IDEA的热部署策略(非常重要) 二. IDEA 中项目代码修改后…

Vue 插槽 组件插入不固定内容

定义好一个组件&#xff0c;如果想插入图片或视频这非常不好的控制应该显示什么&#xff0c;这个时候可以使用插槽插入自定义内容 默认插槽 <Login><template><h1>我是插入的内容</h1></template></Login >组件 <slot></slot>…

一文了解Elasticsearch

数据分类 数据按数据结构分类主要有三种&#xff1a;结构化数据、半结构化数据和非结构化数据。 结构化数据 结构化数据具有明确定义数据模型和格式的数据类型。 特点&#xff1a; 数据具有固定的结构和模式。 数据项明确定义数据类型和长度。 适合用于数据查询、过滤和分…

ZOC8 for Mac:超越期待的终端仿真器

在Mac上&#xff0c;一个优秀的终端仿真器是每位开发者和系统管理员的必备工具。ZOC8&#xff0c;作为一款广受好评的终端仿真器&#xff0c;以其强大的功能和易用性&#xff0c;已经在Mac用户中积累了良好的口碑。本文将为您详细介绍ZOC8的各项特性&#xff0c;以及为什么它会…

MSQL系列(十二) Mysql实战-为什么索引要建立在被驱动表上

Mysql实战-为什么索引要建立在被驱动表上 前面我们讲解了BTree的索引结构&#xff0c;也详细讲解下 left Join的底层驱动表 选择原理&#xff0c;那么今天我们来看看到底如何用以及如何建立索引和索引优化 开始之前我们先提一个问题&#xff0c; 为什么索引要建立在被驱动表上…

【NI-DAQmx入门】传感器基础知识

1.什么是传感器&#xff1f; 传感器可将真实的现象&#xff08;例如温度或压力&#xff09;转换为可测量的电流和电压&#xff0c;因而对于数据采集应用必不可少。接下来我们将介绍您所需的测量类型及其对应的传感器类型。在开始之前&#xff0c;您还可以先了解一些传感器术语&…

uniapp 开发微信小程序 v-bind给子组件传递函数,该函数中的this不是父组件的二是子组件的this

解决办法&#xff1a;子组件通过缓存子组件this然后&#xff0c;用bind改写this 这个方法因为定义了全局变量that 那么该变量就只能用一次&#xff0c;不然会有赋值覆盖的情况。 要么就弃用v-bind传入函数,改为emit传入自定义事件 [uniapp] uview(1.x) 二次封装u-navbar 导致…

[MySQL]——SQL预编译、动态sql

键盘敲烂&#xff0c;年薪30万&#x1f308; 目录 一、SQL的预编译 &#x1f4d5;一条SQL语句的执行过程 &#x1f4d5;弊端 &#x1f4d5;预编译SQL的优势 &#x1f4d5;两种参数占位符 &#x1f4d5;小结 二、动态SQL &#x1f4d5;概念介绍&#xff1a; &#x1f4…

ROS自学笔记二十: Gazebo里面仿真环境搭建

Gazebo 中创建仿真实现方式有两种:1直接添加内置组件创建仿真环境2: 手动绘制仿真环境 1.添加内置组件创建仿真环境 1.1启动 Gazebo 并添加组件 1.2保存仿真环境 添加完毕后&#xff0c;选择 file ---> Save World as 选择保存路径(功能包下: worlds 目录)&#xff0c;文…

Docker:命令

Docker&#xff1a;命令 1. 创建MySQL的命令解读2. 基础命令3. 案例 查看DockerHub&#xff0c;拉取Nginx镜像&#xff0c;创建并运行Nginx容器4. 命令别名附录 1. 创建MySQL的命令解读 docker run :创建并运行一个容器&#xff0c;-d 是让容器在后台运行--name:给容器起一个名…

Java日志组件介绍之一

一、前言 前段时间爆出Log4j安全漏洞的事情&#xff0c;XX云因未及时报告漏洞被工信部暂停网络安全威胁和漏洞信息共享平台合作单位&#xff08;https://www.cstis.cn/&#xff09;&#xff0c;话说Java的日志组件真是多而且也比较乱&#xff0c;后续几篇文章就聊一下各日志组…

【嵌入式】【GIT】如何迁移老的GIF到新的仓库时使用LFS功能并保持LOG不变

一、正常迁移流程 假设有仓库 ssh://old/buildroot-201902 需要迁移到新的仓库 ssh://old/buildroot-201902时,我们可以使用以下命令来完成: # 下载老的仓库 git clone ssh://old/buildroot-201902 # 向新的仓库上传所有的tags git push ssh://new/buildroot-201902 --tag…

【Linux】:Linux开发工具之Linux编辑器vim的使用

&#x1f52b;1.Linux编辑器-vim使用 &#x1f4e4; vi/vim的区别简单点来说&#xff0c;它们都是多模式编辑器&#xff0c;不同的是vim是vi的升级版本&#xff0c;它不仅兼容vi的所有指令&#xff0c;而且还有一些新的特性在里面。例如语法加亮&#xff0c;可视化操作不仅可以…

【ARMv8 SIMD和浮点指令编程】NEON 存储指令——如何将数据从寄存器存储到内存?

和加载指令一样,NEON 有一系列的存储指令。比如 ST1、ST2、ST3、ST4。 1 ST1 (multiple structures) 从一个、两个、三个或四个寄存器存储多个单元素结构。该指令将元素从一个、两个、三个或四个 SIMD&FP 寄存器存储到内存,无需交错。每个寄存器的每个元素都被存储。 …

Ansible自动化运维工具介绍与部属

Ansible自动化运维工具介绍与部属 一、ansible简介1.1、什么是Ansible1.2、Ansible的特点1.3、Ansible的架构 二、Ansible任务执行解析2.1、ansible任务执行模式2.2、ansible执行流程2.3、ansible命令执行过程 三、部署ansible管理集群3.1、实验环境3.2、安装ansible3.3、查看基…

MySQL数据库的存储引擎,底层存储结构,事物隔离级别,索引,日志等

存储引擎 存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表而不是基于库的&#xff0c;所以存储引擎也可以被称为表引擎。 默认存储引擎是InnoDB。 InnoDB 在 MySQL 5.5 之后&#xff0c;InnoDB 是默认的 MySQL 引擎。 1.支持事务 2.行级锁…

ElasticSearch 高级查询语法Query DSL实战

ES高级查询Query DSL ES中提供了一种强大的检索数据方式&#xff0c;这种检索方式称之为Query DSL&#xff08;Domain Specified Language 领域专用语言&#xff09; , Query DSL是利用Rest API传递JSON格式的请求体(RequestBody)数据与ES进行交互&#xff0c;这种方式的丰富查…