研究机构:阿德莱德大学
本文提出了基于场景坐标回归网络的相机重定位方法,在DSAC++的基础上显式的引入了多视角几何约束,其实就是在训练阶段使用图像对作为输入,并重新设计了三个损失函数,和DSAC++的重投影误差结合,加快了训练的收敛速度,且在室内外数据集上达到了优于DSAC++(无3Dmodel)的精度,但是仍然劣于DSAC++(有3Dmodel)。
论文方法
![在这里插入图片描述](https://img-blog.****img.cn/20200814221303248.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3BoeTEyMzIx,size_16,color_FFFFFF,t_70#pic_center)
1.场景坐标回归
场景坐标回归网络和DSAC++一样,记为w,其输入为图像I,输出为对应的三维场景坐标Y(w,I)
2.损失函数
光度重建损失:
实际上是指基于RGB信息重建的损失。训练阶段使用图像对输入,将I1中预测的场景坐标Y1(w,I1)根据I2的相机位姿真值T2以及相机内参K投影到I2中,得到合成图像I1←2:
I1←2=f(Y1(w,I1),I2,T2,K)
这里的f()函数为《Spatial transformer networks》中的空间变换网络STN
计算I1与I1←2之间的误差作为光度重建损失:
Lrgb=H×W1m,n∑H,W∥∥Im,n1−Im,n1←2∥∥1
深度特征重建
只基于RGB重建误差进行约束,在光照变化场景下不够鲁棒,因此引入深度信息
使用深度估计网络得到对输入图像的深度估计图,将其降采样至与场景坐标预测图大小相同,记为F2
这里使用的是《Learning deeply supervised visual descriptors for dense monocular reconstruction.》中的深度提取网络
同样,将预测的场景坐标变换到深度 特征图中得到合成特征图:
F1←2=f(Y1(w,I1),F2,T2,K)
计算合成特征图与图像I1的误差:
Lfeat=H×W1m,n∑H,W∥∥Fm,n1−Fm,n1←2∥∥1
平滑误差:
前面两个误差都是在约束2D-3D对应关系,这里对3D点之间的关系进行约束。
核心思想是,在图像过度平滑(梯度小)的地方其预测的场景坐标也应该是相互靠近(梯度小)的:
Ls=m,n∑H,We−∣∂xIm,n∣∥∂xYm,n∥2+e−∣∂yIm,n∣∥∂yYm,n∥2
重投影误差:
这个是base loss,也是DSAC++里面用到的:
Lrepro=H×W1m,n∑H,W∥∥P(Y1,T1,K)−p1∥∥2
总的误差就是以上四个的加权和:
L=wrLrepro+wpLrgb+wfLfeat+wsLs
3.位姿估计
与DSAC++相同,RANSAC+PnP
4.实验结果
室内外数据集:7-scenes/cambridge:
优于DSAC++(无3Dmodel)的精度,但是仍然劣于DSAC++(有3Dmodel)
对几个误差函数项的作用效果评估:
平滑损失项仅在Heads场景有提升精度的作用,主要是剔除了离群点,如图(d):
在其他场景,平滑损失项反而降低了精度,作者认为是定位精度已经足够精确,剔除了匹配的内点,因此降低了精度。