论文部分内容阅读
从单目图像中恢复出场景的深度信息,即单目深度估计,一直是视觉领域中重要的研究问题。单目深度估计被广泛地应用在自动驾驶、无人机和机器人等诸多领域,嵌入式计算平台上的单目深度估计也逐渐成为亟需研究的课题。现阶段大部分深度估计算法依赖于高性能的服务器等计算平台;少部分深度估计算法可以在嵌入式计算平台实时地预测深度信息,但是其精度还未能满足嵌入式设备的需求。此外,现有的深度估计算法很多忽略了平衡精度和延迟,以及适配不同嵌入式设备上不同硬件体系结构的问题。针对以上这些挑战,本文主要研究内容与贡献如下:(1)针对嵌入式设备上轻量级的单目深度估计算法精度受限这一问题,本文以大幅度提高精度为目标,首先设计了编码器——解码器算法DEM(depth estimation model,DEM)。DEM基于双路径神经网络,其编码器缓解了现有编码器不能同时重用特征和重探索特征的缺陷;解码器缓解了现有解码器不能有效学习局部特征的缺陷,DEM从而提高了单目深度估计的精度。为使DEM的精度进一步提高,本文提出了基于相对深度关系的损失函数指导DEM的训练。之后,本文基于现有的编译方法在嵌入式TX2的图形处理单元(graphics processing unit,GPU)计算平台上加速DEM算法,同时不改变其精度。在DEM算法的基础上,本文提出了只使用单目相机进行室内外场景重建的即时定位与建图系统(Simultaneous localization and mapping,SLAM),旨在缓解单目SLAM中的尺度模糊问题,验证单目深度估计DEM在场景重建中的准确度。本文提出的SLAM系统,包括8个模块:DEM、特征检测、描述子计算、特征匹配、位姿预测、关键帧提取、回环检测和位姿图优化,每一模块均可以灵活地被替换。大量的实验验证了所提出的DEM提高了深度估计的精度;训练DEM的损失函数相比其他损失函数至少将精度提高了0.8%;DEM的优化在不改变其精度的情况下,使嵌入式GPU计算平台上的单目深度估计的推理延迟、CPU(central processing unit)/GPU占用率、功耗、能耗分别降低了10.8%、4.8%、1.3%、2.9%、13.9%(使用NYU-Depth-v2测试数据集评估);基于DEM的SLAM系统更准确地重建了室内外场景;DEM在雷达超分辨率中的应用相比其他方法的精度至少提高了14.5%。(2)针对嵌入式平台上单目深度估计计算资源开销严格受限的挑战,本文以大幅度减少中央处理器(central processing unit,CPU)上的计算资源开销为目标,首先设计了轻量级的编码器——解码器架构EDA(encoder and decoder architecture,EDA)。其次,本文使用深度学习编译器技术,在嵌入式的CPU计算平台上部署、编译和优化EDA,使EDA的推理延迟、内存占用率和CPU占用率降低,同时保持推理精度不变。此外,针对目前深度估计研究大多未使用真实场景的数据在嵌入式计算平台上进行深度估计,本文开发了在实际嵌入式计算平台和真实场景中进行快速单目深度估计的通用框架,并将深度估计算法融合到机器人操作系统(robot operating system,ROS)中,使深度估计发布器发布的深度信息供其他ROS节点使用,以使机器人更好地感知环境。通过实验验证,在实际嵌入式CPU计算平台上和场景中本文的方法取得了较好的结果。例如,优化后的EDA在TX2 CPU计算平台上,其CPU延迟、内存占用率、CPU占用率、功耗与流行的算法相比至少低了57.5%、16.1%、10.9%、34.9%;优化后的EDA的精度比其他算法至少高了0.4%(使用NYUDepth-v2测试数据集评估)。(3)为了平衡嵌入式计算平台上深度估计算法的计算复杂度和精度,本文首先设计了单目深度估计算法MDE(monocular depth estimation,MDE)。其次,本文根据嵌入式计算平台的计算资源可利用的情况,基于强化学习方法设计剪枝算法来自动调整MDE的计算复杂度。具体通过剪枝算法去除MDE冗余通道,使MDE自动达到目标剪枝率,从而降低计算复杂度到阈值状态。同时,本文设计强化学习的奖励函数使MDE自动降低计算复杂度时精度损失最少。此外,为在不同嵌入式设备的不同硬件体系结构上进行单目深度估计,本文使用编译优化方法使MDE在精度不变的情况下,适配不同的硬件体系结构,同时降低MDE的推理延迟和功耗而不损失其精度。经过大量实验验证:本文设计的MDE相比最流行的算法,取得了准确度和延迟之间的权衡;本文的剪枝方法降低了MDE的推理延迟、功耗和存储占用的空间;本文的编译优化方法使MDE适配了不同的硬件体系结构。例如,在嵌入式板子Nano上,输入为KITTI数据集上的228×912的RGB图像时,与流行的深度估计算法相比,经过剪枝和优化的MDE在Nano GPU嵌入式平台上,其延迟、准确度和功耗指标方面至少好了71.9%、10.9%、0.3%。其他视觉任务(例如像素级分割)也可借鉴以上平衡深度估计精度和计算复杂度、自动调整计算复杂度或适配不同硬件架构的方法,从而保证轻量级任务能够大规模地部署于不同嵌入式计算平台的不同硬件体系结构上。