作者:小柠檬 | 来源:3DCV
在公众号「3DCV」后台,回复「原论文」可获取论文pdf
添加v:dddvision,备注:3D高斯,拉你入群。文末附行业细分群
1、导读
同步定位和映射(SLAM)是一种在确定智能体位置的同时构建未知环境地图的技术。机器人和无人机等实时系统通常集成 SLAM 以实现安全操作。
ORB-SLAM是一种被广泛采用的基于相机的SLAM,因为它具有鲁棒性和准确性。ORB-SLAM可检测具有加速分段检验(oFAST)定向特征的关键点,并描述具有旋转二进制鲁棒独立基本特征(rBRIEF)的关键点。ORB-SLAM利用oFAST和rBRIEF (ORB)功能进行跟踪、映射和位置识别任务。ORB特征对旋转和照明变化具有鲁棒性。从图像中提取ORB特征是ORB-SLAM 的瓶颈之一。
传统的ORB提取加速器改变了原始的ORB流水线算法。eSLAM和ac2SLAM是完全流水线的。他们的算法将关键点的角度离散化,并采用旋转对称的BRIEF(RS-BRIEF)模式,以显著降低精度为代价实现完全流水线化的架构。fSLAM [5] 通过采用多周期描述符生成来避免这种精度下降。由于此多周期描述符生成器在生成器繁忙时无法处理新关键点,因此 fSLAM 实例化多个描述符生成器以避免丢弃过多关键点。fSLAM采用流水线力矩和角度计算,为每个描述符生成器提供角度。这些常规作品使用符合其架构的 top-k键点选择,而原始的ORB算法则使用四叉树来选择键点。
我们提出了一种多周期特征描述,可以在不消耗大量硬件资源的情况下实现准确的特征描述。此外,我们还提出了逐行关键点选择,这有助于将流水线特征检测器和多周期特征描述符结合起来。
图1.建议的体系结构。蓝色部分是多周期特征描述符。
表一:算法与相关作品的比较
2、方法
ORB 算法 1) 检测图像中的独特点(关键点),2) 选择得分较高的关键点,以及 3) 生成旋转不变描述符。旋转不变描述符的生成涉及力矩计算、角度计算和描述符生成。图 1 显示了我们的硬件架构。我们使用多周期特征描述符(蓝色部分),以便硬件加速不会破坏原始算法。关键点过滤器(绿色部分)用作流水线关键点检测器和多周期特征描述符之间的缓冲区。相关工作部分采用流水线进行特征描述,如表I所示。
2.1、多周期功能说明
我们的加速器使用多个周期进行矩计算、角度计算和描述符生成,因为这些过程的流水线实现需要大量资源。这些过程1)使用以关键点为中心的31x31图像面片计算x矩和y矩,2)使用矩计算关键点的角度,3)根据获得的角度旋转以关键点为中心的 37x37 图像面片,以及4)使用旋转的面片生成旋转不变描述符。
流水线矩计算需要许多DSP,因为计算涉及使用31x31内核大小的两次卷积运算。fSLAM采用硬件友好的近似,这失去了算法感兴趣区域的旋转对称性。我们使用多周期实现来减少硬件资源,而无需近似值。
图2:建议的特征选择器(上)和专用缓冲区(下)
角度计算涉及将y矩除以x矩。由于流水线分频器需要大量硬件资源,因此传统工作将角度离散化,以用多个乘法器和比较器代替分频器。eSLAM和ac2SLAM可实现约6.0度的角度精度,fSLAM 可实现约2.8度的角度精度,而我们的eSLAM带有分频器,精度可达0.3度。
根据角度每个周期旋转37x37图像修补程序会使内存访问复杂化。eSLAM和fSLAM使用的RS-BRIEF是原始rBRIEF模式的受限版本,它以牺牲精度为代价,用移位操作替换图像贴片旋转。fSLAM 和我们的加速器使用简单的多周期描述符生成。
2.2、逐行关键点选择
为了缓解功能描述的低吞吐量,我们使用专用的调度方法来处理每行中的单个关键点,选择该行中得分最高的关键点,如图2顶部所示。如果行缓冲区的输出是图像的左侧,我们的加速器会计算力矩、角度和描述符;否则,我们的加速器会将像素加载到37x37窗口。图2的底部显示了图1的红色部分。线路缓冲器后面的移位寄存器延迟线路缓冲器的输出,以加载图像左侧的像素。
3、实验结果
我们在 Avnet Ultra96-V2 开发板上实现我们的加速器,并使用 TUM 数据集对其进行评估。
表二与相关作品进行了比较。eSLAM包含一个功能匹配加速器,并关闭环路闭合。因此,他们的结果仅供参考。fSLAM的运行频率为150MHz,其他的运行频率为100MHz。由于fSLAM和ac2SLAM并行计算4个像素,因此它们速度更快,消耗更多资源。
我们的加速器的一个缺点是,如果方向计算和描述符生成所需的周期超过图像列的一半,则加速器无法将某些像素加载到37x37 窗口。发生这种情况是因为ORB提取算法构建了一个4层图像金字塔,该金字塔缩小了图像以生成比例不变描述符。我们的加速器具有更长的运行时间,因为我们将图像列添加到缩小的图像中以避免此问题。此外,它还使并行处理变得困难。因此,我们在此实现中没有采用并行处理,而as2SLAM和fSLAM并行处理四个像素。
表二 与相关作品的性能对比
另一个缺点是,考虑到每个周期处理的像素数,我们的加速器会消耗许多块RAM。它源于37行行缓冲区后面的移位寄存器。另一方面,eSLAM和ac2SLAM需要许多DSP,因为流水线计算矩需要大量的DSP。
我们的架构能够以这些缺点为代价实现准确的功能描述。在绝对轨迹误差中,fr1/room是最难的指标,因为它包含具有运动模糊的帧。我们的加速器在这个重要指标上优于其他加速器。它意味着我们获得的描述符的鲁棒性。
4、结论
该文提出了一种具有多周期特征描述的精确ORB提取器。与传统的top-k特征选择不同,我们在特征描述之前限制了每行的特征数量,以引入流水线关键点检测和顺序特征描述。实验结果表明,与以往相比,该方法以更少的算术单位提高了精度。我们未来的工作将是找到一种硬件友好的功能选择方法,以实现并行处理并减少内存消耗。
5、参考
[1]An Accurate FPGA-Based ORB Feature Extractor for SLAM with Row-Wise Keypoint Selection
3D视觉精品课程:
3DGS、NeRF、结构光、相位偏折术、机械臂抓取、点云实战、Open3D、缺陷检测、BEV感知、Occupancy、Transformer、模型部署、3D目标检测、深度估计、多传感器标定、规划与控制、无人机仿真、三维视觉C++、三维视觉python、dToF、相机标定、ROS2、机器人控制规划、LeGo-LAOM、多模态融合SLAM、LOAM-SLAM、室内室外SLAM、VINS-Fusion、ORB-SLAM3、MVSNet三维重建、colmap、线面结构光、硬件结构光扫描仪。
3D视觉学习圈子
3D视觉从入门到精通知识星球、国内成立最早、6000+成员交流学习。包括:星球视频课程近20门(价值超6000)、项目对接、3D视觉学习路线总结、最新顶会论文&代码、3D视觉行业最新模组、3D视觉优质源码汇总、书籍推荐、编程基础&学习工具、实战项目&作业、求职招聘&面经&面试题等等。欢迎加入3D视觉从入门到精通知识星球,一起学习进步。
3D视觉交流群
目前工坊已经建立了3D视觉方向多个社群,包括SLAM、工业3D视觉、自动驾驶、三维重建、无人机等方向,细分群包括:
工业3D视觉:相机标定、立体匹配、三维点云、结构光、机械臂抓取、缺陷检测、6D位姿估计、相位偏折术、Halcon、摄影测量、阵列相机、光度立体视觉等。
SLAM:视觉SLAM、激光SLAM、语义SLAM、滤波算法、多传感器融合、多传感器标定、动态SLAM、MOT SLAM、NeRF SLAM、机器人导航等。
自动驾驶:深度估计、Transformer、毫米波|激光雷达|视觉摄像头传感器、多传感器标定、多传感器融合、自动驾驶综合群等、3D目标检测、路径规划、轨迹预测、3D点云分割、模型部署、车道线检测、Occupancy、目标跟踪等。
三维重建:3DGS、NeRF、多视图几何、OpenMVS、MVSNet、colmap、纹理贴图等
无人机:四旋翼建模、无人机飞控等
除了这些,还有求职、硬件选型、视觉产品落地、最新论文、3D视觉最新产品、3D视觉行业新闻等交流群
添加v: dddvision,备注:研究方向+学校/公司+昵称(如3D点云+清华+小草莓), 拉你入群。
版权声明:本文由艺术留学网整理发布,如需转载请注明出处。