融合先验信息的三维重建

融合先验信息的三维重建 融合先验信息的三维重建

vision.ia.ac.cn
from vision.ia.ac.cn More from this publisher
21.08.2013 Views

融合先验信息到三维重建 组会报 告 [1] [1]A. Irschara, C. Hoppe, H. Bischof, "Efficient structure from motion with weak position and orientation priors," in Proc. 2011 Computer Vision and Pattern Recognition Workshops (CVPRW) pp. 21-28. 汇报人:崔海楠 2013-4-9

融合先验信息到三维重建<br />

组会报 告 [1]<br />

[1]A. Irschara, C. Hoppe, H. Bischof, "Efficient structure from motion<br />

with weak position and orientation priors," in Proc. 2011 Computer<br />

Vision and Pattern Recognition Workshops (CVPRW) pp. 21-28.<br />

汇报人:崔海楠<br />

2013-4-9


报告主要内容<br />

1、重建亟待解决问题和解决方案<br />

2、融合先验(GPS/INS)寻找匹配图像<br />

3、构建匹配图,改进捆绑调整目标函数<br />

4、实验结果和总结


大场景三维重建计算复杂度高,同时容易偏移和误差积<br />

累。如果没有任何先验信息:<br />

1、图像匹配时间复杂度 ;<br />

2、每次添加图像需要重复调用SBA,算法时间复杂度<br />

最高可达 <br />

亟待解决的问题<br />

3、 IBA[Incremental Bundler Adjustment]图像添加顺序<br />

不同,得到重建结果可能也会不同


作者提出的解决方案<br />

1、在匹配图像时,利用语义树搜索的同时,融入了<br />

几何信息[GPS/IMU先验],对候选匹配集再筛选。<br />

【降低图像匹配时间复杂度】<br />

2、提出fast & scalable的重建方法。<br />

一次性求取全部摄像头在全局坐标系的旋转矩阵;<br />

同时定义了新的捆绑调整函数。【降低SBA时间复杂<br />

度,提高三维重建精度】


寻找匹配图像<br />

Kmeans<br />

图像库 SIFT算子检测<br />

语义树<br />

分层聚类


待匹配图<br />

像J<br />

寻找匹配图像<br />

Kmeans<br />

图像库 SIFT算子检测<br />

语义树<br />

分层聚类<br />

语义树<br />

检索<br />

候选匹配图像集<br />

S


待匹配图<br />

像J<br />

寻找匹配图像<br />

Kmeans<br />

图像库 SIFT算子检测<br />

语义树<br />

分层聚类<br />

候选匹配<br />

图像集S<br />

语义树<br />

利用GPS/INS信息过滤<br />

检索<br />

候选匹配图像集<br />

S<br />

与J进行匹配的图像


语义树构造 [1]<br />

检测每幅图像中的SIFT描述子,W为<br />

所有图像描述子的集合:<br />

= < , , , … … , ><br />

对W进行分层k-means聚类,将每层<br />

每类平均值作为树的节点。<br />

Depth =3 branches = 3<br />

[1] Nister, David, and Henrik Stewenius. "Scalable recognition with a vocabulary tree." Computer Vision<br />

and Pattern Recognition, 2006 IEEE Computer Society Conference on. Vol. 2. IEEE, 2006.


语义树检索 [1]<br />

记录每个节点被图像经过的次数,作<br />

为这个节点的权重 <br />

= <br />

<br />

N为全部图像的数目, 为经过树的<br />

第i个节点的图像数目<br />

经过节点的图像越多,节点权重越低;<br />

经过节点的图像越少,节点权重越高。<br />

一定程度上缓解匹配有重复结构图像的错误。<br />

[1] Nister, David, and Henrik Stewenius. "Scalable recognition with a vocabulary tree." Computer Vision<br />

and Pattern Recognition, 2006 IEEE Computer Society Conference on. Vol. 2. IEEE, 2006.


语义树检索 [1]<br />

生成图像集对应的词汇库<br />

= [ , ,… ,…, ]<br />

=< ,…, ><br />

m为树节点的总数 n为图像的数目<br />

为图像在第i个节点经过的次数<br />

为第i个节点的权重<br />

每幅图像用m维向量来表示<br />

[1] Nister, David, and Henrik Stewenius. "Scalable recognition with a vocabulary tree." Computer Vision<br />

and Pattern Recognition, 2006 IEEE Computer Society Conference on. Vol. 2. IEEE, 2006.


语义树检索 [1]<br />

假设检索图像Q,描述Q的词汇为<br />

=< ,…, ><br />

对于图像集中每一幅图像 ,计<br />

算相关值[=…]<br />

= <br />

<br />

− <br />

<br />

[1] Nister, David, and Henrik Stewenius. "Scalable recognition with a vocabulary tree." Computer Vision<br />

and Pattern Recognition, 2006 IEEE Computer Society Conference on. Vol. 2. IEEE, 2006.


1. 实验数据:<br />

2. 语义树参数:<br />

语义树检索实验<br />

depth = 3 branches = 10 restarts = 3 ngbrs = 6<br />

3. 实验结果:<br />

① Math_physics_buliding<br />

② Tiantan<br />

③ JinDing


语义树检索实验


融合GPS/INS信息<br />

、 表示摄像头的GPS位置<br />

=∗ , <br />

=min , , <br />

平面 // 图像 <br />

两个图像平面 、 分别向平面<br />

上投影,比值<br />

= ∩ <br />

∪ <br />

t决定了投射射目标平面 的位置


融合GPS/INS信息<br />

每一幅图像I只与满足如下条件的图像J<br />

进行匹配:<br />

<br />

( ∙ )< <br />

<br />

>


?<br />

结果对比<br />

第一行:利用语义树搜索得到的候选匹配图像<br />

第二行:融合GPS/INS信息后对语义搜索结果过滤,得到的图像


绿色: 待匹配图像J<br />

结果对比<br />

红色和蓝色: 语义树搜索得到的图像<br />

红色: 覆盖面积 达到50%以上的图像


结果对比


初始P矩阵<br />

每幅图像焦距 已知,已知摄像头的GPS位置以及IMU信息,<br />

可以得到每幅图像的P矩阵的粗略估计<br />

=[ | ]= <br />

<br />

<br />

− ]<br />

其中: 表示全局坐标系中旋转矩阵 , 表示camera的平移<br />

表示GPS坐标系下的旋转矩阵<br />

为摄像头在GPS所在坐 标系下面的位置


构建匹配图<br />

两个节点之间存在边,表示两幅<br />

图像需要进行匹配<br />

利用SIFT_GPU检测每幅图像的<br />

特征点;利用ANN匹配特征点,<br />

RANSAC【5点法】求取本质矩阵<br />

E;估计图像之间的相对旋转矩阵<br />

和相对平移


两幅图像之间约束<br />

Compute relative pose between camera pairs<br />

using 2-frame SfM<br />

t ij<br />

相对平移<br />

R ij<br />

相对旋转


两幅图像之间约束<br />

t ij<br />

摄像头绝对姿态(Ri, ti)和(Rj, tj) 需要满足:<br />

R ij<br />

旋转一致性 平移方向一致性


求绝对旋转矩阵<br />

根据有向的匹配图,可以看出<br />

= <br />

是一个超定方程组。<br />

求解超定方程,得到每幅图像<br />

的旋转矩阵 。然后利用SVD分<br />

解使 满足正交约束,得到最终<br />


t ij<br />

求绝对旋转矩阵<br />

R ij<br />

作者认为不是所有的外极<br />

几何都是同等重要的,也就<br />

是通过外极几何得到的 <br />

不是同等重要的。<br />

因此<br />

= = <br />

<br />

−− = =0 0


求绝对旋转矩阵 [1]<br />

= min , 【inliers空间分布】<br />

<<br />

∗() =(,)<br />

<br />

⨀<br />

= 是利用5点法求 时对应的inliers的个数<br />

[1] D. Martinecand T.Pajdla. Robust rotation and translation estimation in multi-view reconstruction.<br />

CVPR, 2007.


t ij<br />

初始化绝对平移<br />

R ij<br />

=[|]= − ]<br />

为摄像头的GPS坐标。绝对<br />

旋转矩阵 ,需要在GPS坐标系<br />

下定义,那么Ri相差一个刚体变<br />

换R才能得到 :<br />

=


t ij<br />

R ij<br />

s.t. = = − <br />

求刚体变换R<br />

<br />

是全局坐标系中图像I和图像J之间的相对平移<br />

=− 是GPS坐标系中图像I和图像J之间的相对平移 <br />

这是一个典型的 orthogonal Procrustes problem<br />

利用奇异值分解,即可以得到R的值。


orthogonal Procrustes problem [1]<br />

定义:<br />

和 是两个矩阵,目的是找到一个正交矩阵使<br />

<br />

解:令 ,那么求得<br />

[1] Gower, J.C; Dijksterhuis, G.B. (2004), Procrustes Problems, Oxford University Press


Structure from Motion<br />

Camera 1<br />

R 1,t 1<br />

p 1<br />

p 5<br />

Camera 2<br />

R 2,t 2<br />

p 4<br />

p 6<br />

p 2<br />

p 3<br />

p 7<br />

minimize<br />

f(R,T,X)<br />

Camera 3<br />

R 3,t 3


1、创建tracks<br />

3D 结构初始化<br />

根据图像匹配关系,寻找每幅图像中的每个特征点在其他<br />

匹配图像中对应的特征点,所有这些特征点,构成一个track,<br />

对应现实世界中的一个3D点。<br />

<br />

= (< , >, < ,<br />

>⋯,< , >)<br />

其中 =< , >表示第幅图像中特征点的坐标。


1、创建tracks<br />

3D 结构初始化<br />

由于匹配误差的存在,一幅图像的一个特征点可能同时存<br />

在于两个或者多个tracks中。<br />

A. 这种特征点不够稳定,从所有包含这个特征点的tracks<br />

中删除这个特征点<br />

B. 做贪婪搜索,寻找一个tracks的子集,使其覆盖了所有<br />

图像的特征点,但是每个特征点只能被覆盖一次


2、创建初始3D点<br />

3D 结构初始化<br />

选取每个track中,特征点所在图像的GPS坐标相差最大的,<br />

两个特征点做三角化,得到初始3D点。<br />

Camera 1<br />

p<br />

Camera 2<br />

Camera 3


Structure from Motion<br />

Camera 1<br />

R 1,t 1<br />

p 1<br />

p 5<br />

Camera 2<br />

R 2,t 2<br />

p 4<br />

p 6<br />

p 2<br />

p 3<br />

p 7<br />

minimize<br />

f(R,T,X)<br />

Camera 3<br />

R 3,t 3


捆绑调整<br />

将每幅图像的旋转矩阵 、GPS坐标,以及初始3D点集作为<br />

捆绑调整函数 , , 优化时的初值。<br />

= , <br />

= , ,, , <br />

= 9 + 3<br />

捆绑调整:<br />

= … ; = … <br />

, ,, , = = ( ( , , ) )


捆绑调整<br />

, , , , = ( ( , , ) ) <br />

“最小化重投影误差的平方”,是建立在高斯误差的模型基础<br />

之上,由贝叶斯最大似然估计推导得到。<br />

<br />

但是,对于重投影误差符合高斯模型分布的假设,并不足以<br />

反应现实中依靠特征匹配求解structure from motion问题。


= <br />

<br />

. . = − <br />

将<br />

鲁棒的捆绑调整<br />

= <br />

<br />

=() . .<br />

<br />

= <br />

<br />

<br />

= <br />

称作是衰减因子[attenuation factor],目的是为了降低<br />

outliers的损失。


鲁棒的捆绑调整<br />

= =( () )


实验结果<br />

d = 20. 即每幅图像最多取20幅图像进行图像匹配。<br />

假设200幅图像,原Bundler要进行40000次匹配。如今,<br />

只要4000次匹配,速度提升了10倍。


实验结果<br />

对比使用不同的目标函数进行捆绑调整得到的结果<br />

【inliers 定义为3D点的重投影误差小于3个像素】<br />

实验结果与Bundler得到的结果进行对比,摄像头中心的中<br />

值误差为0.023m,朝向夹角平均偏离0.03°


实验结果<br />

对比使用不同的目标函数进行捆绑调整得到的结果<br />

= log(1 + <br />

= )<br />

log(1 + <br />

)


总结<br />

1、提出了一种利用GPS & IMU先验匹配图像的方法,提高了<br />

图像匹配速度和准确率。<br />

2、一次性求解全局坐标系下所有图像的旋转矩阵,只执行一<br />

次捆绑调整函数,降低了重建时优化的时间复杂度。<br />

3、提出了新的捆绑调整优化函数,降低了outliers的影响,<br />

提高了重建精度。


不足<br />

1、很难确定投影平面距图像平面的距离,经验值t不能保证<br />

匹配的完整性【可以利用聚焦先验】。<br />

2、将GPS坐标作为摄像头中心初值,需要GPS达到一定的精<br />

度。但是GPS的精度通常不会很高,甚至出现跳变。<br />

3、实验结果对比没有加入建立语义树所消耗时间,实验证明<br />

建立语义树消耗大量时间,而且语义树输入参数很难确定。


谢谢!

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!