NeRF只能对static scene学习,因此,为了同大多数dynamic NeRF一样,本文也是增加一个deformation field将observation frames先转换到canonical frames,然后再使用NeRF进行学习重建。
Problem
hand-hold camera拍摄图片所存在的问题:非刚性,在拍摄过程中无法保持静止,如表情、头发、衣服等都会有变化。
- 刚性:仅有旋转和平移;
- 非刚性:透射、映射、仿射等复杂变换;
本文的解决方法是将具有非刚性的observation frames先变换到canonical frames,然后再使用NeRF-like方法进行渲染重建。Overview of Nerfies如下:
Deformation Field的功能就是实现从observation frames到canonical frames的变换。考虑到hand-held camera拍摄的照片中即存在刚性与非刚性,文中提出了对应的solution。
对于刚性部分,也就是仅含平移和旋转时,使用一个SE(3) Field来表示,公式如下,记为T(x):x→x′:
x′=eSx=erx+per:rotationp=Gv:translation
对于非刚性部分,如脸部表情的细微变化,用elastic regularization进行约束。原理:T(x)变换对应的雅各比矩阵JT(x)描述了在点x处,对于该变换最好的线性估计。所以,可以通过JT(x)控制T(x)的局部行为,也就是非刚性变换。
JT的SVD:JT=UΣVTR=VUTpenalization:Lelastic(x)=∣∣logΣ−logI∣∣F2
为了增加robustness,使用Geman-McClure robust error function:
Lelastic−r(x)=ρ(∣∣logΣ∣∣F,c),ρ(x,c)=x/c2(x/c)22+4
Background Regularization
另一个问题是:Deformation Field是欠约束的unconstrained,所以T(x)变换会对observation frames中的所有对象都起作用,包括背景,但是背景应该保持不动,所以本文提出background regularization,让背景在变换过程中保持不变。
设我们已经知道一些应该保持不动的点(如背景关键点)为X={x1,...,xK},通过Deformation Field之后得到T(X)={T(x1),...,T(xK)},则惩罚项就是让X,T(X)尽可能相等,公式如下:
Lbg=K1k=1∑K∣∣T(xk)−xk∣∣2
针对NeRF的Positional Encoding存在的问题:
- m较小时,欠拟合(细节不够);
- m较大时,过拟合;
本文提出coarse-to-fine deformation regularization,公式如下:
γα(x)=(x,.,ωk(α)sin(2kπx),ωk(α)cos(2kπx),.)ωk(α)=21−cos(πclamp(α−k,0,1))α=Nmt∈[0,m]
总损失:
Ltotal=Lrgb+λLelastic−r+μLbg