基于SMPL的三维人体重建-深度学习经典方法之VIBE

本文以开源项目VIBE[1-2]为例,介绍下采用深度学习和SMPL模板的从图片进行三维人体重建算法的整体流程。如有错误,欢迎评论指正。


一.算法流程

包含生成器模块和判别器模块,核心贡献就在于引入了GRU模块,使得当前帧包含了先前帧的先验信息,从而动作更加连贯和合理(VIBE的思路其实还是很清晰的,几张图足以概况,更多的还是在于工程实现,感兴趣的话还是得去看下源码)。

注: 这里是整个训练流程,训练结束后会拿掉判别器的部分,只需要生成器部分进行推理。

二.具体步骤

数据集

  1. MPI-INF-3DHP: 8个个体,每个个体16个视频序列,大多为室内环境采集,包含3d关节点,SMPL参数
  2. Human3.6M: 使用了7个个体,每个个体15个动作序列,受控环境下采集,包含3d关节点,SMPL参数
  3. 3DPW: 60个视频序列,室内室外均有,包含3d关节点,SMPL参数
  4. PennAction: 2326个视频序列,15种不同的动作,包含2d关节点及其置信度,2d包围盒
  5. Insta Variety: 共计长达24个小时的视频序列,Instagram上收集得到,利用openpose生成伪2d关节点
  6. PoseTrack: 1337个视频序列,包含2d关节点
  7. Kinetics-400: 具体信息不清,利用openpose生成伪2d关节点
  8. AMASS: 300个个体,11000个动作种类,共计40小时的视频,包含SMPL参数

网络结构

  1. 生成器模块

输入图片序列,输出SMPL系数和相机参数。

  1. 判别器模块

输入SMPL系数,输出动作的合理概率。

注:以上两张图还是挺好理解的,可参考GRU[4],对抗学习[6],自注意力模型[5]进行理解。

  • 输入

图片序列。

注:基于单张图片进行SMPL重建的模型最大的问题在于忽视了帧间的联系,若采用这种模型应用于视频序列,其中存在的一个问题就是人体会很抖动。

  • 输出

SMPL系数(全局姿态: 3, 关节点节点姿态: 23*3,形状系数: 10),相机参数(尺度: 1,平移: 2)

注:指推理阶段的输出,也就是生成器的输出

损失函数

1)生成器损失

式2)、式3)含义自明;

式4)中,对于形状系数 β ^ \hat{\beta} β^,是通过对每一帧的 β t \beta_t βt做average pooling得到的;

式5)中, Θ ^ = { θ ^ 1 , . . . , θ ^ , β ^ } \hat\Theta=\{\hat\theta_1,...,\hat\theta,\hat\beta\} Θ^={θ^1,...,θ^,β^}, D M \mathcal{D}_M DM表示判别器,输出的是动作的合理概率。

2)判别器损失

式6)中, Θ \Theta Θ为来自AMASS的SMPL模型的GT系数。

三.实现

注:1)目前的开源实现[2]在训练阶段,生成器开始利用CNN提取特征和最后利用回归器生成SMPL参数的步骤,是单独利用已训练好的SPIN模型实现的,而不是联合GRU模块一起训练的,训练流程如下所示(感觉一起训练的话效果应该会更好)

2)推理流程为

四.其它

除了VIBE之外,后续有一篇改进的论文TCMR[8]。简单看了下主要是对网络结构进行了改动,但重建效果要比VIBE平滑很多,代码也开源了[9],感兴趣的读者可以自行研究下。

五.参考

1\]`VIBE: Video Inference for Human Body Pose and Shape Estimation` \[2\]`[GitHub - mkocabas/VIBE: Official implementation of CVPR2020 paper "VIBE: Video Inference for Human Body Pose and Shape Estimation"](https://github.com/mkocabas/VIBE)` \[3\]`[Guided lecture: VIBE: Video Inference for Human Body Pose and Shape Estimation](https://www.youtube.com/watch?v=hErK0MamTY4&list=TLPQMTIwMjIwMjLEOfLIHvqppA&index=2)` \[4\]`[阿力阿哩哩:通熟易懂RNN|RNN与RNN的变种结构 | 上](https://zhuanlan.zhihu.com/p/105383343)` \[5\]`[soccer:Attention注意力机制与self-attention自注意力机制](https://zhuanlan.zhihu.com/p/265108616?utm_source=qq)` \[6\]`[一文读懂对抗生成学习(Generative Adversarial Nets)[GAN]](https://www.cnblogs.com/Mang0/p/10129284.html)` \[7\]`[CVPR2020论文解读 | VIBE:Video Inference for Human Shape](https://cloud.tencent.com/developer/article/1645354)` \[8\]`Beyond Static Features for Temporally Consistent 3D Human Pose and Shape from a Video` \[9\]`[GitHub - hongsukchoi/TCMR_RELEASE: Official Pytorch implementation of "Beyond Static Features for Temporally Consistent 3D Human Pose and Shape from a Video", CVPR 2021](https://github.com/hongsukchoi/TCMR_RELEASE)` \[10\]`[python中logging日志模块详解 - 咸鱼也是有梦想的 - 博客园](https://www.cnblogs.com/xianyulouie/p/11041777.html)` \[11\]`[十指透兮的阳光:yacs的使用小记](https://zhuanlan.zhihu.com/p/366289700)` \[12\]`[GitHub - mkocabas/multi-person-tracker: Simple Multi Person Tracker implementation in PyTorch](https://github.com/mkocabas/multi-person-tracker)`

相关推荐
春日见15 小时前
丝滑快速拓展随机树 S-RRT(Smoothly RRT)算法核心原理与完整流程
人工智能·算法·机器学习·路径规划算法·s-rrt
陈文锦丫16 小时前
MixFormer: A Mixed CNN–Transformer Backbone
人工智能·cnn·transformer
小毅&Nora17 小时前
【人工智能】【AI外呼】系统架构设计与实现详解
人工智能·系统架构·ai外呼
顾道长生'17 小时前
(Arxiv-2025)ID-COMPOSER:具有分层身份保持的多主体视频合成
计算机视觉·音视频·composer
一只侯子18 小时前
Face AE Tuning
图像处理·笔记·学习·算法·计算机视觉
jianqiang.xue18 小时前
别把 Scratch 当 “动画玩具”!图形化编程是算法思维的最佳启蒙
人工智能·算法·青少年编程·机器人·少儿编程
Coding茶水间19 小时前
基于深度学习的安全帽检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
图像处理·人工智能·深度学习·yolo·目标检测·计算机视觉
weixin79893765432...19 小时前
Vue + Express + DeepSeek 实现一个简单的对话式 AI 应用
vue.js·人工智能·express
nju_spy20 小时前
ToT与ReAct:突破大模型推理能力瓶颈
人工智能·大模型·大模型推理·tot思维树·react推理行动·人工智能决策·ai推理引擎
AI-智能20 小时前
别啃文档了!3 分钟带小白跑完 Dify 全链路:从 0 到第一个 AI 工作流
人工智能·python·自然语言处理·llm·embedding·agent·rag