12

三维重建的定位定姿算法

 3 years ago
source link: https://mp.weixin.qq.com/s/nryGPaEGVoxOjhXO7b4LiQ
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

三维重建的定位定姿算法

Original 李城 计算机视觉工坊 10/19
收录于话题
#位姿估计

点击上方“计算机视觉工坊”,选择“星标”

干货第一时间送达

Image

3D视觉的核心问题是恢复场景结构、相机位姿、和相机参数,而解决方式有两种,一种是off-line的sfm(structure from motion),一种on-line的slam(simultaneous localization and mapping)。Slam 与sfm的区别在于,大多数slam系统是需要提前标定相机,而sfm 则不需要提前标定(通常所说的三维重建和slam的区别,严格意义上应该是sfm 和slam的区别)。
Image
Sfm 可以分为以下几类:Global SfM、Incremental SfM、Hybrid SfM、Distributed SfM,这里主要讲解Global SfM和ncremental SfM(主要集中在global sfm)。一、Global SfM workflow:
640?wx_fmt=jpeg
Global sfm 的内容包括rotation averaging 和anslation averaging。Rotation averaging观测值:一组相机pose的相对rotation目标:计算相机的绝对旋转优化:L2范数,采用L2范数的原因有两个:1)估计一个好的旋转初始值 2)收敛快理论基础:640?wx_fmt=png640?wx_fmt=png
640?wx_fmt=png
translation averaging观测值:同rotation averaging 一样,观测值是两一组pose之间的相对translation目标:计算相机的绝对旋转优化:L1范数,原因是L1 范数对噪声鲁邦理论基础:640?wx_fmt=png640?wx_fmt=png
640?wx_fmt=png
Translation averaging 在global sfm 中计算困难,原因如下:1、 两视图之间的运动不能恢复尺度(tvec 是从本质矩阵中恢复出来的,但是本质矩阵的秩是5,不包含尺度,所以global sfm 是属于三焦张量问题,即是至少tack 3帧才能进行运算。同时,global sfm 容易出现退化现象,当相机都处于同一条线上时候,对于无人机图像来说,这个时候轨迹就会出现bending map。解决bending map 的手段有三点:(1)提前对相机标定(2)以无人机为例,飞行航线不要在恒定高度上飞行(3)融合其他传感器,如gps 位置约束等退化的case 如下:
640?wx_fmt=png
640?wx_fmt=png
     以上分别为侧面图和俯视图以上结果是fusion low-cost gps的效果,但是依旧可以看出有弯曲的现象(不融合的效果特别差)飞行方式改变,fusion low-cost gps,退化现象消失,如下:
640?wx_fmt=png
640?wx_fmt=png
从侧面图和俯视图可以看出,当飞行方式发生改变,global sfm 退化现象消失。2、 global sfm translation averaging第二个的痛点是对噪声敏感,其不像Incremental sfm,不断的ransac 和local ba 来减少bad EGs的影响。如何去改善global sfm 的鲁棒性:1)如果rotation 是已知的(不够精确),提供global rotation初始值给global sfm pipeline ,利用这些初始值在BA中增加relative rotation constraint2)如果位置已知,sfm 增加位置约束,即最小化先验位置和估计的位置之间的gap,位置约束可以替代slam回环(如果是low cost gps ,位置约束不能保证精度,但可以起到一个control strcture 的作用(AR 常用)—参考vins-fusion思想 ,这个openmvg 中已经实现位置约束。二、Incremental SfM workflow:
640?wx_fmt=png
增量sfm这里不准备太多的叙述,需要注意的是初始化选择像对的基准:
  1. enough matching
  2. big baseline
三、global sfm和incremental sfm 优缺点和应用场景
640?wx_fmt=png
应用场景:1.当考虑速度不考虑精度的时候,并且当图像overlap 比较大的时候,用global sfm 可以达到理想效果,因为有更多的数据去average(Feature track based translation averaging)2.如果考虑精度,选择Incremental sfm ,但是在大场景下,incremental sfm会随着图像的增多,速度越来越慢,同时由于误差的累计,会出现drfit ,这种情况下可以采用Distributed SfM。参考文献 :1.Rotation Averaging and Strong Duality[J].Anders Eriksson2.Global Structure-from-Motion and Its Application[R]3.Linear Global Translation Estimation with Feature Tracks[J].Zhaopeng Cui本文仅做学术分享,如有侵权,请联系删文。下载1在「计算机视觉工坊」公众号后台回复:深度学习,即可下载深度学习算法、3D深度学习、深度学习框架、目标检测、GAN等相关内容近30本pdf书籍。下载2在「计算机视觉工坊」公众号后台回复:计算机视觉,即可下载计算机视觉相关17本pdf书籍,包含计算机视觉算法、Python视觉实战、Opencv3.0学习等。下载3在「计算机视觉工坊」公众号后台回复:SLAM,即可下载独家SLAM相关视频课程,包含视觉SLAM、激光SLAM精品课程。

重磅!计算机视觉工坊-学习交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。

640?wx_fmt=jpeg▲长按加微信群或投稿

640?wx_fmt=jpeg

▲长按关注公众号

觉得有用,麻烦给个赞和在看~640?wx_fmt=gif


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK