欢迎光临散文网 会员登陆 & 注册

(第3期)VIO灭霸:ORB-SLAM3源码逐行解析

2023-08-11 10:35 作者:每天2个拼课技巧  | 我要投稿

Vins-mono是香港科技大学开源的一个VIO算法 是用紧耦合方法实现的,通过单目+IMU恢复出尺度,效果非常棒。

1.特征点跟踪

首先用cv::goodFeaturesToTrack在第一帧图像上面找最强的150个特征点,非极大值抑制半径为30。新的特征点都有自己的新的对应的id。然后在下一帧过来时,对这些特征点用光流法进行跟踪,在下一帧上找匹配点。然后对前后帧中这些匹配点进行校正。先对特征点进行畸变校正,再投影到以原点为球心,半径为1的球面上,再延伸到深度归一化平面上,获得最终校正后的位置。对于每对匹配点,基于校正后的位置,用F矩阵加ransac来筛选。然后再在匹配上的特征点之外的区域,用cv::goodFeaturesToTrack搜索最强的新的特征点,把特征点数量补上150个。

最后,把剩下的这些特征点,把图像点投影回深度归一化平面上,再畸变校正,再投影到球面上,再延伸到深度归一化平面上,得到校正后的位置。把校正后的位置发送出去。

特征点跟踪和匹配,就是前一帧到这一帧的,一帧帧继承下去。或者生成新的特征点。

2.初始化

2.1外参中的旋转

用机器人手眼标定的方法,计算出外参中的旋转。

特别的:手眼标定:

其实就是AX=XB  X是手眼的外参(对于VINS问题,也就是IMU和Camera的外参)

A是IMU在相邻时间的变换   B是摄像头的变换

从而:


(第3期)VIO灭霸:ORB-SLAM3源码逐行解析的评论 (共 条)

分享到微博请遵守国家法律