场景识别与PnP结合的视觉室内定位技术研究
2018-07-16甘兴利祝瑞辉李雅宁
李 爽,甘兴利,祝瑞辉,李雅宁
(卫星导航系统与装备技术国家重点实验室,河北 石家庄 050081)
0 引言
近年来,随着商场、车站和展览馆等场所建筑规模的不断扩大,人们对室内位置服务的需求也越来越迫切。例如在监狱内定位犯人、在医院定位病人、在火灾现场定位消防战士或在仓库内定位重要物品等。全球卫星定位系统已经能提供精确、稳定的室外位置服务,但由于卫星信号无法穿透钢筋混凝土结构墙体,因此无法提供室内定位服务,由此研究人员开始寻求其他定位方法来实现室内的位置导航服务。目前室内定位技术主要包括红外、蓝牙、超声波、Wi-Fi和超宽带等,但是由于室内建筑格局各不相同,环境复杂多变,且存在多种不同类型的噪声干扰,因此现有的室内定位方法仍然存在精度较低、稳定性不高等问题,限制了室内位置服务的推广与应用[1]。基于视觉的定位方法具有定位精度高、能够提供丰富的场景信息且价格便宜、携带方便等优势,逐渐成为室内定位技术研究的热点[2]。基于视觉的定位技术作为一项基础技术,不仅可以应用于室内位置服务,还可以应用到其他领域,比如移动机器人导航、虚拟现实、航天器空间交互对接、无人机自主着陆和无人车自动驾驶等[3]。
本文提出了一种结合场景识别和透视n点投影问题的室内定位方法,其中场景识别利用卷积神经网络(CNN)实现,透视n点投影问题利用基于虚拟控制点的PnP方法求解[4],并通过实验对该方案进行验证。
1 基于深度学习的场景识别分类
早期的场景识别分类技术主要研究基于图像底层特征的分类方法。文献[5-9]中采用的方法主要包含2部分:提取图像特征,包括颜色、纹理和形状等;对分类器进行训练分类,常用的分类器有支持向量机、贝叶斯分类器和神经网络等。随着对场景分类技术研究的不断深入,研究人员发现基于低层特征的场景分类方法无法适应不同场景的分类任务。因此,场景分类研究的重点开始逐渐转向对图像特征进行建模处理的方法,该类方法利用模型来描述待分类的图像,使分类准确率得到进一步提高。学者们提出视觉词袋(Bag of Words,BoW)模型场景图像描述方法。词袋模型即通过视觉单词对图像进行描述,视觉单词是通过提取场景图像底层特征后聚类生成的,该方法在一定程度上提高了图像分类的泛化能力。
在2012年的比赛中,Alex Krizhevsky等提出AlexNet卷积神经网络模型,首次将深度学习应用于大规模图像分类,错误率为16.4%,相对于传统的分类方法,在分类准确率上有巨大的提高,并因此开始引起研究人员的广泛关注[10]。此后,基于深度卷积神经网络的模型逐渐成为图像分类领域研究的主要方法,一系列基于卷积神经网络的改进方法不断被提出,分类错误率也随之在不断下降[11]。
AlexNet是一个8层的卷积神经网络,前5层是卷积层,接下来的2层为全连接层,最后一层为输出层,采用softmax分类器进行分类[12]。该模型采用Rectified Linear Units(ReLU)来取代传统的Sigmoid和tanh函数作为神经元的非线性激活函数,并提出了Dropout方法来减轻过拟合问题。本文对AlexNet网络最后一层进行修改,根据分类场景的种类,将输出单元个数进行修改,网络结构如图1所示。
图1 AlexNet网络结构
采用正负样本的训练方式对AlexNet网络进行训练。正样本为属于该类别的2幅图像,负样本包括一幅属于该类的图像和一幅随机选取的不属于该类的图像,正负样本个数相同,训练过程如图2所示。
图2 AlexNet训练过程
训练过程包含2步: ① 自底向上的无监督学习。首先使用无标签训练样本对网络按照自下而上的顺序逐层训练,学习数据特征,并将上一层的输出作为下一层的输入,通过这种方式可以分别训练学习得到各层的参数。非监督学习类似于神经网络的随机初始化,但与神经网络不同之处是深度学习是通过学习输入数据的结构而得到各层参数,而不是随机初始化的。这样得到的初值更接近全局最优值,能有效地加快网络训练速度[13]。② 自顶向下的有监督学习。在完成第一阶段训练后,就要采用有标签的数据训练网络模型,误差自顶向下传输。通过有监督学习完成对网络模型参数的微调,获得整个网络多个层参数的最优值。
2 基于特征点的定位
2009年Lepetit和Moreno提出的高精度快速位姿估计算法EPnP(Efficient Perspective-n-Point),其核心思想是将空间参考点都通过4个虚拟控制点来表示,再通过空间参考点和对应投影点之间的关系求解虚拟控制点的摄像机坐标,然后求得所有空间点在相机坐标系下的坐标,最后用Horn绝对定位算法求得旋转矩阵和平移向量[14]。杨森和吴福朝提出了加权DLT算法和加权EPnP算法,虽然算法的时间复杂度略有增加,但位姿估计的精度进一步提高[15]。
(1)
(2)
f=fu=fv为相机的焦距;(u0,v0)=(0,0)为光心坐标。
首先在世界坐标系下选取4个非共面虚拟控制点,虚拟控制点及其投影点的关系如图3所示。
图3 虚拟控制点及其投影点对应关系
(3)
(4)
(5)
(6)
得到方程:
(7)
(8)
MZ=0,
(9)
式中,Z的解是矩阵M的核空间,即
(10)
式中,Wi为MTM对应零特征值的特征向量;N为MTM核空间的维数;βi为待定系数。对于透视投影模型,N的取值为1,得
Z=βW,
(11)
(12)
式(12)中求解得到的4个虚拟控制点图像坐标和标定过程中求得的相机焦距,带入绝对定位算法中即求出旋转矩阵和平移向量[16]。通过上述计算过程得到相机的旋转矩阵和平移向量初始值,构建所有对应特征点的误差函数,采用高斯—牛顿法或L-M法迭代寻找最优解,得到最终的旋转矩阵和平移向量[17]。本文采用的方法流程如图4所示。
图4 本文方法流程
3 实验及结果分析
实验分为室内场景识别和PnP定位2部分。实验平台为:Inter(R) Core(TM) i5-4460 CPU,主频:3.20 GHz,内存大小:8.00 GB;
3.1 室内场景识别分类实验
本部分实验场景分为2类:MIT_indoor室内场景数据集和自采集室内场景数据集。MIT_indoor测试图像库:该图像库由Lazebnik等人建立,共有15类场景图像,每类有200~400个灰度图像(含有少量的彩色图像),图像的平均尺寸大小为300×200像素。该数据库是广泛应用于场景分类算法测试。部分场景图片如图5所示,其中4行依次是卧室、厨房、客厅和办公室。
自采集场景图像数据集,实验场合:常规实验室,利用摄像头采集,图像大小为320×240,24位彩色。该数据集共包含15类室内场景,每类包含100幅图像,部分场景图片如图6所示。
图5 MIT_indoor测试集的部分图像
图6 自采集场景部分图像
对比实验方法包括:基于词袋模型、基于深度置信网络和基于卷积神经网络的方法。采用准确率作为指标评价分类算法性能优劣[18]。准确率是对分类结果的总体评价,等于被正确分类的场景个数与测试场景总数的比值,准确率越高说明算法的分类效果越好,设准确率为P,则计算公式为:
(13)
式中,Ni为分类正确的场景图像个数;N为场景图像总数。实验结果如表1所示。
表1实验结果
实验数据集BoWDBNCNNMIT_indoor测试集0.5560.5820.836自采集场景0.5590.9000.933
通过表1实验数据可知,基于CNN的场景分类方法,在Scene_15数据集和真实场景的分类准确率分别达到0.836和0.933,均高于基于词袋模型和基于DBN的分类方法。通过在2个数据集上的实验验证,卷积神经网络可以更加有效地提取场景特征,训练出的网络模型具有较强的泛化能力和较高的分类准确率。通过对错误分类的图像的分析,发现场景中包含窗户的图像容易被错误分类,如图6中第3行中的图像,导致分类错误的原因主要是因为光照强度变化范围较广,相机无法有效采集窗外信息,可用于识别分类的信息量太少。
3.2 PnP定位实验
实验场合:常规实验室,房间大小6.6 m×5.9 m,如图7所示。实验相机:罗技C270网络摄像头,提前标定好。测量工具:卷尺。手持摄像头在实验室内行走,在共记25个位置采集周围环境图像,图像像素为320×240,其中图像包含的空间参考点的世界坐标已知。
图7 实验室环境地图
(14)
式中,Et为平移向量误差占真实平移距离的百分比[19]。
真实轨迹和各方法估计移动轨迹如图8和图9所示。由图9实验数据可得,RPnP平均定位定位误差为0.33 m,EPnP平均定位误差为0.19 m,本文算法平均定位误差为0.10 m,最大误差为0.3 m,且定位误差变化幅度小,稳定性高。
图8 各位置估计误差
图9 各位置估计误差
4 结束语
首先利用卷积神经网络对场景进行识别,然后根据对应特征点计算位置的技术应用于室内定位领域,且具有定位精度高、成本低和携带便捷等优势[20]。实验结果表明,本文提出的方法平均定位精度达到分米级,且抗噪声能力强、鲁棒性好,基本满足室内定位需求。不足之处为在真实环境实验中采用的场景规模较小,环境复杂度不高,下一步应针对规模更大、内容更加复杂的场景进行实验,并对方法进行改进。