APP下载

基于深度学习的动态场景相机姿态估计方法①

2020-02-14朱登明

高技术通讯 2020年1期
关键词:卷积神经网络误差

路 昊 石 敏 李 昊 朱登明

(*华北电力大学控制与计算机工程学院 北京 102200) (**中国科学院计算技术研究所前瞻研究实验室 北京 100190) (***太仓中科信息技术研究院 太仓 215400)

0 引 言

近20年的时间里,增强现实无论在技术层面还是应用层面都得到了前所未有的发展。对于现实中普遍应用的单目视觉而言,连续运动的相机的位姿估计是3维姿态估计的核心技术。传统的3维姿态估计方法存在许多的局限,GPS无法应用于室内定位且定位精度较低;高精度的惯性导航单元价格过于昂贵,低廉的精度损失又相对过大;基于人工标识的定位方法需要预先设定场景,导致应用场景无法扩展。而反观人类,依靠双眼获取的视觉信息就可实现对周围环境的感知,因此基于连续视频序列的相机运动姿态估计,即通过摄像头采集的视频图像信息就可以实现在位置环境下的自身定位,同时恢复周围环境的3维结构,这对于增强现实设备实现自身与虚拟物体的相对运动映射关系尤为重要。

由于基于特征点匹配估计相机姿态的方法受目标场景特征提取的难易程度影响较大,尤其是在复杂动态场景下,由于相机的快速运动或者目标场景的快速变化导致特征点提取效果不理想。基于这种情况,利用端到端的深度学习方法来解决这一问题成了研究的重点。

Kendall等人[1]提出了一种具有鲁棒性和实时性的单目相机6自由度重定位方法。通过卷积神经网络(convolution neural network, CNN)对输入的单张RGB图像进行6自由度相机姿态的回归预测。

Wu等人[2]提出了一种基于卷积神经网络(CNN)的相机姿态重定位方法。利用卷积神经网络(CNN)对图片中采样得到的像素点的世界坐标进行预测,建立预测点与对应相机坐标点的映射关系。Kendall和Cipolla[3]在另一篇文章中提出了建立基于不确定性的贝叶斯卷积神经网络来对单张RGB图像进行相机位姿的回归预测,提高预测的置信度。

Costante等人[4]提出了一种帧间运动学习估计方法。利用卷积神经网络对连续视频图像中稠密光流进行视觉特征提取,通过全连接神经网络再对新学习的视觉特征进行帧间的相机运动估计。

Zhou等人[5]提出了一种基于无监督学习框架估计单目相机运动及深度信息。通过利用单视角深度网络以及多视角位姿网络对非结构化的视频序列进行端到端的联合学习。

Walch等人[6]提出了利用长短记忆神经网络(long short-term memory neural network, LSTM)[7]对单帧图像的特征进行降维,并与PoseNet[1]网络结构相结合,提高了定位精度,然而并没有利用多个连续图像之间的关系。

Wang等人[8]提出了对连续的2帧图片叠加之后进行特征提取,提取的特征经过循环神经网络进行时序建模估计位姿,鲁棒性得到增强,但是选用的卷积网络层数较少,整体定位精度一般。

本文提出了一种基于由深度卷积神经网络(CNN)和长短期记忆神经网络(LSTM)组成的端到端的结构,使用深度卷积网络提取特征并传进长短期记忆神经网络,对连续视频序列中相机位置之间的相对运动关系建模,进行相机姿态的回归预测,提高了模型收敛的速度,并且提升了定位精度。

1 深度相机位姿估计

整体网络结构(图1)属于端到端的模型,每一帧图片对应一个表示相机位姿的7维向量p=[x,q],其中x=(x,y,z)T∈R3表示位置向量,使用4元数q表示方向,是考虑到标准化后的4元数同样能映射到旋转矩阵,并且标准化的数据更容易进行网络训练。

图1 网络结构图

整个网络的损失函数如式(1)所示:

(1)

为了充分发挥卷积神经网络提取特征的能力以及长短期记忆神经网络的时序相关性,同时考虑到数据量规模,本文将CNN与LSTM相结合,提出了一种端到端的模型:

(1)首先通过迁移学习将分类数据集上训练好的权重参数作为CNN部分的初始化参数,将针对图像分类任务的预训练模型作为本文目标场景的初始化模型。

(2)利用初始化后的卷积神经网络对目标训练集进行特征提取,从视频序列中提取特征,同时对特征进行降维处理并送入LSTM单元中。

(3)利用长短期记忆神经网络对CNN输出进行连续时序上的学习训练,最终输出一个由3维位置向量以及代表方向的4元数组成的7维姿态向量。

2 基于CNN和LSTM的网络模型

2.1 卷积神经网络

考虑动态场景的运动模糊和光照的鲁棒性,本文选用卷积神经网络提取图像特征。本文深度卷积网络结构参考了PoseNet的思想,选择使用在分类任务上表现优秀的深度卷积网络。表1在GoogLeNet的网络结构上进行修改,去掉了原本用于分类任务而设定的softmax层,取而代之的是在最后增加了一层全连接层对高维特征进行降维,得到的结果序列传递给LSTM进行时序建模。如表1所示,为本文深度卷积网络各层输出,本文输入统一为224×224分辨率的3通道彩色图像,中间的网络层相比GoogLeNet,去掉了2个原本用于中间输出的分支结构,网络的最终输出为2 048维特征向量。

表1 卷积神经网络各层输出

本文采用的这种卷积网络为深度卷积网络,涉及到参数计算的共13层,深层网络可以得到更深层次的特征图;另一方面,这种卷积网络结构采取了9个Inception模块,这种模块采用不同尺度卷积核提取特征并聚合,增加了网络模型的宽度。这种网络从深度和宽度上的设计保证了网络的性能,更适用于动态场景的复杂特征提取。

其中卷积层在卷积神经网络中用于特征提取,卷积层输出大小为

O=(W-K+2P)/S+1

(2)

其中,O为输出尺寸,W为长度或宽度,K为过滤器尺寸,P是填充,S是步幅。

为避免神经网络退化为最原始的感知机,本文的每个卷积层之后都选用ReLU作为激活函数,使得输入输出之间保持高度非线性的关系。

在这种卷积神经网络中,还使用了2种池化操作:最大池化和平均池化。池化最直接的作用就是引入了不变性,这种不变性包括了平移不变性、旋转不变性以及尺度不变性。同时池化只保留了主要的特征,减少了参数,提高了模型的泛化能力,避免了过早地出现过拟合现象。

池化层输出的大小为

O=(W-F)/S+1

(3)

其中,O为输出尺寸,W为长度或宽度,F为池化单元尺寸,S为步幅。

在本文卷积网络最后部分设置了全连接层,该层的作用是将网络学习到的特征映射到样本的标记空间中,即把卷积输出的2维特征图转化为一个1维的向量,将由1维向量组成的序列输入到LSTM中进行时序建模。

2.2 长短期记忆网络

在估计连续视频序列中的相机运动问题上,考虑到视频前后的连续相关性,上一状态的相机运动参数信息同样会影响下一状态的位置信息,所以在CNN之后,还设计了一个LSTM进行时序学习。视频序列通过深度卷积网络得到的特征序列作为LSTM的输入,学习连续图片特征之间的时序相关性,并使得每一个图片特征对应一个7维的输出,包括3维的位置向量和代表方向的4元数。

在LSTM单元当中被放置了3个门结构,分别叫做输入门、遗忘门和输出门。输入门的作用对象是细胞状态,能够将新的信息选择性地记录到细胞状态中,如式(4)所示:

it=sigmoid(Wxixt+Whiht-1+bi)

(4)

其中,ht-1为上一时刻输出,xt为当前输入,W和b分别为权值和偏置。

遗忘门ft的作用对象是细胞状态,能够将历史信息选择性遗忘,如式(5)所示:

ft=sigmoid(Wxfxt+Whfht-1+bf)

(5)

输出门ot控制当前信息流出,由上一时刻输出ht-1和当前输入xt共同决定,如式(6)所示:

ot=sigmoid(Wxoxt+Whoht-1+bo)

(6)

2.3 CNN+LSTM网络模型

因为基于深度神经网络训练学习模型,需要大量的训练样本,但是本文任务场景的当前数据集还不足以支撑完整的神经网络的训练,很容易导致过拟合现象的发生。在训练之前,本文利用了在Places数据集上训练好的GoogLeNet[9]的权重参数作为CNN部分的初始化参数,即将用作图像识别分类的预训练模型用作本文目标场景的初始化模型,这一方法在Kendall等人[1]的工作中得到证明。

在动态场景下,由于相机的快速运动以及目标场景存在变化,所以场景中的特征点不能很好地通过特征提取及匹配算法计算出相应的3维空间位置,从而导致无法计算连续视频序列之间的相机相对运动关系。因此本文将CNN和LSTM相结合,摒弃了提取特征点的步骤,直接利用深度卷积网络作为特征提取器,在视频序列中的每一帧提取一个2 048维的特征,本文将输出的2 048维特征向量作为序列传送到LSTM中进行时序建模。

实践中直接将2 048维特征序列输入LSTM并没有取得很好的效果,这是因为2 048维特征对于LSTM太长以至于无法很好地关联前后特征。为了减少LSTM输入的特征维度,并且尽量少丢失特征信息,在CNN网络输出后添加了一个全连接层,将2 048维的特征降为1 024维,并将1 024维特征序列传递给LSTM进行时序建模,构建图像特征的时序关系,从而保证视频中每帧图像的位姿状态并不是完全独立的,而是存在前后依赖。实验表明,这种做法增强了模型的学习能力,并且一定程度上提高了精度。

3 实 验

3.1 实验环境

本文实验环境的机器配置参数如表2所示。

表2 实验环境配置

3.2 实验结果

在微软公共数据集7-Scenes[10]上选取了其中3个室内场景数据集Chess、Office、Heads以及PoseNet文章所发布的CambridgeLandmarks数据集中室外场景数据集King’s College(图2)。这2种数据集的差异很大,7-Scenes数据集的特点是空间范围非常小,而图像非常多,覆盖密集;而CambridgeLandmarks数据集的特点是空间范围很大,图片相对较少,覆盖很稀疏。

图2 测试数据集

实验设定batchsize为75,学习率为0.0001。为了方便进行对比,每个数据集的训练集、测试集选取相同,且损失函数式(1)中的β同PoseNet保持一致:在King’s College数据集上设为500,在Heads、Chess和Office室内场景数据集上设定为120、500、250。

本文实时记录了在训练过程中,损失(loss)值随迭代次数的变化情况,并与PoseNet的损失函数变化情况进行了对比。以Chess数据集的实验结果为例,图3展示了本文网络结构与PoseNet的loss值均随着迭代次数增加的变化,在2种网络结构上都会趋于收敛,但是本文网络结构在初始阶段loss值明显低于PoseNet,并且最终收敛时loss值低于PoseNet。在不同数据集上均取得了类似的情况,整体的loss明显低于PoseNet,证明了本文提出的网络更容易训练。

图3 Chess数据集loss收敛情况

如表3所示,在多个公共数据集上,本文采用的网络结构和PoseNet网络结构预测姿态结果的误差中值进行了对比,其中位置误差Ex以单位米(m)衡量,角度误差Eq以单位度(°)衡量。

表3 各数据集误差表

Heads数据集是4个数据集中场景空间范围最小的,仅1 m3。其中连续的帧差异较小,移动速度较小。在该数据集上,将1 000张连续图片作为训练集,另外1 000张连续图片作为测试集,实验结果的位置误差Ex在4个数据集中最小,预测的相机位置误差中值仅0.28 m,并且相比PoseNet,本文的位置精度提高了20.0%,方向精度提高了30.6%。

Chess数据集的空间范围为6 m3,数据集图片较多几乎覆盖整个空间。其中图片中含有棋盘格纹理特征丰富,并且连续图像的旋转较慢。选取4 000张图片作为训练集,另外2 000张图片作为测试集,实验结果中方向误差Eq在室内数据集中最小。相比PoseNet,本文方法位置精度提高了26.1%,方向精度提高了32.2%。

Office数据集空间范围7.5 m3,图片较多但是很多张图片存在运动模糊的情况。Walch等人[6]的工作结果表明,在Office数据集上,传统方法无法对其中的一些图片进行有效识别,无法预测位姿;而本文方法在该数据集上,每一张图能给出一个合理的位姿预测结果,这证明了深度方法在动态场景下相比传统方法的优势和价值。本文方法训练集选取6 000张序列帧,测试集选取4 000张的序列帧,相比PoseNet,位置精度提高了5.9%,方向精度提高了11.2%。

King’s College数据集为大型室外场景,涉及5 600 m2的区域。场景面积大,但该数据集图片相对较少,训练容易产生过拟合。训练集选取1 220帧图片,测试集选取343帧图片。位置误差Ex明显大于其他3个数据集,达到1.96 m,但是相比PoseNet,本文方法的位置精度提高了9.7%,方向精度基本一致。

为了验证采用迁移学习的重要性,本实验在King’s College数据集上增设了1组对比实验,表4展示了采用迁移学习前后的误差对比。在PoseNet及本文模型上,迁移学习都展示了良好的效果。引入初始化参数后,本文模型的位置精度提高了23.1%,方向精度提高了15.4%。

表4 迁移学习前后误差对比

由于采用了LSTM,当前帧会对同序列帧预测结果产生影响。如图4所示,当出现大面积遮挡的帧,甚至无效帧时,对该帧图片能够得到一个相对合理的值,但相邻帧的预测精度下降。本实验对不包含该类帧的序列进行测试,位置误差Ex达到1.65 m。

图4 King’s College部分测试集

针对大型室外场景的实验结果位置误差明显大于小型室内场景的结果,可能原因一方面是空间范围大,另一方面是相机移动速度快。所以增设了1组实验对相机速度和位置误差的关系进行分析。在King’s College测试集中选取了数据集中相对低速和高速的40帧序列进行测试。如图5、图6所示,横轴均为选定的测试序列,纵轴为每一帧图片对应的位置误差大小,单位为m。

图5 低速序列位置误差

图6 高速序列位置误差

低速序列中,相邻帧的相机平均位移为0.745 m,测试结果的平均位置误差为1.290 m,误差中值为1.138 m;高速序列相邻帧的相机平均位移为1.363 m,测试结果的平均位置误差为2.126 m,误差中值为1.794 m。所以移动速度较快的序列所估计的位置误差较大,且明显高于测试集整体的误差中值,与推测相符。

4 结 论

针对基于自然特征的视觉3维注册方法对于纹理特征较稀疏的场景以及复杂动态场景表现不理想的情况,本文提出了一种基于CNN + LSTM网络的端到端模型,以深度CNN作为特征提取器,以LSTM进行时序建模,从而建立连续视频序列中相机位置之间的相对运动关系。同PoseNet相比,获得了更快的收敛速度,更低的损失值,更高的精度。未来的工作将针对高速移动相机的位姿估计展开,以便提高在高速情况下估计的位置精度。

猜你喜欢

卷积神经网络误差
基于3D-Winograd的快速卷积算法设计及FPGA实现
角接触球轴承接触角误差控制
Beidou, le système de navigation par satellite compatible et interopérable
卷积神经网络的分析与设计
神经网络抑制无线通信干扰探究
从滤波器理解卷积
压力容器制造误差探究
基于神经网络的中小学生情感分析
基于傅里叶域卷积表示的目标跟踪算法
基于神经网络的拉矫机控制模型建立