为嵌入式系统简化视觉SLAM开发
同步定位与建图(SLAM)技术使设备(无论是机器人、无人机还是自动驾驶汽车)能够实时构建周围环境地图,同时确定自身在该地图中的位置。SLAM可通过多种算法和传感器实现,包括摄像头、激光雷达、声纳、雷达和惯性测量单元(IMU)。
视觉SLAM的核心优势
低成本、紧凑型摄像头的普及使单目视觉SLAM成为众多机器人的首选方案,应用范围涵盖火星探测器、农业作业机器、配送无人机到城市自主平台。视觉SLAM在GPS信号受阻或衰减的环境中表现出色,如室内仓库或高楼林立的城市中心。
直接法与特征法SLAM对比
所有视觉SLAM系统都通过跟踪连续相机帧间的点来三角测量其三维位置,同时估计相机位姿,并持续最小化重投影误差——即投影特征位置与实际位置的差异。主要区别在于图像信息的使用方式。
直接法SLAM对比整幅图像,提供丰富的环境细节,但计算负载较高。特征法SLAM(本文重点)提取图像中的显著特征——角点、斑点等显著点,仅依赖这些特征进行位姿估计。尽管特征法丢弃部分图像数据,但它提供了更简单、更快速、更节能的解决方案,特别适合嵌入式硬件。

图1:直接法与特征法SLAM对比(来源:https://vision.in.tum.de/research/vslam/lsdslam)
视觉SLAM工作流程
特征法SLAM包含四个关键阶段:1)特征提取,2)特征描述,3)特征匹配,4)回环检测。这些阶段建立在一组成熟的基础模块之上,可适配多种SLAM实现。
特征提取
特征提取将图像提炼为一组简洁的显著点——角点、边缘、斑点及门窗等复杂结构,并以紧凑向量表示。常用算法包括高斯差分(DoG)和快速实时的FAST9角点检测器。

图2:SLAM特征提取(来源:https://medium.com/towards-artificial-intelligence/oriented-fast-and-rotated-brief-orb-1da5b2840768)
特征描述
定位特征后,将周围像素块转换为描述子——一种可与其他描述子比较的紧凑表示。ORB和FREAK是广泛使用的描述子算法,在独特性与计算效率间取得平衡。
特征匹配
通过计算位向量间的汉明距离匹配连续帧的描述子。该指标可利用硬件上的XOR和pop-count操作高效计算,即使在资源受限设备上也能实现快速匹配。
回环检测
回环检测识别系统重访先前位置的时刻。通过在非相邻帧间引入约束,大幅减少累积漂移。最先进的回环技术包括捆绑调整、卡尔曼滤波和粒子滤波。
特征法SLAM特别适合嵌入式方案,提供更快处理速度、更低内存占用,并在光照变化、运动模糊和遮挡等条件下保持鲁棒性能。具体算法选择取决于应用的地图类型、传感器套件、精度要求及其他约束。
实现挑战
视觉SLAM的计算密度可能压垮传统CPU,推高功耗并限制帧率。专用视觉处理单元(VPU)如CEVA-XM6提供加速视觉任务所需的专用架构,具备低功耗、强大ALU、高吞吐内存访问和专用图像处理指令。

图3:CEVA XM6视觉处理单元(来源:CEVA)
即使有VPU,开发者仍面临挑战:为特征匹配、捆绑调整等线性代数密集型操作编写高效代码;管理内存布局避免昂贵的非连续访问;以及将VPU与主机CPU集成。高层库和优化例程对于释放VPU全部潜力至关重要。
利用CEVA-SLAM SDK加速开发
CEVA-SLAM SDK是一个综合工具链,将CEVA-XM6硬件与丰富的视觉库相结合。它提供特征检测、描述子提取、匹配、捆绑调整和线性代数运算的预优化例程。独特的并行加载指令解决非连续内存访问问题,专用汉明距离指令加速匹配。

图4:CEVA SLAM SDK(来源:CEVA)
在基准实现中,SDK实现了60 fps的SLAM跟踪,功耗仅86 mW——这是通用CPU难以达到的性能水平。
结语
视觉SLAM正迅速成为自主机器人、无人机和智能车辆的基石技术。随着嵌入式部署增加,编码效率和功耗成为决定性因素。虽然VPU卸载繁重视觉工作负载,但开发高性能、低功耗SLAM仍非易事。利用CEVA-SLAM SDK等专用工具包,开发者可加快上市时间,交付可靠、节能的SLAM解决方案。
嵌入式