当前位置: 首页 > 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)方法总览
在这里插入图片描述

http://www.lryc.cn/news/212773.html

相关文章:

  • 关于息肉检测和识别项目的总结
  • Jetson Xavier NX FFmpeg支持硬件编解码
  • 518抽奖软件,为什么说比别的抽奖软件更美观精美?
  • React的组件学习
  • uni-app配置微信开发者工具
  • 肺癌不再是老年病:33岁作家的离世引发关注,有这些情况的请注意
  • 【兔子王赠书第4期】用ChatGPT轻松玩转机器学习与深度学习
  • Ubuntu18.04 ROS Melodic的cv_bridge指向问题(四种方式,包括opencv4)(转载)
  • Android任务栈和启动模式
  • 电脑加密软件哪个好?电脑加密软件推荐
  • 如何优雅地单元测试 Kotlin/Java 中的 private 方法?
  • 单元测试,集成测试,系统测试的区别是什么?
  • 数据结构(超详细讲解!!)第十八节 串(KMP算法)
  • 软考_软件设计师
  • 大数据之LibrA数据库系统告警处理(ALM-12004 OLdap资源异常)
  • 详解—数据结构《树和二叉树》
  • 菜单管理中icon图标回显
  • Postman如何导出接口的几种方法
  • Java进阶(Set)——面试时Set常见问题解读 结合源码分析
  • 【强化学习】12 —— 策略梯度(REINFORCE )
  • Kubernetes Taint(污点) 和 Toleration(容忍)
  • 使用cv::FileStorage时出错 Can‘t open file: yaml‘ in read mode
  • 代码之困:那些让你苦笑不得的bug
  • 【C语言初学者周冲刺计划】2.2用选择法对10个整数从小到大排序
  • c++系列——智能指针
  • 力扣日记10.30-【栈与队列篇】滑动窗口最大值
  • docker与宿主机共享内存通信
  • A股风格因子看板 (2023.10 第13期)
  • ORB-SLAM3算法2之EuRoc、TUM和KITTI开源数据集运行ORB-SLAM3生成轨迹并用evo工具评估轨迹
  • 【蓝桥杯选拔赛真题07】C++小球自由落体 青少年组蓝桥杯C++选拔赛真题 STEMA比赛真题解析