联合兼容分支定界(JCBB)是一种数据关联算法,用于同步定位与地图构建(SLAM)和计算机视觉中,将观测到的特征与已知地图或模型进行匹配。该算法由José Neira和Juan D. Tardós于2001年在其论文“使用联合兼容性的随机地图构建中的数据关联”中提出。该算法解决了确定哪些传感器测量值对应于哪些地标或地图特征的问题,这是移动机器人精确状态估计的关键步骤。
与独立评估单个特征匹配的简单最近邻方法不同,JCBB通过考虑集合中所有特征之间的统计相关性,来评估一组匹配的联合兼容性。这种联合测试对错误匹配更具鲁棒性,尤其是在具有重复或模糊特征的环境中。该算法使用分支定界策略搜索可能的匹配集合空间,系统性地剪除无法产生更好解决方案的分支,确保找到的集合是最大的联合兼容集合。
算法概述
JCBB操作于一组预测特征(来自当前地图)和一组观测特征(来自传感器数据)。每个观测最多可分配给一个预测特征,每个预测特征最多可匹配一个观测。目标是找到最大基数的匹配集合,使得联合创新向量(观测与预测测量值之差)在卡方阈值内,并考虑完整的协方差矩阵。
分支定界搜索构建一棵树,其中每个节点表示观测到特征的部分分配。在每一步,算法通过考虑下一个未分配的观测,并测试其与每个剩余特征的兼容性(既单独测试,也与已分配匹配联合测试)来扩展节点。如果联合兼容性测试失败,则该分支被剪除。搜索持续到所有节点被探索完毕,并返回最佳(最大)集合。为提高效率,算法使用观测的启发式排序,通常按其单独兼容性排序,以尽早找到良好解决方案并更积极地剪枝。
联合兼容性测试
JCBB的核心是联合兼容性测试。给定一组匹配,该测试计算联合创新向量及其协方差矩阵。该向量的马氏距离与卡方阈值进行比较,自由度等于创新向量的维度。如果距离低于阈值,则该集合被视为联合兼容。该测试比单独测试更强大,因为它捕捉了特征之间的相关性,这些相关性源于机器人位姿不确定性和地图协方差。例如,两个与不同地图点单独兼容的特征,如果它们之间的相对几何形状与地图不匹配,则可能联合不兼容。
应用与扩展
JCBB已广泛应用于SLAM系统,特别是在室内和室外移动机器人中。它通常用作优化或滤波之前的前端数据关联模块。该算法也已适用于视觉SLAM,其中特征是相机图像中检测到的关键点,以及3D点云配准。扩展包括将JCBB与随机采样一致性(RANSAC)结合用于初始位姿估计,以及将其用于处理大型地图的层次框架中。在实践中,对于大量特征,JCBB可能计算成本高昂,因此提出了变体来减少搜索空间,例如使用兼容性图和最大团算法,这些在解决方案上与JCBB等效,但可能更快。
与其他方法的关系
JCBB常与其他数据关联技术进行比较,如单独兼容最近邻(ICNN),该方法速度快但容易产生错误匹配,以及与解决最大团问题的基于图的方法。分支定界方法保证在联合兼容性准则下找到全局最优解,而启发式方法可能满足于次优集合。然而,最优性以较高的计算复杂度为代价,使得JCBB适用于离线处理或特征数量适中的环境。在现代SLAM系统中,JCBB有时被基于机器学习或深度学习的特征匹配学习方法所取代,但它仍然是该领域的基础算法。
参见
参考文献
- Neira, J., & Tardós, J. D. (2001). Data association in stochastic mapping using joint compatibility. IEEE Transactions on Robotics and Automation, 17(6), 890-897.