融合先验信息的三维重建
融合先验信息的三维重建 融合先验信息的三维重建
融合先验信息到三维重建 组会报 告 [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
- Page 2 and 3: 报告主要内容 1、重建亟
- Page 4 and 5: 作者提出的解决方案 1、在
- Page 6 and 7: 待匹配图 像J 寻找匹配图
- Page 8 and 9: 语义树构造 [1] 检测每幅
- Page 10 and 11: 语义树检索 [1] 生成图像
- Page 12 and 13: 1. 实验数据: 2. 语义树参数
- Page 14 and 15: 融合GPS/INS信息 、 表示摄
- Page 16 and 17: ? 结果对比 第一行:利用语
- Page 18 and 19: 结果对比
- Page 20 and 21: 构建匹配图 两个节点之间
- Page 22 and 23: 两幅图像之间约束 t ij 摄
- Page 24 and 25: t ij 求绝对旋转矩阵 R ij 作
- Page 26 and 27: t ij 初始化绝对平移 R ij =
- Page 28 and 29: orthogonal Procrustes problem [1]
- Page 30 and 31: 1、创建tracks 3D 结构初始化
- Page 32 and 33: 2、创建初始3D点 3D 结构初
- Page 34 and 35: 捆绑调整 将每幅图像的旋
- Page 36 and 37: = . . = − 将 鲁棒的捆
- Page 38 and 39: 实验结果 d = 20. 即每幅图
- Page 40 and 41: 实验结果 对比使用不同的
- Page 42 and 43: 不足 1、很难确定投影平面
融合先验信息到三维重建<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 />
建立语义树消耗大量时间,而且语义树输入参数很难确定。
谢谢!