Camera Relocalization by Exploiting Multi-View Constraints for Scene Coordinates Regression 2019论文笔记

研究机构:阿德莱德大学

本文提出了基于场景坐标回归网络的相机重定位方法,在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)Y(w,I)

2.损失函数

光度重建损失:

实际上是指基于RGB信息重建的损失。训练阶段使用图像对输入,将I1I^1中预测的场景坐标Y1(w,I1)Y^1(w,I^1)根据I2I^2的相机位姿真值T2T^2以及相机内参K投影到I2I^2中,得到合成图像I12I^{1 \leftarrow 2}:
I12=f(Y1(w,I1),I2,T2,K) I^{1 \leftarrow 2}=f\left(\mathbf{Y}^{1}\left(\mathbf{w}, I^{1}\right), I^{2}, \mathbf{T}^{2}, \mathbf{K}\right)
这里的f()函数为《Spatial transformer networks》中的空间变换网络STN

计算I1I^1I12I^{1 \leftarrow 2}之间的误差作为光度重建损失:
Lrgb=1H×Wm,nH,WIm,n1Im,n121 L_{r g b}=\frac{1}{H \times W} \sum_{m, n}^{H, W}\left\|I_{m, n}^{1}-I_{m, n}^{1 \leftarrow 2}\right\|_{1}

深度特征重建

只基于RGB重建误差进行约束,在光照变化场景下不够鲁棒,因此引入深度信息

使用深度估计网络得到对输入图像的深度估计图,将其降采样至与场景坐标预测图大小相同,记为F2

这里使用的是《Learning deeply supervised visual descriptors for dense monocular reconstruction.》中的深度提取网络

同样,将预测的场景坐标变换到深度 特征图中得到合成特征图:
F12=f(Y1(w,I1),F2,T2,K) F^{1 \leftarrow 2}=f\left(\mathbf{Y}^{1}\left(\mathbf{w}, I^{1}\right), F^{2}, \mathbf{T}^{2}, \mathbf{K}\right)
计算合成特征图与图像I1I^1的误差:
Lfeat=1H×Wm,nH,WFm,n1Fm,n121 L_{f e a t}=\frac{1}{H \times W} \sum_{m, n}^{H, W}\left\|F_{m, n}^{1}-F_{m, n}^{1 \leftarrow 2}\right\|_{1}

平滑误差:

前面两个误差都是在约束2D-3D对应关系,这里对3D点之间的关系进行约束。

核心思想是,在图像过度平滑(梯度小)的地方其预测的场景坐标也应该是相互靠近(梯度小)的:
Ls=m,nH,WexIm,nxYm,n2+eyIm,nyYm,n2 L_{s}=\sum_{m, n}^{H, W} e^{-\left|\partial_{x} I_{m, n}\right|}\left\|\partial_{x} \mathbf{Y}_{m, n}\right\|_{2}+e^{-\left|\partial_{y} I_{m, n}\right|}\left\|\partial_{y} \mathbf{Y}_{m, n}\right\|_{2}

重投影误差:

这个是base loss,也是DSAC++里面用到的:
Lrepro=1H×Wm,nH,WP(Y1,T1,K)p12 L_{r e p r o}=\frac{1}{H \times W} \sum_{m, n}^{H, W}\left\|P\left(\mathbf{Y}^{1}, \mathbf{T}^{1}, \mathbf{K}\right)-\mathbf{p}^{1}\right\|_{2}
总的误差就是以上四个的加权和:
L=wrLrepro+wpLrgb+wfLfeat+wsLs L=w_{r} L_{r e p r o}+w_{p} L_{r g b}+w_{f} L_{f e a t}+w_{s} L_{s}

3.位姿估计

与DSAC++相同,RANSAC+PnP

4.实验结果

室内外数据集:7-scenes/cambridge:

优于DSAC++(无3Dmodel)的精度,但是仍然劣于DSAC++(有3Dmodel)

Camera Relocalization by Exploiting Multi-View Constraints for Scene Coordinates Regression 2019论文笔记

对几个误差函数项的作用效果评估:

Camera Relocalization by Exploiting Multi-View Constraints for Scene Coordinates Regression 2019论文笔记

平滑损失项仅在Heads场景有提升精度的作用,主要是剔除了离群点,如图(d):

Camera Relocalization by Exploiting Multi-View Constraints for Scene Coordinates Regression 2019论文笔记

在其他场景,平滑损失项反而降低了精度,作者认为是定位精度已经足够精确,剔除了匹配的内点,因此降低了精度。