多机器人目标匹配与无标记点实时姿态估计技术解析
1. QuickMatch算法在多机器人目标匹配中的应用
在多机器人目标匹配领域,QuickMatch算法有着独特的贡献。以往对该算法的评估多基于标准数据集,而此次研究则在更现实的条件下对其进行了测试和实验验证。实验采用分布式相机网络对移动目标进行定位,以此来测试算法的计算效率和匹配准确性。
1.1 技术方法
整个系统采用两阶段、离线、集中式的解决方案,涉及分布式地面机器人和中央计算机。具体步骤如下:
-
特征提取
:使用现成的特征提取方法(如SIFT)从高维数据(如图像)中提取代表性点。这些特征本身是高维向量,在本实验中,SIFT特征提取出128维向量来表示每个特征点的外观。虽然也测试了ORB和SURF等其他特征类型,但SIFT最为可靠。
-
QuickMatch匹配
:这是一种基于密度的聚类算法。首先计算所有特征之间的距离(使用欧几里得距离),对于每张图像,取任意两个特征之间的最小距离σi作为该图像特征的独特性。通过以下公式计算特征密度:
[D(x) = \sum_{i=1}^{N} \sum_{k=1}^{K_i} h(x, x_{ik}; \sigma_i)]
[h(x_1, x_2; \sigma) = \exp(-\frac{|x_1 - x_2|}{2\sigma^2})]
根据特征密度将特征组织成树结构,父节点是具有更高密度的最近邻。通过以下公式确定父节点:
[parent(x_{ik}) = \arg \min_{i’k’ \in J} d(x_{ik}, x_{i’k’})]
[J = {i’k’ : k \neq k’, D(x_{i’k’}) > D(x_{ik})}]
构建树结构后,若满足以下两个条件之一则断开边:一是父节点和子节点组包含来自同一图像的节点;二是边的长度大于用户定义的阈值(ρ)乘以σi。最终形成森林,每棵树代表一个独特的实体。
-
单应性和定位
:单应性是两个图像视点之间的透视变换,可用于确定物体的相对位置。通过已知的相对点(或匹配特征)估计单应性矩阵H,使用RANSAC去除匹配中的异常值。利用单应性变换和目标参考图像,可对物体进行定位。但该方法受参考图像限制,存在测量不准确的问题,可通过多次测量和滤波来解决。
1.2 实验设置
实验使用五台iRobot Create2地面机器人,每台机器人配备前向摄像头。目标物体在实验区域中心沿特定轨迹移动约三十秒,所有相机同时触发并将图像发送到中央计算机进行特征提取和匹配。中央计算机配置为Intel i7 - 7800x 3.5 GHz处理器,运行Ubuntu 16.04 LTS和ROS Kinetic。具体参数设置如下:
- SIFT特征提取:八度层为6,对比度阈值为0.10,边缘阈值为15,sigma为1.0。
- QuickMatch匹配:ρ = 1.1,根据与目标图像的匹配数量(本实验要求10个匹配)确定哪些相机观察到目标物体。
- 单应性估计:使用RANSAC,阈值为10.0。
通过透视变换在目标图像角点生成边界框,利用已知尺寸的物体(如棋盘格)校准边界框像素高度与相机距离的关系,记录定位点以构建目标轨迹,并与OptiTrack运动捕捉系统的地面真值测量结果进行比较。
1.3 实验结果
对QuickMatch算法从纯匹配性能和目标定位应用两个方面进行评估,并与OpenCV软件包中的Brute Force(BF)和FLANN标准匹配算法进行比较。
-
执行时间
:QuickMatch用Python实现,处理6254个SIFT特征(来自115张图像)需要5.6秒;BF和FLANN用C++实现,处理相同特征约需0.05秒。时间差异主要源于Python运行速度较慢以及QuickMatch为解决多匹配问题进行的额外比较。若BF和FLANN进行全组合比较,计算时间约为5.75秒,与QuickMatch相当,且QuickMatch无需对不一致匹配进行后处理。
-
精度与召回率
:QuickMatch在正确匹配数量、精度 - 召回率(PR)和精度 - 召回率曲线下面积(PR AUC)方面优于BF和FLANN。对于任何召回水平,QuickMatch都保持较高的精度水平。PR AUC方面,QuickMatch达到0.64,而BF和FLANN分别为0.49和0.45。
-
单应性和定位
:使用三种算法对目标物体进行定位和轨迹估计。QuickMatch在准确性方面优于BF和FLANN,其定位误差为0.2118 ± 0.4254 m,BF为0.2349 ± 0.4027 m,FLANN为0.6232 ± 1.1722 m。
-
特征发现
:QuickMatch算法通过创建相似特征的聚类隐式发现图像中的共同特征,可用于跨图像查找目标和地标。这是BF和FLANN所不具备的特性。
以下是实验结果的表格对比:
| 算法 | 执行时间(秒) | PR AUC | 定位误差(m) |
| ---- | ---- | ---- | ---- |
| QuickMatch | 5.6 | 0.64 | 0.2118 ± 0.4254 |
| BF | 0.05 | 0.49 | 0.2349 ± 0.4027 |
| FLANN | 0.05 | 0.45 | 0.6232 ± 1.1722 |
2. 基于约束扩展卡尔曼滤波器的无标记点实时姿态估计
在人体运动捕捉领域,基于标记点的运动捕捉是主流技术,但存在标记点遮挡、误标记等问题,通常需要在后期进行繁琐的手动清理。
2.1 研究背景
标记点运动捕捉广泛应用于机器人领域,如人类运动模仿、人形机器人设计和人机交互。然而,标记点的各种问题导致估计误差。目标是创建一个能够实时使用原始标记点数据估计全身运动的系统。
2.2 解决方案
常见的处理方法是使用插值填充缺失区域并手动纠正标记点标签,但这很耗时。扩展卡尔曼滤波器(EKF)是实时填充缺失标记点的流行方法,可用于跟踪单个标记点和刚性物体。填充缺失标记点数据后,可通过逆运动学从每个肢体的姿态估计关节角度。
以下是整个流程的mermaid流程图:
graph TD;
A[原始标记点数据] --> B[扩展卡尔曼滤波器填充缺失标记点];
B --> C[逆运动学估计关节角度];
C --> D[全身运动估计];
综上所述,QuickMatch算法在多机器人目标匹配中展现出良好的性能,特别是在多图像匹配和特征发现方面具有优势;而基于约束扩展卡尔曼滤波器的方法为解决标记点运动捕捉中的问题提供了一种实时有效的解决方案。
2.3 约束扩展卡尔曼滤波器方法
为了实现实时且能处理缺失和误标记标记点的全身人体运动估计,采用了约束扩展卡尔曼滤波器方法。该方法不仅能估计运动,还能确保人体关节轨迹符合运动学限制,得到更真实的结果。
具体来说,约束扩展卡尔曼滤波器在运行过程中,会不断结合当前的测量值和系统的动态模型进行状态估计。其步骤如下:
1.
初始化状态
:根据初始的标记点数据,确定系统的初始状态,包括位置、速度等信息。
2.
预测步骤
:利用系统的动态模型,对下一时刻的状态进行预测。这个模型描述了人体运动的物理规律,例如肢体的运动方式和速度变化。
3.
更新步骤
:当新的测量值(即标记点的位置数据)到来时,将预测值与测量值进行融合,更新系统的状态估计。在这个过程中,会使用卡尔曼增益来平衡预测值和测量值的权重。
4.
约束处理
:为了确保人体关节轨迹符合运动学限制,在更新步骤之后,会对估计的状态进行约束处理。例如,某些关节的运动角度有一定的范围限制,超出这个范围的估计值会被调整到合理的范围内。
以下是一个简单的表格,展示了约束扩展卡尔曼滤波器与传统扩展卡尔曼滤波器的对比:
| 滤波器类型 | 处理缺失标记点能力 | 处理误标记标记点能力 | 确保运动学限制 |
| ---- | ---- | ---- | ---- |
| 传统扩展卡尔曼滤波器 | 有一定能力 | 较弱 | 无 |
| 约束扩展卡尔曼滤波器 | 强 | 强 | 有 |
2.4 实验验证
该方法在两个数据集上进行了验证。通过与使用手动清理数据得到的结果进行比较,发现约束扩展卡尔曼滤波器方法能够产生相当的结果。这表明该方法在实际应用中是可行的,能够有效地处理标记点运动捕捉中的各种问题,实现实时的全身人体运动估计。
以下是实验验证的mermaid流程图:
graph TD;
A[原始标记点数据] --> B[约束扩展卡尔曼滤波器处理];
B --> C[生成运动估计结果];
D[手动清理数据] --> E[生成参考结果];
C --> F[与参考结果比较];
E --> F;
3. 总结
本文介绍了两种在机器人和运动捕捉领域具有重要意义的技术:QuickMatch算法在多机器人目标匹配中的应用和基于约束扩展卡尔曼滤波器的无标记点实时姿态估计。
- QuickMatch算法通过在更现实的条件下进行实验验证,展示了其在多图像匹配、精度与召回率、目标定位等方面的优势,并且能够隐式发现图像中的共同特征,为多机器人目标匹配提供了一种有效的解决方案。
- 基于约束扩展卡尔曼滤波器的方法针对标记点运动捕捉中的遮挡和误标记问题,实现了实时的全身人体运动估计,同时确保了人体关节轨迹符合运动学限制,为运动捕捉技术的发展提供了新的思路。
这两种技术在各自的领域都具有重要的应用价值,有望在未来的研究和实际应用中得到更广泛的推广和发展。
以下是一个简单的列表,总结了两种技术的关键优势:
-
QuickMatch算法
:
- 多图像匹配能力强
- 精度与召回率高
- 具备特征发现能力
-
约束扩展卡尔曼滤波器方法
:
- 实时处理缺失和误标记标记点
- 确保人体关节轨迹符合运动学限制
超级会员免费看
42

被折叠的 条评论
为什么被折叠?



