【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 这个词推荐用ÿ…...
关于息肉检测和识别项目的总结
前言 整体的思路:首先息肉数据集分为三类: 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的组件学习 参考资料: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岁作家的离世引发关注,有这些情况的请注意
近期,90后网络小说家七月新番和26岁男艺人蒋某某因肺癌去世,引发关注。他们都没有吸烟习惯,那么他们为什么会得肺癌呢?浙大二院呼吸内科副主任医师兰芬说,现在年轻人熬夜、加班导致身体过劳,在劳累情况下身…...
【兔子王赠书第4期】用ChatGPT轻松玩转机器学习与深度学习
文章目录 前言机器学习深度学习ChatGPT推荐图书粉丝福利尾声 前言 兔子王免费赠书第4期来啦,突破传统学习束缚,借助ChatGPT的神奇力量,解锁AI无限可能! 机器学习 机器学习是人工智能领域的一个重要分支,它的目的是让…...
Ubuntu18.04 ROS Melodic的cv_bridge指向问题(四种方式,包括opencv4)(转载)
转载自: 【精选】Ubuntu18.04 ROS Melodic的cv_bridge指向问题(四种方式,包括opencv4)_XiangrongZ的博客-CSDN博客...
Android任务栈和启动模式
Andrcid中的任务栈是一种用来存放Activity实倒的容器。任务最大的特点就是先进后出,它主要有两个基本操作,分别是压栈和出栈。通常Andaid应用程序都有一个任务栈,每打开一个Activity时,该Activity就会被压入任务栈。每销毁一个Act…...
电脑加密软件哪个好?电脑加密软件推荐
电脑是我们办公离不开的工具,而为了保护电脑数据安全,我们可以使用专业的电脑加密软件来进行加密保护。那么,电脑加密软件哪个好呢?下面我们就来了解一下。 文件加密——超级加密3000 想要安全加密电脑重要文件,我们可…...
如何优雅地单元测试 Kotlin/Java 中的 private 方法?
翻译自 https://medium.com/mindorks/how-to-unit-test-private-methods-in-java-and-kotlin-d3cae49dccd ❓如何单元测试 Kotlin/Java 中的 private 方法❓ 首先,开发者应该测试代码里的 private 私有方法吗? 直接信任这些私有方法,测试到…...
单元测试,集成测试,系统测试的区别是什么?
实际的测试工作当中,我们会从不同的角度对软件测试的活动进行分类,题主说的“单元测试,集成测试,系统测试”,是按照开发阶段进行测试活动的划分。这种划分完整的分类,其实是分为四种“单元测试,…...
数据结构(超详细讲解!!)第十八节 串(KMP算法)
1.BF算法 算法在字符比较不相等,需要回溯(即ii-j1):即退到s中的下一个字符开始进行继续匹配。 最好情况下的时间复杂度为O(m)。 最坏情况下的时间复杂度为O(nm)。 平均的时间复杂度为O(nm)。 2.KMP算法 KMP算法是D.E.Knuth、…...
软考_软件设计师
算法: 1、直接插入排序 详解: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资源异常时,系统产生此告警。 当Manager中的Ldap资源恢复,且告警处理完成时,告警恢复。 告警属性 告警参数 对系统的影响 Ldap资源异常,Manager和组件WebUI认证服务不可用,无法对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如何导出接口的几种方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 前言: 我的文章还是一贯的作风,简确用风格(简单确实有用)&…...
Java进阶(Set)——面试时Set常见问题解读 结合源码分析
前言 List、Set、HashMap作为Java中常用的集合,需要深入认识其原理和特性。 本篇博客介绍常见的关于Java中Set集合的面试问题,结合源码分析题目背后的知识点。 关于List的博客文章如下: Java进阶(List)——面试时L…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...
【JavaSE】多线程基础学习笔记
多线程基础 -线程相关概念 程序(Program) 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存…...
【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅
目录 前言 操作系统与驱动程序 是什么,为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中,我们在使用电子设备时,我们所输入执行的每一条指令最终大多都会作用到硬件上,比如下载一款软件最终会下载到硬盘上&am…...
上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式
简介 在我的 QT/C 开发工作中,合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式:工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...
0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化
是不是受够了安装了oracle database之后sqlplus的简陋,无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话,配置.bahs_profile后也能解决上下翻页这些,但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可,…...
云安全与网络安全:核心区别与协同作用解析
在数字化转型的浪潮中,云安全与网络安全作为信息安全的两大支柱,常被混淆但本质不同。本文将从概念、责任分工、技术手段、威胁类型等维度深入解析两者的差异,并探讨它们的协同作用。 一、核心区别 定义与范围 网络安全:聚焦于保…...
jdbc查询mysql数据库时,出现id顺序错误的情况
我在repository中的查询语句如下所示,即传入一个List<intager>的数据,返回这些id的问题列表。但是由于数据库查询时ID列表的顺序与预期不一致,会导致返回的id是从小到大排列的,但我不希望这样。 Query("SELECT NEW com…...
