论文部分内容阅读
vSLAM(visual Simultaneous Localization and Mapping,视觉同步定位与建图)技术被广泛应用在机器人、无人机、混合现实等领域。该技术对实时性要求较高,且常被部署于嵌入式设备。然而由于功耗、资源等因素限制,嵌入式系统的性能往往不足以支持实时的vSLAM应用。为了提高嵌入式vSLAM系统的实时性,现有研究开始使用硬件加速器来加速vSLAM中的部分计算过程。特征点匹配是vSLAM中的关键过程,也是计算较为密集的步骤,加速该过程可以极大地提升系统的整体性能。本文对使用ORB(Oriented FAST and Rotated BRIEF)特征的vSLAM系统中的特征匹配筛选过程进行研究,提出了基于桶的投影匹配算法(BPM,Bucket-based Projection Matching),并实现了用于ORB特征匹配和筛选过程的专用硬件加速器。该加速器在保证系统性能的同时也降低了资源占用和功耗。本文主要研究内容和贡献如下:1.研究并比较了现有的特征匹配软件实现和相关的加速器硬件实现,分析了ORB-SLAM中高效的投影匹配算法,总结出高效匹配的关键在于相机运动预测和通过投影寻找匹配点。2.根据桶抑制(BKS,Bucket Keypoint Suppression)数据流特性,简化投影匹配算法的投影模型和匹配过程,创新性地提出BPM,并根据算法需求将特征点在内存中按桶存储。BPM时间复杂度为o(n),匹配效率高于现有的o(n~2)实现且鲁棒性好。3.针对BPM实现了ORB特征匹配加速器,使用累加式汉明计算单元减少约50%LUT占用和94%FF占用。还实现了用于筛除误匹配的匹配筛选加速器,通过迭代次数动态更新、模型参数检验、模型验证提前中止等优化手段减少约98%计算量。4.提出了新的适用于BPM的特征提取匹配系统的工作流,将特征匹配和筛选的执行延时完全隐藏,并结合现有工作实现了基于桶的ORB特征提取匹配加速器(Bucket-FEM)。软件实验表明BPM导致的相对误差变化仅为0.39‰,对系统精度影响极小;FPGA实现频率为143.8MHz,能以69.3fps的速率处理1920×1080的输入图像,满足大部分嵌入式系统需求,动态功耗仅为0.432W,性能和功耗均优于现有的FPGA实现。