发明内容
有鉴于此,有必要提供一种基于物体识别和空间位置感知的定位系统及方法,用以解决在复杂环境下卫星信号存在易受地面无线频率干扰、易被环境物体遮挡导致的定位精度退化和结果异常的问题。
本发明提供一种基于物体识别和空间位置感知的定位系统,包括GNSS接收机、北斗引擎模块、惯性测量模块、摄像头以及融合处理模块;所述GNSS接收机用于获取全球导航卫星信号,并得到卫星信号的距离观测值后,将所述距离观测值输出至所述北斗引擎模块;所述北斗引擎模块用于通过对所述距离观测值进行精度解算,以输出三维绝对位置信息至所述融合处理模块;所述惯性测量模块用于测量终端的加速度、角速度观测信息和磁场强度信息,并输出至所述融合处理模块;所述摄像头用于获取环境纹理信息,并输出至融合处理模块;所述融合处理模块用于将所述三维绝对位置信息、加速度和角速度信息、磁场强度信息、环境纹理信息进行融合计算得到解算信息后,利用所述解算信息得到终端位置,并将所述解算信息输出至所述北斗引擎模块。
进一步的,所述GNSS接收机获取的距离观测值包括伪距观测值、载波相位观测值。
进一步的,还包括一通讯模块,所述通讯模块用于增强信息接收与位置信息输出,获取环境中的蓝牙和/或wifi信号信息,并输出至所述融合处理模块。
进一步的,所述环境纹理信息至少包括三维几何信息和语义信息,所述摄像头为星光级双目摄像头,所述摄像头具体用于获取所述三维几何信息和语义信息,并打包处理成所述环境纹理信息后,发生给所述融合处理模块。
进一步的,所述摄像头还用于采集图像,并对采集到的图像进行裁剪,以保留采集到图像的下半部分。
进一步的,所述融合处理模块用于通过所述星光级双目摄像头实时获取左右目相片,利用训练完备的深度学习模型对所述左右目相片进行实时检测,以得到局部像素坐标后,在识别出的局部像素坐标中,利用最小二乘匹配方法,寻找所述相片中的同名像素点。
进一步的,所述融合处理模块还用于支持北斗、机会信号、惯导、里程计、视觉多源信息的观测级紧融合。
一种基于物体识别和空间位置感知的定位方法,包括上述定位系统,还包括以下步骤:
获取所述摄像头实时采集的左右目相片,在所述左右目相片中利用训练完备的深度学习模型对所述左右目相片进行实时检测,以得到局部像素坐标;
在所述局部像素坐标中,利用最小二乘匹配方法,寻找到所述左右目相片中的同名像素点,通过所述同名像素点的两个横坐标的差值计算得到视差,并利用视差计算公式,得到终端的深度信息;
基于所述深度信息、预先采集的绝对位置以及摄影测量后方交会方法得到所述终端的精准位置。
一种计算机可读程序介质,其存储有计算机程序指令,当所述计算机程序指令被计算机执行时,使计算机执行上述的定位方法。
与现有技术相比,通过设置融合处理模块将北斗引擎模块的三维绝对位置信息、加速度和角速度信息、磁场强度信息、环境纹理信息进行融合计算得到解算信息后,利用解算信息得到终端位置;同时还提供了一种定位方法,通过获取摄像头实时采集的左右目相片,在左右目相片中利用训练完备的深度学习模型对左右目相片进行实时检测,以得到局部像素坐标;在局部像素坐标中,利用最小二乘匹配方法,寻找到左右目相片中的同名像素点,通过同名像素点的两个横坐标的差值计算得到视差,并利用视差计算公式,得到终端的深度信息;基于深度信息、预先采集的绝对位置以及摄影测量后方交会方法得到终端的精准位置,能够实现广域大范围连续可靠精度无缝定位的定位方法,能够解决在复杂环境下卫星信号存在易受地面无线频率干扰、无线信号不稳或丢失问题。
具体实施方式
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。
本实施例中的一种基于物体识别和空间位置感知的定位系统100,包括GNSS接收机101、惯性测量模块103、摄像头104、北斗引擎模块105以及融合处理模块106。
需要说明的是,本申请中的定位系统100具有能够实现高精度定位、实时定位以及在广域大范围可以实现连续可靠的进行无缝定位的功能。适用于复杂环境下的高精度定位工作,例如:密集区域、城市峡谷、隧道、高架桥下、地下等场景。
在本实施方案中的所述GNSS接收机101用于获取全球导航卫星信号,并得到卫星信号的距离观测值后,将距离观测值输出至所述北斗引擎模块105。
其中,其中GNSS接受机101可以获取其上的定位信息、卫星信息,以NMEA协议为例,包括RMC、GGA、GSV。解析协议,缓存定位信息、卫星姿态、卫星信号信噪比、卫星数据有效性等信息。
在本实施方案中的所述北斗引擎模块105用于通过对所述GNSS接收机101输出的距离观测值进行精度解算,以输出三维绝对位置信息至所述融合处理模块106。
在本实施方案中的所述惯性测量模块103用于测量终端的加速度、角速度观测信息和磁场强度信息,并输出至所述融合处理模块106。
其中,惯性测量模块103包括磁力计、加速度计、陀螺仪等多模态传感器进行深度融合。其中磁力计用于观测磁场信息,加速度计用于检测物体在载体坐标系统独立三轴的加速度信号,而陀螺仪用于检测载体相对于导航坐标系的角速度信号,测量物体在三维空间中的角速度和加速度,并以此解算出物体的姿态。
在本实施方案中所述摄像头104用于获取环境纹理信息,并输出至融合处理模块106。
其中,环境纹理信息即为图像信息,连续的环境纹理信息即为视频流。
在本实施方案中的所述融合处理模块106用于将三维绝对位置信息、加速度和角速度信息、磁场强度信息、环境纹理信息进行融合得到解算信息后,利用所述解算信息得到终端位置,并将所述解算信息输出至北斗引擎模块105。
在一个优选的实施例中,所述GNSS接收机101获取的距离观测值包括伪距观测值、载波相位观测值。
在一个优选的实施例中,还包括一通讯模块102,所述通讯模块102用于增强信息接收与位置信息输出,获取环境中的蓝牙和/或wifi信号信息,并输出至所述融合处理模块106。其中,通讯模块102用于数据交互,通讯的内容包括位置坐标信息、速度信息、时间信息、图像信息等。
摄像头104用于观测环境纹理信息,在一个优选的实施例中,环境纹理信息至少包括三维几何信息和语义信息,摄像头104为星光级双目摄像头,摄像头104具体用于获取三维几何信息和语义信息,并打包处理成环境纹理信息后,发生给融合处理模块106。
在一个优选的实施例中,所述摄像头104还用于采集图像,并对采集到的图像进行裁剪,以保留采集到图像的下半部分。具体的,需要说明的是,图像采集是后续识别工作的基础,为了保证图像采集能够捕捉到感兴趣的终端,图像采集的范围应尽可能大。同时,为了减轻后续的工作量,采集的图像范围又应该尽量的小,由于终端几乎都只出现在视平线以上的位置,所以应使摄像头104拍摄的画面中心位于视平线偏下一点,这样可以保证全面捕捉终端。
其中,融合处理模块106用于通过星光级双目摄像头实时获取左右目相片,利用训练完备的深度学习模型对左右目相片进行实时检测,以得到局部像素坐标后,在识别出的局部像素坐标中,利用最小二乘匹配方法,寻找相片中的同名像素点。
需要说明的是,上述深度学习模型为深度学习框架Darkent。
在一个优选的实施例中,所述北斗引擎模块105还用于通过广域大范围稀疏参考网的高精度大气建模与北斗PPP-RTK快速模糊固定,能够实现厘米级定位。
在一个优选的实施例中,所述融合处理模块106还用于对故障观测进行智能检测,并根据场景自适应调节观测值的随机模型,实现多源传感器的最优融合和高可信的位置估计。
在一个优选的实施例中,所述融合处理模块106还用于支持北斗、机会信号、惯导、里程计、视觉多源信息的观测级紧融合。
如图2所示,一种基于物体识别和空间位置感知的定位方法,包括以下步骤:
步骤201:获取摄像头实时采集的左右目相片,在左右目相片中利用训练完备的深度学习模型对左右目相片进行实时检测,以得到局部像素坐标;
步骤202:在所述局部像素坐标中,利用最小二乘匹配方法,寻找到所述左右目相片中的同名像素点,通过所述同名像素点的两个横坐标的差值计算得到视差,并利用视差计算公式,得到终端的深度信;
步骤203:基于所述深度信息、预先采集的绝对位置以及摄影测量后方交会方法得到所述终端的精准位置。
其中,Darknet深度学习框架是由Joseph Redmon提出的一个用C和CUDA编写的开源神经网络框架。它安装速度快,易于安装,并支持CPU和GPU计算。
其中,最小二乘法(又称最小平方法)是一种数学优化技术,它通过最小化误差的平方和寻找数据的最佳函数匹配,利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。在本实施例中,最小二乘匹配方法是通过生成一个理想的小块边缘模板,将该模板与测量图像进行匹配,精确提取特征的边缘位置。
应当理解的是,以上方法是利用双目摄像头实时采集左右目相片,在左右目相片中利用深度学习框架Darknet实时检测终端,在识别终端的局部像素坐标中,利用最小二乘匹配方法,准确寻找到左右目相片中终端的同名像素点,基于视差计算深度信息,反算终端的位置关系,利用终端预先采集的绝对位置和摄影测量后方交会方法得到高精度位置。
其中,预先采集的绝对位置是GPS输出的不精准的位置,摄影测量后方交会方法是通过摄像头得到的精确的相对位置,两个结果融合才是精准的位置。
如图3所示,在实际的双目相机模型中,相机内参的差异与安装偏差左右目的成像面并不平行,行也不对准。沿用单目成像中对坐标原点与坐标轴向的约定,对左右目相机分别建立坐标系,且设从左目坐标系到右目坐标系需要经过一次旋转与一次平移,对应的旋转矩阵为R,平移矢量为T,称为双目相机的外参。空间中有一观测点P,其在左目的成像点为PL,在右目的成像点为PR。OLOR的连线即为基线,基线和左目成像面交于点EL,和右目成像面交于点ER,EL与ER称为极点,对于观测点P,PLEL是它的左极线,PRER是它的右极线,POLOR是它的极面。
根据针孔相机模型,对图像进行平移实际上就是改变cx与cy,对图像进行缩放实际上就是改变fx与fy,据此很容易将两只相机的内参调节为一致。内参调节一致后,根据相机的外参,通过平移与旋转使相机左右目成像面共面且与基线平行。
目前双目校正最常用的方法是Bouguet算法:如果固定左目图像,而仅对右目图像进行变换,左目图像不需要重投影,右目图像却需要较大幅度的重投影,重投影后右目图像与左目图像的共视区域将会减小,造成信息损失。因此将左右目同时变换,找到一个使得整体重投影幅度较小的变换方式,以减少重投影造成的信息损失,使共视区域最大化。下面简要介绍Bouguet算法。
假设左右目相机内参已调整一致。规定俯视视角下逆时针旋转为旋转的正方向,设左目成像面绕OL旋转的旋转矩阵为rL,右目成像面绕OR旋转的旋转矩阵为rR。则rL与rR满足下式:
rL -1·rR=R-1
为使重投影畸变最小,按照如下如下设置rL与rR:
如此旋转后,左右目成像面已相互平行,但成像面未必共面,且行仍不对准。由于左右目相机已经三轴同向,因此只需讨论左目(右目亦可)所需的旋转矩阵,对双目做相同处理即可。
由内参一致,可得成像面共面与成像面和基线平行等价,仍需找到一个绕光心的旋转矩阵,使得左右目成像面与基线平行。此外,双目校正中一般还会将左右目图像行对准,即使得同一空间点在左右目图像中高度相等。行对准本身不影响深度测量,但在立体匹配中可以提供有力的约束。由左右目坐标系三轴平行,可得行对准与极线方向水平等价,即找到一个绕光心的旋转矩阵,使极线方向水平。
成像面与基线平行,即极点不存在,或者说存在于无穷远处。极线水平,即极线指向相机坐标系横轴轴向。平移矢量位于左目相机坐标系水平轴上。
根据旋转矩阵的性质,将一个坐标系旋转到另一坐标系的旋转矩阵,其三行即为后者在前者坐标下的单位正交基。为了使得左目相机坐标系的横轴与平移向量重合的旋转矩阵,仅对一个轴有约束,以左目坐标系为主,设待求旋转矩阵为Rrect。
仅有的一个约束是使xL轴与T重合,故将T上的单位向量作为Rrect第一行。令基线上的单位向量为e1,则有:
除旋转矩阵的固有性质外,Rrect没有其他约束,因此找两个与e1正交的单位向量作为后两行。为减少重投影误差,取T与主光轴作外积并归一化的结果为e2:
e3则直接取e1和e2的外积:
e3=e1×e2
于是,Rrect可表示为:
Rrect=[e1 e2 e3]T
根据前述,给出左右目成像面的校正矩阵:
左右目成像面经过上述变换,已经符合理想双目相机模型,双目校正的主要过程已完成。
如图4所示,对于世界坐标系下的终端中心点P(xw,yw,zw),其在左右相机中对应的点分别为P(xl,yl,zl)和P(xr,yr,zr)。空间点P在左右相机上的投影点横坐标分别为ul和ur,并且之间的距离为基线长b,三角形POlOr和PPlPr在同一平面上,并且具有相似三角形的关系,则根据相似三角形可得:
z=fb/d,d=uI-ur
式中:z为空间点在左相机坐标系下的深度坐标;d为视差。
假设当前帧图像到世界坐标系之间的转换关系用4×4的矩阵Tcw进行描述,由此可知该交通牌点相对左相机的三维坐标为:
式中:cx,cy分别为光心与图像原点的横纵偏移量。
由此可知,点P的世界坐标为:
式中:Rwc为Tcw左上角3×3矩阵的转置,表示世界坐标系到图像坐标系的旋转关系;tcw为Tcw右上角3×1的矩阵,表示世界坐标系到图像坐标系的平移关系。
本申请还提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的定位方法。
如图5所示,例如,电子设备500以通用计算设备的形式表现。电子设备500的组件可以包括但不限于:上述至少一个处理单元510、上述至少一个存储单元520、连接不同系统组件(包括存储单元520和处理单元510)的总线530。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元510执行,使得所述处理单元510执行本说明书上述“实施例方法”部分中描述的根据本发明各种示例性实施方式的步骤。
存储单元520可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)521和/或高速缓存存储单元522,还可以进一步包括只读存储单元(ROM)523。
存储单元520还可以包括具有一组(至少一个)程序模块525的程序/实用工具524,这样的程序模块525包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线530可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备500也可以与一个或多个外部设备600(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备500交互的设备通信,和/或与使得该电子设备500能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口550连接至显示单元540进行。并且,电子设备500还可以通过网络适配器560与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器560通过总线530与电子设备500的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备500使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
本申请还提供了一种计算机可读程序介质,其存储有计算机程序指令,当所述计算机程序指令被计算机执行时,使计算机执行上述的定位方法。具体的,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
参考图6所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品600,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
综上所述,本申请实施例中提供的空间感知定位能够实现广域大范围连续可靠精度无缝定位。解决在复杂环境下卫星信号存在易受地面无线频率干扰、无线信号不稳或丢失问题。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。