特征匹配差异
PTAM patch 匹配和 ORB 描述子匹配
ORB-SLAM 用 ORB 特征匹配计算位姿,回环检测和重定位都用 ORB 特征;PTAM 没有用特征,和 SVO 一样,用的是 patch(8x8 方块),PTAM 在地图点和当前帧 patch 匹配的时候,由于地图点所在的帧和当前帧间距或者旋转可能较大,当前帧的 patch 相对于地图点的可能形变较大(尺度,旋转,拉伸),所以地图点的 patch 在当前帧寻找匹配的 patch 时,先计算一个 affine warp matrix 变换,将地图点的 patch 变换到和当前帧的相似,再在当前帧中用 SSD 算法找匹配的 patch。
4x4 affine warp matrix 计算表达式:
上式中 {us,vs} 是 source pyramid level 像素位移(地图点所在关键帧在对应层的像素位移), {uc,vc} 是 source pyramid level 中有位移 {us,vs} 时在当前帧最底层产生的像素位移。
affine warp matrix 具体计算方式如下:
在地图点所在关键帧对应层上,产生一个像素的位移(横纵坐标分开做),并且将这个像素位移(对应到最底层位移不止一个像素)投影到地图点所在的 patch 平面上(patch 在三维空间的坐标和法向量可以确定 patch 在 3D 空间的平面),再将这个 3D 空间中的位移线段投影到当前帧中,计算在当前帧在横纵坐标上产生的像素位移。
矩阵 A 的行列式决定 patch 在当前帧的哪一层上做搜索,矩阵行列式还决定了搜索的面积, det(A)/4 是在第一层搜索的面积, det(A)/4l 是在第 l 层搜索的面积,使得 det(A)/4l 接近 1 的层 l 是搜索 patch 的层。
在进行搜索前先用矩阵 A/2l 对 source 的 patch 做变换,做完变换后再通过插值得到待搜索的 patch,因为计算 A 时 source patch 是在 source pyramid level 和当前帧第一层金字塔对比的,所以 A 在对 source patch 做变换时还需要除以 2l ,这样得到的 warp 后的 patch 才可以在使 det(A)/4l 接近 1 的层上搜索。 det(A)/4l 中的 4 指面积,层间的面积比是 4, det(A)/2l 是计算坐标,层间的横纵坐标比是 2。
而对于 ORB-SLAM 中的特征匹配,特征描述子对于旋转具备不变性(其他特征可能还具备平移,相似或者仿射不变性),不需要对 patch 进行 SSD 匹配,只需要计算特征描述子间距离就可以了。
ORB-SLAM 特征提取很耗时。
匹配流程差异
ORB-SLAM 先和上一帧配准,再跟当前帧所在的局部地图配准计算位姿:
http://blog.csdn.net/fuxingyin/article/details/53511439
PTAM 通过两步和局部地图配准计算位姿,第一步和少量的层数最高的地图点配准计算位姿,然后再和大量的地图点配准计算位姿。
ORB-SLAM 中的 convisibility graph
ORB-SLAM 中的 convisibility graph 保存了关键帧之间的连接,通过 convisibility 可以得到局部地图,在和局部地图匹配和初始化新的地图点时都用到 convisibility graph,PTAM 没有 convisibility graph。
ORB-SLAM 中的 Essential Graph /Pose graph
ORB-SLAM 中通过 convisibility graph 计算得到 Essential Graph /Pose graph,在检测到回环时,先优化 essential graph 再进行全局的 BA,essential graph 在 PTAM 中也是没有的。
回环检测和回环优化
PTAM 中没有回环检测,只有 local BA,PTAM 是为小场景 AR 设计的,没考虑全局的回环。ORB-SLAM 有回环检测,也有 locaL BA。ORB-SLAM 只有 tracking 和 mapping 两个线程,ORB-SLAM 有 tracking,mapping 和 loop closing 三个线程。
重定位算法
PTAM 中的重定位算法和 Elasticfusion 中的重定位算法很像:
http://blog.csdn.net/fuxingyin/article/details/51436430
ORB-SLAM 基于 DBoW2 做重定位,个人感觉基于 Fern 的重定位算法实现起来简单,方便调试,召回率相对于 DBoW2 高,准确率低。
参考文献:
“Parallel Tracking and Mapping for Small AR Workspaces”
“ORB-SLAM: a Versatile and Accurate Monocular SLAM System”