Global Optimization with Viewpoint Selection for Scale-Reconstructable sfm Using Refration

文献阅读笔记

这篇论文是折射三维重建系列的第三篇(我读到的),第1、2篇都是2帧的三维重建(第一篇要求相机光轴垂直于玻璃介面,第二篇无需垂直)这篇是在第一篇基础上进行的多帧的对物体完整的三维重建。

本篇主要用前面的两帧重建结果作为初值,包括相机位姿、3d点坐标。从n帧中不失一般性地任意选择一个相机坐标系作为世界坐标系,然后对剩余的n-1帧一一与之进行2帧三维重建,得到n-1帧相对于世界坐标系的位姿变换、所有点在世界坐标系下的3d坐标。再运用BA来优化位姿和坐标,得到重建的结果。

本篇创新点:

1 . 帧的选择

概念:选择viewpoint,viewpoint的参数是相机位姿(旋转矩阵R、平移矩阵t、3d点坐标),基于几何约束验证来选取

相机坐标系是右手系,z轴于光轴同向,原点即相机中心。

r i n r_{in} rin 是空气中的ray, r o u t r_{out} rout 是水中ray, d d d 是由折射引起的光线的variation vector ,其方向同玻璃板法向量。

由于两帧的重建有时会得到几何上不一致的点(geometrically inconsistent points),比如估计的3d点不在水中,而是在玻璃板中或者空气中,这种情况是由于量化误差(quantization errors)引起的,当有这种情况存在时,BA也无法得到好的结果,所以必须要剔除这样的帧,以保证几何一致性。具体而言:

某两帧中估计的所有3d点的z坐标都要满足(有两个公式是因为有两个相机坐标系下的3d坐标)

z > w + l , 且 z ′ > w + l z>w+l,且 z'>w+l z>w+l,z>w+l ( 1 ) (1) (1) (有人知道这个编号怎么能跟在公式后面并且靠右吗?)

选取符合条件的帧后,将其中同一个点的3d坐标取平均值,得到估计的3d坐标。用3d坐标和每一帧的相机位姿作为BA的初值

2. BA函数

引入了含2种重建误差的函数, C ∗ C^* C是估计的相机位姿, P ∗ P^* P是估计的3d点坐标,BA如下表示:
C ∗ , P ∗ = a r g m i n ( e 1 + α e 2 ) {C^*, P^*} =arg min(e_1 +\alpha e_2) C,P=argmin(e1+αe2) ( 2 ) (2) (2)

其中, e 1 e_1 e1是ray-gap函数, e 2 e_2 e2是penalty函数, α \alpha α是参数。

具体而言:

e 1 = ∑ c , p ∣ ∣ r i n ‾ c , p − r o u t ^ ‾ c , p ∣ ∣ 2 e_1 = \sum_{c, p}||\overline{r_{in}}^{c,p}-\overline{\hat{r_{out}}}^{c,p}||^2 e1=c,princ,prout^c,p2 ( 3 ) (3) (3)

e 2 = ∑ c , p [ m a x ( 0 , w + l − z ^ c , p ) ] 2 e_2 = \sum_{c, p} [max(0, w+l-\hat{z}^{c,p})]^2 e2=c,p[max(0,w+lz^c,p)]2 ( 4 ) (4) (4)

引入 e 1 e_1 e1是因为一般的BA是将3d点重投影到像平面,而有折射且在几何不一致的情形下,无法正确估计the position of the camera coordinates,比如所估计的 r o u t r_{out} rout的z轴分量为负,若将其重投影则是从相机后面投过来的,我们却错误地以为是从它真实的地方投影过来

e 1 e_1 e1对n-1帧中的所有3d点进行求和,取^表示估计值,取-表示取单位向量,c,p表示从位姿c处观察到p点。 e 1 e_1 e1比较俩向量的各个分量,用来表示两个向量方向一致(本篇没有用水,取的介质是空气-玻璃-空气,所以对于水下自然就不适用了)

r o u t ^ c , p = p ^ c , p − d ^ c , p {\hat{r_{out}}}^{c,p}={\hat{p}}^{c,p}-{\hat{d}}^{c,p} rout^c,p=p^c,pd^c,p (实际上, r o u t r_{out} rout不是直接算出来的么? p p p才是未知的好伐)

即使用来做BA的几何不一致的情形已在上一步去除了,其3d坐标点在优化过程中也会变得不一致(为啥?不懂!自圆其说?)

Even if the inconsistent candidates of initial values are removed by viewpoint selection, the positions of the point become inconsistent during optimization.

所以需要考虑不一致情况估计的点,在误差函数中加入penalty function e 2 e_2 e2 ,其中 z ^ c , p \hat{z}^{c,p} z^c,p是p点的z坐标。

e 2 e_2 e2用来保证所有的点都在物方侧,当点p不在物方侧,补偿函数就由到玻璃板的距离给定(?是这样吗?z为负则 e 2 = 0 e_2=0 e2=0

If point p p p does not satisfy Eq(1), the penalty is given according to the distance from the plate

最后,用L-M法优化求解式2

3. 实验结果

3.1 重建实验

用Stanford Bunny数据集进行模拟实验,1428个点,10张图片(10个相机位姿),取 n 1 = 1.0 , n 2 = 1.49 , w = 200 m m , l = 50 m m , α = 1 n_1=1.0,n_2=1.49, w=200mm, l=50mm, \alpha=1 n1=1.0n2=1.49,w=200mm,l=50mm,α=1,空间点采样的quantization error是像素级别的,以验证高量化误差下算法的精度。

无折射的BA所有点的平均误差705.15mm,本实验方法误差0.64mm

3.2 玻璃板厚度的影响

分别取 w = 50 m m , 100 m m , 200 m m w=50mm, 100mm, 200mm w=50mm,100mm,200mm进行实验,其他参数于3.1相同,所用数据为任意产生的3d点云,包含200个点,实验100次,每次成像20次,每次实验中所有点坐标的平均绝对误差小于1mm视为重建成功,可以看出,板越厚,成功次数越多。

3.3 与一般BA比较

取距离 w = 200 m m w=200mm w=200mm,其他参数和数据与3.2相同,比较传统BA与本实验方法的成功次数,可以看出,本实验方法重建成功率远高于传统BA

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值