一种基于单目行车记录仪实现SLAM定位的方法及相关装置与流程

文档序号:29733180发布日期:2022-04-21 12:34阅读:184来源:国知局
一种基于单目行车记录仪实现SLAM定位的方法及相关装置与流程
一种基于单目行车记录仪实现slam定位的方法及相关装置
技术领域
1.本技术涉及导航技术领域,尤其涉及一种基于单目行车记录仪实现slam定位的方法及相关装置。


背景技术:

2.slam(simultaneous localization and mapping,即时定位与地图构建)主要用于解决移动设备在未知环境中运行时进行定位导航与地图构建的问题。要进行定位和绘图,首先需要采集数据,目前大多数是采用双目摄像头或激光传感器来进行数据采集。然而,对于仅具备单目摄像头的设备,如单目的行车记录仪,需要进行即时定位导航与地图构建时,则无法用常规方法来实现。
3.此外,行车记录仪采集到的图片一般会出现道路两边特征比较多,而天空和路面上的特征比较少的情况。这样在提取图片上的特征点时,就容易出现特征点集中在局部的现象,而其他地方的特征点会被忽略,从而不利于地图构建。因此,如何利用单目行车记录仪采集的视频图像来有效的实现即时定位与地图构建是一个非常值得研究的技术问题。


技术实现要素:

4.本技术提供一种基于单目行车记录仪实现slam定位的方法及相关装置,能够利用单目视觉下的图片实现车辆的即时定位,以便后续通过不断更新定位来获得车辆的移动轨迹;以及对图片进行分区后再提取特征能够使特征分布均匀,有利于三维空间的构建。
5.本技术第一方面提供一种基于单目行车记录仪实现slam定位的方法,包括:获取所述单目行车记录仪在车辆行驶过程中采集的至少两帧图片;对所述至少两帧图片中的每一帧图片进行分区处理,得到分区后的每一帧图片;从分区后的每一帧图片中的每个区域提取预设个数的特征点,并将每个区域提取的特征点的集合作为该帧图片的特征点;将所述至少两帧图片的特征点进行匹配,得到所述至少两帧图片中匹配成功的第一特征点集;构建所述第一特征点集的三维空间坐标;获取所述单目行车记录仪采集的下一帧图片,并对所述下一帧图片进行分区处理后提取所述下一帧图片的特征点;根据所述下一帧图片的特征点与所述第一特征点集的三维空间坐标,确定拍摄所述下一帧图片时所述单目行车记录仪的位姿;根据拍摄所述下一帧图片时所述单目行车记录仪的位姿确定所述车辆的位置。
6.作为一种可选的实施方式,在本技术第一方面中,所述对所述至少两帧图片中的每一帧图片进行分区处理,得到分区后的每一帧图片,包括:按照预设规则对所述至少两帧图片中的每一帧图片进行分区处理,得到分区后的每一帧图片;
或者,获取所述至少两帧图片中的每一帧图片的图片信息,根据每一帧图片的图片信息确定每一帧图片的分区策略,按照每一帧图片的分区策略对每一帧图片进行分区处理,得到分区后的每一帧图片,其中,所述图片信息包括图片的像素值、灰度值以及rgb值中的至少一种。
7.作为一种可选的实施方式,在本技术第一方面中,所述从分区后的每一帧图片中的每个区域提取预设个数的特征点,并将每个区域提取的特征点的集合作为该帧图片的特征点,包括:利用brisk算子从分区后的每一帧图片中的每个区域提取预设个数的特征点,并对每个区域提取的特征点进行描述,将描述后的每个区域的特征点的集合作为该帧图片的特征点;所述将所述至少两帧图片的特征点进行匹配,得到所述至少两帧图片中匹配成功的第一特征点集,包括:将所述至少两帧图片描述后的特征点进行匹配,将匹配距离小于预设值的特征点确定为匹配成功的第一特征点集。
8.作为一种可选的实施方式,在本技术第一方面中,所述构建所述第一特征点集的三维空间坐标,包括:利用所述第一特征点集,采用对极约束计算所述至少两帧图片之间的旋转矩阵和平移矩阵;根据所述至少两帧图片之间的旋转矩阵和平移矩阵,生成所述第一特征点集的三维空间坐标。
9.作为一种可选的实施方式,在本技术第一方面中,所述方法还包括:对所述单目行车记录仪后续采集的各帧图片进行迭代处理,获得拍摄所述各帧图片时所述单目行车记录仪的位姿;根据拍摄所述各帧图片时所述单目行车记录仪的位姿确定所述车辆的移动轨迹。
10.作为一种可选的实施方式,在本技术第一方面中,所述根据所述下一帧图片的特征点与所述第一特征点集的三维空间坐标,确定拍摄所述下一帧图片时所述单目行车记录仪的位姿,包括:将所述下一帧图片与所述至少两帧图片中的每一帧图片进行匹配,分别得到所述下一帧图片与每一帧图片匹配成功的特征点集;根据所述下一帧图片与每一帧图片匹配成功的特征点集,将所述下一帧图片中同时与所述至少两帧图片中的至少预设数量帧图片匹配成功的特征点确定为第二特征点集;根据所述第一特征点集的三维空间坐标确定所述第二特征点集的三维空间坐标;利用所述第二特征点集的三维空间坐标以及所述第二特征点集中位于所述下一帧图片上的特征点的位置,确定拍摄所述下一帧图片时所述单目行车记录仪的位姿。
11.作为一种可选的实施方式,在本技术第一方面中,所述方法还包括:利用所述下一帧图片与每一帧图片匹配成功的特征点集中除去所述第二特征点集后的剩余特征点集,采用三角化计算所述剩余特征点集的三维空间坐标;利用所述剩余特征点集的三维空间坐标调整所述第一特征点集的三维空间坐标和所述第二特征点集的三维空间坐标。
12.本技术第二方面提供一种基于单目行车记录仪实现slam定位的装置,包括:获取单元,用于获取所述单目行车记录仪在车辆行驶过程中采集的至少两帧图片;分区单元,用于对所述至少两帧图片中的每一帧图片进行分区处理,得到分区后的每一帧图片;提取单元,用于从分区后的每一帧图片中的每个区域提取预设个数的特征点,并将每个区域提取的特征点的集合作为该帧图片的特征点;匹配单元,用于将所述至少两帧图片的特征点进行匹配,得到所述至少两帧图片中匹配成功的第一特征点集;构建单元,用于构建所述第一特征点集的三维空间坐标;所述获取单元,还用于获取所述单目行车记录仪采集的下一帧图片;所述分区单元,还用于对所述下一帧图片进行分区处理;所述提取单元,还用于提取分区后的所述下一帧图片的特征点;确定单元,用于根据所述下一帧图片的特征点与所述第一特征点集的三维空间坐标,确定拍摄所述下一帧图片时所述单目行车记录仪的位姿;所述确定单元,还用于根据拍摄所述下一帧图片时所述单目行车记录仪的位姿确定所述车辆的位置。
13.本技术第三方面提供一种基于单目行车记录仪实现slam定位的装置,包括:处理器;以及存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上所述的方法。
14.本技术第四方面提供一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上所述的方法。
15.本技术提供的技术方案,可以获取单目行车记录仪在车辆行驶中先后采集的两帧或两帧以上的图片,分别对每一帧图片进行分区处理,得到分区后的各帧图片,并从分区后的各帧图片的每个区域中提取一定数量的特征点,将每个区域提取的特征点的集合看作为该帧图片的特征点,进而对各帧图片的特征点进行匹配,得到匹配成功的第一特征点集,以利用第一特征点集构建三维空间坐标;进一步地,可以获取单目行车记录仪采集的下一帧图片,并按照上述方法对该下一帧图片进行分区处理后提取特征点,根据该下一帧图片的特征点与第一特征点集的三维空间坐标来确定出拍摄该下一帧图片时单目行车记录仪的位姿,进而可以得到拍摄该下一帧图片时车辆的位置。本技术的技术方案,利用单目视觉下的图片实现车辆的即时定位,以便后续采集的图片通过不断更新定位来获得车辆的移动轨迹;以及对图片进行分区后再提取特征能够使特征分布均匀,有利于三维空间的建立,进而有助于提高三维空间的构建精度。
16.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
17.通过结合附图对本技术示例性实施方式进行更详细的描述,本技术的上述以及其它目的、特征和优势将变得更加明显,其中,在本技术示例性实施方式中,相同的参考标号
通常代表相同部件。
18.图1是本技术实施例示出的一种基于单目行车记录仪实现slam定位的方法的流程示意图;图2a是本技术实施例示出的单目行车记录仪采集的图片示意图;图2b是本技术实施例示出的平移矩阵和旋转矩阵算法原理图;图3是本技术实施例示出的一种基于单目行车记录仪实现slam定位获得的车辆移动轨迹的示意图;图4是本技术实施例示出的一种基于单目行车记录仪实现slam定位的装置的结构示意图;图5是本技术实施例示出的另一种基于单目行车记录仪实现slam定位的装置的结构示意图。
具体实施方式
19.下面将参照附图更详细地描述本技术的优选实施方式。虽然附图中显示了本技术的优选实施方式,然而应该理解,可以以各种形式实现本技术而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本技术更加透彻和完整,并且能够将本技术的范围完整地传达给本领域的技术人员。
20.在本技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
21.应当理解,尽管在本技术可能采用术语“第一”、“第二”、“第三”等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本技术的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
22.以下结合附图详细描述本技术实施例的技术方案。
23.请参见图1,本技术实施例提供了一种基于单目行车记录仪实现slam定位的方法。如图1所示,该方法至少可以包括以下步骤:110、获取单目行车记录仪在车辆行驶过程中采集的至少两帧图片。
24.本技术实施例中,单目行车记录仪可以设置于车辆的前挡风玻璃处。在车辆行驶过程中,可以利用单目行车记录仪采集车辆前方视频数据。为了获得图片,需要对获取的视频数据进行抽帧。通常,视频的帧率为每秒30帧,可以按照预置的规则对视频进行抽帧,从而获得图片。上述至少两帧图片可以为单目行车记录仪先后时间采集到的连续的两帧或两帧以上的图片。具体的,上述至少两帧图片可以为对单目行车记录仪在车辆行驶过程中采集的实时视频进行抽帧后得到的实时图片,也可以为对单目行车记录仪在车辆整个行驶过程中采集的整段视频进行抽帧后得到的一帧帧的图片序列中的其中几帧图片,这里不作限定。
25.可以理解的是,本技术实施例是以车辆上的单目行车记录仪为例进行说明的,也可以是车辆上的其他单目设备,如单目摄像头、手机等可以采集单目视频的设备。另外,该单目设备可以设置于车辆的首部以采集其前方的视频,也可以设置于车辆的尾部以采集其后方的视频,这里不作唯一限定。
26.120、对上述至少两帧图片中的每一帧图片进行分区处理,得到分区后的每一帧图片。
27.130、从分区后的每一帧图片中的每个区域提取预设个数的特征点,并将每个区域提取的特征点的集合作为该帧图片的特征点。
28.本技术实施例中,图片上的特征点可以用来标识图片上一些目标物体,一般将图片上灰度值发生剧烈变化的点或在图片边缘上曲率较大的点(如两个边缘的交点)看作为图片的特征点。为了后续更好的进行图片匹配,一般可以将图片中不会随着相机的移动、旋转或者光照的变化而变化的稳定的点选取为特征点。图2a中示出了车辆在行驶过程中单目行车记录仪采集到的其中一帧图片,在2a图中可以选择固定的建筑物(如路边的房屋)、固定的树木或广告牌等中的特征点,而不选择天空或地面上的特征点。
29.如图2a所示,行车记录仪采集到的图片一般会出现道路两边特征比较多,而天空和路面上的特征比较少的情况。这样在提取图片上的特征点时,可能会集中提取某一处的特征点,从而出现特征点集中在局部的现象,会导致局部特征权重过大,而其他地方的特征点会被忽略,这种情况将不利于三维空间构建。基于此,本技术实施例对每一帧图片进行分区处理,以将每一帧图片分割成若干个区域,该若干个区域可以为2个、4个、5个、6个、8个或其他值等。每个区域中均可以包含有特征点,当提取图片中的特征点时,可以从该帧图片上的各个区域内提取预设个数的特征点,这些特征点组合起来构成该帧图片的特征点,从而使得提取到的特征点的位置能够尽可能分布均匀一些,更有利于构建三维空间,进而能够提高三维空间的构建精度。
30.在一可选的实施方式中,步骤120对上述至少两帧图片中的每一帧图片进行分区处理,得到分区后的每一帧图片的具体实施方式可以包括以下步骤:11)按照预设规则对上述至少两帧图片中的每一帧图片进行分区处理,得到分区后的每一帧图片;或者,12)获取上述至少两帧图片中的每一帧图片的图片信息,根据每一帧图片的图片信息确定每一帧图片的分区策略,按照每一帧图片的分区策略对每一帧图片进行分区处理,得到分区后的每一帧图片,其中,图片信息可以包括但不限于图片的像素值、灰度值以及rgb值中的至少一种。
31.具体的,可以根据单目行车记录仪采集到的图片的情况事先设置好分区规则,进而按照该分区规则对各帧图片进行分区处理。例如,根据行车记录仪采集到的图片一般会出现道路两边特征比较多,而天空和路面上的特征比较少的情况,可以将图片按照“田”字形分为4个区域。或者,为了更均匀的提取到特征点,可以将区域分割得更多,如6个、8个、10个区域等等。
32.另外,也可以根据每帧图片自身的情况来对图片进行分区。具体的,可以根据图片的像素值、灰度值和/或rgb值等的分布来确定图片内容的分布情况,再根据图片内容的分布情况确定图片的分区策略,并根据图片的分区策略对图片将进行分区处理。其中,分区策
略可以包含图片的区域个数和区域位置等信息。
33.140、将上述至少两帧图片的特征点进行匹配,得到上述至少两帧图片中匹配成功的第一特征点集。
34.本技术实施例中,上述至少两帧图片中可以包含有不同视角下的同一物体(如建筑物、广告牌、路牌等等)。通过对图片上的特征点进行匹配,可以将不同图片上的同一物体的某些特征点匹配成功。其中,第一特征点集为上述至少两帧图片中每一帧图片上均匹配成功的特征点的集合。例如,当上述至少两帧图片仅包含两帧图片(如a、b两帧图片)时,第一特征点集为a、b两帧图片进行匹配并匹配成功的特征点;当上述至少两帧图片包含a、b、c三帧图片时,第一特征点集为a、b、c三帧图片同时进行匹配并匹配成功的特征点,即匹配成功的特征点要同时出现在a、b、c三帧图片上,不能仅出现在其中一帧或其中两帧图片上。
35.在一可选的实施方式中,步骤130从分区后的每一帧图片中的每个区域提取预设个数的特征点,并将每个区域提取的特征点的集合作为该帧图片的特征点的具体实施方式可以包括以下步骤:13)利用brisk算子从分区后的每一帧图片中的每个区域提取预设个数的特征点,并对每个区域提取的特征点进行描述,将描述后的每个区域的特征点的集合作为该帧图片的特征点。
36.其中,步骤140将上述至少两帧图片的特征点进行匹配,得到上述至少两帧图片中匹配成功的第一特征点集的具体实施方式可以包括以下步骤:14)将上述至少两帧图片描述后的特征点进行匹配,将匹配距离小于预设值的特征点确定为匹配成功的第一特征点集。
37.具体的,brisk算法由于具有较好的旋转不变性、尺度不变性和较好的鲁棒性等特点,在图像配准应用中有很好的表现。图片的一个特征点可以由两部分构成:关键点和描述子。brisk算法主要利用fast9-16进行特征点检测,取得分值较大的点作为特征点(即关键点),即完成特征点的提取。仅仅利用关键点的信息还无法很好的进行特征点匹配,所以需要进一步得到更详细的信息,将特征区分开来,因此,需要进行特征点描述,得到特征描述子。通过特征描述子可以消除视角的变化带来图片的尺度和方向的变化,能够更好的在图片间匹配。一张图片上的每一个特征描述子都是独特的,具有排他性,尽可能减少彼此间的相似性。brisk特征描述子可以用二进制数来表示,如256bit或512bit的二进制数。
38.将每一帧图片的特征描述子进行匹配,具体的是可以将一帧图片上的某一个特征描述子与其他帧图片上的所有特征描述子进行匹配,分别计算匹配距离(如汉明距离),取其他帧图片上匹配距离最小且匹配距离小于预设值的特征点作为匹配点。按照上述方法,可以逐一对每帧图片上的所有特征点进行匹配,找到匹配成功的特征点。可以理解的是,在得出匹配距离后,可以再结合特征点在图片上的uv坐标来共同确定匹配的特征点,例如匹配距离小于预设值,且特征点的uv坐标的差距也在允许的范围内时,才确定为匹配的特征点,否则不匹配。
39.当一帧图片上的某一个特征点只与其他帧图片中的其中一帧或几帧图片上的特征点匹配,而与某帧或某些帧图片上的特征点不匹配,则该特征点可以看作为无效特征点,可以进行丢弃。当一帧图片上的某一个特征点在其他帧图片上均能找到匹配的特征点,则该特征点可以看作为有效特征点。将所有的有效特征点集合起来,可以看作为第一特征点
集。
40.举例来说,当上述至少两帧图片仅包含先后采集的a、b两帧图片时,假设利用brisk算法从a帧图片中提取到100个特征点,从b帧图片中提取到200个特征点。对a、b两帧图片中的特征点进行描述,得到对应的特征描述子;对a、b两帧图片上的所有特征描述子进行逐一匹配后,得到匹配成功的特征点共50个,即a帧图片上有50个特征点与b帧图片上的50个特征点一一匹配,则第一特征点集中可以包含匹配成功的a帧图片上的50个特征点和b帧图片上的50个特征点,即可以将第一特征点集看作为50对特征点。
41.又举例来说,当上述至少两帧图片包含先后采集的a、b、c三帧图片时,假设利用brisk算法从a帧图片中提取到100个特征点,从b帧图片中提取到150个特征点,从c帧图片中提取到120个点。对a、b、c三帧图片中的特征点进行描述,得到对应的特征描述子;对a、b、c三帧图片上的所有特征描述子进行逐一匹配后,得到匹配成功的特征点共50个,即a帧图片上的50个特征点、b帧图片上的50个特征点、c帧图片上的50个特征点均匹配成功,则第一特征点集中可以包含匹配成功的a帧图片上的50个特征点、b帧图片上的50个特征点和c帧图片上的50个特征点,即可以将第一特征点集看作为50组特征点。
42.可以理解的是,也可以利用其他算法(如orb、surf或sift算法等等)来实现图片特征点的提取和描述,采用不同的算法可能得到不同的图片配准结果,即配准结果会有所差异。
43.150、构建第一特征点集的三维空间坐标。
44.本技术实施例中,基于已匹配成功的第一特征点集,可以利用对极几何计算出单目行车记录仪在采集各帧图片时的位姿变化,即平移量和旋转量。再利用各帧图片之间的平移量和旋转量可以计算出第一特征点集的三维空间坐标。
45.具体的,在一可选的实施方式中,步骤150构建第一特征点集的三维空间坐标的具体实施方式可以包括以下步骤:15)利用第一特征点集,采用对极约束计算上述至少两帧图片之间的旋转矩阵和平移矩阵;16)根据上述至少两帧图片之间的旋转矩阵和平移矩阵,生成第一特征点集的三维空间坐标。
46.举例来说,当上述至少两帧图片仅包含先后采集的a、b两帧图片时,对a、b两帧图片上的特征点进行匹配,得出8个匹配点,即第一特征点集中包含有8点对。根据这8点对可以计算出b帧图片相对于a帧图片的旋转矩阵和平移矩阵。
47.具体的,如图2b所示,在不同的位置拍摄同一个目标物体的两帧图片,图片中相同物体对应的像素点满足对极约束关系。其中p为世界坐标系中真实物体,例如建筑物上的某一点。o1、o2分别为拍摄a帧图片和b帧图片时单目行车记录仪的光心位置。i1、i2分别代表a帧图片和b帧图片。p1、p2分别为p点在a帧图片和b帧图片的投影,即a、b两帧图片中匹配成功的一对点。o1p在b帧图片上投影为e2p2,记为l2,o2p在a帧图片上投影为e1p1,记为l1,其中,l1、l2称为极线,e1、e2称为极点。根据对极约束:得到:
其中:e为本质矩阵,t为平移矩阵,r为旋转矩阵。
48.利用8点法求得e:其中, (u1,v1)为p1的图像像素坐标、 (u2,v2)为p2的图像像素坐标。
49.得到:其中:对于其它的点对也使用同样的表示方法,这样将得到的所有方程放到一起,得到一个线性方程组,(ui,vi)表示第i个匹配的点对。
50.通过上述的线性方程组求得本质矩阵e。
51.对e奇异值分解,得到4组t、r值,分别为:所得4组结果中只有一个深度值为正,深度值为正的t、r值的组合即为b帧图片相对a帧图片的平移矩阵和旋转矩阵。
52.可以理解的是,上述过程是以八点法为例进行说明的,但并不局限于此。当a、b两帧图片上匹配的特征点不止八对时,可以利用对极约束构建最小二乘法来求得两帧之间的平移矩阵和旋转矩阵,其中最小二乘法为较为成熟的现有技术,这里将不再叙述其具体实现过程。
53.另外,在利用第一特征点集求出各帧图片之间的旋转矩阵r和平移矩阵t后,可以利用三角化计算出第一特征点集中各特征点的三维空间坐标(即特征点的3d位置)。
54.160、获取单目行车记录仪采集的下一帧图片,并对该下一帧图片进行分区处理后提取该下一帧图片的特征点。
55.本技术实施例中,在根据上述至少两帧图片构建出三维空间坐标后,可以实时获取单目行车记录仪采集的下一帧图片,也可以从图片序列中获取位于上述至少两帧图片后的下一帧图片,这里不作限定。可以对该下一帧图片进行分区处理后,利用brisk算法提取该下一帧图片的特征点,并对提取的特征点进行描述,以得到特征描述子。
56.170、根据该下一帧图片的特征点与第一特征点集的三维空间坐标,确定拍摄该下一帧图片时单目行车记录仪的位姿。
57.在一可选的实施方式中,步骤170根据该下一帧图片的特征点与第一特征点集的三维空间坐标,确定拍摄该下一帧图片时单目行车记录仪的位姿的具体实施方式可以包括以下步骤:17)将该下一帧图片与上述至少两帧图片中的每一帧图片进行匹配,分别得到该下一帧图片与每一帧图片匹配成功的特征点集;18)根据该下一帧图片与每一帧图片匹配成功的特征点集,将该下一帧图片中同时与上述至少两帧图片中的至少预设数量帧图片匹配成功的特征点确定为第二特征点集;19)根据第一特征点集的三维空间坐标确定第二特征点集的三维空间坐标;20)利用第二特征点集的三维空间坐标以及第二特征点集中位于所述下一帧图片上的特征点的位置,确定拍摄下一帧图片时单目行车记录仪的位姿。
58.以两帧图片作为窗口进行举例说明,假设上述至少两帧图片包含a、b两帧图片,下一帧图片为c帧图片,a帧图片中的特征点为100个、b帧图片中的特征点为200个,a、b两帧图片匹配成功的特征点50个,即第一特征点集包含有50对点。提取到c帧图片中的特征点200个,分别与a帧图片中的特征点匹配成功70个,与b帧图片中的特征点匹配成功60个,将其中c帧图片中既与a帧图片中的特征点又与b帧图片中的特征点均匹配成功的特征点划入第二特征点集。例如,c帧图片上编号为c1的特征点与a帧图片上编号为a3的特征点匹配,又与b帧图片上编号为b2的特征点匹配,则特征点c1为有效特征点,特征点(a3,b2,c1)为第二特征点集中的其中一组特征点。当c帧图片上编号为c1的特征点仅与a帧图片上编号为a3的特征点匹配,而在b帧图片中没有找到相匹配的特征点,则特征点c1为无效特征点(或噪点),将不被包含在第二特征点集内。按照上述方法,可以找到在三帧图片中都匹配的特征点,以构成第二特征点集。
59.假设在上述c帧图片与a帧图片匹配成功的70个特征点以及c帧图片与b帧图片匹配成功的60个特征点中三帧都存在的特征点有30个,而这30个特征点包含在a、b两帧图片匹配成功的50个特征点中,因此,可以从这50个特征点的三维空间坐标中提取出上述30个特征点的三维空间坐标。当然,也可以直接利用三角化计算出上述30个特征点的三维空间坐标,这里不作限定。进一步的,可以根据上述30个特征点的三维空间坐标,以及30个特征点在c帧图片上的位置(即uv坐标),采用pnp优化方法可以计算得到拍摄c帧图片时单目行车记录仪的位姿。
60.以三帧图片作为窗口进行举例说明,假设上述至少两帧图片包含a、b、c三帧图片,下一帧图片为d帧图片,a帧图片中的特征点为100个、b帧图片中的特征点为200个,c帧图片中的特征点为150个,a、b、c三帧图片匹配成功的特征点50个,即第一特征点集包含有50对点。提取到d帧图片中的特征点200个,分别与a帧图片中的特征点匹配成功70个,与b帧图片中的特征点匹配成功60个,与c帧图片中的特征点匹配成功65个。可以将d帧图片中同时与
a、b、c三帧图片中的至少两帧图片匹配成功的特征点划入第二特征点集,例如d帧图片中某一特征点在a、b、c三帧图片中均能找到与之匹配的特征点,或者在a、b、c三帧图片的其中两帧中能找到与之匹配的特征点,则可以认为该特征点为有效特征点,与其他图片匹配成功的特征点组合起来作为第二特征点集中的一组特征点。而当d帧图片中某一特征点仅在a、b、c三帧图片的其中一帧图片上找到与之匹配的特征点,则可以认为该特征点为无效特征点(或噪点),将不被包含在第二特征点集内。按照上述方法逐一匹配,以找到满足条件的匹配特征点构成第二特征点集。进一步地,通过第二特征点集的三维空间坐标及其在d帧图片中的位置采用pnp优化方法来计算出拍摄d帧图片时单目行车记录仪的位姿。
61.在实际应用中,还可以采用其他数量的帧图片来作为参考窗口,如4帧、5帧、6帧或其他值等。当窗口数量不同时,步骤18)中的预设数量也随之发生变化,如窗口取4帧图片时,可以将预设数量设为2或3或4;当窗口取5帧图片时,可以将预设数量设为3或4或5。
62.180、根据拍摄该下一帧图片时单目行车记录仪的位姿确定车辆的位置。
63.本技术实施例中,由于单目行车记录仪设置于车辆上,因此可以将拍摄某帧图片时单目行车记录仪的位姿看作为车辆当时的位姿,从而可以得到车辆的位置,即实现了车辆的定位。当然,也可以是单目行车记录仪与车辆之间预设有一种位置关系,根据位置关系对单目行车记录仪的位置进行转换,即可得到车辆的位置。
64.在一可选的实施方式中,图1所描述的方法还可以包括以下步骤:21)利用该下一帧图片与每一帧图片匹配成功的特征点集中除去第二特征点集后的剩余特征点集,采用三角化计算所述剩余特征点集的三维空间坐标;22)利用剩余特征点集的三维空间坐标调整第一特征点集的三维空间坐标和第二特征点集的三维空间坐标。
65.仍以前述两帧图片作为窗口为例,c帧图片与a帧图片之间剩余特征点为70-30=40个,c帧图片与b帧图片之间剩余特征点为60-30=30个,分别利用三角化计算上述40个剩余特征点和30个剩余特征点的三维空间坐标,从而利用剩余特征点的三维空间坐标来调整第一特征点集的三维空间坐标和第二特征点集的三维空间坐标,以使第一特征点集对应的三维空间范围以及第二特征点集对应的三维空间范围能够得以扩充,构建出包含更多信息的三维地图,进而有利于后续图片配准,提高配准精度。
66.在一可选的实施方式中,图1所描述的方法还可以包括以下步骤:23)对单目行车记录仪后续采集的各帧图片进行迭代处理,获得拍摄各帧图片时单目行车记录仪的位姿;24)根据拍摄各帧图片时单目行车记录仪的位姿确定车辆的移动轨迹。
67.仍以前述两帧图片作为窗口为例。迭代处理的具体过程可以为:当要对下下一帧(d帧)图片进行配准时,选取b、c两帧图片作为参考窗口,构建b、c两帧图片的第一特征点集的三维空间坐标,并将d帧的特征点分别与b、c两帧图片的特征点进行匹配,得到匹配成功的第二特征点集。利用第二特征点集的三维空间坐标及其位于d帧图片上的位置,确定拍摄d帧图片时单目行车记录仪的位姿,以得到拍摄d帧图片时车辆的位置。当要对再下一帧(e帧)图片进行配准时,选取c、d两帧图片作为参考窗口,构建c、d两帧图片的第一特征点集的三维空间坐标,并将e帧的特征点分别与c、d两帧图片的特征点进行匹配,得到匹配成功的第二特征点集。利用第二特征点集的三维空间坐标及其位于e帧图片上的位置,确定拍摄e
帧图片时单目行车记录仪的位姿,以得到拍摄e帧图片时车辆的位置。按照上述过程往后迭代,一直到最后一帧图片,以得到拍摄最后一帧图片时车辆的位置。
68.仍以前述三帧图片作为窗口为例。迭代处理的具体过程可以为:当要对下下一帧(e帧)图片进行配准时,选取b、c、d三帧图片作为参考窗口,构建b、c、d三帧图片的第一特征点集的三维空间坐标,并将e帧的特征点分别与b、c、d三帧图片的特征点进行匹配,得到匹配成功的第二特征点集。利用第二特征点集的三维空间坐标及其位于e帧图片上的位置,确定拍摄e帧图片时单目行车记录仪的位姿,以得到拍摄e帧图片时车辆的位置。当要对再下一帧(f帧)图片进行配准时,选取c、d、e三帧图片作为参考窗口,构建c、d、e三帧图片的第一特征点集的三维空间坐标,并将f帧的特征点分别与c、d、e三帧图片的特征点进行匹配,得到匹配成功的第二特征点集。利用第二特征点集的三维空间坐标及其位于f帧图片上的位置,确定拍摄f帧图片时单目行车记录仪的位姿,以得到拍摄f帧图片时车辆的位置。按照上述过程往后迭代,一直到最后一帧图片,以得到拍摄最后一帧图片时车辆的位置。
69.如图3所示,根据拍摄各帧图片时车辆的位置可以确定出车辆的相对移动轨迹。如果拍摄起始几帧图片时,车辆的起始位置已知(可以通过车辆上的gps定位模块或北斗定位装置或imu等获取),则可以根据已知的起始位置确定出车辆的实际移动轨迹。本技术实施例仅需在开始时利用gps或imu进行定位,后续将不再需要,而是利用采集不同图片时单目行车记录仪的位姿变化来估算车辆的位置。
70.可见,本技术实施例通过获取单目行车记录仪在车辆行驶中先后采集的两帧或两帧以上的图片,分别对每一帧图片进行分区处理,得到分区后的各帧图片,并从分区后的各帧图片的每个区域中提取一定数量的特征点,将每个区域提取的特征点的集合看作为该帧图片的特征点,进而对各帧图片的特征点进行匹配,得到匹配成功的第一特征点集,以利用第一特征点集构建三维空间坐标;进一步地,可以获取单目行车记录仪采集的下一帧图片,并按照上述方法对该下一帧图片进行分区处理后提取特征点,根据该下一帧图片的特征点与第一特征点集的三维空间坐标来确定出拍摄该下一帧图片时单目行车记录仪的位姿,进而可以得到拍摄该下一帧图片时车辆的位置,即利用单目视觉下的图片实现了车辆的即时定位,以便后续采集的图片通过不断更新定位来获得车辆的移动轨迹;以及对图片进行分区后再提取特征能够使特征分布均匀,有利于三维空间的建立,进而有助于提高三维空间的构建精度。
71.请参见图4,本技术实施例提供了一种基于单目行车记录仪实现slam定位的装置。该装置可以用于执行上述实施例提供的基于单目行车记录仪实现slam定位的方法。具体的,如图4所示,该装置可以包括:获取单元41,用于获取单目行车记录仪在车辆行驶过程中采集的至少两帧图片;分区单元42,用于对上述至少两帧图片中的每一帧图片进行分区处理,得到分区后的每一帧图片;提取单元43,用于从分区后的每一帧图片中的每个区域提取预设个数的特征点,并将每个区域提取的特征点的集合作为该帧图片的特征点;匹配单元44,用于将上述至少两帧图片的特征点进行匹配,得到上述至少两帧图片中匹配成功的第一特征点集;构建单元45,用于构建第一特征点集的三维空间坐标;
获取单元41,还用于获取单目行车记录仪采集的下一帧图片;分区单元42,还用于对该下一帧图片进行分区处理;提取单元43,还用于提取分区后的该下一帧图片的特征点;确定单元46,用于根据该下一帧图片的特征点与第一特征点集的三维空间坐标,确定拍摄该下一帧图片时单目行车记录仪的位姿;确定单元46,还用于根据拍摄该下一帧图片时单目行车记录仪的位姿确定车辆的位置。
72.可选的,分区单元42对上述至少两帧图片中的每一帧图片进行分区处理,得到分区后的每一帧图片的具体实施方式可以为:按照预设规则对上述至少两帧图片中的每一帧图片进行分区处理,得到分区后的每一帧图片;或者,获取上述至少两帧图片中的每一帧图片的图片信息,根据每一帧图片的图片信息确定每一帧图片的分区策略,按照每一帧图片的分区策略对每一帧图片进行分区处理,得到分区后的每一帧图片,其中,图片信息可以包括但不限于图片的像素值、灰度值以及rgb值中的至少一种。
73.可选的,提取单元43从分区后的每一帧图片中的每个区域提取预设个数的特征点,并将每个区域提取的特征点的集合作为该帧图片的特征点的具体实施方式可以为:利用brisk算子从分区后的每一帧图片中的每个区域提取预设个数的特征点,并对每个区域提取的特征点进行描述,将描述后的每个区域的特征点的集合作为该帧图片的特征点;相应地,匹配单元44具体可以用于将上述至少两帧图片描述后的特征点进行匹配,将匹配距离小于预设值的特征点确定为匹配成功的第一特征点集。
74.可选的,构建单元45具体可以用于利用第一特征点集,采用对极约束计算上述至少两帧图片之间的旋转矩阵和平移矩阵;根据上述至少两帧图片之间的旋转矩阵和平移矩阵,生成第一特征点集的三维空间坐标。
75.可选的,图4所示的装置还可以包括:迭代单元,用于对单目行车记录仪后续采集的各帧图片进行迭代处理,获得拍摄各帧图片时单目行车记录仪的位姿;确定单元46,还可以用于根据拍摄各帧图片时单目行车记录仪的位姿确定车辆的移动轨迹。
76.可选的,确定单元46根据该下一帧图片的特征点与第一特征点集的三维空间坐标,确定拍摄该下一帧图片时单目行车记录仪的位姿的具体实施方式可以为:将该下一帧图片与上述至少两帧图片中的每一帧图片进行匹配,分别得到该下一帧图片与每一帧图片匹配成功的特征点集;根据该下一帧图片与每一帧图片匹配成功的特征点集,将该下一帧图片中同时与上述至少两帧图片中的至少预设数量帧图片匹配成功的特征点确定为第二特征点集;根据第一特征点集的三维空间坐标确定第二特征点集的三维空间坐标;利用第二特征点集的三维空间坐标以及第二特征点集中位于该下一帧图片上的特征点的位置,确定拍摄该下一帧图片时单目行车记录仪的位姿。
77.可选的,图4所示的装置还可以包括:计算单元,用于利用该下一帧图片与每一帧图片匹配成功的特征点集中除去第二特征点集后的剩余特征点集,采用三角化计算剩余特征点集的三维空间坐标;调整单元,用于利用剩余特征点集的三维空间坐标调整第一特征点集的三维空间坐标和第二特征点集的三维空间坐标。
78.实施图4所示的装置,能够利用单目视觉下的图片实现车辆的即时定位,以便后续采集的图片通过不断更新定位来获得车辆的移动轨迹;以及对图片进行分区后再提取特征能够使特征分布均匀,有利于三维空间的建立,进而有助于提高三维空间的构建精度。
79.关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不再做详细阐述说明。
80.请参阅图5,本技术实施例还提供了另一种基于单目行车记录仪实现slam定位的装置。该装置可以用于执行上述实施例提供的基于单目行车记录仪实现slam定位的方法。该装置可以是任意具有计算单元的设备,如计算机、服务器、手持设备(如智能手机、平板电脑等)、或行车记录仪等等,本技术实施例不作限定。具体的,如图5所示,该装置500可以包括:至少一个处理器501、存储器502、至少一个通信接口503等组件。其中,这些组件可以通过一条或多条通信总线504进行通信连接。本领域技术人员可以理解,图5中示出的装置500的结构并不构成对本技术实施例的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:处理器501可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器 (digital signal processor,dsp)、专用集成电路 (application specific integrated circuit,asic)、现场可编程门阵列 (field-programmable gate array,fpga) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
81.存储器502可以包括各种类型的存储单元,例如系统内存、只读存储器(rom),和永久存储装置。其中,rom可以存储处理器501或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器502可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(dram,sram,sdram,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器502可以包括可读和/或写的可移除的存储设备,例如激光唱片(cd)、只读数字多功能光盘(例如dvd-rom,双层dvd-rom)、只读蓝光光盘、超密度光盘、闪存卡(例如sd卡、min sd卡、micro-sd卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
82.通信接口503可以包括有线通信接口、无线通信接口等,可以用于与行车记录仪进行通信交互,如获取行车记录仪采集的视频图像等。
83.存储器502上存储有可执行代码,当可执行代码被处理器501处理时,可以使处理器501执行上文述及的方法中的部分或全部步骤。
84.具体的,处理器501可以用于调用存储器502中存储的一个或多个可执行代码以执行以下操作:获取单目行车记录仪在车辆行驶过程中采集的至少两帧图片;对上述至少两帧图片中的每一帧图片进行分区处理,得到分区后的每一帧图片;从分区后的每一帧图片中的每个区域提取预设个数的特征点,并将每个区域提取的特征点的集合作为该帧图片的特征点;将上述至少两帧图片的特征点进行匹配,得到上述至少两帧图片中匹配成功的第一特征点集;构建第一特征点集的三维空间坐标;获取单目行车记录仪采集的下一帧图片,并对该下一帧图片进行分区处理后提取该下一帧图片的特征点;根据该下一帧图片的特征点与第一特征点集的三维空间坐标,确定拍摄该下一帧图片时单目行车记录仪的位姿;根据拍摄该下一帧图片时单目行车记录仪的位姿确定车辆的位置。
85.可选的,处理器501对上述至少两帧图片中的每一帧图片进行分区处理,得到分区后的每一帧图片的具体实施方式可以为:按照预设规则对上述至少两帧图片中的每一帧图片进行分区处理,得到分区后的每一帧图片;或者,获取上述至少两帧图片中的每一帧图片的图片信息,根据每一帧图片的图片信息确定每一帧图片的分区策略,按照每一帧图片的分区策略对每一帧图片进行分区处理,得到分区后的每一帧图片,其中,图片信息可以包括但不限于图片的像素值、灰度值以及rgb值中的至少一种。
86.可选的,处理器501从分区后的每一帧图片中的每个区域提取预设个数的特征点,并将每个区域提取的特征点的集合作为该帧图片的特征点的具体实施方式可以为:利用brisk算子从分区后的每一帧图片中的每个区域提取预设个数的特征点,并对每个区域提取的特征点进行描述,将描述后的每个区域的特征点的集合作为该帧图片的特征点;其中,处理器501将上述至少两帧图片的特征点进行匹配,得到上述至少两帧图片中匹配成功的第一特征点集的具体实施方式可以为:将上述至少两帧图片描述后的特征点进行匹配,将匹配距离小于预设值的特征点确定为匹配成功的第一特征点集。
87.可选的,处理器501构建第一特征点集的三维空间坐标的具体实施方式可以为:利用第一特征点集,采用对极约束计算上述至少两帧图片之间的旋转矩阵和平移矩阵;根据上述至少两帧图片之间的旋转矩阵和平移矩阵,生成第一特征点集的三维空间坐标。
88.可选的,处理器501还可以调用存储器502中存储的一个或多个可执行代码,执行
以下操作:对单目行车记录仪后续采集的各帧图片进行迭代处理,获得拍摄各帧图片时单目行车记录仪的位姿;根据拍摄各帧图片时单目行车记录仪的位姿确定车辆的移动轨迹。
89.可选的,处理器501根据该下一帧图片的特征点与第一特征点集的三维空间坐标,确定拍摄该下一帧图片时单目行车记录仪的位姿的具体实施方式可以为:将该下一帧图片与上述至少两帧图片中的每一帧图片进行匹配,分别得到该下一帧图片与每一帧图片匹配成功的特征点集;根据该下一帧图片与每一帧图片匹配成功的特征点集,将该下一帧图片中同时与上述至少两帧图片中的至少预设数量帧图片匹配成功的特征点确定为第二特征点集;根据第一特征点集的三维空间坐标确定第二特征点集的三维空间坐标;利用第二特征点集的三维空间坐标以及第二特征点集中位于该下一帧图片上的特征点的位置,确定拍摄该下一帧图片时单目行车记录仪的位姿。
90.可选的,处理器501还可以调用存储器502中存储的一个或多个可执行代码,执行以下操作:利用该下一帧图片与每一帧图片匹配成功的特征点集中除去第二特征点集后的剩余特征点集,采用三角化计算剩余特征点集的三维空间坐标;利用剩余特征点集的三维空间坐标调整第一特征点集的三维空间坐标和第二特征点集的三维空间坐标。
91.上文中已经参考附图详细描述了本技术的方案。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。本领域技术人员也应该知悉,说明书中所涉及的动作和模块并不一定是本技术所必须的。另外,可以理解,本技术实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减,本技术实施例装置中的模块可以根据实际需要进行合并、划分和删减。
92.此外,根据本技术的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本技术的上述方法中部分或全部步骤的计算机程序代码指令。
93.或者,本技术还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当可执行代码(或计算机程序、或计算机指令代码)被电子设备的处理器执行时,使处理器执行根据本技术的上述方法的各个步骤的部分或全部。
94.本领域技术人员还将明白的是,结合这里的申请所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
95.附图中的流程图和框图显示了根据本技术的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,该模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程
图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
96.以上已经描述了本技术的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1