一种移动端视觉融合定位方法、***及电子设备
技术领域
本申请属于人工智能与地理信息技术的交叉技术领域,特别涉及一种移动端视觉融合定位方法、***及电子设备。
背景技术
全球卫星导航***(Global Navigation Satellite System,GNSS)可以实现在室外实现导航与定位,目前以GNSS、蜂窝网络、WIFI等为代表的无线电定位技术在空旷的室外定位已经可以完成亚米级的精准定位,其原理是依靠检测传播信号的特征参数来实现定位,常用方法包括邻近探测法、基于观测到达时间差(observed time difference ofarrival,OTDOA)等。
室内定位技术主要实现人员、物体的在各种室内空间中的定位与跟踪,基于室内定位对人员、物体的安全与监测需求也越来越大,人们在室内环境中的位置服务需求已经日趋显著,国内外学者进行了大量探索与研究。目前室内定位***大都基于临近探测、三角、多边定位、指纹定位法来实现,或者为了提高精度采取组合定位的方法。但是由于多路径效应影响,室内环境易变、复杂,尚未有一种普适的解决方案,如何提升精度、实时性、安全性,提高可扩展能力,低成本、便捷性、专业化是当前研究热点。
目前,室内无线电定位技术(如WIFI、蓝牙等)大都采用接收信号强度指示(Received Signal Strength Indication,RSSI)作为定位算法的依据,通过利用信号衰减和距离变化关系来实现定位。WIFI室内定位技术一般包括:基于接收信号强度指示RSSI距离交会的定位方法和基于RSSI位置指纹法,信号的匹配是其研究的主要部分,定位精度在于校准点密度。该技术具有便于扩展、可自动更新数据、成本低的优势,因此最先实现了规模化应用。
蓝牙定位基于短距离低功耗通讯协议,实现的方法可以是质心定位法、指纹定位和邻近探测法;蓝牙定位有功耗低、近距离、运用广泛等优点,但同时稳定性差、受环境干扰大。苹果公司开发的基于低耗能蓝牙的精确的微定位技术iBeacon工作原理类似之前的蓝牙技术,由Beacon发射信号,蓝牙设备定位接受、反馈信号,当用户进入、退出或者在区域内徘徊时,Beacon的广播有能力进行传播,可计算用户和Beacon的距离(可通过RSSI计算)。由此可知,只要有三个iBeacon设备即可定位。
上述这些室内定位技术均是基于无线射频信号开展,无线电信号很容易受室内环境如障碍物的影响,环境变化造成定位精度下降,同时,前期需要施工作业、布设大量设备、费用及维护成本较高。
视觉传感器定位技术,通过三角测量技术从而获取当前相对位置从而实现定位,相对于其他传感器定位方法,视觉传感器的定位精度较高,且成本低廉。EasyLiving***是基于计算机视觉的定位***,采用高性能的照移动终端,准确性比较高;但当室内环境复杂时,很难一直保持高精度。通过移动机器人同步定位和制图(Simultaneous Location AndMapping,SLAM)的原理,可以引入视觉传感器。2012年提出的EV-Loc室内定位***是一个以视觉信号作为辅助定位来提高精度的定位***。基于视觉定位原理的谷歌视觉定位服务(Visual Positioning Service,VPS)技术,其理论精度可达厘米级别。
然而,现有的视觉定位***,如EasyLiving、谷歌VPS等,大都基于SLAM原理通过提取视觉传感器捕捉的特征点,通过三角测距法,结合加速度、陀螺仪等传感器来算出当前位置移动偏移,只是相对定位。要想实现室内准确地理定位,需要事先在固定点部署大量人工标志,前期准备工作繁琐。与此同时,现有的这些视觉定位技术仅仅只考虑传感器感知到的数据,并没有对这些数据携带的语义信息加以利用。
发明内容
本申请提供了一种移动端视觉融合定位方法、***及电子设备,旨在至少在一定程度上解决现有技术中的上述技术问题之一。
为了解决上述问题,本申请提供了如下技术方案:
一种移动端视觉融合定位方法,包括以下步骤:
步骤a:基于标定的起始位置和传感器信息,获取移动终端的初始位置,并将初始位置设置为定位目标的当前位置;
步骤b:使用移动终端获取视频帧;
步骤c:检测所述视频帧中的静态物体,通过BIM空间数据库获取所述静态物体的坐标信息,将所述静态物体的坐标信息带入多目标物体定位模型,通过高斯牛顿法迭代求解所述定位模型,获取移动终端当前位置,并将所述移动终端当前位置与静态物体的坐标信息相结合,得到定位目标的定位结果。
本申请实施例采取的技术方案还包括:在所述步骤b中,所述使用移动终端获取视频帧后还包括:视觉里程计根据获取的视频帧计算移动终端当前的位姿信息。
本申请实施例采取的技术方案还包括:所述视觉里程计根据获取的视频帧计算移动终端当前的位姿信息具体包括:
步骤b1:视觉里程计将获取的视频帧缩放至设定大小后,存入图像滑动窗口,并判断当前视频帧是否为第一帧,如果当前视频帧为第一帧则仅进行提取关键点操作;否则,提取关键点并计算当前关键点与前一视频帧关键点的残差;单个关键点残差e是关键点像素亮度的误差,计算公式为:
e=I1(x1)-I2(x2)=I1(Kp1)-I2(K(Rp1+t))
上述公式中,I2为I1经过某种运动得到,R和t是移动终端运动轨迹,x1是关键点在图像I1中的像素位置,x2是关键点在图像I2中的像素位置,p1是关键点在现实空间中的坐标,K是移动终端的内参矩阵;
步骤b2:利用高斯牛顿法求解残差雅可比,得到当前视频帧与上一视频帧的运动位姿,并将其记录至位姿存储滑动窗口;
步骤b3:得到当前视频帧的移动终端位姿,提取所述位姿的空间偏移量,并将空间偏移量转换成相对坐标偏移值,即为移动终端的运动偏移。
本申请实施例采取的技术方案还包括:所述步骤b还包括:判断监听定位状态,如果不是在定位状态,则将所述移动终端当前的位姿信息与上一次获取的当前位置相加后,对定位目标的当前位置进行更新;如果是在定位状态,执行步骤c。
本申请实施例采取的技术方案还包括:在所述步骤c中,所述检测视频帧中的静态物体,通过BIM空间数据库获取所述静态物体的坐标信息,将所述静态物体的坐标信息带入多目标物体定位模型,通过高斯牛顿法迭代求解所述定位模型,获取移动终端当前位置具体包括:
步骤c1:取出所述视频帧,输入至目标检测神经网络中,得到该视频帧中所包含的静态物体种类,并将所述静态物体的中心像素位置设置为标定点,然后取出下一视频帧以及所述下一视频帧的移动终端位姿信息,利用三角测量法算出标定点与移动终端的深度信息;其中,所述三角测量法公式如下:
上述公式中,s1,s2是关键点的深度信息;
步骤c2:通过识别的静态物体类别,以当前位置的坐标信息加载BIM空间信息数据库,根据所述BIM空间信息数据库得到所述静态物体的坐标信息;
步骤c3:将所述静态物体的坐标信息带入定位模型中,并采用高斯牛顿法迭代求解,得到移动终端当前位置;高斯牛顿法求解方程组为:
上述公式中,(x,y,z)是移动终端的当前位置,(xn,yn,zn)是BIM坐标信息,ρn是静态物体到移动终端的深度,σn是深度的测量噪声;
步骤c4:将所述移动终端当前位置与静态物体坐标信息相结合,得到当前位置的定位结果。
本申请实施例采取的另一技术方案为:一种移动端视觉融合定位***,包括:
初始定位单元:基于标定的起始位置和传感器信息,获取移动终端的初始位置,并将初始位置设置为定位目标的当前位置;
视频帧获取模块:用于使用移动终端获取视频帧;
目标定位模块:用于检测所述视频帧中的静态物体,通过BIM空间数据库获取所述静态物体的坐标信息,将所述静态物体的坐标信息带入多目标物体定位模型,通过高斯牛顿法迭代求解所述定位模型,获取移动终端新的当前位置,并将所述移动终端新的当前位置与静态物体的坐标信息相结合,得到定位目标的定位结果。
本申请实施例采取的技术方案还包括位姿计算模块,所述位姿计算模块用于通过视觉里程计根据获取的视频帧计算移动终端当前的位姿信息。
本申请实施例采取的技术方案还包括:所述位姿计算模块包括:
关键点提取单元:用于通过视觉里程计将获取的视频帧缩放至设定大小后,存入图像滑动窗口,并判断当前视频帧是否为第一帧,如果当前视频帧为第一帧则仅进行提取关键点操作;否则,提取关键点并计算当前关键点与前一视频帧关键点的残差;单个关键点残差e是关键点像素亮度的误差,计算公式为:
e=I1(x1)-I2(x2)=I1(Kp1)-I2(K(Rp1+t))
上述公式中,I2为I1经过某种运动得到,R和t是移动终端运动轨迹,x1是关键点在图像I1中的像素位置,x2是关键点在图像I2中的像素位置,p1是关键点在现实空间中的坐标,K是移动终端的内参矩阵;
运动位姿求解单元:用于利用高斯牛顿法求解残差雅可比,得到当前视频帧与上一视频帧的运动位姿,并将其记录至位姿存储滑动窗口;
运动偏移计算单元:用于得到当前视频帧的移动终端位姿,提取所述位姿的空间偏移量,并将空间偏移量转换成相对坐标偏移值,即为移动终端的运动偏移。
本申请实施例采取的技术方案还包括定位判断模块和位置更新模块,所述定位判断模块用于通过判断监听定位状态,如果不是在定位状态,则通过位置更新模块将所述移动终端当前的位姿信息与上一次获取的当前位置相加后,对定位目标的当前位置进行更新;如果是在定位状态,通过目标定位模块获取定位目标的定位结果。
本申请实施例采取的技术方案还包括:所述目标定位模块具体包括:
物体识别及深度计算单元:用于取出所述视频帧,输入至目标检测神经网络中,得到该视频帧中所包含的静态物体种类,并将所述静态物体的中心像素位置设置为标定点,然后取出下一视频帧以及所述下一视频帧的移动终端位姿信息,利用三角测量法算出标定点与移动终端的深度信息;其中,所述三角测量法公式如下:
上述公式中,s1,s2是关键点的深度信息;
粗定位单元:用于通过识别的静态物体类别,以当前位置的坐标信息加载BIM空间信息数据库,根据所述BIM空间信息数据库得到所述静态物体的坐标信息;
精定位单元:用于将所述静态物体的坐标信息带入定位模型中,并采用高斯牛顿法迭代求解,得到移动终端当前位置;高斯牛顿法求解方程组为:
上述公式中,(x,y,z)是移动终端的当前位置,(xn,yn,zn)是BIM空间数据库中存储的静态物体坐标信息,ρn是静态物体到移动终端的深度,σn是深度的测量噪声;
定位结果生成单元:用于将所述移动终端当前位置与静态物体坐标信息相结合,获取定位结果。
本申请实施例采取的又一技术方案为:一种电子设备,包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的移动端视觉融合定位方法的以下操作:
步骤a:基于标定的起始位置和传感器信息,获取移动终端的初始位置,并将初始位置设置为定位目标的当前位置;
步骤b:使用移动终端获取视频帧;
步骤c:检测所述视频帧中的静态物体,通过BIM空间数据库获取所述静态物体的坐标信息,将所述静态物体的坐标信息带入多目标物体定位模型,通过高斯牛顿法迭代求解所述定位模型,获取移动终端当前位置,并将所述移动终端当前位置与静态物体的坐标信息相结合,得到定位目标的定位结果。
相对于现有技术,本申请实施例产生的有益效果在于:本申请实施例的移动端视觉融合定位方法、***及电子设备利用视觉传感器检测并识别真实世界的静态物体得到物体空间关系,并与BIM模型提供的物体空间关系进行地理拓扑空间匹配,再根据物体的距离测量建立非线性方程组,迭代求解方程组,收敛得到精确位置,从而实现更精准更便捷更低廉的定位方法。
附图说明
图1是本申请实施例的移动端视觉融合定位方法的流程图;
图2是目标检测神经网络结构示意图;
图3为关键点选取示意图;
图4是本申请实施例的移动端视觉融合定位***的结构示意图;
图5是本申请实施例提供的移动端视觉融合定位方法的硬件设备结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
请参阅图1,是本申请实施例的移动端视觉融合定位方法的流程图。本申请实施例的移动端视觉融合定位方法包括以下步骤:
步骤100:***初始化;
步骤100中,***初始化包括以下步骤:
步骤110:视觉里程计的初始化;
步骤110中,视觉里程计的初始化包括:位姿管理器的内存分配、变量的赋初值等操作;位姿管理器包括一个位姿存储的滑动窗口、图像滑动窗口、关键点等主要数据结构,位姿存储的滑动窗口用于存储计算得出的位姿信息;图像滑动窗口用于缓存移动终端的拍摄信息,等待关键点的提取以及标定点深度的估计;关键点用于标识一帧图像中某一区域的像素梯度变化情况,用于后续图像的相似度比较;除此主要数据结构以外,位姿管理器还包括关键点提取函数、关键点相似度估计函数、关键点更新函数、关键点丢弃函数、关键点索引函数、关键点深度估计函数、帧位姿估计函数以及位姿的增、删、查函数等数据。
步骤120:语义定位校准的初始化;
步骤120中:语义定位校准的初始化包括目标检测神经网络的训练、模型的加载,以及BIM空间数据库的生成及加载。其中,目标检测神经网络结构如图2所示,本申请所述目标检测神经网络结构是参考现有目标检测方法,网络结构并未做出更改,仅在训练网络时采用专有静态物体数据集训练并经优化后,部署至移动终端。BIM空间数据库采用R树方法构建、索引,其中BIM空间数据结构包含当前位置所在区域的电子地图和该区域包含的静态物体类别、静态物体坐标信息、静态物体临近的其他静态物体以及当前位置所在建筑的每层建筑空间布局信息。
步骤130:基于标定的起始位置和传感器信息,获取移动终端的初始位置,并将初始位置设置为定位目标的当前位置;
步骤130中,本申请实施例的移动终端为配备Android的终端设备,带有9轴IMU传感器。初始定位可通过室内平面地图设定起始点位置,或通过自动识别唯一标志设定,然后基于加速度、陀螺仪等传感器累计。
步骤200:使用移动终端获取视频帧;
步骤300:视觉里程计根据获取的视频帧计算移动终端当前的位姿信息;
步骤300中,位姿是运动矩阵,包含移动终端旋转、平移等信息。视觉里程计通过利用关键点的像素残差,来估计移动终端相邻两帧的位姿变化,进而求得移动终端的运动偏移。具体的,视觉里程计位姿计算具体包括:
步骤310:视觉里程计将获取的视频帧缩放至300px*300px(具体可根据实际应用进行设定)后,存入图像滑动窗口,并判断当前视频帧是否为第一帧,如果当前视频帧为第一帧则仅提取关键点,否则,提取关键点并计算该关键点与前一视频帧关键点的残差;
步骤310中,关键点计算步骤如下:首先在视频帧上选取像素p,并取像素P灰度值G的30%为阈值T。然后,以像素p为中心,选取半径为3的圆上的16个像素点,如果选取的圆上连续有N个点亮度大于G+T或者小于G-T时,则该像素p可被认为是视频帧的关键点。重复上述步骤,直到遍历完视频帧上的所有像素,完成关键点计算;最后,采用非极大值抑制,在50px*50px内,仅保留响应极大值的关键点。如图3所示,为关键点选取示意图。例如:点p半径为3的十六个像素值下表灰色部分,灰色部分就是选取的N个点,计算这N个点与P的大小,按照上面规则确定是否是关键点。P是一个0到255的值。单个关键点残差e是关键点像素亮度的误差,计算公式如下:
e=I1(x1)-I2(x2)=I1(Kp1)-I2(K(Rp1+t)) (1)
公式(1)中,I2为I1经过某种运动得到,R和t是移动终端运动轨迹,x1是关键点在图像I1中的像素位置,x2是关键点在图像I2中的像素位置,p1是关键点在现实空间中的坐标,K是移动终端的内参矩阵。残差的李代数形式为:
e=I1(Kp1)-I2(K(exp(ξ^)p1)) (2)
公式(2)中,
步骤320:利用高斯牛顿法求解残差雅可比,得到当前视频帧与上一视频帧的运动位姿,并将其记录至位姿存储滑动窗口;
步骤320中,利用高斯牛顿法求解残差雅可比具体包括:
移动终端位姿优化目标函数:
公式(3)中,ξ是移动终端位姿,J是残差相对于李代数的梯度;即
高斯牛顿迭代增量求解方程为:
公式(4)中,Δξ*是迭代增量。
高斯牛顿法求解最优化问题,通过目标函数的一阶梯度,沿着该梯度下降迭代求解。
目标函数为:(xi-x)2+(yi-y)2+(zi-z)2=f(X)其中X=[x,y,z]
迭代增量ΔXk为:J(X)TJ(X)ΔX=-J(X)Tf(X)
其中J(X)是方程的雅可比矩阵;
公式(5)中,
高斯牛顿法求解流程如下:
步骤321:给定初始点p0,以及迭代次数k,允许误差ε>0。当迭代次数和误差不满足条件时,则执行步骤330;
步骤322:若目标函数f((X)k+1)-f((X)k)小于阈值ε则退出,否则执行步骤323;
步骤323:算出迭代增量,带入目标函数,返回步骤321。
步骤330:得到当前视频帧的移动终端位姿,该位姿是一个六自由度的行向量,提取位姿的空间偏移量,并把空间偏移量转换成相对坐标偏移值,即为移动终端的运动偏移。
步骤400:通过判断定位监听状态,如果不是在定位状态,则执行步骤500;否则,执行步骤600;
步骤400中,定位监听是回调类型的,可能在初始化完成之后的任意时间执行。本申请在获取视频帧后即开始视觉里程计位姿计算,如果不是定位状态,将计算得到的位姿信息与上一次获取到的当前位置相加,得到本次当前位置的更新结果。该步骤一直反复执行,并不会因定位状态改变而停止。当定位监听装为定位状态时,则调用语义定位校准,根据识别的物体计算当前位置,替换视觉里程计所计算的运动偏移,并结合BIM空间数据库中的静态物体坐标更新用户的当前位置,然后将该位置作为最终位置。
步骤500:将当前位姿信息与上一次获取的当前位置相加后,对定位目标的当前位置进行更新;
步骤600:调用语义定位校准检测视频帧中的静态物体,并利用标定点采用三角测量方法(三角测量是指通过在两处观察同一个点的夹角,从而确定该点的距离)估计静态物体的深度信息,通过静态物体的深度信息以及空间数据的语义信息提出多目标物体定位模型,通过高斯牛顿法迭代求解定位模型,获取静态物体坐标信息及移动终端当前位置,将静态物体坐标信息与移动终端当前位置相结合,得到定位目标的定位结果;
步骤600中,语义定位校准的定位方式具体包括以下步骤:
步骤610:取出图像滑动窗口中的视频帧,输入至目标检测神经网络中,得到该视频帧中所包含的静态物体种类,并将识别出的静态物体的中心像素位置设置为标定点,然后取出下一视频帧以及下一视频帧的移动终端位姿信息,利用三角测量法,算出标定点与移动终端的深度信息;
步骤610中,三角测量法公式如下:
公式(6)中,s1,s2是关键点的深度信息。
步骤620:通过粗定位得到视频帧中静态物体的坐标信息;粗定位的位置数据来自于BIM空间数据库中存储的静态物体的坐标信息,通过识别的物体类别,以当前位置的坐标信息范围附近检索所加载的BIM空间信息数据库,找出识别的物体类别所携带的坐标信息。
步骤630:精定位;为了进一步优化定位精度,将粗定位得到的坐标信息带入定位模型中,并采用高斯牛顿法迭代求解,得到移动终端当前位置。
步骤630中,静态物体与移动终端的位置应满足以下关系:
(xi-x)2+(yi-y)2+(zi-z)2=δρi+σi (7)
因此可建立并解算如下非线性方程组:
公式(8)中,(x,y,z)是移动终端当前的位置,(xn,yn,zn)是BIM空间数据库中存储的静态物体坐标信息,表征静态物体距离固定坐标(比如建筑物中心的坐标信息)的相对位置,ρn是当前静态物体到移动终端的深度,σn是深度的测量噪声。
步骤640:将精定位迭代计算出的移动终端当前位置(该位置为相对于建筑物特定目标坐标的偏移)与粗定位得到的静态物体坐标信息相结合,得到当前位置的定位结果,并生成定位结果的室内电子地图及BIM空间数据库;
步骤640中,根据定位坐标获取所在区域的电子地图,叠加BIM信息,生产当前定位结果的临近室内电子地图。
请参阅图4,是本申请实施例的移动端视觉融合定位***的结构示意图。本申请实施例的移动端视觉融合定位***包括初始化模块、视频帧获取模块、位姿计算模块、定位判断模块、位置更新模块和目标定位模块。
初始化模块:用于***初始化;具体地,初始化模块包括:
视觉里程计初始化单元:用于视觉里程计的初始化;包括:位姿管理器的内存分配、变量的赋初值等操作;位姿管理器包括一个位姿存储的滑动窗口、图像滑动窗口、关键点等主要数据结构,位姿存储的滑动窗口用于存储计算得出的位姿信息;图像滑动窗口用于缓存移动终端的拍摄信息,等待关键点的提取以及标定点深度的估计;关键点用于标识一帧图像中某一区域的像素梯度变化情况,用于后续图像的相似度比较;除此主要数据结构以外,位姿管理器还包括关键点提取函数、关键点相似度估计函数、关键点更新函数、关键点丢弃函数、关键点索引函数、关键点深度估计函数、帧位姿估计函数以及位姿的增、删、查函数等数据。
语义定位校准初始化单元:用于语义定位校准的初始化;包括目标检测神经网络的训练、模型的加载,以及BIM空间数据库的生成及加载。本申请所述目标检测神经网络结构是参考现有目标检测方法,在训练网络时采用专有静态物体数据集训练并经优化后,部署至移动终端。BIM空间数据库采用R树方法构建、索引,其中BIM空间数据结构包含当前位置所在区域的电子地图和该区域包含的静态物体类别、静态物体坐标信息、静态物体临近的其他静态物体以及当前位置所在建筑的每层建筑空间布局信息。
初始定位单元:用于获取移动终端的初始位置,并将初始位置设置为当前位置;其中,本申请实施例的移动终端为配备Android的终端设备,带有9轴IMU传感器。初始定位可通过室内平面地图设定起始点位置,或通过自动识别唯一标志设定,然后基于加速度、陀螺仪等传感器累计。
视频帧获取模块:用于使用移动终端获取视频帧;
位姿计算模块:用于通过视觉里程计根据获取的视频帧计算移动终端当前的位姿信息;其中,位姿是运动矩阵,包含移动终端旋转、平移等信息。视觉里程计通过利用关键点的像素残差,来估计移动终端相邻两帧的位姿变化,进而求得移动终端的运动偏移。具体的,位姿计算模块包括:
关键点提取单元:用于将获取的视频帧缩放至300px*300px后,存入图像滑动窗口,并判断当前视频帧是否为第一帧,如果当前视频帧为第一帧则仅提取关键点,否则,提取关键点并计算该关键点与前一视频帧关键点的残差;其中,关键点计算步骤如下:首先在视频帧上选取像素p,并取像素P灰度值G的30%为阈值T。然后,以像素p为中心,选取半径为3的圆上的16个像素点,如果选取的圆上连续有N个点亮度大于G+T或者小于G-T时,则该像素p可被认为是视频帧的关键点。重复上述步骤,直到遍历完视频帧上的所有像素,完成关键点计算;最后,采用非极大值抑制,在50px*50px内,仅保留响应极大值的关键点。如图3所示,为关键点选取示意图。例如:点p半径为3的十六个像素值下表灰色部分,灰色部分就是选取的N个点,计算这N个点与P的大小,按照上面规则确定是否是关键点。P是一个0到255的值。单个关键点残差e是关键点像素亮度的误差,计算公式如下:
e=I1(x1)-I2(x2)=I1(Kp1)-I2(K(Rp1+t)) (1)
公式(1)中,I2为I1经过某种运动得到,R和t是移动终端运动轨迹,x1是关键点在图像I1中的像素位置,x2是关键点在图像I2中的像素位置,p1是关键点在现实空间中的坐标,K是移动终端的内参矩阵。残差的李代数形式为:
e=I1(Kp1)-I2(K(exp(ξ^)p1)) (2)
公式(2)中,
运动位姿求解单元:用于利用高斯牛顿法求解残差雅可比,得到当前视频帧与上一视频帧的运动位姿,并将其记录至位姿存储滑动窗口;其中,利用高斯牛顿法求解残差雅可比具体包括:
移动终端位姿优化目标函数:
公式(3)中,ξ是移动终端位姿,J是残差相对于李代数的梯度;即
高斯牛顿迭代增量求解方程为:
公式(4)中,Δξ*是迭代增量。
高斯牛顿法求解最优化问题,通过目标函数的一阶梯度,沿着该梯度下降迭代求解。
目标函数为:(xi-x)2+(yi-y)2+(zi-z)2=f(X)其中X=[x,y,z]
迭代增量ΔXk为:J(X)TJ(X)ΔX=-J(X)Tf(X)
其中J(X)是方程的雅可比矩阵;
公式(5)中,
高斯牛顿法求解流程如下:
1:给定初始点p0,以及迭代次数k,允许误差ε>0。
2:若目标函数f((X)k+1)-f((X)k)小于阈值ε则退出,否则执行下一步;
3:算出迭代增量,带入目标函数,返回步骤1。
运动偏移计算单元:用于得到当前视频帧的移动终端位姿,该位姿是一个六自由度的行向量,提取位姿的空间偏移量,并把空间偏移量转换成相对坐标偏移值,即为移动终端的运动偏移。
定位判断模块:判断定位监听终端,如果不是定位状态下,通过位置更新模块更新定位目标的当前位置;否则,通过目标定位模块获取定位目标的定位结果;其中,本申请在获取视频帧后即开始视觉里程计位姿计算,如果不是定位状态下,将计算得到的位姿信息与上一次获取到的当前位置相加,得到本次当前位置的更新结果。该步骤一直反复执行,并不会因定位状态改变而停止。是定位状态下时,则调用语义定位校准,根据识别的物体计算当前位置,替换视觉里程计所计算的运动偏移,并结合空间数据库中的静态物体坐标更新用户的当前位置,然后将该位置作为新的位置绘制到地图平台上。
位置更新模块:用于将当前位姿信息与上一次获取的当前位置相加,对定位目标的当前位置进行更新,并根据更新后的当前位置绘制室内电子地图;
目标定位模块:用于调用语义定位校准检测视频帧中的静态物体,并利用标定点采用三角测量方法(三角测量是指通过在两处观察同一个点的夹角,从而确定该点的距离)估计静态物体的深度信息,通过静态物体的深度信息以及空间数据的语义信息提出多目标物体定位模型,通过高斯牛顿法迭代求解定位模型,获取静态物体坐标信息及移动终端当前位置,将静态物体坐标信息与移动终端当前位置相结合,得到当前位置的定位结果。
具体的,目标定位模块包括:
物体识别及深度计算单元:用于取出图像滑动窗口中的视频帧,输入至目标检测神经网络中,得到该视频帧中所包含的静态物体种类,并将识别出的静态物体的中心像素位置设置为标定点,然后取出下一视频帧以及下一视频帧的移动终端位姿信息,利用三角测量法,算出标定点与移动终端的深度信息;其中,三角测量法公式如下:
公式(6)中,s1,s2是关键点的深度信息。
粗定位单元:用于得到视频帧中静态物体的坐标信息;粗定位的位置数据来自于BIM空间数据库中存储的静态物体的坐标信息,通过识别的物体类别,以当前位置的坐标信息范围附近检索所加载的BIM空间信息数据库,找出识别的物体类别所携带的坐标信息。
精定位单元:用于将粗定位得到的坐标信息带入定位模型中,并采用高斯牛顿法迭代求解,得到移动终端当前位置。其中,静态物体与终端位置的关系应满足以下关系:
(xi-x)2+(yi-y)2+(zi-z)2=δρi+σi (7)
因此可建立并解算如下非线性方程组:
公式(8)中,(x,y,z)是移动终端当前的位置,(xn,yn,zn)是BIM空间数据库中存储的静态物体坐标信息,表征静态物体距离固定坐标(比如建筑物中心的坐标信息)的相对位置,ρn是当前静态物体到移动终端的深度,σn是深度的测量噪声。
定位结果生成单元:用于将精定位迭代计算出的移动终端当前位置(该位置为相对于建筑物特定目标坐标的偏移)与粗定位得到的静态物体坐标信息相结合,得到当前位置的定位结果。根据定位结果获取所在区域的电子地图,叠加BIM信息,生成当前定位结果的临近室内电子地图。
图5是本申请实施例提供的移动端视觉融合定位方法的硬件设备结构示意图。如图5所示,该设备包括一个或多个处理器以及存储器。以一个处理器为例,该设备还可以包括:输入***和输出***。
处理器、存储器、输入***和输出***可以通过总线或者其他方式连接,图5中以通过总线连接为例。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述方法实施例的处理方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理***。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入***可接收输入的数字或字符信息,以及产生信号输入。输出***可包括显示屏等显示设备。
所述一个或者多个模块存储在所述存储器中,当被所述一个或者多个处理器执行时,执行上述任一方法实施例的以下操作:
根据输电线路元件的图像样本数据构建移动端视觉融合定位模型,具体包括以下步骤:
步骤a:基于标定的起始位置和传感器信息,获取移动终端的初始位置,并将初始位置设置为定位目标的当前位置;
步骤b:使用移动终端获取视频帧;
步骤c:检测所述视频帧中的静态物体,通过BIM空间数据库获取所述静态物体的坐标信息,将所述静态物体的坐标信息带入多目标物体定位模型,通过高斯牛顿法迭代求解所述定位模型,获取移动终端当前位置,并将所述移动终端当前位置与静态物体的坐标信息相结合,得到定位目标的定位结果。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例提供的方法。
本申请实施例提供了一种非暂态(非易失性)计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行以下操作:
步骤a:基于标定的起始位置和传感器信息,获取移动终端的初始位置,并将初始位置设置为定位目标的当前位置;
步骤b:使用移动终端获取视频帧;
步骤c:检测所述视频帧中的静态物体,通过BIM空间数据库获取所述静态物体的坐标信息,将所述静态物体的坐标信息带入多目标物体定位模型,通过高斯牛顿法迭代求解所述定位模型,获取移动终端当前位置,并将所述移动终端当前位置与静态物体的坐标信息相结合,得到定位目标的定位结果。
本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行以下操作:
步骤a:基于标定的起始位置和传感器信息,获取移动终端的初始位置,并将初始位置设置为定位目标的当前位置;
步骤b:使用移动终端获取视频帧;
步骤c:检测所述视频帧中的静态物体,通过BIM空间数据库获取所述静态物体的坐标信息,将所述静态物体的坐标信息带入多目标物体定位模型,通过高斯牛顿法迭代求解所述定位模型,获取移动终端当前位置,并将所述移动终端当前位置与静态物体的坐标信息相结合,得到定位目标的定位结果。
本申请实施例的移动端视觉融合定位方法、***及电子设备利用视觉传感器检测并识别真实世界的静态物体得到物体空间关系,并与BIM模型提供的物体空间关系进行地理拓扑空间匹配,再根据物体的距离测量建立非线性方程组,迭代求解方程组,收敛得到精确位置,从而实现更精准更便捷更低廉的定位方法。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本申请中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本申请所示的这些实施例,而是要符合与本申请所公开的原理和新颖特点相一致的最宽的范围。