当前位置: 首页 > news >正文

【ICCV‘23】One-shot Implicit Animatable Avatars with Model-based Priors

文章目录

  • 前置知识

前置知识

1)SMPL模型
\quad SMPL这类方法只建模穿很少衣服的人体(裸体模型),它只能刻画裸体角色的动画,并不能刻画穿衣服的人体的动画
2)data-efficient
\quad 这个词推荐用,表示对数据的利用效率高,sparse-views时就可以用。


Code: https://github.com/huangyangyi/ELICIT
Author: State Key Lab of CAD & CG, Zhejiang University;Max Planck Institute for Intelligent Systems, T¨ubingen;
摘要: 现有的方法要想从sparse-views 输入中重建human avatar,要么需要dense input signals(视频或多视图),要么从大规模特定的3D human数据集中学习先验。他们的大多数都不能从单视图中重建human avatar。为了实现data-efficient的human avatar制作,这篇文章提出了ELICIT。受到人类可以毫不费力地估计身体的几何形状,并从一张图像中想象全身服装的启发,,这篇文章利用了两个先验: 来自于 a skinned vertex-based template model(SMPL)的3D geometry prior,和基于CLIP的visual semantic prior。CLIP模型用于,在text的条件下生成unseen-region。为了提升视觉细节,作者还提出了segmentation-based sampling strategy。


一、动机:
\quad 从相机输入中重建真实的animatable human avatar对VR/AR的应用具有重要意义,比如telepresence,virtual fitness。这是一个挑战的任务,它需要3D几何的解纠缠的重建、clothed human的外观、用于动画的复杂人体姿态(这个pose,与相机pose不同,指的是人体的形态)的精确建模。

\quad 现在的human-specific neural rendering方法可以取得很好的效果,但是是在输入是dense 和well-contolled的情况下。比如,well-calibrated 捕捉的多视图视频,或long monocular videos,在它们之中,人体的所有部分几乎都是visible的。然而,这样的高质量的密集输入对于普通用户是不方便的,甚至有时是不可能的。

\quad 一些工作在多视图数据中训练一个条件NeRF,以此来提升泛化性。但是他们在面对sparse-view时,仍然捉襟见肘。

\quad 相对于MVSNeRF、PixelNeRF这样在大规模数据集上训练一个条件模型,最近的一些工作引入了多样的正则化,比如几何(RegNeRF)、外貌(Putting NeRF on a Diet、Sinnerf)等,来避免degeneration。这样的方式,使得在半监督框架下,不使用额外训练数据成为可能。但是由于subject的遮挡区域信息的缺失,他们对于unseen views的合成是很难的。对unseen 区域的合成,是一个open issue。

\quad 为了解决上述挑战,作者提出了ELICIT方法,包含了两个先验。

二、相关工作:

\quad 1)Animatable human neural rendering

\quad 最近的从multi-view或single-view video中重建3D human NeRF的工作,大部分执行的是per-subject optimization。在他们之中,Neural Body在SMPL模型的网格顶点上学习结构化的latent code,其他工作在canonical space中建模 pose-driven deformation,比如《Humannerf: Free-viewpoint rendering of moving people from monocular video》、H-NeRF、A-NeRF、《Humannerf: Efficiently generated human radiance field from sparse inputs》、《Animatable Neural Radiance Fields for Modeling Dynamic Human Bodies》、《Animatable neural implicit surfaces for creating avatars from videos》。虽然这些方法产生了令人印象深刻的结果,但它们需要覆盖人体大部分区域的密集输入。

\quad 2)Single-view-based NeRF
\quad 由于遮挡,NeRF模型很难在新的视图中合成输入中不可见的区域。一些现有的方法以数据驱动的方式利用学习到的场景几何、外观先验。其中,im2nerf使用无监督的方式训练一个条件NeRF,Eg3D和CG-NeRF利用conditional generative NeRF来重建人脸。

\quad 也有一些方法属于non-data-driven,它们使用一些off-the-shelf的模型来引入一些先验。比如MINE和Depth-supervised nerf引入了depth cues,RegNeRF引入了几何信息,Sin-NeRF和DietNeRF使用预训练的图像编码器引入语义先验从稀疏输入中产生语义上一致的新视图合成结果。

\quad 因此这篇文章也通过一些off-the-shelf的模型来引入一些先验(这似乎是大模型时代的共识),SMPL-based human body prior和CLIP-based visual semantic prior。

\quad 3)single-image-based human rendering
\quad MonoNHR提出了一个data-driven的方法训练了一个条件NeRF。EVA3D学习了一个无条件的3D人体生成模型,并使用GAN 反演从单张图片中重建3D human。然而,它的通用性在很大程度上受到训练数据集的有偏分布的限制。

三、方法:

\quad 1)Preliminaries

\quad SMPL(Skinned Multi-Person Linear model)模型,由大规模对齐的人体表面扫描驱动的skinned vertex-based template model。SMPL将姿态参数(用一个72维的向量表征人体姿态形状)和形状参数(一个10维的向量)进行编码,输出一个雕刻有6890个顶点的人体的混合形状。这篇文章用SMPL参数表征目标运动中 input character’s body 的 shape,posture,和 pose sequence。

\quad HumanNeRF支持单目视频中移动character的free-view rendering(free-view rendering就是不需要输入pose?)。实际上,HumanNeRF表征了一个 moving character,它将一个canonical appearance volume F c F_c Fc扭曲到被观测的姿态,遗产税输出的appearance volume F o F_o Fo。它的数学公式如下:
在这里插入图片描述
其中, T \mathcal{T} T表示motion field,将一个空间点从观测空间映射到标准化空间(canonical space)。这过程以姿态参数 p = ( J , Ω ) p=(J,\Omega) p=(J,Ω)为条件, J J J表示三维关节点位置, Ω \Omega Ω表示局部关节点旋转。
在这里插入图片描述
\quad F c F_c Fc的作用是将position x x x 映射到 color c c c 和volume density σ \sigma σ

\quad 这篇文章基于HumanNeRF这个模型来做,因此也可以实现free-view motion rendering。

\quad 2)方法总览
在这里插入图片描述

相关文章:

【ICCV‘23】One-shot Implicit Animatable Avatars with Model-based Priors

文章目录 前置知识 前置知识 1)SMPL模型 \quad SMPL这类方法只建模穿很少衣服的人体(裸体模型),它只能刻画裸体角色的动画,并不能刻画穿衣服的人体的动画 2)data-efficient \quad 这个词推荐用&#xff…...

关于息肉检测和识别项目的总结

前言 整体的思路:首先息肉数据集分为三类: 1.正常细胞 2. 增生性息肉 3. 肿瘤要想完成这个任务,首先重中之重是分割任务,分割结果的好坏, 当分割结果达到一定的准确度后,开始对分割后的结果进行下游分类…...

Jetson Xavier NX FFmpeg支持硬件编解码

最近在用Jetson Xavier NX板子做视频处理,但是CPU进行视频编解码,效率比较地下。 于是便考虑用硬解码来对视频进行处理。 通过jtop查看,发现板子是支持 NVENC硬件编解码的。 1、下载源码 因为需要对ffmpeg进行打补丁修改,因此需要编译两份源码 1.1、编译jetson-ffmpeg …...

518抽奖软件,为什么说比别的抽奖软件更美观精美?

518抽奖软件简介 518抽奖软件,518我要发,超好用的年会抽奖软件,简约设计风格。 包含文字号码抽奖、照片抽奖两种模式,支持姓名抽奖、号码抽奖、数字抽奖、照片抽奖。(www.518cj.net) 精致美观功能 字体平滑无锯齿图片放大后清晰…...

React的组件学习

React的组件学习 参考资料&#xff1a;https://zh-hans.react.dev/learn/your-first-component 一、定义组件 export default function Profile() {return (<imgsrc"https://i.imgur.com/MK3eW3Am.jpg"alt"Katherine Johnson"/>) }以下是构建组件…...

uni-app配置微信开发者工具

一、配置微信开发者工具路径 工具->设置->运行配置->小程序运行配置->微信开发者工具路径 二、微信开发者工具开启服务端口...

肺癌不再是老年病:33岁作家的离世引发关注,有这些情况的请注意

近期&#xff0c;90后网络小说家七月新番和26岁男艺人蒋某某因肺癌去世&#xff0c;引发关注。他们都没有吸烟习惯&#xff0c;那么他们为什么会得肺癌呢&#xff1f;浙大二院呼吸内科副主任医师兰芬说&#xff0c;现在年轻人熬夜、加班导致身体过劳&#xff0c;在劳累情况下身…...

【兔子王赠书第4期】用ChatGPT轻松玩转机器学习与深度学习

文章目录 前言机器学习深度学习ChatGPT推荐图书粉丝福利尾声 前言 兔子王免费赠书第4期来啦&#xff0c;突破传统学习束缚&#xff0c;借助ChatGPT的神奇力量&#xff0c;解锁AI无限可能&#xff01; 机器学习 机器学习是人工智能领域的一个重要分支&#xff0c;它的目的是让…...

Ubuntu18.04 ROS Melodic的cv_bridge指向问题(四种方式,包括opencv4)(转载)

转载自&#xff1a; 【精选】Ubuntu18.04 ROS Melodic的cv_bridge指向问题&#xff08;四种方式&#xff0c;包括opencv4&#xff09;_XiangrongZ的博客-CSDN博客...

Android任务栈和启动模式

Andrcid中的任务栈是一种用来存放Activity实倒的容器。任务最大的特点就是先进后出&#xff0c;它主要有两个基本操作&#xff0c;分别是压栈和出栈。通常Andaid应用程序都有一个任务栈&#xff0c;每打开一个Activity时&#xff0c;该Activity就会被压入任务栈。每销毁一个Act…...

电脑加密软件哪个好?电脑加密软件推荐

电脑是我们办公离不开的工具&#xff0c;而为了保护电脑数据安全&#xff0c;我们可以使用专业的电脑加密软件来进行加密保护。那么&#xff0c;电脑加密软件哪个好呢&#xff1f;下面我们就来了解一下。 文件加密——超级加密3000 想要安全加密电脑重要文件&#xff0c;我们可…...

如何优雅地单元测试 Kotlin/Java 中的 private 方法?

翻译自 https://medium.com/mindorks/how-to-unit-test-private-methods-in-java-and-kotlin-d3cae49dccd ❓如何单元测试 Kotlin/Java 中的 private 方法❓ 首先&#xff0c;开发者应该测试代码里的 private 私有方法吗&#xff1f; 直接信任这些私有方法&#xff0c;测试到…...

单元测试,集成测试,系统测试的区别是什么?

实际的测试工作当中&#xff0c;我们会从不同的角度对软件测试的活动进行分类&#xff0c;题主说的“单元测试&#xff0c;集成测试&#xff0c;系统测试”&#xff0c;是按照开发阶段进行测试活动的划分。这种划分完整的分类&#xff0c;其实是分为四种“单元测试&#xff0c;…...

数据结构(超详细讲解!!)第十八节 串(KMP算法)

1.BF算法 算法在字符比较不相等&#xff0c;需要回溯&#xff08;即ii-j1&#xff09;&#xff1a;即退到s中的下一个字符开始进行继续匹配。 最好情况下的时间复杂度为O(m)。 最坏情况下的时间复杂度为O(nm)。 平均的时间复杂度为O(nm)。 2.KMP算法 KMP算法是D.E.Knuth、…...

软考_软件设计师

算法&#xff1a; 1、直接插入排序 详解&#xff1a;https://blog.csdn.net/qq_44616044/article/details/115708056 void insertSort(int data[],int n){int i,j,temp;for(i1;i<n;i){if(data[i]<data[i-1]){temp data[i];data[i] data[i-1];for(ji-1;j>0&&am…...

大数据之LibrA数据库系统告警处理(ALM-12004 OLdap资源异常)

告警解释 当Manager中的Ldap资源异常时&#xff0c;系统产生此告警。 当Manager中的Ldap资源恢复&#xff0c;且告警处理完成时&#xff0c;告警恢复。 告警属性 告警参数 对系统的影响 Ldap资源异常&#xff0c;Manager和组件WebUI认证服务不可用&#xff0c;无法对Web上层…...

详解—数据结构《树和二叉树》

目录 一.树概念及结构 1.1树的概念 1.2树的表示 二.二叉树的概念及结构 2.1概念 2.2二叉树的特点 2.3现实中的二叉树 2.4数据结构中的二叉树 2.5 特殊的二叉树 2.6二叉树的存储结构 2.6.1二叉树的性质 2.6.2 顺序结构 2.6.3链式存储 三. 二叉树的链式结构的遍历 …...

菜单管理中icon图标回显

<el-table-column prop"icon" label"图标" show-overflow-tooltip algin"center"><template v-slot"{ row }"><el-icon :class"row.icon"></el-icon></template></el-table-column>...

Postman如何导出接口的几种方法

本文主要介绍了Postman如何导出接口的几种方法&#xff0c;文中通过示例代码介绍的非常详细&#xff0c;具有一定的参考价值&#xff0c;感兴趣的小伙伴们可以参考一下 前言&#xff1a; 我的文章还是一贯的作风&#xff0c;简确用风格&#xff08;简单确实有用&#xff09;&…...

Java进阶(Set)——面试时Set常见问题解读 结合源码分析

前言 List、Set、HashMap作为Java中常用的集合&#xff0c;需要深入认识其原理和特性。 本篇博客介绍常见的关于Java中Set集合的面试问题&#xff0c;结合源码分析题目背后的知识点。 关于List的博客文章如下&#xff1a; Java进阶&#xff08;List&#xff09;——面试时L…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具&#xff0c;该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具&#xff0c;其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利&#xff0c;如安装和调试…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库&#xff0c;专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性&#xff0c;并提供了一个通用的框架&…...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

stm32wle5 lpuart DMA数据不接收

配置波特率9600时&#xff0c;需要使用外部低速晶振...