论文学习 BioNeRF: Biologically Plausible Neural Radiance Fields for View Synthesis

论文学习 BioNeRF: Biologically Plausible Neural Radiance Fields for View Synthesis

前言

虽然我不应该再看NeRF相关的东西了,但是我还是觉得这个论文的题目很有意思,毕竟我认为神经网络本来就是模拟生物大脑的一个模型,那么我们应该更多的注意一些生物的机制,这些机制如果能得以很好的建模,或许能为神经网络结构下一步的开发提供思路。

简介

不同于NeRF依赖神经网络的权重来存储三维信息,BioNeRF利用感知启发的方式来融合多种输入,来改进模型中的记忆模块。并且该模型模拟了视锥细胞的功能,使其专注于纹理信息的提取。因此在这个意义上,记忆模块实际上是对形状信息和纹理信息进行组合。

论文链接
GitHub

(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,Δ

损失函数

就是纯粹的损失函数。

量化验证

总结

感觉还是有点失望吧,这篇文章虽然说,是模仿生物视觉成像,不过依然存在以下问题:

  1. 生物中的记忆力表示,能否仅仅表示为一个张量呢?这种记忆力,是否可能也是作为一个神经网络,以参数的形式进行表示呢?
  2. 对比CodeNeRF,PixelNeRF等单视点成像的NeRF研究而言,改模型甚至难以单视点成像,是否说明其本身对于三维形状的提取还不如前两篇文章呢?
  3. 实际上不难发现,这篇文章提到的神经网络实际上参数量很大,性能的提升,是否可能主要受到参数量的影响呢?
  4. 这种记忆力机制,能否由一个Triplane来表示呢?感觉应该能起到相同的效果,甚至说,如果你认为Triplane不行,我们可以造两个Triplane,分别表示色彩和形状?如此说来这不是更复合生物特征?
  5. 文中提到的记忆力更新,感觉可以类比为一种kqv的注意力机制不是吗?感觉有编故事的嫌疑。

优点:

1.提到了记忆机制,这或许为解释Triplane在NeRF中非常有效的原因,因为Triplane实际上提供了一种记忆机制。

2.结果好。

相关推荐
崇山峻岭之间24 分钟前
C++ Prime Plus 学习笔记041
c++·笔记·学习
万岳科技系统开发37 分钟前
私域直播小程序源码的整体架构设计与实现思路
学习·小程序
richxu202510011 小时前
嵌入式学习之路>单片机核心原理篇>(11) 存储器(Flash & SRam)
单片机·嵌入式硬件·学习
sszdlbw1 小时前
后端springboot框架入门学习--第二篇
java·spring boot·学习
9527(●—●)1 小时前
windows系统python开发pip命令使用(菜鸟学习)
开发语言·windows·python·学习·pip
好奇龙猫2 小时前
日语学习-日语知识点小记-构建基础-JLPT-N3阶段-二阶段(30):第8科
学习
汤姆yu2 小时前
基于微信小程序的驾校预约与学习系统
学习·小程序·驾校预约
车载测试工程师2 小时前
CAPL学习-SOME/IP交互层-TCP处理类函数
学习·tcp/ip·以太网·capl·canoe
YJlio3 小时前
ZoomIt 学习笔记(11.7):安装与基础使用——演示/授课/录屏的神级放大镜
笔记·学习·intellij-idea
kkkkkkkkk_12013 小时前
【强化学习】07周博磊强化学习纲要学习笔记——第四课上
学习·强化学习