ORB-SLAM2是如何完成工作的?
第一步:系统会读取摄像头的参数和ORB字典数据,接着初始化整个系统。
第二步:利用ORB算法初始化相机位姿,在完成第一帧图像的特征点的提取后,紧接着可以进行两相 邻帧图像的特征点匹配结果。
第三步:利用匹配的特征点的信息恢复其在三维空间的点的深度,同时确定点的三维空间位置(方法:双目立体视觉中的三角法)。
第四步:初始化得到特征点空间位置后,将一部分满足要求的特征点标记为路标点(Mappoint),利用PnP算法对路标点进行处理,通过给定物的3D点集和对应图像的2D点集,在经过姿态计算之后,得到最终初始化时对应的相机位姿,对应的相机位姿可以由四元数表示。
第五步:得到初始化的相机位姿后,不断重复上述的匹配,跟踪,三角化,计算出每一帧图像的相机位姿,然后在计算出每两帧图像之间的相机的运动变化矩阵(旋转矩阵和平移矩阵),通过图优化的方法对估计的结果做优化,最终形成相机运动的轨迹。
简化过程:
初始化系统----->提取每相邻两帧图像的特征点,进行匹配------>得到三维点的深度和位置------>姿态计算,得到初始化的相机位姿------>重复上述操作,得到两帧之间的运动变换矩阵------>凸优化得到最终相机的运动轨迹
转载总结自:o_ha_yo_yepeng《ORB-SLAM2 + windows + usb摄像头 项目实战(一)》