Paper: Yan H, Zhang M, Li Y, et al. PhyCAGE: Physically Plausible Compositional 3D Asset Generation from a Single Image[J]. arXiv preprint arXiv:2411.18548, 2024.
Introduction: https://wolfball.github.io/phycage/
Code: Unreleased
PhyCAGE 是一种 image-to-3D 方法,完成的任务是保证 3D 物体中的两个组成部分的嵌入方式在物理学上尽可能可信。
PhyCAGE 的生成过程如下:
- 先根据输入图像生成多视角的图像;
- 用多视角的图像训练 3D GS 场景。为了保证生成 3D 物体的物理合理性,引入 PSE-SDS 损失函数,使用物理模拟器修正 Gaussians 的位置信息。
目录
- 一. Multi-view Generation
- 二. Multi-view Images to 3D
- 三. Physical Simulation-Enhanced Optimization
一. Multi-view Generation
输入图像
I
I
I 包含背景
O
1
O_1
O1 和前景
O
2
O_2
O2,分别对应文本描述
τ
1
\tau_1
τ1和
τ
2
\tau_2
τ2。使用 Grounded-SAM 从
I
I
I 中分割出前景目标
O
2
O_2
O2:
{
M
1
,
M
2
}
=
GroundedSAM
(
I
;
τ
1
,
τ
2
)
\left\{M_1, M_2\right\}=\operatorname{GroundedSAM}\left(I ; \tau_1, \tau_2\right)
{M1,M2}=GroundedSAM(I;τ1,τ2)
然后修复
O
1
O_1
O1 中被
O
2
O_2
O2 遮挡的区域:
I
^
=
Inpainting
(
I
∗
(
∼
M
2
)
+
I
noise
∗
M
2
;
τ
1
)
\hat{I}=\operatorname{Inpainting}\left(I *\left(\sim M_2\right)+I_{\text {noise }} * M_2 ; \tau_1\right)
I^=Inpainting(I∗(∼M2)+Inoise ∗M2;τ1)
再使用 SyncDreamer 生成 16 个视角的全景和背景图像:
{
I
i
}
i
=
1
16
=
SyncDreamer
(
I
)
,
{
I
^
i
}
i
=
1
16
=
SyncDreamer
(
I
^
)
\begin{gathered} \{I_i\}_{i=1}^{16}=\operatorname{SyncDreamer}(I), \\ \{\hat{I}_i\}_{i=1}^{16}=\operatorname{SyncDreamer}(\hat{I}) \end{gathered}
{Ii}i=116=SyncDreamer(I),{I^i}i=116=SyncDreamer(I^)
并使用 Grounded-SAM 获取每张全景图 I i I_i Ii 中的语义 mask S i S_i Si,-1 代表背景,1 代表 O 1 O_1 O1,2 代表 O 2 O_2 O2。
二. Multi-view Images to 3D
上一步已经获得了多视角的全景 RGB 图像、全景图像的 mask、背景 RGB 图像,现在来重建 3DGS 场景。但由于 Grounded-SAM 分割得到的 mask 并不能保证多视角连续性,因此使用 Part123 根据全景 RGB 图像和 mask 优化一个 SDF 场和语义场以提供几何引导:
{
f
,
g
}
=
Part123
(
{
I
i
,
S
i
}
i
=
1
16
)
\{f, g\}=\operatorname{Part123}(\left\{I_i, S_i\right\}_{i=1}^{16})
{f,g}=Part123({Ii,Si}i=116)
再使用 Marching Cubes 算法从 SDF 场中提取顶点 V V V,并将其分为 V 1 V_1 V1 和 V 2 V_2 V2,分别表示背景和前景的顶点。
然后使用背景 RGB 图像
I
^
i
\hat{I}_i
I^i 重建 GS 场景
G
1
G_1
G1,使用全景 RGB 图像
I
i
I_i
Ii 结合
V
2
V_2
V2 顶点重建 GS 场景
G
2
G_2
G2:
G
1
=
GaussianSplatting
(
{
I
^
i
}
i
=
1
16
)
,
G
2
=
GaussianSplatting
(
{
I
i
}
i
=
1
16
;
μ
∈
V
2
)
\begin{gathered} G_1=\text { GaussianSplatting }\left(\left\{\hat{I}_i\right\}_{i=1}^{16}\right), \\ G_2=\operatorname{GaussianSplatting}\left(\left\{I_i\right\}_{i=1}^{16} ; \mu \in V_2\right)\\ \end{gathered}
G1= GaussianSplatting ({I^i}i=116),G2=GaussianSplatting({Ii}i=116;μ∈V2)
三. Physical Simulation-Enhanced Optimization
这里所说的物理合理性指的就是前景和背景位置关系的合理性,因此只需要优化与位置相关的参数即可:位置 μ \mu μ、放缩矩阵 Σ \Sigma Σ(原文是 S S S)、旋转四元数 q q q,不透明度 α \alpha α 和球谐系数 c c c 直接冻结。其中 μ \mu μ 使用模拟器进行优化, Σ \Sigma Σ 和 q q q 正常使用优化器优化(文中将 Σ \Sigma Σ 和 q q q 记为 t t t)。
优化过程中计算 SDS 损失和图像 RGB 损失:
∇
θ
L
S
D
S
=
E
t
,
ϵ
[
w
(
t
)
(
ϵ
ϕ
(
I
t
p
;
y
,
t
)
−
ϵ
)
∂
I
t
p
∂
θ
]
L
Image
=
(
1
−
λ
1
)
L
1
(
I
c
,
I
)
+
λ
1
L
S
S
I
M
(
I
c
,
I
)
L
:
=
L
Image
(
θ
μ
,
θ
t
)
+
λ
3
L
S
D
S
(
θ
μ
,
θ
t
)
\nabla_\theta \mathcal{L}_{S D S}=\mathbb{E}_{t, \epsilon}\left[w(t)\left(\epsilon_\phi\left(I_t^p ; y, t\right)-\epsilon\right) \frac{\partial I_t^p}{\partial \theta}\right] \\ \mathcal{L}_{\text {Image }}=\left(1-\lambda_1\right) \mathcal{L}_1\left(I^c, I\right)+\lambda_1 \mathcal{L}_{S S I M}\left(I^c, I\right)\\ \mathcal{L}:=\mathcal{L}_{\text {Image }}\left(\theta_\mu, \theta_t\right)+\lambda_3 \mathcal{L}_{S D S}\left(\theta_\mu, \theta_t\right)
∇θLSDS=Et,ϵ[w(t)(ϵϕ(Itp;y,t)−ϵ)∂θ∂Itp]LImage =(1−λ1)L1(Ic,I)+λ1LSSIM(Ic,I)L:=LImage (θμ,θt)+λ3LSDS(θμ,θt)
然而,直接优化会导致穿透和伪影,因此将
μ
\mu
μ 的优化过程交给 MLS-MPM 模拟器,将损失函数关于
μ
\mu
μ 的梯度作为粒子的速度:
x
n
+
1
,
v
n
+
1
=
MPM
(
x
n
,
v
n
,
Δ
t
,
ψ
)
\mathbf{x}^{n+1}, \mathbf{v}^{n+1}=\operatorname{MPM}\left(\mathbf{x}^n, \mathbf{v}^n, \Delta t, \psi\right)
xn+1,vn+1=MPM(xn,vn,Δt,ψ)