球面谐波(SH)因为其良好的性质活跃在NeRF、Plenoxels、3DGS等显隐式场景表示的方法中。
问:球面谐波是什么?
答:一组基函数。可以理解为傅里叶分解的一种特殊形式,即“任何函数都可以用这组基的算术组合来近似”。
先描述一种通用情况:
假设我们有一组基数为3的完备基函数:
[
e
1
(
x
)
,
e
2
(
x
)
,
e
3
(
x
)
]
[e_1(x), e_2(x),e_3(x)]
[e1?(x),e2?(x),e3?(x)]
我们存在一个目标函数
f
(
x
)
f(x)
f(x),那么
f
(
x
)
f(x)
f(x)可以用这组基函数来表达:
f
(
x
)
=
a
1
e
1
(
x
)
+
a
2
e
2
(
x
)
+
a
3
e
3
(
x
)
f(x)=a_1e_1(x)+a_2e_2(x)+a_3e_3(x)
f(x)=a1?e1?(x)+a2?e2?(x)+a3?e3?(x)这里的
[
a
1
,
a
2
,
a
3
]
[a_1,a_2,a_3]
[a1?,a2?,a3?]就是这组基的系数了。当然,我们可以用更“细致”的正交基来拟合目标函数,一般对应着更多的基数。我们可以浅看一张图:
这里的n表示基数,用的是球面谐波基。由此可见,基数越多,拟合效果越佳。
球面谐波基,顾名思义,跟球面有关。首次将SH引入NeRF的工作是PlenOctrees。
未完待续…