马普所开源ICON,显著提高单张图像重建三维数字人的姿势水平 | CVPR 2022

简介: 马普所开源ICON,显著提高单张图像重建三维数字人的姿势水平 | CVPR 2022

本文介绍了马普所二年级 CS 博士生修宇亮(Yuliang Xiu)入选 CVPR 2022 的一项三维数字人姿态重建新研究 ——ICON[1]。在本文中,他将详述这项工作的来龙去脉,包括厘清本研究的动机及思维起点 (motivation)、梳理出这二十多页论文的主线、论文中没提及的洞见 (insight),并着重讲一下 ICON 的局限及改进思路。3月17日19:00-20:00,修宇亮将带来线上分享,详细介绍本篇工作,直播详情见文末。



论文地址:https://readpaper.com/paper/4569785684533977089

GitHub 地址:https://github.com/YuliangXiu/ICON

Colab 地址:https://colab.research.google.com/drive/1-AWeWhPvCTBX0KfMtgtMk10uPU05ihoA?usp=sharing

主页地址:https://icon.is.tue.mpg.de/


现有三维数字人姿态重建方法的不足

首先,明确 ICON 的任务:给一张彩色图片,将二维纸片人,还原成拥有丰富几何细节的三维数字人

围绕这一任务,之前有许多基于显式表达的方法 (expliclit representation: mesh[2]、voxels[3]、depth map & point cloud[4], etc)。但直到三年前 PIFu (ICCV’19)[5] 第一个把隐式表达 (implicit representation) 用到这个问题,衣服的几何细节才终于好到 —— 艺术家愿意扔到 Blender 里面玩一玩的地步。但 PIFu 有两个严重的缺陷:速度慢和姿势鲁棒性差

我们在 MonoPort (ECCV’20)[6] 中一定程度上解决了「速度慢」这个问题,整个推理到渲染加一块,用普通显卡可以做到 15FPS 的速度。后来我们把重建和 AR 做了一个结合,用 iPad 陀螺仪控制渲染的相机位姿,最后有幸获得 SIGGRAPH Real-Time Live 的 Best Show Award。

但是「姿态鲁棒性」一直没有得到很好的解决。PIFuHD[7] 将 PIFu 做到了 4K 图片上,把数字人的几何细节又提了一个档次,但还是只能在站立 / 时装姿势 (fashion pose) 下得到满意的结果。ARCH[8] 以及 ARCH++ [9] 尝试把问题从姿态空间(pose space)转换到标准空间(canonical space, 把人摆成「大」字)来解决。但这种转换,首先很依赖于姿态估计 (HPS) 的准确性,其次由于转换依赖于 SMPL 自带的蒙皮骨骼权重(skinning weights),这个权重是写死的且定义在裸体上,强行用到穿衣服的人上,由动作带动的衣服褶皱细节就不那么自然。

另外一个思路,就是加几何先验 (geometric prior)。通俗点说,就是我给你一个粗糙的人体几何,然后根据图像信息,来雕琢出来一个细致的人体几何。GeoPIFu (+estimated voxel)[10]、PaMIR (+voxelized SMPL)[11]、S3 (+lidar)[12] 都有做尝试。我尝试过直接把准确的几何先验 (groundtruth SMPL) 灌给 PaMIR,但 PaMIR 依旧不能在训练集中没见过的姿态上(比如舞蹈、运动、功夫、跑酷等)重建出满意的结果。


提高姿势水平的重要性

提高姿势水平是为了彻底打通基于图像的重建(image-based reconstruction)和基于扫描的建模(scan-based modeling)。

随着 NASA[13]、SCANimate[14]、SNARF[15]、MetaAvatar[16]、Neural-GIF[17] 等一系列工作爆发,如何从动态的三维人体扫描 (3D human scan sequences / 4D scans) 中学出来一个可以被驱动的、用神经网络表达的数字人 (animatable neural avatar) 渐渐成为一个研究热点。而高质量的动态人体扫描的获得,费钱费人工,导致普通用户或者没有多视角采集设备的团队,很难进入这个领域。

图左为 4D 扫描设备(MPI),图右 Light Stage(USC-ICT)。

问题来了,有没有可能扔掉昂贵且费时费力的扫描流程,用 PIFu 从视频中做逐帧重建(Images to Meshes),然后把重建结果直接扔给 SCANimate 做建模呢(Meshes to Avatar)呢?


在理论上当然是可以的,但是现实却很骨感。症结在于,现有的重建算法,都没有办法在很多样的姿态下保持重建的稳定性。

但是,数量足够多且姿势各异的三维人体却是 SCANimate 构建高质量可驱动数字人的必要前提!这个不难理解 —— 要让一个数字人无论怎么动弹,衣服裤子的褶皱都很真实,如果用数据驱动的思路去做,那么网络得先「看过足够多」类似动作下衣服的形变,才能准确摸索出衣服形变与动作姿势之间的关联。

总而言之,真要把 Images-Meshes-Avatar 这条路走通,非提高姿势水平不可。


提高姿势水平从哪些方面入手

ICON 在思路上借鉴了很多相关工作,比如 PIFuHD 里面的法向图(Normal Image),并和 PaMIR 一样都用了 SMPL body 做几何空间约束。这两个信息都是不可或缺的:SMPL body 提供了一个粗糙的人体几何,而法向图则包含了丰富的衣服褶皱细节,一粗一细,相得益彰。

RGB Image - Normal Image (Body) - Normal Image (Clothed Human)


然后,问题就来了:

怎么从图像中提取出准确且细致的 normal image?

直接从图像中预测的 SMPL body 如果不准确该怎么办?

SMPL body 这个几何约束,该怎么用?


它们并不是三个独立的问题,而是高度相关的。

SMPL 辅助 normal 预测。pix2pix 地从 RGB 猜 normal,要在不同姿态上做到足够泛化,就需要灌进去大量的训练数据。但是,既然 SMPL body 已经提供了粗糙的人体几何,这个几何也可以渲染成 body normal 的形式,那么如果我们把这个 body normal 和 RGB 合并一下,一块扔进网络作为输入, pix2pix 的问题就可以转化为一个新问题:用 RGB 的细节信息对粗糙的 body normal 进行形变(wraping)和雕琢(carving)最后获得 clothed normal。而这个问题的解决,可以不依赖于大量训练数据;

normal 帮助优化 SMPL。既然 clothed normal 可以从图像中攫取到 SMPL body 没有的几何细节,那么有没有可能用这些信息去反过来优化 SMPL body ?这样,SMPL body 和 clothed normal 就可以相互裨益迭代优化,body mesh 准了,normal image 就对;normal image 对了,反过来还可以进一步优化 body mesh。1+1>2,实现双赢;

舍弃 global encoder。最后,SMPL body 和 clothed normal 都有了,即人大致的体型和衣服几何细节都有了,我们真的需要像 S3、PaMIR、GeoPIFu 那样,使用一个巨大的全局卷积神经网络(2D/3D global CNN)来提特征,然后用 Implicit MLP 雕琢出穿衣人的精细外形吗?ICON 的答案是:不需要,SDF is all you need。


效果图

有了 SMPL body(左边,w/ Prior)的加持,clothed normal 预测更准确。


让 clothed normal 来优化 SMPL(第二列),同时更好的 SMPL 也提升了 clothed normal 的质量(第三列)。


下面这张图展示了 ICON 整体处理 pipeline。先从图像中预测 SMPL body,渲染出正反 body normal,与原始图像合并起来,过一个法向预测网络,出正反 clothed normal。然后对于三维空间中的点,clothed normal 取三维,body normal 上取三维(注意,这里是从 SMPL mesh 上用最近邻取的,而不是从 body normal image 中取的),SDF 取一维,一共七维,直接扔进 implict MLP,Marching Cube 取一下 0.5 level-set 等值面。


量化指标这里就不放了。为了确保比较的绝对公平,我除了用原作者放的模型在测试集上跑了结果,还在 ICON 的框架内重新复现了 PIFu、PaMIR。此外,我确保除了方法本身的差异,其他部分(训练数据、优化策略、网络结构)都保持一致,不引入干扰变量。实验结论显示,ICON 是 SOTA,在离谱的姿势下优势明显,训起来省数据。SMPL 不准的时候,加上迭代优化那个模块,甚至要比 PaMIR 直接在精准 SMPL 上的结果还要好。

现在放出来的代码只包括测试代码,但完整的训练代码已经在路上。ICON 包括了 PIFu、PaMIR 以及 ICON 各种变种的测试 + 训练代码,而且使用了 PyTorch-Lightning 框架做代码规范。这样以后大家要用自己的数据在 ICON、PIFu 和 PaMIR 上做训练和测试,只需要基于 ICON 调整就行。


下面这张图证明了 ICON 的一个特别突出的优势,就是省钱。毕竟 RenderPeople 一个就几百块人民币,实在离谱。仅仅给 1/8 的训练数据(50 个 3D human scan),ICON 重建的质量就可以超过用接近 4000 个训练数据训出来的 PIFu,也超过了用 450 个数据训出来的 PaMIR。作为一个舍弃了 global CNN 的极其 local 的模型,ICON 对训练数据量确实不敏感。而恰恰就是这种钝感,对于提高三维人重建的姿势水平至关重要。


为了充分测试 ICON 在非常难的姿势上是什么水平,我从 pinterest 上找了一些动作非常离谱的图片,武术、跑酷、舞蹈以及体育等等。总之,这些动作从未出现在训练集中,也不可能成为训练集(动作转瞬即逝,没法稳定住用仪器进行扫描捕捉)。但结果是令人欣慰的,尽管不完美,但至少还是个人形。



最后,我们按照之前计划的,把 Images-Meshes-Avatar 的流程跑了一下,结果还不错。


ICON 并不完美

ICON 确实可以提高姿势水平,但不是尽善尽美。接下来聊聊 ICON 的劣势。

其实原论文及补充材料中对「坏结果」的分析和呈现 (Fig.7 和 Fig.18),已然不怎么遮掩了。虽然 ICON 在量化指标上实现了 SOTA,但对本领域相关研究者而言,「坏结果」往往比「好结果」更能揭示方法的原理和本质。


ICON 现有的问题主要集中在以下几点:

鱼和熊掌不可得兼。SMPL prior 带来了稳定性,但也破坏了 implicit function 原有的优势 —— 几何表达的自由性。因此,对于那些离裸体比较远的部分,比如两腿之间的裙子、随风飞扬的外套,就「挂」了。而这些部分,最原始的 PIFu 不见的做的比 ICON 差,毕竟 PIFu 是没有引入任何几何先验的。总之,稳定性 vs 自由度,是一个 tradeoff;

。SMPL-normal 迭代优化的设计思路,导致单张图要跑 20s 才能出来不错的结果,实时性大大折扣;

性能天花板受制于 HPS。重建结果受 SMPL 准确性影响极大,SMPL-Normal 的迭代优化,并不能彻底解决严重的姿势估计错误。ICON 现在支持 PyMAF[18]、PARE[19] 以及 PIXIE[20] 三种 HPS,PARE 对遮挡好一些。PIXIE 手和脸准一些,PyMAF 最稳定,但依旧对一些很难的 case 束手无策。所以,尽管 HPS 已经做得很多了,围绕各种 corner case 每年能出数百篇论文,但我们依然不能说这个问题解决了,也不能说这个问题没有价值了。至少,对于 ICON 而言,HPS 的准确度是一切的基础,HPS 挂了,再怎么迭代优化也没用;

几何比法向差。clothed normal 的质量与最终重建的人体几何质量之间有 gap。normal 明明看起来很好,但 geometry 的质量就打了折扣。理论上,重建人体渲染出来的 normal image 和网络预测出来的 clothed normal 不应该有那么大差距。这块我还在 debug,希望下一个版本可以修复。



未来改进方向

基于 ICON,接下来还可以在以下几个方向进行改进:

ICON++,进一步提升 ICON 的重建质量,更快更细节更稳定更泛化更通用;

把 ICON 用到别的任务中,比如做动物姿态,比如用 ICON 做个数据集,基于数据集建个生成模型;

Wildvideo-ICON、Multiview-ICON 和 Multiperson-ICON;

扔掉 3D supervision、非监督、自监督,以及训练范式的改进,比如 E2E-ICON。


如果有同学对这些方向有兴趣,我非常欢迎各种形式的合作(yuliang.xiu@tuebingen.mpg.de)。

Google Colab 支持上传并测试你自己的图片,最后会生成类似下图这样的重建视频,你可以将视频上传到 twitter 并打上#ICON的标签,@yuliangxiu,无论结果是好是坏,我都会转发,对于重建任务,cherry picks 和 failure cases 都是算法的一部分,好的烂的都放出来,才是一次完整的作品呈现,期待大家奇形怪状的重建结果。另外,Readpaper 这个产品非常吼,大家如果有关于ICON的问题,可以直接在Readpaper上提问:https://readpaper.com/paper/4569785684533977089

Image - Normal Estimation - Reconstructed Mesh (w/o smooth, w/ smooth)


知乎原文:https://zhuanlan.zhihu.com/p/477379718

相关文章
|
机器学习/深度学习 传感器 人工智能
首篇!最全的全景分割综述(RGB图像/医学图像/LiDAR)(下)
本文对现有的全景分割方法进行了第一次全面的综述。因此,基于所采用的算法、应用场景和主要目标的性质,对现有全景技术进行了定义良好的分类。此外,还讨论了全景分割在通过伪标记标注新数据集中的应用。接下来,进行消融研究,以从不同角度了解全景方法。此外,还讨论了适用于全景分割的评估指标,并对现有解决方案的性能进行了比较,以了解最新技术并确定其局限性和优势。最后,阐述了当前主题技术面临的挑战以及近期吸引大量关注的未来趋势,这可以作为未来研究的起点。
首篇!最全的全景分割综述(RGB图像/医学图像/LiDAR)(下)
|
1月前
|
存储 传感器 数据安全/隐私保护
CVPR 2024 Highlight:基于单曝光压缩成像,不依赖生成模型也能从单张图像中重建三维场景
【5月更文挑战第15天】CVPR 2024会议上,清华大学研究人员提出的SCINeRF利用单曝光压缩成像(SCI)技术结合神经辐射场(NeRF)进行3D场景重建。SCI以低成本捕捉高维数据,而SCINeRF将SCI的成像过程融入NeRF训练,实现复杂场景的高效重建。实验显示,该方法在图像重建和多视角图像生成方面取得优越性能,但实际应用仍需解决SCI系统设计、训练效率和模型泛化等挑战。[Link: https://arxiv.org/abs/2403.20018]
46 2
|
1月前
|
传感器 机器学习/深度学习 编解码
卫星图像10个开源数据集资源汇总
卫星图像10个开源数据集资源汇总
43 0
|
1月前
|
存储 编解码 vr&ar
ICLR 2024:单张图像完成逼真的三维重建
【2月更文挑战第28天】ICLR 2024:单张图像完成逼真的三维重建
77 2
ICLR 2024:单张图像完成逼真的三维重建
|
1月前
|
机器学习/深度学习 人工智能 达摩院
DDColor:AI图像着色工具,优秀的黑白图像上色模型,支持双解码器!
DDColor:AI图像着色工具,优秀的黑白图像上色模型,支持双解码器!
235 3
|
1月前
|
编解码 算法 数据处理
【论文速递】ISPRS2022 :一种新颖的结合几何语义信息的星载SAR数据立体三维定位方法
【论文速递】ISPRS2022 :一种新颖的结合几何语义信息的星载SAR数据立体三维定位方法
|
10月前
|
机器学习/深度学习 编解码 算法
【阿里云OpenVI-视觉生产系列之图片上色】照片真实感上色算法DDColor ICCV2023论文深入解读
图像上色是老照片修复的一个关键步骤,本文介绍发表在 ICCV 2023 上的最新上色论文 DDColor
2280 10
【阿里云OpenVI-视觉生产系列之图片上色】照片真实感上色算法DDColor ICCV2023论文深入解读
|
编解码
Google Earth Engine ——数据全解析专辑(世界第 4 版网格化人口 (GPWv4) 修订版30 弧秒1公里格网)人口数量和密度数据集
Google Earth Engine ——数据全解析专辑(世界第 4 版网格化人口 (GPWv4) 修订版30 弧秒1公里格网)人口数量和密度数据集
375 0
Google Earth Engine ——数据全解析专辑(世界第 4 版网格化人口 (GPWv4) 修订版30 弧秒1公里格网)人口数量和密度数据集
|
机器学习/深度学习 人工智能 计算机视觉
华南理工TANGO项目原作解读: 文本驱动的三维物体风格化模型
华南理工TANGO项目原作解读: 文本驱动的三维物体风格化模型
129 0
|
机器学习/深度学习 编解码 人工智能
首篇BEV感知生成工作!BEVGen:从鸟瞰图布局生成环视街景图像
本文提出了BEVGen,这是一个条件生成式模型,它合成了一组真实且空间一致的环视图像,这些图像与交通场景的BEV布局相匹配。BEVGen结合了一种新颖的交叉视图转换和空间注意力设计,学习相机和地图视图之间的关系,以确保它们的一致性。BEVGen可以精确地渲染道路和车道线,以及在不同的天气条件和时间生成交通场景。
首篇BEV感知生成工作!BEVGen:从鸟瞰图布局生成环视街景图像