刘振耀,李瑞东,潘军道
(中国科学院空天信息研究院,北京100094)
导航定位是基于位置服务研究的热点,当前室外GNSS定位已经足以提供成熟的定位服务,但室内定位技术仍处于起步阶段,尚没有一种技术占据绝对的优势[1]。根据应用需求的不同,室内定位技术分为消费级和工业级两种[2]。消费级的定位精度要求在1~3 m,要求与移动智能终端兼容;工业级的定位精度要求在厘米到分米级,一般不考虑与现有的智能终端兼容。室内定位技术种类众多,主要包括基于无线信号的定位、惯性导航和基于视觉的定位等。基于无线信号的定位包括UWB定位、RFID定位、伪卫星定位、地磁定位、WiFi指纹等[3]。基于无线信号的定位方式容易受到复杂室内环境的干扰和非视距误差的影响等,稳定性能差,而且往往需要架设基站或建立指纹数据库,限制了应用场景。惯性导航[4]通过内置传感器可以实现自主导航,但限制了移动终端的行动,且低成本的MEMS用于独立的导航漂移误差太大,一般不用于单独的移动终端的定位导航。
基于视觉的定位方法定位精度高,能够提供丰富的场景信息,避免了无线信号受非视距误差的影响,且能够与移动智能终端更好地兼容,成为众多室内定位方式中消费级应用较为新颖的模式之一。深度学习算法是当前计算机视觉领域主流的目标检测算法,它依赖多层神经网络学习图像的层次化特征表示,与传统检测方法相比,可以实现更高的准确率[5]。传统的基于目标检测的室内定位是将目标的位置信息作为拍摄者的位置,本质上属于邻近定位的一种,存在较大的位置误差。因此本文提出一种基于目标检测和PnP(perspective-n-point)相结合的移动终端室内定位方法,通过Mask-RCNN网络实现目标检测,然后采用PnP算法求取相机准确的位姿信息,最后给出基于以上原理的定位系统设计和实现方案。
目标检测是计算机视觉中常见的问题之一,近年来随着人工智能和深度学习的兴起,基于深度学习的目标检测方法在识别准确率、速度、性能等方面都有了极大的改善[6],而这些突破性进展背后的主要技术支持正是深度学习中的卷积神经网络。卷积神经网络,主要包括输入层、卷积层、池化层、全连接层和Softmax层5个部分[7]。一些经典的卷积神经网络架构可以用公式表示为
输入层→(卷积层+→池化层?)+→全连接层+
式中,“卷积层+”表示一层或多层卷积层;“池化层?”表示没有或有一层池化层。卷积层和池化层的组合也可以是一个或多个,在多轮卷积层和池化层之后,卷积神经网络可以跟随一层或多层全连接层,最后通过Softmax层输出目标识别结果概率分布。
在CVPR 2014年中文献[8]提出了R-CNN,使用了卷积神经网络进行特征提取,并使用边框回归进行目标包围框的修正。R-CNN颠覆了以往的目标检测方案,精度大大提升;但训练烦琐,对时间和内存的消耗很大。
文献[9]于2015年提出Fast R-CNN,对R-CNN进行了改进,取代R-CNN的串行特征提取方式,直接采用一个神经网络对全图提取特征,除了选择性搜索(selective search),其他部分都可以合在一起训练,但耗时的selective search依旧存在。
Faster R-CNN[10]继承于Fast R-CNN,通过引入区域建议网络Region Proposal Network(RPN)取代selective search,提高了区域提取的精度及网络训练速度,是当时应用较广的检测框架。
Mask-RCNN[11]是基于Faster-RCNN架构扩展出的卷积网络,该网络结构较容易实现和训练,可以很方便地应用于目标检测和分割中,彰显了机器学习计算机视觉领域在2017年的最新成果。Mask-RCNN不仅保留了Faster-RCNN从端到端的网络结构优势,而且在每个兴趣点ROI上加一个用于预测分割掩码的分层,称为掩码层(mask branch),并改良了ROI Pooling,提出了ROI Align,使该层并行于已有边界层和分类层,提高了检测精度[12-13]。Mask-RCNN训练简单,只需要在Faster-RCNN的基础上增加一个较小的开销,运行速度可达5FPS,网络框架结构如图1所示。
PnP求解算法是指通过多对3D与2D匹配点,在已知或未知相机内参的情况下求解相机外参的算法。PnP问题有很多求解的方法,如P3P、直接线性变换(DTL)、EPnP、UPnP等, 以及构建最小二乘问题并迭代求解[5]。EPnP需要4对不共面的3D与2D匹配点,是目前较好的PnP求解方法。本文采用EPnP[14]算法进行试验。
参考点与控制点在世界坐标系下的关系为
(1)
式中,αij为齐次重心坐标。由线性关系在欧氏变化下的不变形可得
(2)
设K为相机的内参矩阵,可以通过标定获得。设{μi}i=1,2,…,n为参考点{pi}i=1,2,…,n的像素坐标,则
(3)
(4)
因此可得
(5)
(6)
MX=0
(7)
式中,X的解为矩阵M的核空间,即
(8)
式中,Vi为MTM对应零特征值的特征向量;N为MTM核空间的维数;βi为待定系数。对于透视投影模型,N=1,求得其零空间特征向量,可以得到虚拟控制点的相机平面坐标
X=βV
(9)
(10)
其中控制点之间的距离关系可表示为
(11)
(12)
求解得到4个虚拟控制点在相机参考坐标下的坐标,计算3D参考点在相机参考坐标系下的坐标,然后使用迭代最近点(iterative closest point,ICP)算法即可求出相机位姿。
本文提出的室内定位方法分为前期目标数据库的构建和后期目标检测及终端定位两个阶段。前期通过采集含有各种目标的视频或图像信息得到满足要求的神经网络参数模型,同时采集含有目标图像的RGBD信息,用于后期的PnP算法。后期借助前期得到的参数模型对待定位图像进行目标检测,如果确认图像含有某个目标信息,则通过调用该目标的RGBD信息,利用PnP算法得到待求图像的准确的位姿信息,如图2所示。
前期目标数据库的构建阶段主要包括以下几个步骤:
(1) 建立统一的室内坐标系统,测量得出目标的位置及深度相机拍摄点位置。
(2) 利用已知位姿的深度相机采集含有目标图像的RGBD信息并保存,用于后期的PnP的算法;深度相机位置信息通过步骤(1)得出,姿态信息可以通过惯导模块求解。
(3) 采集场景中可识别目标的图像信息。
(4) 用深度学习框架对采集得到的图像信息进行训练并得到满足要求的参数模型。
后期目标检测及终端定位阶段主要包括以下几个步骤:
(1) 输入待定位的图像。
(2) 用深度学习框架借助之前得到的参数模型对输入的图像进行目标检测,得到检测结果。
(3) 如果含有目标信息,则通过调用该目标的RGBD信息,利用PnP算法得到待求图像的准确的位姿信息;如包含多个目标,则取各目标计算出的位置均值为终端的位置。
(4) 将图像的位置信息在底图上渲染后返回或根据起点/终点信息进行路径规划,并将路径规划结果在底图上渲染后返回。
本目标检测试验的数据集利用自采的新技术基地图片。数据集共有4类目标,训练图片1095张,测试图像50张;训练使用的GPU型号为Nvidia 1080Ti,显存11 GB,训练160轮次。目标检测结果如图3所示。
准确率是对目标检测结果的总体评价,等于被正确检测的目标个数与测试图像总数的比值,准确率越高说明算法检测效果越好。设准确率为P,则计算公式为
(13)
式中,Ni为目标检测正确的图像个数;N为图像总数。
结果分析:测试图像50张共包含测试样本数62个,准确识别出的测试样本数为61个,检测准确率为98.3%。
基于以上原理在安卓和IOS开发了源起导航APP,目前主要基于新技术基地综合楼进行室内定位,功能和场景较为单一,后续需要在此基础上进行完善,同时研究如何减少数据采集的工作量。如图4所示。
4.2.1 数据1
数据1为基于TUM rgbd_dataset_freiburg1_xyz数据集图片数据。TUM是机器视觉和SLAM经典的数据集,自带ground-truth轨迹,可以进行误差比对。本文试验截取4张含有相同目标(电脑)照片的RGBD信息,以及其已知真实位姿。在该方法中,姿态信息可以求出,但对基于移动终端的室内定位来说,姿态并不是重要的信息。本文试验重点关注位置信息,姿态信息的相关数据及比对不包含在试验内。如图5所示。
真实的位置信息及以第1张为基准的位置差见表1。
表1 真实的位置信息及以第1张为基准的位置差
以各单张图片的位姿作为转化参数,通过PnP算法计算出其他各张图片在世界坐标系下的位置及位置误差的结果,见表2—表5。
表2 以1.png位姿为转化参数的PnP算法结算结果
表3 以2.png位姿为转化参数的PnP算法结算结果
表4 以3.png位姿为转化参数的PnP算法结算结果
表5 以4.png位姿为转化参数的PnP算法结算结果
结果分析:将测量值与真实值在3个轴方向进行比较可知,X轴最大误差为0.30 m,Y轴最大误差为0.05 m,Z轴最大误差为0.02 m内,满足移动终端室内定位的需求。
4.2.2 数据2
数据2为真实场景试验。在中科院新技术基地综合楼四楼实验室采集了一组数据进行真实场景试验,采用的设备为Kinect2深度相机,基于SDK编写同时采集配准的彩色图和深度图信息。
采集的试验数据如图6所示。R_1.png、R_2.png和R_3.png采集电脑周围局部的RGBD信息。为简化试验,以拍摄R_1.png时相机坐标系作为世界坐标系。结果见表6、表7。
相片xyzR_1.png000R_2.png-0.50-0.65R_3.png00-0.65
表7 PnP算法结算出的结果
由表可知,通过PnP算法求解出的位置与真实位置单轴最大差值在0.35 m以内,综合考虑试验过程中基准位置误差、深度信息采集误差等,对于手持式移动终端来说,该结果满足室内定位1~3 m的要求。
本文提出了一种基于目标检测和PnP相结合的移动终端室内定位方法,对于消费级的移动终端是一种简单有效的室内定位手段。但本文试验较为简单,PnP解算中相片采用同一个设备,且Kinect相机经过严格的标定。后续将针对智能终端设备进行试验,同时考虑将该方案在终端APP中进行实现。