[关闭]
@snuffles 2016-10-16T22:14:59.000000Z 字数 2582 阅读 994

slam++

#homework


1.一种面向对象的室内建图与定位方法,其步骤为:
将输入深度图像,分解为原始点计算法相量
2.利用frame-model优化方法,计算两帧之间相机的姿态变化.
3.迭代估计相机旋转的姿态,进行跟踪和收敛
4.进行物体检测
5.优化图
6.进行表面渲染,处理下一帧图像.


SLAM++特点
实时系统,
使用RGBD相机
面向物体的SLAM
通过高性能GPU加速的目标检测,姿态估计,序贯更新的姿态图油画,实现一个目标层次的场景地图表示,
从而将3D目标识别完全融入SLAM的系统框架,
对于目标重复率高的场景非常有效,具有搞笑和可扩展的特点.场景表示能力接近DENSE SLAM系统.
可以跟诉和快速场景理解的高质量目标模型.


流程图
此处输入图片的描述

相机跟踪和精确的ICP物体姿态估计

相机模型跟踪

在kinect fusion中,最新体积图(volumetric map)被用来计算某个视角预测现有估计的相机姿态,使得可以用ICP方法实现相机的估计.
在SLAM++中,不同于不完全的的地图,我们跟踪一个完全的高质量的多个的完全的物体模型预测。
我们计算一个参考视角预测现有的场景几何,包括了深度地图和法向量地图渲染成估计帧的姿态代表了六自由度的刚体运动,是一种特殊的SE3。
我们更新是相机到世界坐标的转换通过估计一系列的m,是有向量x代表了在SE3中的扭转(twist).我们迭代出最小的深度图点-平面测量,在所有的可能的点u上在实时的深度图中。


目标检测

模型描述和投票机制

我们假设场景和模型都可以用有限的点(oriented points)和其法向量(normal)来表示。这种表示很容易通过网格(mesh)或点云(point cloud)计算。

我们用代表在场景中的点,用代表在模型中的点。
在离线过程中进行全局模型描述。在线过程选择中场景中的一组参考点(reference points)。其他场景中的所有点都和参考点配对,用来产生点对特征(point pair features)
这些点对特征用来和模型的描述(global model description)进行匹配,检索出潜在的匹配(potential match)。
每个潜在的匹配用来给物体的姿态(object pose)投票,这个高效的投票机制是把姿态通过参考点参数化。投票的结果是最优的物体姿态。

1. PPF

PPF描述两个点之间位置和方向的关系,

其中 两个点 m_1 and m_2 其法向量n_1 and n_2, 距离

2. Global model description

表示全局模型会用到上面的PPF。模型是一组PPF特征的组合,在组合内的特征有相同的特征向量。过程如下
一、 计算模型表面所有点对的,距离和角度以的大小分别采样。
二、 把离散后的相等的特征向量分在一起。
三、 全局模型描述是采样的PPF空间到模型的映射。
包含四个维度的PPF,和映射到A,A是在M中所有的相同PPF。用一个以F为索引的哈希表表示。和给定场景的相等的所有的模型特征可以通过以场景特征为key去检索哈希表。

3. Voting scheme

局部坐标系(local coordinate)
有任意一个在场景内的参考点,我们假设它在我们想要检测的物体上面。如果假设是正确的,模型上的点的对应。
对齐了两个点和他们的法向量之后。物体可以绕着sr的法向量和场景中的模型对齐。这去除了在场景中模型的一个自由度。
从模型空间到场景空间的刚性运动,可以被在模型上的一个点和点的旋转表示。是参考点的局部坐标系。

在我们的方法里,点对和对齐的场景点对是有相同PPF的点。
从局部模型坐标到场景坐标的转换是

投票机制:
有参考点,我们想找到最优的局部坐标,使得场景中的点落在模型上的数量最大。
投票机制类似于广义霍夫变换(Gneralized hough transform),因为局部坐标系只有三个自由度所以很高效。一旦最优的局部坐标系找到,物体的全局姿态也就恢复了出来。
投票机制是通过两维accumulator arrary产生的。行数NM,是模型采样点的个数。
Nangle的列数是以nangle采样旋转角度阿法。这个叠加阵列代表了参考点局部坐标的离散空间。
对于投票,参考点sr和每个场景中的配对,在模型的表面去搜索具有相同距离和法向量方向的mr,mi。这个搜索结果代表场景中srsi在模型上的位置,通过模型的描述来表示,fs被用作哈希表的关键词,返回在模型上的相同特征。对于每个匹配的mrmi,每个可能在模型表面的srsi,旋转角度用2计算。

所有点si都倍计算,在增量矩阵中峰值是最优局部坐标,一个全局的刚体移动可以被截出来。为了稳定,所有的峰值都被用了。

高效投票循环。
为了计算列表中所有的点对,我们把阿法分为两部分,阿法M-阿法s。分别代表在模型和在场景中的阿法。
AM可以在离线阶段预先计算,植入到模型描述子中。对每个点对As只计算一次。

姿态聚类
投票机制决定了是否参考点在物体的表面。因此,很多参考点需要确定在被搜索的物体的表面。
前文说,每个参考点通过投票的峰值返回一个可能的物体姿态。
检索到姿态只是真实值的近似因为对于模型和场景对于旋转的采样率有所不同。
我们介绍一个额外的步骤,可以滤掉错误的姿态增加最终结果的准确性。
为此,检索的姿态被聚类,在一类中的姿态,之间的差距不会超过,提前定义好的阈值。
每个类的分数是其包含的姿态的总合,分数是指每个姿态在投票阶段的票数。
在找到最高分的类之后,结果的姿态就是那个类里面姿态的平均。
因为在场景中物体有很多的例子,很多的类可以返回,姿态聚类的方法可以提高算法的稳定性,去除那些低分的类,提高算法的精度。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注