论文学习 BioNeRF: Biologically Plausible Neural Radiance Fields for View Synthesis
前言
虽然我不应该再看NeRF相关的东西了,但是我还是觉得这个论文的题目很有意思,毕竟我认为神经网络本来就是模拟生物大脑的一个模型,那么我们应该更多的注意一些生物的机制,这些机制如果能得以很好的建模,或许能为神经网络结构下一步的开发提供思路。
简介
不同于NeRF依赖神经网络的权重来存储三维信息,BioNeRF利用感知启发的方式来融合多种输入,来改进模型中的记忆模块。并且该模型模拟了视锥细胞的功能,使其专注于纹理信息的提取。因此在这个意义上,记忆模块实际上是对形状信息和纹理信息进行组合。
(ps.感觉有种水论文讲故事的感觉)
NeRF介绍
(
R
,
G
,
B
,
Δ
)
=
F
θ
(
x
,
y
,
z
,
θ
,
ϕ
)
c
(
x
,
y
,
z
,
θ
,
ϕ
)
=
∫
(
R
,
G
,
B
)
i
Δ
i
d
i
(R,G,B, \Delta)=F_\theta(x,y,z,\theta,\phi) \\ c(x,y,z,\theta,\phi )=\int(R,G,B)_i\Delta_idi
(R,G,B,Δ)=Fθ(x,y,z,θ,ϕ)c(x,y,z,θ,ϕ)=∫(R,G,B)iΔidi
NeRF本质上是利用一个MLP,来对一个五元组输入,输出一个四位输出,包含当前点的RGB三色,以及其密度
Δ
\Delta
Δ。因此可以认为,物体的三维信息实际上保存在模型参数中。这也极大的节省了内存,是一种高效利用内存的技术。
NeRF其中一个关键概念是,它将复杂的真实世界的三维表示编码为神经网络的参数。此外,该模型将体积密度预测限制为相机位置的函数,从而允许RGB颜色预测为位置和观看方向的函数。这些概念类似于受神经科学发现和锥体细胞原理启发的一些生物学上更合理的研究,特别是关于引导信息流的环境和整合记忆的想法,负责根据过去的经验提供额外的环境。
BioNeRF
位置编码提取
第一步,将图像输入同时输入两个独立的神经网络
M
Δ
,
M
c
M_\Delta, M_c
MΔ,Mc,两者的结构虽然相同,但是并不共享参数。
感知过滤
ps . 我们称这些为过滤的主要原始是,他会将输入特征映射到[0,1]区间。
这一阶段主要是针对上一阶段得到的特征编码进行进一步计算,有四种过滤方式:密度
f
Δ
f_\Delta
fΔ、颜色
f
c
f_c
fc、记忆
f
Ψ
f_\Psi
fΨ、调整(调制)
f
μ
f_\mu
fμ。
f
Δ
=
σ
(
h
Δ
)
f
c
=
σ
(
h
c
)
f
Ψ
=
σ
(
W
Ψ
[
h
Δ
,
h
c
]
+
b
Ψ
)
f
μ
=
σ
(
W
μ
[
h
Δ
,
h
c
]
+
b
μ
)
f_\Delta = \sigma(h_\Delta) \\ f_c = \sigma(h_c) \\ f_\Psi = \sigma(W_\Psi[h_\Delta,h_c]+b_\Psi) \\ f_\mu = \sigma(W_\mu[h_\Delta,h_c]+b_\mu)
fΔ=σ(hΔ)fc=σ(hc)fΨ=σ(WΨ[hΔ,hc]+bΨ)fμ=σ(Wμ[hΔ,hc]+bμ)
其中
σ
\sigma
σ是sigmoid函数。
预调制
γ
\gamma
γ满足:
γ
=
t
a
n
h
(
W
γ
[
h
Δ
,
h
c
]
+
b
γ
)
\gamma = tanh(W_\gamma[h_\Delta,h_c]+b_\gamma)
γ=tanh(Wγ[hΔ,hc]+bγ)
记忆更新
首先需要先进行一步计算如下。·
μ
=
f
μ
⊗
γ
\mu = f_\mu \otimes \gamma
μ=fμ⊗γ
作为新的信息,之后用下式更新记忆内容:
Ψ
=
t
a
n
h
(
W
Ψ
(
μ
+
(
f
Ψ
⊗
Ψ
)
)
+
b
Ψ
)
\Psi=tanh(W_\Psi(\mu+(f_\Psi\otimes\Psi)) + b_\Psi)
Ψ=tanh(WΨ(μ+(fΨ⊗Ψ))+bΨ)
纹理推断
利用前文更新的记忆以及得到的结果,还有相机位姿,concat得到新的特征
h
Δ
′
,
h
c
′
h'_\Delta,h'_c
hΔ′,hc′:
h
Δ
′
=
[
Ψ
⊗
f
Δ
,
I
]
h
c
′
=
[
Ψ
⊗
f
c
,
d
]
I
=
(
x
,
y
,
z
)
d
=
(
θ
,
ϕ
)
h'_\Delta=[\Psi\otimes f_\Delta,I]\\ h'_c=[\Psi \otimes f_c, d]\\ I=(x,y,z)\\d=(\theta,\phi)
hΔ′=[Ψ⊗fΔ,I]hc′=[Ψ⊗fc,d]I=(x,y,z)d=(θ,ϕ)
再利用两个独立的神经网络作为解码器,得到
c
,
Δ
c, \Delta
c,Δ
损失函数
就是纯粹的损失函数。
量化验证
总结
感觉还是有点失望吧,这篇文章虽然说,是模仿生物视觉成像,不过依然存在以下问题:
- 生物中的记忆力表示,能否仅仅表示为一个张量呢?这种记忆力,是否可能也是作为一个神经网络,以参数的形式进行表示呢?
- 对比CodeNeRF,PixelNeRF等单视点成像的NeRF研究而言,改模型甚至难以单视点成像,是否说明其本身对于三维形状的提取还不如前两篇文章呢?
- 实际上不难发现,这篇文章提到的神经网络实际上参数量很大,性能的提升,是否可能主要受到参数量的影响呢?
- 这种记忆力机制,能否由一个Triplane来表示呢?感觉应该能起到相同的效果,甚至说,如果你认为Triplane不行,我们可以造两个Triplane,分别表示色彩和形状?如此说来这不是更复合生物特征?
- 文中提到的记忆力更新,感觉可以类比为一种kqv的注意力机制不是吗?感觉有编故事的嫌疑。
优点:
1.提到了记忆机制,这或许为解释Triplane在NeRF中非常有效的原因,因为Triplane实际上提供了一种记忆机制。
2.结果好。