100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 三维重建(SFM):针对360全景切割图像的单目重建的增量问题的分析与改进(colmap)

三维重建(SFM):针对360全景切割图像的单目重建的增量问题的分析与改进(colmap)

时间:2018-08-08 00:07:15

相关推荐

三维重建(SFM):针对360全景切割图像的单目重建的增量问题的分析与改进(colmap)

360摄像机街拍视频根据FOV切割5视角图片进行重建。

狭窄复杂街道,人群多,光影复杂,匹配度较差(核心问题是畸变造成的干扰过度,后续会加其他实验),图像匹配实验:/huqinweI987/article/details/108850821

使用colmap进行点云生成。

因为colmap的增量过程采用了分块模式,并且此模式在倾斜摄影中应用效果可接受,所以此功能被保留用于AR街景的场景重建。

分块本身对AR增量过程产生影响的典型情况示意图:

因为360图像采集、切割不当,图像畸变大,图像画幅低(而畸变大小和画幅大小在全景切割中是矛盾的),图像间特征匹配不佳,拓扑结构脆弱,分块容易导致图片间匹配关系的割裂。

分块后增量实验:

以742张图的第一块为例。

增量产生多块子模型的间接原因(某些场景会发生,但是根本还是Reconstruct过程):

首次Reconstruct失败,产生0个manager,for循环,放宽参数继续重建(如成功,则size大于0,break):

放宽的参数和负面作用:

放宽最小角度:容易产生噪声,产生无穷远点(其实三维重建,尤其街景的重建,不需要远点)

放宽最小内点数量:允许加入匹配更差的图,影响重建质量。

产生多个模型的直接原因:

启用了“多子模型”模式,一次性无法注册所有图片,且单个子模型满足下限,导致产出多个子模型。

上图,不注册所有图片无法break,下图,不break需循环指定次数才会结束

多模型模式下,最小模型size直接影响产出子模型数量和单个模型的规模,且参数数值固定

结果:并不能注册所有图片,而是产生多个注册图片很少的子模型,具体能利用多少,首先取决于一次初始化能否增量覆盖其他图,其次取决于各种阈值限制和允许的重试次数,一旦重试次数超限,且有任何子模型成立,增量重建过程结束。需要针对参数进行优化(最直观地,增加最小模型注册图限制,增加重试次数)

产生多个模型的根本原因:

360采集切割数据自身问题,现有参数设定和逻辑对AR应用场景的数据兼容性差。

实验:不同“最小模型注册图数”对产出模型的影响。

下图是一次重建结果,分别产出13、108、11图片数的子模型,目前不确定建出size=13的块与建出size=108的块的顺序颠倒是否可能影响互相的融合关系(先108,是否会直接产生108+13=121或更大的块,而不是割裂的)。根据局部增图和BA得流程猜测有影响(又或者,有更好的大块可以做增量基础,但是超过重试次数导致没有被发现)

调整参数(默认10):options_->min_model_size = 100

结果可以一个模型注册所有块

所有图片被注册,也不需要放宽参数

只产生一个文件夹(对比,之前产生过三四个文件夹)

下图:对比,一次重建产生了0、1、2三个目录,本次产生0一个目录

作为对照,排除干扰,直接使用原有分块结果,不重新分块。

调整参数(默认10):options_->min_model_size = 10

不能完成所有图片的注册,产生4个子模型,丢图数=742-19-14-20-11=678,极其烂的结果

结束是因为超过10次重建重试(也可修改此参数,对于此场景,是很应该改的)

重建结束后,(分块的)合并过程会使用其中最大的(20张图)子模型,导致丢图722张。

针对上次实验(最大20)的结果,做一个修补尝试,修改阈值为30:

产出单个模型742张图,不丢图!证明阈值更改有效!拉高阈值能促进寻找更好的优化起点,结果子模型不是从20变30,而是直接变成742全图。

文件大小对比:

一次成型结果

多个子模型结果

结论与方案:

但是,这个方案只是基于已有数据质量前提下的优化,根本问题是数据的质量和关联度。其实想把模型建好,主要还是依赖行进方向的关联度,这样才能把图片串起来。

我会单独写一篇实验总结。/huqinweI987/article/details/109497931

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。