基于视觉SLAM的车辆定位方法、设备及云服务器与流程

文档序号:25598599发布日期:2021-06-22 17:18阅读:196来源:国知局
基于视觉SLAM的车辆定位方法、设备及云服务器与流程

本申请涉及导航技术领域,尤其涉及一种基于视觉slam的车辆定位方法、设备及云服务器。



背景技术:

slam(simultaneouslocalizationandmapping,即时定位与地图构建)主要用于解决移动设备在未知环境中运行时进行定位导航与地图构建的问题。

网络定位是指通过特定的定位技术来获取载体的位置信息,并进行标注的技术或服务。在一种基于gps(globalpositioningsystem,全球定位系统)模块的网络定位方式中,利用载体上的gps模块将载体的位置参考信号发送到定位后台来实现定位。基于gps模块的网络定位方式具有性能好、精度高、应用广的特点。但在某些场景下,例如桥下,涵洞,隧道,密集楼宇之间等定位信号不好的位置,相关技术的基于gps模块的网络定位方式的定位偏差很大,甚至无法提供定位结果,无法持续提供高精度的网络定位。

因此,如何利用视频数据的图像和视觉slam技术进行车辆的网络定位是一个非常值得研究的技术问题。



技术实现要素:

为克服相关技术中存在的问题,本申请提供一种基于视觉slam的车辆定位方法、设备及云服务器,能够利用单目相机拍摄的视频数据实现车辆的网络定位。

本申请第一方面提供一种基于视觉slam的车辆定位方法,所述方法包括:

接收车载智能设备上传的车辆行驶过程中单目相机拍摄的视频数据;

确定所述视频数据中时间序列上的相邻两帧图像之间的第一特征点集;

根据所述第一特征点集中的特征点确定所述相邻两帧图像的下一帧图像的特征点集;

根据所述下一帧图像的特征点集、所述第一特征点集的三维空间坐标,确定拍摄所述下一帧图像时所述单目相机的位姿;

根据拍摄所述下一帧图像时所述单目相机的位姿,获得所述单目相机拍摄所述下一帧图像时所述车辆的定位数据;

向所述车载智能设备下发所述车辆的定位数据。

优选的,所述第一特征点集的三维空间坐标的获得过程包括:

根据所述第一特征点集,采用对极约束计算所述相邻两帧图像之间的旋转矩阵和平移矩阵;

根据所述相邻两帧图像之间的旋转矩阵和平移矩阵、拍摄所述相邻两帧图像时所述单目相机的三维空间坐标、所述单目相机在拍摄所述相邻两帧图像之间的移动距离,利用三角化方法获得所述第一特征点集的深度值;

根据所述相邻两帧图像之间的旋转矩阵和平移矩阵、拍摄所述相邻两帧图像时所述单目相机的三维空间坐标、所述第一特征点集的深度值,获得所述第一特征点集的三维空间坐标。

优选的,所述根据所述下一帧图像的特征点集、所述第一特征点集的三维空间坐标,确定拍摄所述下一帧图像时所述单目相机的位姿,包括:

根据所述下一帧图像的特征点集,采用对极约束计算所述下一帧图像和与所述下一帧图像时间序列上相邻的上一帧图像之间的旋转矩阵和平移矩阵;

根据所述上一帧图像和所述下一帧图像之间的旋转矩阵和平移矩阵、所述第一特征点集的深度值,确定所述下一帧图像的特征点集的深度值;

根据所述上一帧图像和所述下一帧图像之间的旋转矩阵和平移矩阵、所述下一帧图像的特征点集的深度值,以及所述第一特征点集的三维空间坐标,获得所述下一帧图像的特征点集的三维空间坐标;

根据所述下一帧图像的特征点集、所述下一帧图像的特征点集的三维空间坐标,确定拍摄所述下一帧图像时所述单目相机的位姿。

优选的,所述方法还包括:

对接收的所述视频数据进行迭代处理,获得所述单目相机拍摄所述视频数据中各帧图像时所述车辆的定位数据。

本申请第二方面提供另一种基于视觉slam的车辆定位方法,所述方法包括:

上传车辆行驶过程中单目相机拍摄的视频数据至云服务器;

接收所述云服务器下发的根据所述视频数据获得的所述车辆的定位数据,所述云服务器根据所述视频数据获得所述车辆的定位数据包括:

所述云服务器确定所述视频数据中时间序列上的相邻两帧图像之间的第一特征点集,根据所述第一特征点集中的特征点确定所述相邻两帧图像的下一帧图像的特征点集,根据所述下一帧图像的特征点集、所述第一特征点集的三维空间坐标,确定拍摄所述下一帧图像时所述单目相机的位姿,根据拍摄所述下一帧图像时所述单目相机的位姿,获得所述单目相机在拍摄所述下一帧图像时所述车辆的定位数据。

本申请第三方面提供一种车载智能设备,所述车载智能设备包括:

上传单元,用于上传车辆行驶过程中单目相机拍摄的视频数据至云服务器;

定位接收单元,用于接收所述云服务器下发的根据所述上传单元上传的视频数据获得的所述车辆的定位数据,所述云服务器根据所述视频数据获得所述车辆的定位数据包括:

所述云服务器确定所述视频数据中时间序列上的相邻两帧图像之间的第一特征点集,根据所述第一特征点集中的特征点确定所述相邻两帧图像的下一帧图像的特征点集,根据所述下一帧图像的特征点集、所述第一特征点集的三维空间坐标,确定拍摄所述下一帧图像时所述单目相机的位姿,根据拍摄所述下一帧图像时所述单目相机的位姿,获得所述单目相机在拍摄所述下一帧图像时所述车辆的定位数据。

本申请第四方面提供一种云服务器,所述云服务器包括:

视频接收单元,用于接收车载智能设备上传的车辆行驶过程中单目相机拍摄的视频数据;

图像处理单元,用于确定所述视频接收单元接收的所述视频数据中时间序列上的相邻两帧图像之间的第一特征点集,根据所述第一特征点集中的特征点确定所述相邻两帧图像的下一帧图像的特征点集;

位姿确定单元,用于根据所述图像处理单元确定的所述下一帧图像的特征点集、所述第一特征点集的三维空间坐标,确定拍摄所述下一帧图像时所述单目相机的位姿;

定位单元,用于根据所述位姿确定单元确定的拍摄所述下一帧图像时所述单目相机的位姿,获得所述单目相机在拍摄所述下一帧图像时所述车辆的定位数据;

下发单元,用于向所述车载智能设备下发所述定位单元获得的所述车辆的定位数据。

优选的,所述云服务器还包括坐标单元;所述坐标单元用于:

根据所述图像处理单元确定的第一特征点集,采用对极约束计算所述相邻两帧图像之间的旋转矩阵和平移矩阵;

根据所述相邻两帧图像之间的旋转矩阵和平移矩阵、拍摄所述相邻两帧图像时所述单目相机的三维空间坐标、所述单目相机在拍摄所述相邻两帧图像之间的移动距离,利用三角化方法获得所述第一特征点集的深度值;

根据所述相邻两帧图像之间的旋转矩阵和平移矩阵、拍摄所述相邻两帧图像时所述单目相机的三维空间坐标、所述第一特征点集的深度值,获得所述第一特征点集的三维空间坐标。

优选的,所述坐标单元还用于根据所述图像处理单元确定的下一帧图像的特征点集,采用对极约束计算所述下一帧图像和与所述下一帧图像时间序列上相邻的上一帧图像之间的旋转矩阵和平移矩阵,根据所述上一帧图像和所述下一帧图像之间的旋转矩阵和平移矩阵、所述第一特征点集的深度值,确定所述下一帧图像的特征点集的深度值,根据所述上一帧图像和所述下一帧图像之间的旋转矩阵和平移矩阵、所述下一帧图像的特征点集的深度值,以及所述第一特征点集的三维空间坐标,获得所述下一帧图像的特征点集的三维空间坐标;

所述位姿确定单元,具体用于根据所述图像处理单元确定的所述下一帧图像的特征点集、所述坐标单元获得的所述下一帧图像的特征点集的三维空间坐标,确定拍摄所述下一帧图像时所述单目相机的位姿。

本申请第五方面提供一种电子设备,包括:

处理器;以及

存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上所述的方法。

本申请第六方面提供一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上所述的方法。

本申请提供的技术方案可以包括以下有益效果:

本申请实施例示出的基于视觉slam的车辆定位方法,能够利用单目相机拍摄的视频数据,持续获得单目相机在拍摄视频数据中各帧图像时车辆的高精度的定位数据;同时,车载智能设备将单目相机拍摄的视频数据上传服务器端,利用拥有更多资源的服务器对视频数据进行处理,获得车辆的定位数据,能够降低车辆定位对车载智能设备的资源消耗,提高车辆定位的效率,实现利用单目相机拍摄的视频数据进行车辆的网络定位。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

通过结合附图对本申请示例性实施方式进行更详细的描述,本申请的上述以及其它目的、特征和优势将变得更加明显,其中,在本申请示例性实施方式中,相同的参考标号通常代表相同部件。

图1是本申请一实施例的基于视觉slam的车辆定位方法的流程示意图;

图2是本申请一实施例的旋转矩阵和平移矩阵算法原理图;

图3是本申请另一实施例的基于视觉slam的车辆定位方法的流程示意图;

图4是本申请一实施例的车载智能设备的结构示意图;

图5是本申请一实施例的云服务器的结构示意图;

图6是本申请实施例示出的电子设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本申请的优选实施方式。虽然附图中显示了本申请的优选实施方式,然而应该理解,可以以各种形式实现本申请而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本申请更加透彻和完整,并且能够将本申请的范围完整地传达给本领域的技术人员。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语“第一”、“第二”、“第三”等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

本申请实施例提供一种基于视觉slam的车辆定位方法,能够利用单目相机拍摄的视频数据实现车辆的网络定位。

以下结合附图详细描述本申请实施例的技术方案。

实施例一:

图1是本申请一实施例的基于视觉slam的车辆定位方法的流程示意图。

参见图1,一种基于视觉slam的车辆定位方法,应用于云服务器,包括:

在步骤101中,接收车载智能设备上传的车辆行驶过程中单目相机拍摄的视频数据。

在一具体实施方式中,车辆装设有单目相机,单目相机可以设置于车辆的前挡风玻璃处或者设置于车辆的后视镜处。在车辆行驶过程中,可以利用单目相机拍摄车辆前方的视频数据。车辆的至少一个车载智能设备获取并上传车辆行驶过程单目相机拍摄的视频数据,云服务器接收车辆至少一个车载智能设备获取并上传的车辆行驶过程单目相机拍摄的视频数据。

在一具体实施方式中,车载智能设备可以是包括单目相机的行车记录仪。本申请实施例的单目相机可以是行车记录仪的单目相机,也可以是位于车辆上的其他拍摄设备的单目相机,如手机摄像头的单目相机。

在一具体实施方式中,车载智能设备还包括定位系统,定位系统可以包括但不限于gps、北斗卫星定位系统、rtk(realtimekinematic,实时动态)定位系统等其中的至少一种。

在一具体实施方式中,可以将单目相机设置于车辆内的车载智能设备内,也可以设置于车载智能设备外,但都与车载智能设备之间可以进行通信交互。车载智能设备获取车辆行驶过程单目相机拍摄的视频数据,并将视频数据上传。

在一具体实施方式中,可以将定位系统设置于车辆内的车载智能设备内,也可以设置于车载智能设备外,但都与车载智能设备之间可以进行通信交互。车载智能设备可以获取定位系统信号良好时的定位数据,将定位数据上传。

可以理解的,车载智能设备具有与车辆内单目相机、定位系统进行通信交互的能力,也具有与车辆外部其它设备进行通信交互的能力。

在步骤102中,确定视频数据中时间序列上的相邻两帧图像之间的第一特征点集。

在一实施例中,可以根据接收的视频数据,按照预置规则获取视频数据中的连续图像;识别连续图像中时间序列上的相邻两帧图像。相邻两帧图像可以是按时间排序初始时刻的第一帧图像和第二帧图像的特征点;将第一帧图像和第二帧图像的特征点进行匹配,第一特征点集包括第一帧图像和第二帧图像中匹配成功的特征点。

在一种具体实施方式中,为了获得图像,需要对接收的视频数据进行抽帧。通常,视频数据中图像的帧率为每秒30帧,可以按照预置规则对视频进行抽帧,从而获得图像。获得的图像可以为包括单目相机时间序列先后采集到的连续图像。具体的,可以按照预置的时间间隔对视频数据进行抽帧后得到按时间先后顺序排列的连续图像,例如,可以得到时刻k、时刻k+1、时刻k+2、……的图像。

在一实施例中,图像上的特征点可以用来标识图像上的目标物体,可以将图像上灰度值发生剧烈变化的点或在图像边缘上曲率较大的点(如两个边缘的交点)作为图像的特征点。为了后续更好的进行图像匹配,可以将图像中不会随着相机的移动、旋转或者光照的变化而变化的稳定的点选取为特征点。可以选择识别固定的建筑物(例如路边的房屋)、固定的树木或广告牌等中的特征点,而不选择天空或地面上的特征点。

在一种具体实施方式中,上述第一帧图像和第二帧图像中可以包含有不同视角下的同一目标物体(例如建筑物、广告牌、路牌等等)。通过对图像上的特征点进行匹配,可以将不同图像上的同一目标物体的某些特征点匹配成功。其中,第一特征点集为上述第一帧图像和第二帧图像中每一帧图像上均匹配成功的特征点的集合。例如,当第一帧图像和第二帧图像分别为时刻k、k+1的两帧图像时,第一特征点集为时刻k、k+1的两帧图像进行匹配并匹配成功的特征点的集合。

在一种具体实施方式中,可以利用包括但不限于brisk算法提取上述连续图像中每一帧图像的特征点,并对每一帧图像的特征点进行描述,将描述后的特征点作为该帧图像的特征点;将上述第一帧图像和第二帧图像描述后的特征点进行匹配,将匹配距离小于预设值的特征点确定为匹配成功的第一特征点集。

在步骤103中,获得第一特征点集的三维空间坐标。

在一实施例中,可以根据相邻两帧图像的第一特征点集,采用对极约束计算相邻两帧图像之间的旋转矩阵和平移矩阵;根据相邻两帧图像之间的旋转矩阵和平移矩阵、拍摄相邻两帧图像时单目相机的三维空间坐标、单目相机在拍摄相邻两帧图像之间的移动距离,利用三角化方法获得第一特征点集的深度值;根据相邻两帧图像之间的旋转矩阵和平移矩阵、拍摄相邻两帧图像时单目相机的三维空间坐标、第一特征点集的深度值,获得第一特征点集的三维空间坐标。

在一种具体实施方式中,根据相邻两帧图像中匹配成功的第一特征点集,可以利用对极几何计算出单目相机在拍摄相邻两帧图像时的位姿变化,即旋转矩阵和平移矩阵。在相邻两帧图像为时刻k的第一帧图像和时刻k+1的第二帧图像时,对时刻k、k+1的两帧图像上的特征点进行匹配,得出8个匹配点,即第一特征点集中包含有8点对分别在时刻k、k+1的两帧图像上的特征点。根据这8点对特征点可以计算出时刻k+1的图像相对于时刻k的图像的旋转矩阵和平移矩阵。

在一种具体实施方式中,图2是本申请实施例示出的旋转矩阵和平移矩阵算法原理图。参见图2,在不同的位置拍摄同一个目标物体的两帧图像,图像中目标物体对应的像素点满足对极约束关系。其中p为世界坐标系中真实物体,例如建筑物上的某一点。o1、o2分别为拍摄时刻k的图像和时刻k+1的图像时单目相机的光心位置。i1、i2分别代表时刻k的图像和时刻k+1的图像。p1、p2分别为p点在时刻k的图像和时刻k+1的图像上的投影,即时刻k、k+1的两帧图像中匹配成功的一对特征点。o1p在时刻k+1的图像上的投影为e2p2,记为l2,o2p在时刻k的图像上的投影为e1p1,记为l1,其中,l1、l2称为极线,e1、e2称为极点。根据对极约束:

p1·(t×rp2)=0

得到:

其中:

e=t^r

e为本质矩阵,是一个3×3的矩阵,内有9个未知数,t为平移矩阵,r为旋转矩阵,符号∧是向量到反对称矩阵的转换符,t为矩阵的转置。

利用8点法求得e:

其中,(u1,v1,1)为p1的像素坐标的归一化坐标、(u2,v2,1)为p2的像素坐标的归一化坐标。

得到:

(u1u2,u1v2,u1,v1u2,v1v2,u2,v2,1)·e=0

其中:

e=(e1,e2,e3,e4,e5,e6,e7,e8,e9)t

对于其它的点对也使用同样的表示方法,这样将得到的所有方程放到一起,得到一个线性方程组,(ui,vi)表示第i个匹配的点对。

通过上述的线性方程组求得本质矩阵e。

对e奇异值分解,得到4组t、r值,所得4组结果中只有一个深度值为正,深度值为正的t、r值的组合即为时刻k+1的图像相对于时刻k的图像的平移矩阵和旋转矩阵。

可以理解的是,上述过程是以八点法为例进行说明的,但并不局限于此。当时刻k、k+1的两帧图像上匹配的特征点不止八对时,可以利用对极约束构建最小二乘法来求得两帧之间的平移矩阵和旋转矩阵,其中最小二乘法为较为成熟的现有技术,这里将不再叙述其具体实现过程。

在一种具体实施方式中,单目相机设置于车辆上,可以将接收的定位系统测得的拍摄第一帧图像和第二帧图像时的定位数据作为单目相机拍摄第一帧图像和第二帧图像时的定位数据。因此可以将根据接收的定位系统测得的拍摄第一帧图像和第二帧图像时的定位数据,获得的拍摄第一帧图像和第二帧图像时车辆的三维空间坐标作为单目相机拍摄第一帧图像和第二帧图像时的三维空间坐标,车辆在第一帧图像和第二帧图像之间的移动距离作为单目相机在拍摄第一帧图像和第二帧图像之间的移动距离。

在一种具体实施方式中,车载智能设备获得定位系统例如gps测得的拍摄第一帧图像和第二帧图像时车辆的定位数据,车载智能设备将定位数据上传。gps测得的车辆的定位数据包括车辆的经度信息、纬度信息、东向速度信息和北向速度信息,可以根据gps测得的定位数据获得车辆在第一帧图像和第二帧图像时的位置信息、速度信息、姿态信息;可以根据车辆在第一帧图像和第二帧图像时的位置信息、速度信息、姿态信息,以及单目相机拍摄第一帧图像和第二帧图像之间的时间,获得车辆在第一帧图像和第二帧图像之间的移动距离。由于根据gps测得的定位数据获得的车辆的位置信息只包括二维坐标的经度信息、纬度信息,而本申请的实施例需要获得的是第一特征点集的三维空间坐标,因此,可以根据单目相机相对地面的预设位置关系例如高度调整根据gps测得的定位数据获得的车辆的位置信息,获得拍摄第一帧图像和第二帧图像时车辆的三维空间坐标。

在一种具体实施方式中,根据第一帧图像和第二帧图像之间的旋转矩阵和平移矩阵,拍摄第一帧图像和第二帧图像时车辆的三维空间坐标、拍摄第一帧图像和第二帧图像之间的车辆的移动距离、以及单目相机的内参数,将拍摄第一帧图像和第二帧图像之间的车辆的移动距离作为单目相机拍摄第一帧图像和第二帧图像之间的平移量,利用三角化获得第一帧图像和第二帧图像的第一特征点集的深度值。因为以拍摄第一帧图像和第二帧图像之间的车辆的移动距离作为单目相机拍摄第一帧图像和第二帧图像之间的平移量,利用三角化计算时的平移量是真实的单目相机移动量,因此利用三角化能够获得包含真实尺度的特征点深度值。

在一种具体实施方式中,单目相机的内参数在单目相机使用过程中不会发生变化,可以根据单目相机的技术手册或者说明书获得,也可以根据单目棋盘格张正友标定法对单目相机进行标定,获得单目相机的内参数。具体获得单目相机的内参数的方法可以参照现有技术,本申请实施例不在赘述。

在一种具体实施方式中,在第一帧图像和第二帧图像分别为时刻k、k+1的两帧图像时,可以根据时刻k、时刻k+1两帧图像之间的旋转矩阵和平移矩阵、拍摄时刻k、时刻k+1两帧图像时车辆的三维空间坐标、以及时刻k、时刻k+1两帧图像的第一特征点集的深度值,获得第一特征点集的三维空间坐标。

在步骤104中,根据第一特征点集中的特征点确定相邻两帧图像的下一帧图像的特征点集。

在一实施例中,根据持续接收的视频数据,按照预置规则获取视频数据中的下一帧图像;识别下一帧图像的特征点;将下一帧图像和与下一帧图像按时间排序的上一帧图像的特征点进行匹配,确定下一帧图像和上一帧图像中匹配成功的下一帧图像的特征点集,这里的上一帧图像的特征点是上一帧图像特征点集中的特征点,也就是说下一帧图像的特征点和上一帧图像的特征点集进行匹配,匹配成功的特征点为下一帧图像的特征点集。例如,下一帧图像是按时间排序的时刻k+2的图像,与下一帧图像按时间排序的上一帧图像是步骤102中时刻k+1的第二帧图像,上一帧图像的上一帧图像是步骤102中时刻k的第一帧图像,将时刻k+1、k+2的图像的特征点进行匹配,确定时刻k+1、k+2两帧图像的特征点集为下一帧图像的特征点集,其中,时刻k+1的图像的特征点是时刻k+1与时刻k的图像的特征点集中的特征点,即将时刻k+2的图像的特征点与时刻k+1与时刻k的图像的第一特征点集中的特征点进行匹配,匹配成功的特征点构成下一帧图像(时刻k+2的图像)的特征点集。确定两帧图像的特征点集的描述可以参照步骤102,此处不在赘述。

在步骤105中,根据下一帧图像的特征点集、第一特征点集的三维空间坐标,确定拍摄下一帧图像时单目相机的位姿。

在一实施例中,可以根据下一帧图像的特征点集,采用对极约束计算下一帧图像和与下一帧图像时间序列上相邻的上一帧图像之间的旋转矩阵和平移矩阵;根据上一帧图像和下一帧图像之间的旋转矩阵和平移矩阵、第一特征点集的深度值,确定下一帧图像的特征点集的深度值;根据上一帧图像和下一帧图像之间的旋转矩阵和平移矩阵、下一帧图像的特征点集的深度值,以及第一特征点集的三维空间坐标,获得下一帧图像的特征点集的三维空间坐标;根据下一帧图像的特征点集、下一帧图像的特征点集的三维空间坐标,确定拍摄下一帧图像时单目相机的位姿。

在一种具体实施方式中,可以根据下一帧图像和与下一帧图像按时间排序的上一帧图像的下一帧图像的特征点集,采用对极约束计算上一帧图像和下一帧图像之间的旋转矩阵和平移矩阵。获得旋转矩阵和平移矩阵的描述可以参照步骤103,此处不在赘述。

在一种具体实施方式中,在获得下一帧图像的特征点集的三维空间坐标时,以第一特征点集的包含深度值的三维空间坐标为初始坐标,可以根据上一帧图像和下一帧图像之间的旋转矩阵和平移矩阵、第一特征点集的深度值,确定下一帧图像的特征点集的深度值;根据上一帧图像和下一帧图像之间的旋转矩阵和平移矩阵、下一帧图像的特征点集的深度值,以及第一特征点集的三维空间坐标,获得下一帧图像的特征点集的三维空间坐标。本申请的实施例仅需在开始时利用现有定位系统进行定位,后续将不再需要,而是利用连续图像的前一时刻的图像和当前时刻的图像(上一帧图像)的特征点集的深度值和三维空间坐标,利用时间序列上的相邻的前一时刻的图像和当前时刻的图像之间旋转矩阵和平移矩阵,获得当前时刻(上一帧图像)和后一时刻的图像(下一帧图像)的特征点集的深度值和三维空间坐标;根据当前时刻和后一时刻的图像的特征点集的三维空间坐标,获得后一时刻拍摄图像时单目相机的位姿;根据后一时刻拍摄图像时单目相机的位姿获得车辆的定位数据。在获得第一帧图像和第二帧图像的第一特征点集的三维空间坐标时,以拍摄第一帧图像和第二帧图像之间的车辆的移动距离作为单目相机拍摄第一帧图像和第二帧图像之间的平移量,利用三角化计算时的平移量是真实的单目相机移动量,利用三角化能够获得包含真实尺度的特征点深度值,获得的第一特征点集的三维空间坐标包含真实尺度,后续获得的当前时刻和后一时刻的图像的特征点集的三维空间坐标,以第一特征点集的包含深度值的三维空间坐标为初始坐标,因此,后续获得的当前时刻和后一时刻的图像的特征点集的三维空间坐标也包含真实尺度。

在一种具体实施方式中,可以根据下一帧图像的特征点集、下一帧图像的特征点集的三维空间坐标,采用pnp(perspective-n-point)优化方法来计算出拍摄下一帧图像时单目相机的位姿。单目相机的位姿可以包括单目相机的三维空间坐标。

在步骤106中,根据拍摄下一帧图像时单目相机的位姿,确定单目相机在拍摄下一帧图像时车辆的定位数据。

在一实施例中,由于单目相机设置于车辆上,因此可以将拍摄某帧图像时单目相机的位姿作为车辆当时的位姿,从而可以得到拍摄某帧图像时车辆的定位数据,即实现了车辆的网络定位。当然,也可以根据在单目相机与车辆之间预设的位置关系对单目相机的位姿进行转换,确定车辆的定位数据。车辆的定位数据可以包括车辆的纬度信息、经度信息。

在步骤107中,向车载智能设备下发车辆的定位数据。

在一实施例中,可以向车辆的至少一个车载智能设备下发车辆的定位数据,可以为车载智能设备例如导航仪在定位导航时提供实时精准的车辆的定位数据。

本申请实施例示出的基于视觉slam的车辆网络定位方法,可以对后续接收的车载智能设备上传的车辆行驶过程单目相机拍摄的视频数据进行迭代处理,获得拍摄视频数据中各帧图像时单目相机的位姿;根据拍摄各帧图像时单目相机的位姿获得车辆的定位数据。

在一种具体实施方式中,对接收的视频数据进行迭代处理,获得单目相机在拍摄视频数据中各帧图像时车辆的定位数据。确定视频数据中时间序列上的相邻的上一帧图像和下一帧图像的特征点集;根据上一帧图像和下一帧图像的特征点集,采用对极约束计算上一帧图像和下一帧图像的之间的旋转矩阵和平移矩阵;根据上一帧图像和下一帧图像之间的旋转矩阵和平移矩阵,以及上一帧图像的特征点集的三维空间坐标和深度值,获得下一帧图像特征点集的三维空间坐标;根据下一帧图像的特征点集、下一帧图像特征点集的三维空间坐标,确定拍摄下一帧图像时单目相机的位姿;根据拍摄下一帧图像时单目相机的位姿,获得单目相机在拍摄下一帧图像时车辆的定位数据。例如,根据接收的视频数据,按照预置规则获取视频数据中的第一帧图像(时刻k的图像)和第二帧图像(时刻k+1的图像)后的按时间排序的时刻k+2、时刻k+3的图像。根据时刻k的图像(第一帧图像)和时刻k+1的图像(第二帧图像)的第一特征点集中的特征点,确定时刻k+1的图像和时刻k+2的图像的特征点集;根据时刻k+1的图像和时刻k+2的图像的特征点集,采用对极约束计算时刻k+1的图像和时刻k+2的图像之间的旋转矩阵和平移矩阵;根据时刻k+1的图像和时刻k+2的图像之间的旋转矩阵和平移矩阵,时刻k的图像和时刻k+1的图像的第一特征点集的深度值,确定时刻k+1的图像和时刻k+2的图像的特征点集的深度值;根据时刻k的图像和时刻k+1的图像的第一特征点集的三维空间坐标、时刻k+1的图像和时刻k+2的图像的特征点集的深度值,以及时刻k+1的图像和时刻k+2的图像之间的旋转矩阵和平移矩阵,获得时刻k+1的图像和时刻k+2的图像的特征点集的三维空间坐标;根据时刻k+1的图像和时刻k+2的图像的特征点集、时刻k+1的图像和时刻k+2的图像的特征点集的三维空间坐标,确定拍摄时刻k+2的图像时单目相机的位姿;根据拍摄时刻k+2的图像时单目相机的位姿,获得单目相机在拍摄时刻k+2的图像时车辆的定位数据。根据时刻k+1的图像和时刻k+2的图像的特征点集中的特征点,确定时刻k+2的图像和时刻k+3的图像的特征点集,时刻k+2的图像和时刻k+3的图像的特征点集的特征点包括时刻k+1的图像和时刻k+2的图像的特征点集中时刻k+2的图像的特征点;根据时刻k+2的图像和时刻k+3的图像的特征点集,采用对极约束计算时刻k+2的图像和时刻k+3的图像之间的旋转矩阵和平移矩阵;根据时刻k+2的图像和时刻k+3的图像之间的旋转矩阵和平移矩阵、时刻k+1的图像和时刻k+2的图像的特征点集的深度值,获得时刻k+2的图像和时刻k+3的图像的特征点集的深度值;根据时刻k+1的图像和时刻k+2的图像的特征点集的三维空间坐标、时刻k+2的图像和时刻k+3的图像的特征点集的深度值,以及时刻k+2的图像和时刻k+3的图像之间的旋转矩阵和平移矩阵,获得时刻k+2的图像和时刻k+3的图像的特征点集的三维空间坐标;根据时刻k+2的图像和时刻k+3的图像的特征点集、时刻k+2的图像和时刻k+3的图像的特征点集的三维空间坐标,确定拍摄时刻k+3的图像时单目相机的位姿;根据拍摄时刻k+3的图像时单目相机的位姿,获得单目相机在拍摄时刻k+3的图像时车辆的定位数据。按照上述过程往后迭代,一直到视频数据中最后一帧图像,以得到单目相机拍摄最后一帧图像时车辆的定位数据。

本申请实施例示出的基于视觉slam的车辆定位方法,能够利用单目相机拍摄的视频数据,持续获得单目相机在拍摄视频数据中各帧图像时车辆的高精度的定位数据;同时,车载智能设备将单目相机拍摄的视频数据上传服务器端,利用拥有更多资源的服务器对视频数据进行处理,获得车辆的定位数据,能够降低车辆定位对车载智能设备的资源消耗,提高车辆定位的效率,实现利用单目相机拍摄的视频数据进行车辆的网络定位。

进一步的,本申请实施例示出的基于视觉slam的车辆定位方法,利用视频数据中时间序列上的相邻两帧图像之间的车辆的移动距离对单目视觉slam进行尺度化,恢复特征点集的深度值,使特征点集的三维空间坐标与单目相机拍摄视频时的位姿存在一定的比例关系,能够得到精度更高的单目相机拍摄视频数据时的单目相机的位姿,提高了车辆网络定位的精度。

实施例二:

图3是本申请另一实施例的基于视觉slam的车辆定位方法的流程示意图。

参见图3,一种基于视觉slam的车辆定位方法,应用于车载智能设备,包括:

在步骤301中,上传车辆行驶过程中单目相机拍摄的视频数据至云服务器。

在一具体实施方式中,车辆装设有单目相机,单目相机可以设置于车辆的前挡风玻璃处或者设置于车辆的后视镜处。在车辆行驶过程中,可以利用单目相机拍摄车辆前方的视频数据。车辆的至少一个车载智能设备获取并上传车辆行驶过程单目相机拍摄的视频数据。云服务器接收上传的车辆行驶过程单目相机拍摄的视频数据。

在步骤302中,接收云服务器下发的根据视频数据获得的车辆的定位数据,云服务器根据视频数据获得车辆的定位数据包括:云服务器确定视频数据中时间序列上的相邻两帧图像之间的第一特征点集,根据第一特征点集中的特征点确定相邻两帧图像的下一帧图像的特征点集,根据下一帧图像的特征点集、第一特征点集的三维空间坐标,确定拍摄下一帧图像时单目相机的位姿,根据拍摄下一帧图像时单目相机的位姿,获得单目相机在拍下一帧图像时车辆的定位数据。

在一实施例中,车辆的至少一个车载智能设备接收云服务器下发的根据视频数据获得的车辆的定位数据,云服务器根据视频数据获得车辆的定位数据的详细描述可以参考图1和图2的描述,此处不再赘述。

与前述应用功能实现方法实施例相对应,本申请还提供了一种车载智能设备、云服务器、电子设备及相应的实施例。

实施例三:

图4是本申请一实施例的车载智能设备的结构示意图。

参见图4,一种车载智能设备,装设于车辆,该车载智能设备40包括上传单元401、定位接收单元402。

上传单元401,用于上传车辆行驶过程中单目相机拍摄的视频数据至云服务器。

在一具体实施方式中,车辆装设有单目相机,单目相机可以设置于车辆的前挡风玻璃处或者设置于车辆的后视镜处。在车辆行驶过程中,可以利用单目相机拍摄车辆前方的视频数据。车辆上的上传单元401获取并上传车辆行驶过程单目相机拍摄的视频数据。云服务器接收上传单元401上传的车辆行驶过程单目相机拍摄的视频数据。

定位接收单元402,用于接收云服务器下发的根据上传单元401上传的视频数据获得的车辆的定位数据,云服务器根据视频数据获得车辆的定位数据包括:云服务器确定视频数据中时间序列上的相邻两帧图像之间的第一特征点集,根据第一特征点集中的特征点确定相邻两帧图像的下一帧图像的特征点集,根据下一帧图像的特征点集、第一特征点集的三维空间坐标,确定拍摄下一帧图像时单目相机的位姿,根据拍摄下一帧图像时单目相机的位姿,获得单目相机在拍下一帧图像时车辆的定位数据。

在一实施例中,车辆上的定位接收单元402接收云服务器下发的根据视频数据获得的车辆的定位数据,云服务器根据视频数据获得车辆的定位数据的详细描述可以参考图5的描述,此处不再赘述。

实施例四:

图5是本申请一实施例的云服务器的结构示意图。

参见图5,一种云服务器,该云服务器50包括视频接收单元501、图像处理单元502、坐标单元503、位姿确定单元504、定位单元505、下发单元506。

视频接收单元501,用于接收车载智能设备上传的车辆行驶过程中单目相机拍摄的视频数据。

在一具体实施方式中,车辆装设有单目相机,单目相机可以设置于车辆的前挡风玻璃处或者设置于车辆的后视镜处。在车辆行驶过程中,可以利用单目相机拍摄车辆前方的视频数据。车辆的至少一个车载智能设备获取并上传车辆行驶过程单目相机拍摄的视频数据,视频接收单元501接收车辆至少一个车载智能设备获取并上传的车辆行驶过程单目相机拍摄的视频数据。

在一具体实施方式中,车载智能设备可以是包括单目相机的行车记录仪。本申请实施例的单目相机可以是行车记录仪的单目相机,也可以是位于车辆上的其他拍摄设备的单目相机,如手机摄像头的单目相机。

在一具体实施方式中,车载智能设备还包括定位系统,定位系统可以包括但不限于gps、北斗卫星定位系统、rtk(realtimekinematic,实时动态)定位系统等其中的至少一种。

在一具体实施方式中,可以将单目相机设置于车辆内的车载智能设备内,也可以设置于车载智能设备外,但都与车载智能设备之间可以进行通信交互。车载智能设备获取车辆行驶过程单目相机拍摄的视频数据,并将视频数据上传。

在一具体实施方式中,可以将定位系统设置于车辆内的车载智能设备内,也可以设置于车载智能设备外,但都与车载智能设备之间可以进行通信交互。车载智能设备可以获取定位系统信号良好时的定位数据,将定位数据上传。

可以理解的,车载智能设备具有与车辆内单目相机、定位系统进行通信交互的能力,也具有与车辆外部其它设备进行通信交互的能力。

图像处理单元502,用于确定视频接收单元501接收的视频数据中时间序列上的相邻两帧图像之间的第一特征点集。

在一实施例中,图像处理单元502可以根据视频接收单元501接收的视频数据,按照预置规则获取视频数据中的连续图像;识别连续图像中时间序列上的相邻两帧图像。相邻两帧图像可以是按时间排序初始时刻的第一帧图像和第二帧图像的特征点;将第一帧图像和第二帧图像的特征点进行匹配,第一特征点集包括第一帧图像和第二帧图像中匹配成功的特征点。

在一种具体实施方式中,图像处理单元502为了获得图像,需要对接收的视频数据进行抽帧。通常,视频数据中图像的帧率为每秒30帧,图像处理单元502可以按照预置规则对视频进行抽帧,从而获得图像。图像处理单元502获得的图像可以为包括单目相机时间序列先后采集到的连续图像。具体的,图像处理单元502可以按照预置的时间间隔对视频数据进行抽帧后得到按时间先后顺序排列的连续图像,例如,可以得到时刻k、时刻k+1、时刻k+2、……的图像。

在一实施例中,图像上的特征点可以用来标识图像上的目标物体,图像处理单元502可以将图像上灰度值发生剧烈变化的点或在图像边缘上曲率较大的点(如两个边缘的交点)作为图像的特征点。为了后续更好的进行图像匹配,图像处理单元502可以将图像中不会随着相机的移动、旋转或者光照的变化而变化的稳定的点选取为特征点。图像处理单元502可以选择识别固定的建筑物(例如路边的房屋)、固定的树木或广告牌等中的特征点,而不选择天空或地面上的特征点。

在一种具体实施方式中,图像处理单元502抽取的上述第一帧图像和第二帧图像中可以包含有不同视角下的同一目标物体(例如建筑物、广告牌、路牌等等)。图像处理单元502通过对图像上的特征点进行匹配,可以将不同图像上的同一目标物体的某些特征点匹配成功。其中,第一特征点集为上述第一帧图像和第二帧图像中每一帧图像上均匹配成功的特征点的集合。例如,当第一帧图像和第二帧图像分别为时刻k、k+1的两帧图像时,第一特征点集为时刻k、k+1的两帧图像进行匹配并匹配成功的特征点的集合。

在一种具体实施方式中,图像处理单元502可以利用包括但不限于brisk算法提取上述连续图像中每一帧图像的特征点,并对每一帧图像的特征点进行描述,将描述后的特征点作为该帧图像的特征点;将上述第一帧图像和第二帧图像描述后的特征点进行匹配,将匹配距离小于预设值的特征点确定为匹配成功的第一特征点集。

坐标单元503,用于获得图像处理单元502确定的第一特征点集的三维空间坐标。

在一实施例中,坐标单元503可以根据图像处理单元502确定的相邻两帧图像的第一特征点集,采用对极约束计算相邻两帧图像之间的旋转矩阵和平移矩阵;根据相邻两帧图像之间的旋转矩阵和平移矩阵、拍摄相邻两帧图像时单目相机的三维空间坐标、单目相机在拍摄相邻两帧图像之间的移动距离,利用三角化方法获得第一特征点集的深度值;根据相邻两帧图像之间的旋转矩阵和平移矩阵、拍摄相邻两帧图像时单目相机的三维空间坐标、第一特征点集的深度值,获得第一特征点集的三维空间坐标。

在一种具体实施方式中,坐标单元503根据图像处理单元502确定的相邻两帧图像中匹配成功的第一特征点集,可以利用对极几何计算出单目相机在拍摄相邻两帧图像时的位姿变化,即旋转矩阵和平移矩阵。在相邻两帧图像为时刻k的第一帧图像和时刻k+1的第二帧图像时,对时刻k、k+1的两帧图像上的特征点进行匹配,得出8个匹配点,即第一特征点集中包含有8点对分别在时刻k、k+1的两帧图像上的特征点。坐标单元503根据这8点对特征点可以计算出时刻k+1的图像相对于时刻k的图像的旋转矩阵和平移矩阵。

在一种具体实施方式中,图2是本申请实施例示出的旋转矩阵和平移矩阵算法原理图。参见图2,在不同的位置拍摄同一个目标物体的两帧图像,图像中目标物体对应的像素点满足对极约束关系。其中p为世界坐标系中真实物体,例如建筑物上的某一点。o1、o2分别为拍摄时刻k的图像和时刻k+1的图像时单目相机的光心位置。i1、i2分别代表时刻k的图像和时刻k+1的图像。p1、p2分别为p点在时刻k的图像和时刻k+1的图像上的投影,即时刻k、k+1的两帧图像中匹配成功的一对特征点。o1p在时刻k+1的图像上的投影为e2p2,记为l2,o2p在时刻k的图像上的投影为e1p1,记为l1,其中,l1、l2称为极线,e1、e2称为极点。根据对极约束:

p1·(t×rp2)=0

得到:

其中:

e=t^r

e为本质矩阵,是一个3×3的矩阵,内有9个未知数,t为平移矩阵,r为旋转矩阵,符号∧是向量到反对称矩阵的转换符,t为矩阵的转置。

坐标单元503利用8点法求得e:

其中,(u1,v1,1)为p1的像素坐标的归一化坐标、(u2,v2,1)为p2的像素坐标的归一化坐标。

得到:

(u1u2,u1v2,u1,v1u2,v1v2,u2,v2,1)·e=0

其中:

e=(e1,e2,e3,e4,e5,e6,e7,e8,e9)t

对于其它的点对也使用同样的表示方法,这样将得到的所有方程放到一起,得到一个线性方程组,(ui,vi)表示第i个匹配的点对。

坐标单元503通过上述的线性方程组求得本质矩阵e。

坐标单元503对e奇异值分解,得到4组t、r值,所得4组结果中只有一个深度值为正,坐标单元503确定深度值为正的t、r值的组合即为时刻k+1的图像相对于时刻k的图像的平移矩阵和旋转矩阵。

可以理解的是,上述过程是以八点法为例进行说明的,但并不局限于此。当时刻k、k+1的两帧图像上匹配的特征点不止八对时,坐标单元503可以利用对极约束构建最小二乘法来求得两帧之间的平移矩阵和旋转矩阵,其中最小二乘法为较为成熟的现有技术,这里将不再叙述其具体实现过程。

在一种具体实施方式中,单目相机设置于车辆上,坐标单元503可以将接收的定位系统测得的拍摄第一帧图像和第二帧图像时的定位数据作为单目相机拍摄第一帧图像和第二帧图像时的定位数据。因此坐标单元503可以将根据接收的定位系统测得的拍摄第一帧图像和第二帧图像时的定位数据,获得的拍摄第一帧图像和第二帧图像时车辆的三维空间坐标作为单目相机拍摄第一帧图像和第二帧图像时的三维空间坐标,车辆在第一帧图像和第二帧图像之间的移动距离作为单目相机在拍摄第一帧图像和第二帧图像之间的移动距离。

在一种具体实施方式中,车载智能设备获得定位系统例如gps测得的拍摄第一帧图像和第二帧图像时车辆的定位数据,车载智能设备将定位数据上传。gps测得的车辆的定位数据包括车辆的经度信息、纬度信息、东向速度信息和北向速度信息,坐标单元503可以根据gps测得的定位数据获得车辆在第一帧图像和第二帧图像时的位置信息、速度信息、姿态信息;可以根据车辆在第一帧图像和第二帧图像时的位置信息、速度信息、姿态信息,以及单目相机拍摄第一帧图像和第二帧图像之间的时间,获得车辆在第一帧图像和第二帧图像之间的移动距离。由于根据gps测得的定位数据获得的车辆的位置信息只包括二维坐标的经度信息、纬度信息,而本申请的实施例需要获得的是第一特征点集的三维空间坐标,因此,坐标单元503可以根据单目相机相对地面的预设位置关系例如高度调整根据gps测得的定位数据获得的车辆的位置信息,获得拍摄第一帧图像和第二帧图像时车辆的三维空间坐标。

在一种具体实施方式中,坐标单元503根据第一帧图像和第二帧图像之间的旋转矩阵和平移矩阵,拍摄第一帧图像和第二帧图像时车辆的三维空间坐标、拍摄第一帧图像和第二帧图像之间的车辆的移动距离、以及单目相机的内参数,将拍摄第一帧图像和第二帧图像之间的车辆的移动距离作为单目相机拍摄第一帧图像和第二帧图像之间的平移量,利用三角化获得第一帧图像和第二帧图像的第一特征点集的深度值。因为以拍摄第一帧图像和第二帧图像之间的车辆的移动距离作为单目相机拍摄第一帧图像和第二帧图像之间的平移量,利用三角化计算时的平移量是真实的单目相机移动量,因此坐标单元503利用三角化能够获得包含真实尺度的特征点深度值。

在一种具体实施方式中,单目相机的内参数在单目相机使用过程中不会发生变化,可以根据单目相机的技术手册或者说明书获得,也可以根据单目棋盘格张正友标定法对单目相机进行标定,获得单目相机的内参数。具体获得单目相机的内参数的方法可以参照现有技术,本申请实施例不在赘述。

在一种具体实施方式中,在第一帧图像和第二帧图像分别为时刻k、k+1的两帧图像时,坐标单元503可以根据时刻k、时刻k+1两帧图像之间的旋转矩阵和平移矩阵、拍摄时刻k、时刻k+1两帧图像时车辆的三维空间坐标、以及时刻k、时刻k+1两帧图像的第一特征点集的深度值,获得第一特征点集的三维空间坐标。

图像处理单元502,还用于根据第一特征点集中的特征点确定相邻两帧图像的下一帧图像的特征点集。

在一实施例中,图像处理单元502根据视频接收单元501持续接收的视频数据,按照预置规则获取视频数据中的下一帧图像;识别下一帧图像的特征点;将下一帧图像和与下一帧图像按时间排序的上一帧图像的特征点进行匹配,确定下一帧图像和上一帧图像中匹配成功的下一帧图像的特征点集,这里的上一帧图像的特征点是上一帧图像特征点集中的特征点,也就是说下一帧图像的特征点和上一帧图像的特征点集进行匹配,匹配成功的特征点为下一帧图像的特征点集。例如,下一帧图像是按时间排序的时刻k+2的图像,与下一帧图像按时间排序的上一帧图像是步骤102中时刻k+1的第二帧图像,上一帧图像的上一帧图像是步骤102中时刻k的第一帧图像,图像处理单元502将时刻k+1、k+2的图像的特征点进行匹配,确定时刻k+1、k+2两帧图像的特征点集为下一帧图像的特征点集,其中,时刻k+1的图像的特征点是时刻k+1与时刻k的图像的特征点集中的特征点,即图像处理单元502将时刻k+2的图像的特征点与时刻k+1与时刻k的图像的特征点集中的特征点进行匹配,匹配成功的特征点构成下一帧图像(时刻k+2的图像)的特征点集。图像处理单元502确定两帧图像的特征点集的描述可以参照确定第一帧图像和第二帧图像的第一特征点集的描述,此处不在赘述。

位姿确定单元504,用于根据图像处理单元502确定的下一帧图像的特征点集、第一特征点集的三维空间坐标,确定拍摄下一帧图像时单目相机的位姿。

在一实施例中,坐标单元503可以根据图像处理单元502确定的下一帧图像的特征点集,采用对极约束计算下一帧图像和与下一帧图像时间序列上相邻的上一帧图像之间的旋转矩阵和平移矩阵;根据上一帧图像和下一帧图像之间的旋转矩阵和平移矩阵、第一特征点集的深度值,确定下一帧图像的特征点集的深度值;根据上一帧图像和下一帧图像之间的旋转矩阵和平移矩阵、下一帧图像的特征点集的深度值,以及第一特征点集的三维空间坐标,获得下一帧图像的特征点集的三维空间坐标。位姿确定单元504根据图像处理单元502确定的下一帧图像的特征点集、坐标单元503获得的下一帧图像的特征点集的三维空间坐标,确定拍摄下一帧图像时单目相机的位姿。

在一种具体实施方式中,坐标单元503可以根据下一帧图像和与下一帧图像按时间排序的上一帧图像的下一帧图像的特征点集,采用对极约束计算上一帧图像和下一帧图像之间的旋转矩阵和平移矩阵。坐标单元503获得上一帧图像和下一帧图像之间的旋转矩阵和平移矩阵的描述可以参照坐标单元503获得第一帧图像和第二帧图像的旋转矩阵和平移矩阵的描述,此处不在赘述。

在一种具体实施方式中,坐标单元503在获得下一帧图像的特征点集的三维空间坐标时,以第一特征点集的包含深度值的三维空间坐标为初始坐标,可以根据上一帧图像和下一帧图像之间的旋转矩阵和平移矩阵、第一特征点集的深度值,确定下一帧图像的特征点集的深度值;根据上一帧图像和下一帧图像之间的旋转矩阵和平移矩阵、下一帧图像的特征点集的深度值,以及第一特征点集的三维空间坐标,获得下一帧图像的特征点集的三维空间坐标。本申请的实施例仅需在开始时利用现有定位系统进行定位,后续将不再需要,而是坐标单元503利用连续图像的前一时刻的图像和当前时刻的图像(上一帧图像)的特征点集的深度值和三维空间坐标,获得当前时刻(上一帧图像)和后一时刻的图像(下一帧图像)的特征点集的深度值和三维空间坐标;位姿确定单元504根据当前时刻和后一时刻的图像的特征点集的三维空间坐标,获得后一时刻拍摄图像时单目相机的位姿;定位单元505根据后一时刻拍摄图像时单目相机的位姿获得车辆的定位数据。坐标单元503在获得第一帧图像和第二帧图像的第一特征点集的三维空间坐标时,以拍摄第一帧图像和第二帧图像之间的车辆的移动距离作为单目相机拍摄第一帧图像和第二帧图像之间的平移量,利用三角化计算时的平移量是真实的单目相机移动量,利用三角化能够获得包含真实尺度的特征点深度值,获得的第一特征点集的三维空间坐标包含真实尺度,后续获得的当前时刻和后一时刻的图像的特征点集的三维空间坐标,以第一特征点集的包含深度值的三维空间坐标为初始坐标,因此,坐标单元503后续获得的当前时刻和后一时刻的图像的特征点集的三维空间坐标也包含真实尺度。

在一种具体实施方式中,位姿确定单元504可以根据下一帧图像的特征点集、下一帧图像的特征点集的三维空间坐标,采用pnp(perspective-n-point)优化方法来计算出拍摄下一帧图像时单目相机的位姿。单目相机的位姿可以包括单目相机的三维空间坐标。

定位单元505,用于根据位姿确定单元504获得的拍摄下一帧图像时单目相机的位姿,确定单目相机在拍摄下一帧图像时车辆的定位数据。

在一实施例中,由于单目相机设置于车辆上,因此,定位单元505可以将位姿确定单元504获得的拍摄某帧图像时单目相机的位姿作为车辆当时的位姿,从而可以得到拍摄某帧图像时车辆的定位数据,即实现了车辆的网络定位。当然,定位单元505也可以根据在单目相机与车辆之间预设的位置关系对位姿确定单元504获得的单目相机的位姿进行转换,确定车辆的定位数据。车辆的定位数据可以包括车辆的纬度信息、经度信息。

下发单元506,用于向车载智能设备下发定位单元505获得的车辆的定位数据。

在一实施例中,下发单元506可以向车辆的至少一个车载智能设备下发定位单元505获得的车辆的定位数据,可以为车载智能设备例如导航仪在定位导航时提供实时精准的车辆的定位数据。

在一种具体实施方式中,云服务器对接收的视频数据进行迭代处理,获得单目相机在拍摄视频数据中各帧图像时车辆的定位数据。图像处理单元502确定视频接收单元501接收的视频数据中时间序列上的相邻的上一帧图像和下一帧图像的特征点集;坐标单元503根据图像处理单元502确定的上一帧图像和下一帧图像的特征点集,采用对极约束计算上一帧图像和下一帧图像的之间的旋转矩阵和平移矩阵;根据上一帧图像和下一帧图像之间的旋转矩阵和平移矩阵,以及坐标单元503获得的上一帧图像的特征点集的三维空间坐标和深度值,获得下一帧图像特征点集的三维空间坐标;位姿确定单元504根据图像处理单元502确定的下一帧图像的特征点集、坐标单元503获得的下一帧图像特征点集的三维空间坐标,确定拍摄下一帧图像时单目相机的位姿;定位单元505根据位姿确定单元504确定的拍摄下一帧图像时单目相机的位姿,获得单目相机在拍摄下一帧图像时车辆的定位数据。例如,根据视频接收单元501接收的视频数据,图像处理单元502按照预置规则获取视频数据中的第一帧图像(时刻k的图像)和第二帧图像(时刻k+1的图像)后的按时间排序的时刻k+2、时刻k+3的图像。根据时刻k的图像(第一帧图像)和时刻k+1的图像(第二帧图像)的第一特征点集中的特征点,图像处理单元502确定时刻k+1的图像和时刻k+2的图像的特征点集。坐标单元503根据图像处理单元502确定的时刻k+1的图像和时刻k+2的图像的特征点集,采用对极约束计算时刻k+1的图像和时刻k+2的图像之间的旋转矩阵和平移矩阵;根据时刻k+1的图像和时刻k+2的图像之间的旋转矩阵和平移矩阵,时刻k的图像和时刻k+1的图像的第一特征点集的深度值,坐标单元503确定时刻k+1的图像和时刻k+2的图像的特征点集的深度值;根据坐标单元503获得的时刻k的图像和时刻k+1的图像的第一特征点集的三维空间坐标、时刻k+1的图像和时刻k+2的图像的特征点集的深度值,以及时刻k+1的图像和时刻k+2的图像之间的旋转矩阵和平移矩阵,获得时刻k+1的图像和时刻k+2的图像的特征点集的三维空间坐标。位姿确定单元504根据图像处理单元502确定的时刻k+1的图像和时刻k+2的图像的特征点集、坐标单元503获得的时刻k+1的图像和时刻k+2的图像的特征点集的三维空间坐标,确定拍摄时刻k+2的图像时单目相机的位姿。定位单元505根据位姿确定单元504确定的拍摄时刻k+2的图像时单目相机的位姿,获得单目相机在拍摄时刻k+2的图像时车辆的定位数据。图像处理单元502根据时刻k+1的图像和时刻k+2的图像的特征点集中的特征点,确定时刻k+2的图像和时刻k+3的图像的特征点集,时刻k+2的图像和时刻k+3的图像的特征点集的特征点包括时刻k+1的图像和时刻k+2的图像的特征点集中时刻k+2的图像的特征点。坐标单元503根据图像处理单元502确定的时刻k+2的图像和时刻k+3的图像的特征点集,采用对极约束计算时刻k+2的图像和时刻k+3的图像之间的旋转矩阵和平移矩阵;根据时刻k+2的图像和时刻k+3的图像之间的旋转矩阵和平移矩阵、时刻k+1的图像和时刻k+2的图像的特征点集的深度值,坐标单元503获得时刻k+2的图像和时刻k+3的图像的特征点集的深度值;根据坐标单元503获得的时刻k+1的图像和时刻k+2的图像的特征点集的三维空间坐标、时刻k+2的图像和时刻k+3的图像的特征点集的深度值,以及时刻k+2的图像和时刻k+3的图像之间的旋转矩阵和平移矩阵,获得时刻k+2的图像和时刻k+3的图像的特征点集的三维空间坐标。位姿确定单元504根据图像处理单元502确定的时刻k+2的图像和时刻k+3的图像的特征点集、坐标单元503获得的时刻k+2的图像和时刻k+3的图像的特征点集的三维空间坐标,确定拍摄时刻k+3的图像时单目相机的位姿。定位单元505根据位姿确定单元504确定的拍摄时刻k+3的图像时单目相机的位姿,获得单目相机在拍摄时刻k+3的图像时车辆的定位数据。云服务器按照上述过程往后迭代,一直到视频数据中最后一帧图像,以得到单目相机拍摄最后一帧图像时车辆的定位数据。

本申请实施例示出的技术方案,能够利用单目相机拍摄的视频数据,持续获得单目相机在拍摄视频数据中各帧图像时车辆的高精度的定位数据;同时,车载智能设备将单目相机拍摄的视频数据上传服务器端,利用拥有更多资源的服务器对视频数据进行处理,获得车辆的定位数据,能够降低车辆定位对车载智能设备的资源消耗,提高车辆定位的效率,实现利用单目相机拍摄的视频数据进行车辆的网络定位。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不再做详细阐述说明。

图6是本申请实施例示出的电子设备的结构示意图。

参见图6,电子设备60包括存储器601和处理器602。

处理器602可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器601可以包括各种类型的存储单元,例如系统内存、只读存储器(rom),和永久存储装置。其中,rom可以存储处理器602或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器601可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(dram,sram,sdram,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器601可以包括可读和/或写的可移除的存储设备,例如激光唱片(cd)、只读数字多功能光盘(例如dvd-rom,双层dvd-rom)、只读蓝光光盘、超密度光盘、闪存卡(例如sd卡、minsd卡、micro-sd卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。

存储器601上存储有可执行代码,当可执行代码被处理器602处理时,可以使处理器602执行上文述及的方法中的部分或全部。

上文中已经参考附图详细描述了本申请的方案。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。本领域技术人员也应该知悉,说明书中所涉及的动作和模块并不一定是本申请所必须的。另外,可以理解,本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减,本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。

此外,根据本申请的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本申请的上述方法中部分或全部步骤的计算机程序代码指令。

或者,本申请还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或电子设备、服务器等)的处理器执行时,使所述处理器执行根据本申请的上述方法的各个步骤的部分或全部。

本领域技术人员还将明白的是,结合这里的申请所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。

附图中的流程图和框图显示了根据本申请的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1