当前位置: 首页 > 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…...

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站&#xff0c;会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后&#xff0c;网站没有变化的情况。 不熟悉siteground主机的新手&#xff0c;遇到这个问题&#xff0c;就很抓狂&#xff0c;明明是哪都没操作错误&#x…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

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…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...