SIFU 笔记:把 SMPL-X 侧视法线先验搬进「2D→3D 转换」——单图穿衣人体重建的 0.6 cm 突破

Zechuan Zhang, Zongxin Yang†, Yi Yang. SIFU: Side-view Conditioned Implicit Function for Real-world Usable Clothed Human Reconstruction, CVPR 2024.(ReLER, CCAI, 浙江大学;Zongxin Yang 为通讯作者;arXiv:2312.06704v3)

单图穿衣人体重建(PIFu → PaMIR → ICON → ECON/GTA)的病根一致:侧视/背视信息不足,侧后方只能靠"猜",于是侧向塌陷、部件缺失、衣物断裂。SIFU 在 ICON/ECON/GTA 之后一步——把 SMPL-X 侧视法线先验从"两端"搬到最关键的"2D 特征→3D"这一步,用 cross-attention 解耦侧视特征。

一、一句话结论

老方法把"2D 特征→3D"交给简单投影或固定 embedding,浪费了先验。SIFU 用 SMPL-X 侧视(left/back/right)法线图当 cross-attention 的 query,把侧视特征从输入图解耦出来,再在查询点融合四路特征。它在 THuman2.0 把 Chamfer / P2S 首次压到 0.6 cm(0.5961 / 0.6058),SMPL-X 不准时也稳;纹理上用 3D 一致纹理精修 补出背面,PSNR 比 PIFu 高 22.2%,并支持文本驱动编辑。

二、要解决什么问题

(i)2D→3D 的转换阶段缺先验引导。 从 2D 重建 3D 通常分三步:(a) 提取 2D 图像特征 → (b) 转换为 3D 特征 → (c) 生成重建用 3D 特征。现有方法多把几何先验(如 SMPL-X)加在 (a) 与 (c) 两端(法线图预测、SMPL 引导 SDF、体素特征等),而 (b) 这个承上启下的步骤几乎不用先验:要么投影到 3D 点(PIFu/PaMIR 系),要么用固定可学习 embedding(GTA 的 tri-plane)。

(ii)缺纹理先验。 PIFu / ARCH / PaMIR / GTA 直接预测顶点颜色,对不可见视角预测很差;PHORHUM、S3F 拆开 albedo 与光照仍缺其它视角先验;TeCH 用 diffusion 补不可见区域但逐个个体优化极耗时、强依赖精确 SMPL-X。

artifact 在 Fig. 3 挨个点名:PIFu / PaMIR / PIFuHD 根本没有人体形状、ECON 缺身体部件、ICON / D-IF 衣物被"打断"、GTA 缺细节。SIFU 要同时吃下复杂姿态与宽松衣物,并给出可用于真实用途(3D 打印、搭场景)的结果。

三、核心方法

流程:单张图 → Side-view Conditioned Implicit Function(§3.2)重建 mesh 与粗纹理 → 3D Consistent Texture Refinement(§3.3)精修纹理。SIFU 用隐式函数预测占据场并带出颜色场,重建表面为 $S_{IF}={\,x\in\mathbb{R}^3 \mid IF(x)=(o,c)\,}$(1),$o=0.5$(等值面),$c\in\mathbb{R}^3$;几何先验是 SMPL-X(形状 $\beta\in\mathbb{R}^{10}$、姿态 $\theta\in\mathbb{R}^{3\times24}$,mesh $M(\beta,\theta)\mapsto\mathbb{R}^{3\times6890}$,比 SMPL 多了手与脸)。

3.1 侧视解耦 Transformer

作者的观察:侧视(背视/左侧)与可见的正视共享材质、颜色等特征,只是被"混"在正面特征里,需分离并用 SMPL-X 指路。做法:ViT 全局编码器把 $I$ 编成 latent $h$;front-view decoder 对 $h$ 做多头自注意力得 $F_{front}$,side-view decoder 则把 SMPL-X 渲染的侧视法线图 $N_i$($i\in{left,back,right}$) 转成 embedding $z_i$ 当 query,与 $h$(key/value)做 cross-attention:

$$\mathrm{CrossAttn}(z_i,h)=\mathrm{SM}!\left(\frac{(W^Q z_i)(W^K h)^T}{\sqrt{d}}\right)(W^V h)\qquad(2)$$

SM 为 SoftMax,$W^Q,W^K,W^V$ 可学习,$d$ 为缩放系数;每子层后接残差与 LayerNorm;部署三个 side-decoder,得 $F_i\in\mathbb{R}^{H\times W\times C}$。

法线图自带"表面朝哪、从哪个方向看"的几何锚点,而且只是软引导(soft guidance)——SMPL-X 有偏差时只给出不太准的注意力偏好,不会像硬约束那样带崩结果,这就是鲁棒性的来源。论文称这是首次用人体先验从输入图解耦侧视 3D 特征。

3.2 混合先验融合策略

借用 GTA 思路,在查询点处同时利用空间定位与人体先验合并四张特征图 $F_j$($j\in{front,left,back,right}$)。空间查询组把查询点投影到特征图取像素对齐特征 $F^S_j$ 并混合:

$$F^S(x)=F^S_f(x)\ \oplus\ \mathrm{avg}\big(F^S_l(x),\,F^S_b(x),\,F^S_r(x)\big)\qquad(3)$$

($f,l,b,r$ = front/left/back/right,$\oplus$ 为拼接。)先验查询组把 SMPL-X mesh 顶点投影到特征图得 $F^S(v)$,对查询点 $x$ 找最近三角面 $t_x=[v_0,v_1,v_2]$ 做重心坐标插值:

$$F^P(x)=u\,F^S(v_0)+v\,F^S(v_1)+w\,F^S(v_2)\qquad(4)$$

两组拼接后加上到 SMPL-X mesh 的有符号距离 $\mathrm{SDF}(x)$ 与像素对齐法线特征 $F^N(x)$,送进 MLP:

$$(o,c)=\mathrm{MLP}\big(F^S(x),\,F^P(x),\,\mathrm{SDF}(x),\,F^N(x)\big)\qquad(5)$$

训练目标:$G_o$ 按 PIFu 策略采样(管占据),$G_c$ 沿真值 mesh 表面法线轻微扰动后均匀采样(管颜色);$G_o$ 用带符号 BCE $L_o=\frac{1}{|G_o|}\sum_{x\in G_o}\mathrm{BCE}(\hat o_x-o_x)$(6),$G_c$ 用 L1 $L_c=\frac{1}{|G_c|}\sum_{x\in G_c}|\hat c_x-c_x|$(7),总损失为二者之和。提网格用 Marching Cubes,并沿用 ECON 做法把手替换成 SMPL-X,再对 mesh 点做颜色预测得粗纹理。

3.3 3D 一致纹理精修

重建后颜色粗、不可见区域模糊,于是做一条基于 text-to-image diffusion 先验的 coarse-to-fine 管线:可见区域从输入图反投影拿纹理,不可见区域交给 diffusion 脑补,同时保证 3D 一致。

  1. 用 vision-to-text 模型(GPT-4v)把 $I$ 转成描述 $P$;按 DreamGaussian 做法把 mesh 颜色反投影到 UV 纹理图 $T$;
  2. 可微渲染不可见区域:$I=\mathcal{I}(T,M,k)$(8);
  3. 用冻结的 diffusion 模型 $\varepsilon_\theta$、以 $P$ 为条件把 $I$ 精修成 $J$,并施加一致性编辑 $H$ 保持语义布局:$J=H(\varepsilon_\theta,P,I)=H\big(\varepsilon_\theta,P,\mathcal{I}(T,M,k)\big)$(9);
  4. 用 $J_i$ 与 $I_i$ 的逐像素 MSE 优化 $T$,再加感知损失 $L_{vgg}$、Chamfer 距离损失 $L_{CD}$ 与输入视角 MSE:

$$\min_{T}\ \lambda_1 L_{MSE}+\lambda_2 L_{vgg}+\lambda_3 L_{CD}+\lambda_4 L^f_{MSE}\qquad(10)$$

一致性编辑:逐视角单独扩散会内容不一致,论文借鉴 TokenFlow——对 $I$ 做 DDIM 反演并抽取所有层的自注意力 token 特征 $\varphi(x_i)$;随机选关键视角做联合编辑(Tune-A-Video 式)得外观统一的 $T_{key}$,再最近邻传播到所有视角。最近邻场($p,q$ 为空间位置,$D$ 为余弦距离):$\gamma_{i\pm}[p]=\arg\min_{q}D\big(\varphi(x_i)[p],\,\varphi(x_{i\pm})[q]\big)$(11);随后按位置 $p$ 与视角 $i$ 线性混合($\varphi(J^{i\pm})\in T_{key}$,$w_i\in(0,1)$ 与到相邻关键视角的距离成正比):

$$F_\gamma(T_{key},i,p)=w_i\cdot\varphi(J^{i+})[\gamma_{i+}[p]]+(1-w_i)\cdot\varphi(J^{i-})[\gamma_{i-}[p]]\qquad(12)$$

四、网络结构与训练 / 实现细节

  • 编码器:depth=8 的 ViT;输入=图像与正/背面法线图(ECON 那套)拼接;8 头自注意力,输出 1024×256。
  • 解码器:front/side 各 depth=3、8 头;front 自注意力,side 以 SMPL-X 法线图为 query 做 cross-attention;输出 $F\in\mathbb{R}^{128\times128\times32}$。
  • MLP:两个同构 MLP(层宽 [512, 1024, 512, 256, 128, 1])分预测占据与颜色;输入前加 128×128×6 法线特征(2-stack hourglass 精修)。
  • 参数量(Tab. 4):PIFu 24,744,136;GTA 45,060,544;SIFU 37,962,112(更少)。
  • 图→文:GPT-4v 生成描述 $A$,前置 "the back side of $A$, realistic, vivid" 拼成 $P$。
  • 扩散:Stable Diffusion-v2-1;DDIM 确定性采样 50 步;DDIM inversion(CFG scale = 1、100 步)。
  • 训练:THuman2.0(526 扫描:490/15/21),训练用真值 SMPL-X、推理用 PIXIE;每扫描 36 视角、分辨率 512;PyTorch Lightning、10 epoch、lr 1e-4、batch 4、单张 RTX 3090 训 2 天。
  • 采样:每对象 2048 占据点 + 2048 颜色点;颜色点沿法线加高斯扰动 $N(0,\sigma)$,$\sigma=0.1$ cm;内/外用 Kaolin 判、真值颜色取自 UV 纹理图。
  • 权重:$\lambda_1=1.0,\ \lambda_2=1\times10^{-4},\ \lambda_3=1\times10^{-2},\ \lambda_4=1.0$。
  • 耗时:粗纹理 mesh 约 44 秒;精修(150°→210°、每 2°、30 视角、512)约 5 分钟;合计约 6 分钟。
  • 运行时间(Tab. 5,CAPE-NFP):ICON 0.36 s、D-IF 0.40 s、SIFU 0.65 s、GTA 0.68 s、ECON 15.07 s。

五、实验与结果

主评测在 CAPE 与 THuman2.0(CAPE 拆成 CAPE-FP / CAPE-NFP)。几何用 Chamfer 与 P2S,还用两 mesh 渲染法线图的 L2 Normal 误差(视角 {0°,90°,180°,270°});纹理用 PSNR。

5.1 几何:与 SOTA 全面对比(Tab. 1)

SMPL-X 先验类方法测试时用真值 SMPL-X;marching cubes 分辨率 256;* 为由 ICON 重实现。

方法 会议 CAPE-NFP C↓ P2S↓ N↓ CAPE-FP C↓ P2S↓ N↓ THuman2.0 C↓ P2S↓ N↓
PIFu* ICCV 2019 2.5609 1.9971 0.1023 1.8139 1.5108 0.0798 1.5991 1.4333 0.0843
PIFuHD CVPR 2020 3.7670 3.5910 0.1230 2.3020 2.3350 0.0900 – – –
PaMIR* TPAMI 2021 1.6313 1.2666 0.0730 1.4810 1.1631 0.0727 1.2152 1.0582 0.0730
ICON CVPR 2022 0.8846 0.8569 0.0434 0.7247 0.6979 0.0371 0.9491 0.9846 0.0621
ECON CVPR 2023 0.9462 0.9334 0.0382 0.9039 0.8938 0.0373 1.2585 1.4184 0.0612
D-IF ICCV 2023 0.8237 0.8353 0.0575 0.7625 0.7690 0.0503 1.1696 1.2900 0.0936
GTA NeurIPS 2023 0.8508 0.7920 0.0424 0.6525 0.6084 0.0349 0.7329 0.7297 0.0492
SIFU – 0.7725 0.7354 0.0378 0.6297 0.5980 0.0327 0.5961 0.6058 0.0407

(单位 cm;C=Chamfer,N=Normal。)SIFU 全指标刷新纪录,THuman2.0 上 Chamfer / P2S ≈ 0.6 cm 前所未有。ECON 的 Normal 在 CAPE 亮眼(0.0382 / 0.0373)到 THuman2.0 却掉到 0.0612(Chamfer 涨到 1.2585),泛化差;SIFU 三个数据集都稳。纹理上 PSNR 比 PIFu 高 22.2%(22.1024 vs 18.0934)。

5.2 对 SMPL-X 的鲁棒性(Tab. 2)

给 THuman2.0 的真值 SMPL-X 的 $\beta$ 与 $\theta$ 加噪声 scale 0.05,用它替换真值来评。

方法 Backbone Chamfer↓ P2S↓ Normal↓
PaMIR CNN 1.3224 1.1349 0.0767
ICON CNN 1.2935 1.3949 0.0781
D-IF CNN 1.5262 1.7296 0.1191
ECON – 2.1195 1.8074 0.1029
GTA Transformer 1.0473 1.0780 0.0649
SIFU Transformer 0.9937 1.0645 0.0599

Transformer 路线明显比 CNN 稳,SIFU 又比 GTA 好一档;定性上(Fig. 11)弯腿、手部姿态不准依旧可接受。

5.3 消融实验(Tab. 3,CAPE-NFP + 真值 SMPL-X)

A - 换 backbone:去掉 cross-attention(0.9846 / 0.8672 / 0.0477)、改用可学习 embedding(0.9860 / 0.8538 / 0.0471)、换同容量 CNN hourglass(0.8699 / 0.8221 / 0.0387)都明显更差 → 侧视解耦 transformer 有效。

B - 不同特征平面:

设置 Chamfer↓ P2S↓ Normal↓
只用 front 面 1.1165 0.9574 0.0558
front + back 两面 0.9929 0.9189 0.0464
去掉 left 面 0.7941 0.7576 0.0387
去掉 right 面 0.8058 0.7671 0.0386
全部四面(SIFU) 0.7725 0.7354 0.0378

只加 left 或 right 侧视平面提升最显著——Chamfer 约降 0.2 cm(对比 front+back 的 0.9929);四面全用只再多降约 0.03 cm;故最终选四平面平衡方案。C - 查询策略:pixel-aligned(0.8111 / 0.7615 / 0.0400)最差,hybrid prior fusion 全面更优(0.7725 / 0.7354 / 0.0378)。

D - 纹理精修的价值(Tab. 6,THuman2.0,PIXIE 估 SMPL-X):

方法 Diffusion PSNR↑ SSIM↑ LPIPS↓
PIFu ✗ 18.0934 0.9117 0.1372
Impersonator++ ✗ 16.4791 0.9012 0.1468
TEXTure ✓ 16.7869 0.8740 0.1435
Magic123 ✓ 14.5013 0.8768 0.1880
S3F ✗ 14.1212 0.8840 0.1868
HumanSGD ✓ 17.3651 0.8946 0.1300
SIFU w/o refinement ✗ 22.0256 0.9212 0.0849
SIFU(含精修) ✓ 22.1024 0.9236 0.0794

精修主要提升 LPIPS(更贴近人眼);而即使不精修 SIFU 也已全面领先。应用上,换文本提示可得 3D 一致新纹理(论文示例:NBA Rockets / NBA Lakers 球衣、Van Gogh、Iron Man、铅笔素描),几何 + 纹理也够 3D 打印与搭场景。

六、局限与未来工作

局限(Fig. 13):A. 姿态不准——SMPL-X 误差拖累精度,是依赖人体先验方法的通病;B. 极端衣物——明显脱离身体时失手;C. 纹理出错——图转文字会丢细节,GPT-4v 可缓解,但 diffusion 不总能完美复现纹理。

未来工作:让 diffusion 同时学形状 + 纹理先验(难点是把图像提示融合进扩散并降低微调耗时);对头发、脸、手分别处理后整合。社会影响:可能引发隐私、deep fake、知识产权问题,需伦理与法律框架。

七、对 3D 人体 / 服装重建 / 虚拟试衣方向的意义

  • 先验该加在"转换步骤"。 2D→3D 的中间映射最缺先验;用侧视法线当 query 的 cross-attention 把侧后方特征"拎"出来,精度与鲁棒性同涨,思路可迁移到服装重建、部件分割等"脑补不可见部分"的任务。
  • 软先验 > 硬约束。 SMPL-X 是"引导信号"而非"几何锚点",不准时也不崩(Tab. 2 的 0.9937 / 0.0599)。虚拟试衣的真实自拍里姿态几乎不可能准,这一点是刚需。
  • 宽松衣物 + 复杂姿态可达 3D 打印级精度(≈ 0.6 cm),正对试衣"输入任意自拍、输出可直接驱动/渲染的服装几何"。
  • 纹理侧配方:不可见区域用 diffusion 补全 + TokenFlow 式跨视角一致约束,并把渲染图 MSE 反传到 UV 纹理图 $T$。
  • 可切入点:SMPL-X 依赖、"衣物明显脱离身体"仍是软肋;服装-人体解耦、部件级先验、压缩 5 分钟精修都是机会。

八、术语表 / Key Terms

  • SIFU — Side-view Conditioned Implicit Function;本文方法名,"侧视条件隐式函数"
  • side-view conditioned — 侧视条件化的;用侧视法线作条件/引导
  • Side-view Decoupling Transformer — 侧视解耦 Transformer;分离侧视特征的核心模块
  • cross-attention — 交叉注意力;query 来自一处、key/value 来自另一处
  • self-attention — 自注意力
  • query / key / value — 注意力机制里的查询 / 键 / 值
  • SMPL — 参数化人体模型(β 体型 + θ 姿态)
  • SMPL-X — 在 SMPL 上加手、脸的扩展模型,本文几何先验来源
  • normal map — 法线图
  • side-view normal — 侧视法线(left/back/right)
  • pixel-aligned feature — 像素对齐特征;查询点投影到特征图取到的特征
  • hybrid prior fusion — 混合先验融合;空间查询 + 先验查询两路合一
  • barycentric interpolation — 重心坐标插值
  • SDF (signed distance function) — 有符号距离函数
  • occupancy field — 占据场;本文隐式函数的输出之一
  • implicit function (IF) — 隐式函数
  • Marching Cubes — 从占据场提取三角网格的经典算法
  • ViT (Vision Transformer) — 视觉 Transformer;本文全局编码器 backbone
  • feature plane — 特征平面(front/left/back/right 四路)
  • tri-plane — 三平面特征表示;GTA 的固定可学习 embedding 方案
  • hourglass network — 沙漏网络;本文用来精修法线特征
  • ablation study — 消融实验
  • diffusion model — 扩散模型;本文用 Stable Diffusion-v2-1 做纹理先验
  • Stable Diffusion — 潜空间文生图扩散模型(本文 v2-1 checkpoint)
  • DDIM inversion — DDIM 反演;把图像反推回噪声轨迹以提取特征
  • classifier-free guidance — 无分类器引导;本文反演时 scale 设为 1
  • consistent editing — 一致性编辑;跨视角强制扩散特征一致
  • TokenFlow — 视频/多视角一致编辑方法;本文一致性编辑的灵感来源
  • UV texture map — UV 纹理图;纹理反投影与优化都落在它上面
  • perceptual loss (VGG) — 感知损失;用 VGG 特征促细节
  • Chamfer distance — 倒角距离;几何指标,越小越好
  • P2S (point-to-surface) — 点到面距离;几何指标
  • normal error — 法线误差;两 mesh 渲染法线图的 L2
  • PSNR / SSIM / LPIPS — 纹理质量指标:峰值信噪比 / 结构相似度 / 学习式感知相似度
  • in-the-wild — 真实野外图像
  • THuman2.0 — 本文训练的 3D 人体扫描数据集(526 个扫描)
  • CAPE — 穿衣人体数据集;本文分 CAPE-FP、CAPE-NFP 两子集
  • PIXIE — 单图 SMPL-X 估计器;本文推理时用
  • Rembg — 去背景工具;本文推理预处理
posted @ 2026-09-16 00:09  Quentin_Yws154  阅读(17)  评论(0)    收藏  举报