论文部分内容阅读
随着异构嵌入式平台计算能力的不断提升,越来越多计算机视觉方面的技术应用于嵌入式设备中。基于计算机视觉技术的即时定位与地图构建(SLAM)框架,在近几年来不断发展并成为了热门的研究话题。SLAM的一个发展方向是跟深度学习相结合,利用语义信息来提升SLAM的定位精度。但是,当前的语义SLAM通常无法在异构嵌入式平台上实现实时运算。此外,SLAM还存在一个问题,即设备定位主要相对于起始位置,无法确认在现实生活中的具体位置(即全局定位)。为了在异构嵌入式平台上实现实时的全局语义SLAM,本文设计并实现了一种针对于大范围道路场景定位的前后端系统架构,主要研究工作如下:(1)对相关的算法进行研究与对比。分析并对比了多种深度图算法,最终选择不存在空洞的DispNet算法来实现深度图的获取;测试对比了多种特征点算法的运算速度及描述子准确性,最终将兼顾实时性和准确性的CudaSIFT集成到系统中;对多种语义分割算法进行测试分析,最终选择DeepLab来实现语义功能;分析了传统SLAM的性能,并结合全局地图方法,得到了本文系统设计的灵感。(2)设计并实现了新的前后端系统架构。该系统主要包括了两部分:运行于高性能PC上的后端以及运行于异构嵌入式平台的前端。后端主要负责全局地图的离线构建,以及通过无线通信为前端提供地图信息;前端主要负责基于全局地图完成实时定位。为了解决全局地图切割所带来的诸多问题,本文还提出了双层级定位方法,该方法能够有效地定位到前端移动的初始位置,从而检索出对应范围的切割后的子地图。对于语义信息的结合,本文提出了用语义分割的方法来区分场景中的动静物体并剔除动态物体,从而解决建图与定位这两个不同时间段下动态物体不一致的情况。(3)优化与改进部分在嵌入式设备上的算法。包括了DeepLab的网络结构优化,2D-3D匹配算法的并行化加速,以及利用线程并行优化定位过程中的一些计算过程。同时,选用的算法以及优化方法均考虑到了嵌入式设备的异构特性,即充分利用嵌入式设备上的CPU/GPU资源来实现更好的系统性能。本文系统在实现后,能够在KITTI数据集上以近11帧每秒的速度完成实时定位,并且最终的定位轨迹误差维持在了1米以内,同时兼顾了实时性和准确性。