Bundler学习总结

在sift匹配处理之后根据匹配关系生成track匹配链,有矛盾的链(同一张图片中有两个特征点)则其中所有包含的特征去除;

 

Bundler需要求解的参数太多,而两相机模型相对容易计算,然后在这个初始的模型上增加相机,(种子重构、生长策略)

主要步骤为:

1.选择稳健的初始匹配点对

       存在很多启发式算法,这里采用的是图片对之间至少需要100个匹配特征,并且

       num(Homography)/ num(Fmarix)的值要尽量小;

       当匹配间的视差太大并且场景不是平面的话(平面遮挡方面没有什么影响)不太适合

 

2.初始化两相机SFM模型

       内参未知(多义性)假设只存在焦距一个未知变量

       求解本质矩阵(脱离内参信息)5点算法求解

 

3.存在与模型连通的图片(track信息),执行下面操作

选出其中对当前重构出来点可见最多的图片

计算这个相机的参数    (直接线性变换DLT)

三角化求解出新的三维点(这张图片引入的还未重构的track)

使用集束调整(Bundler Ajustment)优化模型(相机参数与三维点坐标)

调整相机参数和点坐标,最小化g(重投影误差累积值)

 最小化的理想目标自然是完全契合,这是一个overconstraned最优化问题,自然归结于最小二乘法求解超定线性系统

    猜测初始 然后不停优化迭代直至收敛 (高斯-牛顿算法 改进版 LM算法 林德伯格-马奎特算法)

 

SFM增长速度是图片的四次方(实际使用中似乎没有这么夸张呀?)

 

城市级建模

 

划分子集单独重构,然后融合?(使用同一照片作为主平面,如果主平面C取远点 R取坐标平面应该是可行的,迭代求解出的参数差异并不影响世界坐标系的一致性 但Bundler标定出来的P似乎没有标准主平面的样子)

 

 

 

你可能感兴趣的:(c,算法,优化,照片)