arxiv上一篇很新的视觉SLAM论文,能够在不使用GPU的情况下进行语义分割的辅助运算。
一、跟踪流程
作为一个语义结合的视觉SLAM,其基本的思路和以前看过的DynaSLAM基本类似,都是依赖语义分割模型对场景中动态的特征点进行剔除,这样子减少动态物体对里程计的干扰。传统的解决方案是传入的每一帧开两个线程,一个用于语义分割,另一个用于特征提取,之后根据语义结果过滤特征结果。由于特征提取速度一般要比语义分割快得多,所以经常会出现整个系统等待语义分割模型推理的现象。而NGD-SLAM通过巧妙的框架设计,让跟踪线程不需要完全等待语义分割。
从论文中的流程图可以看出,第一帧还是存在一个等待的过程,但是后续的过程中得益于语义跟踪的加入,并不需要每一帧都等待。
二、语义线程
整个框架选择使用YOLO-fastest来进行语义分割,而且作者设置了一个很独特的缓冲区用于传递模型的输入和输出。输入的部分会实时更新,推理的结果会保存到输出缓冲区。跟踪线程每处理一张图像,就把这张图放入输入缓冲区,之后模型推理完再放到输出缓冲区。这样跟踪线程就不会被迫等待语义分割线程。但这也使得两个线程不同步,也就是处理的图像并不是同一时刻的,这个问题NGD-SLAM使用掩码预测进行了修正。
三、掩码预测
所谓掩码预测,其实就是根据类似恒速模型的方法,推测一个可能动态物体的位置。作者将这个模块分为六步。