视觉定位方法、装置、介质、计算机设备和程序产品与流程
未命名
09-27
阅读:86
评论:0

1.本发明涉及计算机技术领域,更具体地,涉及一种视觉定位方法、装置、介质、设备和程序产品。
背景技术:
2.随着机器视觉应用的日益广泛,基于机器视觉的视觉定位技术也得到广泛的关注。视觉定位主要是通过相机的图像来估计相机的运动,准确的说,是基于特征检测来计算相机的位姿。其中,角点检测算法是目前大部分视觉定位会采用的特征检测方法。根据角点检测算法可以得到若干角点及其对应的分值,通常会选择分值较大的角点作为特征点,并基于特征点进行视觉定位。
3.然而,当图像比较单一或者空白区域较多时,根据分值筛选的特征点会集中于一个区域,导致特征点分布不均匀,进而降低视觉定位的精度。
技术实现要素:
4.本技术提供了一种视觉定位方法、装置、介质、计算机设备和程序产品,可以降低避免特征点过于集中,提高视觉定位的精度。
5.一方面,提供了一种视觉定位方法,所述方法包括:
6.获取基于相机采集的参考图像;
7.对所述参考图像进行角点检测,获取得到多个角点以及每个所述角点对应的分值;
8.根据所述分值以及所述多个角点在所述参考图像上的位置信息,对所述多个角点进行第一筛选操作,确定目标特征点,其中,每两个相邻的所述目标特征点之间的距离不小于预设距离;
9.根据所述目标特征点进行视觉定位。
10.另一方面,提供了一种视觉定位装置,包括:
11.获取模块,用于获取基于相机采集的参考图像;
12.检测模块,用于对所述参考图像进行角点检测,获取多个角点以及每个所述角点对应的分值;
13.筛选模块,用于根据所述分值以及所述多个角点在所述参考图像上的位置信息,对所述多个角点进行第一筛选操作,确定目标特征点,其中,每两个相邻的所述目标特征点之间的距离不小于预设距离;
14.定位模块,用于根据所述目标特征点进行视觉定位。
15.另一方面,提供了一种计算机可读存储介质,包括指令,当所述指令在终端设备上运行时,使得所述终端设备执行如上述第一方面所述的方法。
16.另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用
于执行如上述第一方面所述的视觉定位方法中的步骤。
17.另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述第一方面所述的视觉定位方法中的步骤。
18.本技术实施例提供了一种视觉定位方法,通过获取基于相机采集的参考图像,并对参考图像进行角点检测,获取多个角点以及每个角点对应的分值,之后,根据分值以及多个角点在参考图像上的位置信息,对多个角点进行第一筛选操作,确定目标特征点,其中,每两个相邻的目标特征点之间的距离不小于预设距离,接着根据目标特征点进行视觉定位,从而避免特征点集中在参考图像的某个区域,提高特征点分布的均匀度,进而提高视觉定位的精度。
附图说明
19.图1是本技术实施例提供的视觉定位系统的结构示意图。
20.图2是本技术实施例提供的视觉定位方法的流程示意图。
21.图3是本技术实施例提供的语音合成方法的另一流程示意图。
22.图4是本技术实施例提供的视觉定位装置的示意性框图。
23.图5是本技术实施例提供的计算机设备的示意性框图。
具体实施方式
24.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。针对本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
25.除非另外定义,本技术使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术实施例的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
26.首先,下面对本技术实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
27.人工智能(artificialintelligence,ai),是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能从诞生以来,理论和技术日益成熟,应用领域也不断扩大,可以设想,未来人工智能带来的科技产品,将会是人类智慧的“容器”。人工智能可以对人的意识、思维的信息过程的模拟。人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。人工智能软件技术
主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
28.计算机视觉(computervision)又称为机器视觉(machinevision),顾名思义是一门“教”会计算机如何去“看”世界的学科。更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。
29.视觉传感器是整个机器视觉系统信息的直接来源,主要由一个或者两个图形传感器组成,有时还要配以光投射器及其他辅助设备。视觉传感器的主要功能是获取足够的机器视觉系统要处理的最原始图像。
30.在机器视觉中,特征点是指图像中具有鲜明特性并能够有效反映图像本质特征能够标识图像中目标物体的点,就是能够在其他含有相同场景或目标的相似图像中以一种相同的或至少非常相似的不变形式表示图像或目标,即是对于同一个物体或场景,从不同的角度采集多幅图片,如果相同的地方能够被识别出来是相同的,则这些点或块称为特征点。比如,角点。
31.角点作为图像关键的局部结构特征,通常被描述成灰度强度变化不连续的点,被称为灰度图像上的奇异特征点。角点是图像很重要的特征,对图像图形的理解和分析有很重要的作用。角点在保留图像图形重要特征的同时,可以有效地减少信息的数据量,使其信息的含量很高,有效地提高了计算的速度,有利于图像的可靠匹配,使得实时处理成为可能。
32.随着物联网、ai、大数据、计算机技术的快速发展,视觉定位技术在各个行业得到了深入且广泛的应用。在目前的视觉定位技术中,常用角点检测算法对相机图像进行特征检测,然后根据角点检测算法给出的角点的分值进行特征点筛选,然后根据筛选出的特征点进行视觉定位。然而,如果相机图像比较单一或空白较多,根据角点的分值进行特征点筛选会导致特征点集中,使得视觉定位的精度有偏差。并且,目前的视觉定位技术应用于多相机视觉定位技术时,会出现多个相机图像的共视区内,不同的相机图像有大量相似的特征点,导致视觉定位系统的计算量较大,耗时较长,影响视觉定位的实时性。为解决这一问题,本技术实施例提供一种视觉定位方法、装置、介质、计算机设备和程序产品,通过将一定范围内分值最大的角点作为特征点,从而保证该范围内只有一个特征点,避免较多特征点集中,提高视觉定位的精确度,并且在多相机情况下,根据特征点的分值以及特征点到相机图像中心点的距离,仅保留共视区内某一相机图像上的特征点,从而避免共视区内不同相机图像上存在大量相似的特征点,减少视觉定位的计算量和耗时,提高视觉定位的时间复杂度,提高视觉定位的实时性。
33.请参考图1,图1为本技术实施例提供的视觉定位系统的结构示意图。该视觉定位系统包括终端100和服务器200等;终端100和服务器200之间通过网络连接,比如,通过有线或无线网络连接等。该终端100可以为用户设备(userequipment,ue)、移动设备、用户终端、蜂窝电话、无绳电话、个人数字处理(personaldigitalassistant,pda)、手持设备、计算设备、可穿戴设备、车载终端、无人机(unmannedaerialvehicle/drones,无人驾驶飞机)、机器人等设备。服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集
群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(contentdeliverynetwork,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
34.其中,终端100,可以用于采集参考图像。例如,终端100可以包括相机,可以通过相机实时采集参考图像,其中,相机可以为一个或多个。其中,终端100可以用于采集参考图像,并将采集到的参考图像发送至服务器200。服务器200可以用于对参考图像进行角点检测,获取多个角点以及每个角点对应的分值;根据分值以及多个角点在参考图像上的位置信息,对多个角点进行第一筛选操作,以得到目标特征点,其中,每两个相邻的目标特征点之间的距离不小于预设距离;根据目标特征点进行视觉定位;将视觉定位结果发送至终端100。
35.以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优先顺序的限定。
36.请参阅图2,图2示出了本技术实施例所描述的视觉定位方法的流程示意图,该视觉定位方法可以应用于计算机设备,该计算机设备可以为终端或者服务器,该方法主要包括步骤s101至步骤s104,说明如下:
37.步骤s101,获取基于相机采集的参考图像。
38.具体地,该计算机设备可以包括视觉传感器,该视觉传感器可以用于获取参考图像。譬如,视觉传感器可以为相机,参考图像可以为相机图像。需要说明的是,本实施例对视觉传感器的类型不做限定,只需要能实时获取到图像即可。
39.步骤s102,对参考图像进行角点检测,获取多个角点以及每个角点对应的分值。
40.其中,可以采用加速分割测试特征(featuresfromacceleratedsegmenttest,fast)算法进行角点检测,也可以surf(speededuprobustfeature,加速稳健特征)算法进行角点检测,也可以采用快速特征点提取和描述(orientedfastandrotatedbrief,orb)算法进行角点检测,还可以采用其他算法进行角点检测,需要说明的是,本实施例中对采用哪种算法进行角点检测不做限制。容易理解的是,上述角点检测算法仅仅依赖于参考图像局部区域的灰度变化,不受空间约束限制,导致灰度变化强烈的局部区域,会出现角点聚集扎堆的分布现象,导致定位的鲁棒性较弱。
41.步骤s103,根据分值以及多个角点在参考图像上的位置信息,对多个角点进行第一筛选操作,确定目标特征点,其中,每两个相邻的目标特征点之间的距离不小于预设距离。
42.目前,通常根据角点的分值选择分值较大的角点作为特征点。如果参考图像比较单一或者空白区域较多,仅根据角点的分值进行筛选角点,会导致大部分角点都集中在一块,导致视觉定位精度有偏差。因此,本技术结合角点的分值以及角点在参考图像上的位置信息对角点进行筛选,使筛选出来的每两个相邻的目标特征点之间的距离不小于预设距离,从而避免角点集中,以提高视觉定位的精度。
43.具体地,步骤103主要可以包括:根据分值从大到小的顺序,遍历筛选多个角点中的每个角点,依次确定每个角点是否为特征点;在遍历筛选过程中,确定多个角点中分值最大的角点是否为特征点,若确定多个角点中分值最大的角点为特征点,则根据多个角点在参考图像上的位置信息,将参考图像上位于特征点预设像素范围内的角点删除。
44.具体的,按照分值大小从大到小的顺序,判断角点是否为特征点,然后将该特征点预设像素范围内的角点从排序顺序中筛除,可以保证将预设像素范围内分值最高的角点确定为特征点。其中,本技术对预设像素范围不做限定。在本实施例中,该预设像素范围可以为一百个像素以内,也可以为二十五个像素以内。
45.容易理解的是,可以按照分值大小先对角点进行一次筛选操作,比如,将分值不大于预设分值的角点均筛除。然后按照分值大小对角点进行排序,再按照排序顺序确定角点是否为特征点,若该角点为特征点,则将该特征点预设像素范围内的角点筛除。如此,可以提高角点筛选的效率。
46.在本实施例中,该方法可以包括:若确定多个角点中分值最大的角点不是特征点,则将该多个角点中分值最大的角点从多个角点中删除。具体地,可以根据角点的分值确定角点是否为特征点。若角点的分值不小于预设分值,则可以将角点确定为特征点。若角点的分值小于预设分值,则确定角点不是特征点。值得注意的是,本技术对预设分值不作限定,可以按需求设置。该预设分值可以限制特征点的数量以及质量,因此,可以根据实际需求,比如,需要特征点的数量和质量,来设置预设分值。
47.具体地,按照系统中视觉传感器的个数,视觉定位技术又可分为多目视觉定位、双目视觉定位和单目视觉定位。因此,参考图像的个数可以为多个。以视觉传感器为相机为例,在多相机情况下,多个相机会有多个视角,且多个相机会存在视野重叠的共视区。
48.在一些实施例中,参考图像包括第一图像和第二图像,该第一图像和第二图像分别为不同的相机采集的图像,且第一图像和第二图像包括视野重叠的共视区,在步骤103之后,还可以包括:获取共视区内,第一图像上的第一特征点和第二图像上的第二特征点,其中,该第一特征点和第二特征点为相似特征点;根据所述分值第一特征点和第二特征点进行第二筛选操作。
49.容易理解的是,在共视区内,不同的参考图像可能有大量相似的特征点,该大量相似的特征点,指的是,不同参考图像上相对应的特征点,比如,在共视区内,不同参考图像上可能存在同一物体,经检测,该物体上存在特征点,则不同参考图像上同一物体同一位置的特征点就是相对应的特征点。相似的特征点会增加系统的计算量,增加系统的耗时,这对实时性要求较高的视觉定位来说是一种负担。因此,可以根据分值,对共视区内第一图像上的第一特征点和第二图像上的第二特征点进行第二筛选操作,以避免大量相似的特征点导致系统的计算量增加,减少系统的耗时,保证视觉定位的实时性。
50.具体地,步骤“根据分值对共视区内,第一图像和第二图像上对应的第一特征点和第二特征点进行第二筛选操作”可以包括:将第一特征点的分值和第二特征点的分值中分值较小的特征点筛除。
51.容易理解的是,将第一特征点和第二特征点中分值较小的特征点筛除,保留第一特征点和第二特征点中分值较大的特征点,可以保留相似特征点中一个最好的特征点作为目标特征点,既可以保证视觉定位的精确度,又可以减少多相机视觉定位的时间复杂度,提高视觉定位的实时性。
52.具体地,步骤“根据分值对第一特征点和第二特征点进行第二筛选操作”可以包括:若第一特征点的分值和第二特征点的分值相等,则根据第一特征点距离第一图像的中心的第一距离和第二特征点距离第二图像的中心的第二距离,对第一特征点和第二特征点
进行第二筛选操作。
53.容易理解的是,通常图像上距离图像中心点更近的点畸变更小,因此,若第一图像和第二图像上对应第一特征点和第二特征点的分值相等,则可以根据第一特征点距离第一图像的中心的第一距离和第二特征点距离第二图像的中心的第二距离,对第一特征点和第二特征点进行第二筛选操作。具体地,步骤“根据第一特征点距离第一图像的中心的第一距离和第二特征点距离第二图像的中心的第二距离,对第一特征点和第二特征点进行第二筛选操作”包括:将第一特征点对应的第一距离和第二特征点对应的第二距离中较远的距离对应的特征点筛除。
54.具体地,可以认为第一距离和第二距离中较小的距离对应的特征点畸变更小,因此,将第一距离和第二距离中较远的距离对应的特征点筛除,将第一距离和第二距离中较近的距离对应的特征点保留,以保证视觉定位的精确。
55.在本实施例中,该方法还可以包括:将第一筛选操作以及第二筛选操作后得到的特征点确定为目标特征点。
56.具体地,经第一筛选操作后,得到的特征点之间的距离不小于预设距离,比如,得到的特征点之间的距离不小于一百个像素,可以有效避免特征点集中导致的视觉定位的精确地降低。然后,在多目视觉定位情况下,经第二筛选操作,可以避免共视区内,多个参考图像存在大量相似的特征点,从而降低视觉定位的计算量和耗时,提高视觉定位的实时性。
57.具体地,步骤“获取共视区内,第一图像上的第一特征点和第二特征点”可以包括:对共视区内,第一图像和第二图像上的特征点进行匹配操作,以得到具有相似关系的第一特征点和第二特征点。
58.其中,特征点匹配是指寻找不同参考图像之间的相似特征点。其中,特征点匹配是针对描述子进行的。描述子,即用一些数学上的特征对特征点进行描述,描述子通常是一个向量,两个特征点的描述子的之间的距离可以反应其相似的程度,也就是这两个特征点是不是同一个。根据描述子的不同,可以选择不同的距离度量。比如,如果是浮点类型的描述子,可以使用其欧式距离。比如,对于二进制的描述子可以使用其汉明距离。具体地,前述步骤中得到了第一图像的特征点和第二图像的特征点,然后,可以进行描述子提取。可以采用描述子提取算法进行提取,比如,邻域模板匹配算法、sift(scaleinvariantfeaturetransform,尺度不变特征转换)算法、orb算法。之后,可以通过各个特征点的描述子来判断特征点是否相似,常用的匹配方法包括暴力匹配、kd-tree(k-demensiontree,kd树)等。
59.需要理解的是,本技术以参考图像包括第一图像和第二图像为例进行说明,实际情况中,参考图像还可以包括第三图像、第四图像等等,即本技术对参考图像的数量不作限定。当参考图像包括多个图像时,仍可以按照本技术实施例提供的方法进行处理,即首先分别对每个参考图像进行角点检测,之后,分别对每个参考图像的角点进行第一筛选操作,然后,对共视区内,不同参考图像上相对应的特征点进行第二筛选操作,以得到目标特征点。
60.步骤s104,根据目标特征点进行视觉定位。
61.由上述可知,目标特征点是经第一筛选操作和第二筛选操作后的角点。其中,经过第一筛选操作,使得保留的特征点之间的距离不小于预设距离。然后,若参考图像为多个,经过第二筛选操作,使得共视区内,仅保留多个参考图像上相对应的特征点中最好的特征
点。如此,可以避免由于目标特征点集中导致的视觉定位精度有偏差。同时,在双目或多目视觉定位情况下,可以避免共视区内,多个参考图像有大量相似的目标特征点,从而减少视觉定位的计算量,减少多目视觉定位的时间复杂度,提高视觉定位的实时性,并且保证视觉定位的精确度。
62.为了更好的说明本技术实施例提供的视觉定位方法,请参阅图3,可将该视觉定位方法总结归纳为下述步骤:
63.步骤201,获取第一图像和第二图像,该第一图像和第二图像分别为不同相机采集的图像,该第一图像和第二图像包括视野重叠的共视区。
64.步骤202,对第一图像进行角点检测,获取第一图像的多个角点以及每个角点对应的分值,并对第二图像进行角点检测,获取第二图像的多个角点以及每个角点对应的分值。
65.步骤203,根据第一图像的多个角点的分值以及第一图像的多个角点在第一图像上的位置信息,对第一图像的多个角点进行第一筛选操作,确定第一图像的第一特征点。
66.步骤204,根据第二图像的多个角点的分值以及第二图像的多个角点在第二图像上的位置信息,对第二图像的多个角点进行第一筛选操作,确定第二图像的第二特征点。
67.步骤205,根据分值对共视区内,第一图像和第二图像上相对应的第一特征点和第二特征点进行第二筛选操作。
68.步骤206,将第一筛选操作以及第二筛选操作后得到的特征点确定为目标特征点。
69.步骤207,根据目标特征点进行视觉定位。
70.值得注意的是,本技术实施例对上述步骤执行的先后顺序不作限定,比如,步骤203和步骤204可以为同步执行。
71.上述所有的技术方案,可以采用任意结合形成本技术的可选实施例,在此不再一一赘述。
72.本技术实施例通过获取基于相机采集的参考图像,之后对参考图像进行角点检测,以得到多个角点以及每个角点对应的分值,然后根据分值以及多个角点在参考图像上的位置信息,对多个角点进行第一筛选操作,以得到目标特征点,其中,每两个相邻的目标特征点之间的距离不小于预设距离,之后根据目标特征点进行视觉定位,从而避免特征点过于集中,提高特征点分布的均匀度,提高视觉定位的精度。
73.上文详细描述了本技术的方法实施例,下文结合图4,详细描述本技术的装置实施例,应理解,装置实施例与方法实施例相互对应,类似的描述可以参照方法实施例。
74.图4是根据本技术实施例的一种视觉定位装置10的示意性结构图,如图4所示,该视觉定位装置10可以包括:
75.获取模块11,用于获取基于相机采集的参考图像;
76.检测模块12,用于对参考图像进行角点检测,获取多个角点以及每个角点对应的分值;
77.筛选模块13,用于根据分值以及多个角点在参考图像上的位置信息,对多个角点进行第一筛选操作,确定目标特征点,其中,每两个相邻的目标特征点之间的距离不小于预设距离;
78.定位模块14,用于根据目标特征点进行视觉定位。
79.可选的,筛选模块13,可以用于:根据分值从大到小的顺序,遍历筛选多个角点中
的每个角点,依次确定每个角点是否为特征点;在遍历筛选过程中,确定多个角点中分值最大的角点是否为特征点,若确定多个角点中分值最大的角点为特征点,则根据多个角点在参考图像上的位置信息,将参考图像上位于特征点预设像素范围内的角点删除。
80.可选的,筛选模块13,可以用于:若确定多个角点中分值最大的角点不是特征点,则将多个角点中分值最大的角点从多个角点中删除。
81.可选的,参考图像包括第一图像和第二图像,第一图像和第二图像分别为不同的相机采集的图像,第一图像和第二图像包括视野重叠的共视区,筛选模块13,还可以用于:在根据分值以及多个角点在参考图像上的位置信息,对多个角点进行第一筛选操作之后,获取共视区内,第一图像上的第一特征点和第二图像上的第二特征点,第一特征点和第二特征点为相似特征点;根据分值对第一特征点和第二特征点进行第二筛选操作。
82.可选的,筛选模块13,具体可以用于:将第一特征点的分值和第二特征点的分值中分值较小的特征点筛除。
83.可选的,筛选模块13,具体可以用于:若第一特征点的分值和第二特征点的分值相等,则根据第一特征点距离第一图像的中心的第一距离和第二特征点距离第二图像的中心的第二距离,对第一特征点和第二特征点进行第二筛选操作。
84.可选的,筛选模块13,具体可以用于:将第一特征点对应的第一距离和第二特征点对应的第二距离中较远的距离对应的特征点筛除。
85.可选的,筛选模块13,还可以用于:将第一筛选操作以及第二筛选操作后得到的特征点确定为目标特征点。
86.可选的,该视觉定位装置10还可以包括匹配模块,可以用于:对共视区内,第一图像和第二图像上的特征点进行匹配操作,以得到具有相似关系的第一特征点和第二特征点。
87.需要说明的是,本技术实施例中的视觉定位装置10中各模块的功能可对应参考上述各方法实施例中的具体实现方式,这里不再赘述。
88.上述视觉定位装置10中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各个模块可以以硬件形式内嵌于或独立于终端设备中的处理器中,也可以以软件形式存储于终端设备中的存储器中,以便于处理器调用执行上述各个模块对应的操作。
89.本技术实施例提供的视觉定位装置10,通过获取模块11获取基于相机采集的参考图像,之后检测模块12对参考图像进行角点检测,获取多个角点以及每个角点对应的分值,接着筛选模块13根据分值以及多个角点在参考图像上的位置信息,对多个角点进行第一筛选操作,确定目标特征点,其中,每两个相邻的目标特征点之间的距离不小于预设距离,然后定位模块14根据目标特征点进行视觉定位,从而避免特征点过于集中,提高特征点分布的均匀度,提高视觉定位的精度。
90.请参阅图5,图5示出了本技术实施例提供的计算机设备(例如图1中的终端或服务器)的示意性框图。图5示出的计算机设备仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
91.计算机设备可以包括:处理器21、存储器22、输入装置23、输出装置24、通信装置25、通信总线26和输入/输出(i/o)接口27。处理器21,存储器22,输入/输出(i/o)接口27通过通信总线26实现相互间通信。通常,以下装置可以连接至i/o接口27:包括例如触摸屏、触
摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置23;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置24;以及通信装置25。通信装置25可以允许计算机设备20与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的计算机设备20,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
92.具体地,存储器22可以用于存储软件程序以及模块,处理器21通过运行存储在存储器22的软件程序以及模块,例如前述方法实施例中的相应操作的软件程序。
93.在一些实施例中,该处理器21可以调用存储在存储器22的软件程序以及模块执行如下操作:获取基于相机采集的参考图像;对参考图像进行角点检测,获取多个角点以及每个角点对应的分值;根据分值以及多个角点在参考图像上的位置信息,对多个角点进行第一筛选操作,确定目标特征点,其中,每两个相邻的目标特征点之间的距离不小于预设距离;根据目标特征点进行视觉定位。
94.具体地,根据本技术的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本技术实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置25从网络上被下载和安装,或者从存储器22被安装。在该计算机程序被处理器21执行时,执行本技术前述方法实施例中限定的上述功能。
95.需说明的是,应理解图5中的各个装置以及终端的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。
96.本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的视觉定位方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
97.本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的视觉定位方法的步骤,具体可参见上述方法实施例,在此不再赘述。
98.其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(softwaredevelopmentkit,sdk)等等。
99.应理解,本技术实施例的处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执
行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
100.可以理解,本技术实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,rom)、可编程只读存储器(programmablerom,prom)、可擦除可编程只读存储器(erasableprom,eprom)、电可擦除可编程只读存储器(electricallyeprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(randomaccessmemory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(staticram,sram)、动态随机存取存储器(dynamicram,dram)、同步动态随机存取存储器(synchronousdram,sdram)、双倍数据速率同步动态随机存取存储器(doubledataratesdram,ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,esdram)、同步连接动态随机存取存储器(synchlinkdram,sldram)和直接内存总线随机存取存储器(directrambusram,drram)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
101.应理解,上述存储器为示例性但不是限制性说明,例如,本技术实施例中的存储器还可以是静态随机存取存储器(staticram,sram)、动态随机存取存储器(dynamicram,dram)、同步动态随机存取存储器(synchronousdram,sdram)、双倍数据速率同步动态随机存取存储器(doubledataratesdram,ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,esdram)、同步连接动态随机存取存储器(synchlinkdram,sldram)以及直接内存总线随机存取存储器(directrambusram,drram)等等。也就是说,本技术实施例中的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
102.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
103.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
104.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目
的。
105.另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
106.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
107.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。
技术特征:
1.一种视觉定位方法,其特征在于,所述方法包括:获取基于相机采集的参考图像;对所述参考图像进行角点检测,获取多个角点以及每个所述角点对应的分值;根据所述分值以及所述多个角点在所述参考图像上的位置信息,对所述多个角点进行第一筛选操作,确定目标特征点,其中,每两个相邻的所述目标特征点之间的距离不小于预设距离;根据所述目标特征点进行视觉定位。2.根据权利要求1所述的视觉定位方法,其特征在于,所述根据所述分值以及所述多个角点在所述参考图像上的位置信息,对所述多个角点进行第一筛选操作,包括:根据所述分值从大到小的顺序,遍历筛选所述多个角点中的每个角点,依次确定每个角点是否为特征点;在遍历筛选过程中,确定所述多个角点中分值最大的角点是否为特征点,若确定所述多个角点中分值最大的角点为特征点,则根据所述多个角点在所述参考图像上的位置信息,将所述参考图像上位于所述特征点预设像素范围内的角点删除。3.根据权利要求2所述的视觉定位方法,其特征在于,所述方法还包括:若确定所述多个角点中分值最大的角点不是特征点,则将所述多个角点中分值最大的角点从所述多个角点中删除。4.根据权利要求2所述的视觉定位方法,其特征在于,所述参考图像包括第一图像和第二图像,所述第一图像和所述第二图像分别为不同的相机采集的图像,所述第一图像和所述第二图像包括视野重叠的共视区;在所述根据所述分值以及所述多个角点在所述参考图像上的位置信息,对所述多个角点进行第一筛选操作之后,还包括:获取所述共视区内,所述第一图像上的第一特征点和所述第二图像上的第二特征点,所述第一特征点和所述第二特征点为相似特征点;根据所述分值对所述第一特征点和所述第二特征点进行第二筛选操作。5.根据权利要求4所述的视觉定位方法,其特征在于,所述根据所述分值对所述第一特征点和所述第二特征点进行第二筛选操作,包括:将所述第一特征点的分值和所述第二特征点的分值中分值较小的特征点筛除。6.根据权利要求4所述的视觉定位方法,其特征在于,所述根据所述分值对所述第一特征点和所述第二特征点进行第二筛选操作,包括:若所述第一特征点的分值和所述第二特征点的分值相等,则根据所述第一特征点距离所述第一图像的中心的第一距离和所述第二特征点距离所述第二图像的中心的第二距离,对所述第一特征点和所述第二特征点进行第二筛选操作。7.根据权利要求6任一项所述的视觉定位方法,其特征在于,所述根据所述第一特征点距离所述第一图像的中心的第一距离和所述第二特征点距离所述第二图像的中心的第二距离,对所述第一特征点和所述第二特征点进行第二筛选操作,包括:将所述第一特征点对应的所述第一距离和所述第二特征点对应的所述第二距离中较远的距离对应的特征点筛除。8.根据权利要求4所述的视觉定位方法,其特征在于,所述方法还包括:
将所述第一筛选操作以及所述第二筛选操作后得到的特征点确定为目标特征点。9.根据权利要求4所述的视觉定位方法,其特征在于,所述获取所述共视区内,所述第一图像上的第一特征点和所述第二图像上的第二特征点,包括:对所述共视区内,所述第一图像和所述第二图像上的特征点进行匹配操作,以得到具有相似关系的所述第一特征点和所述第二特征点。10.一种视觉定位装置,其特征在于,包括:获取模块,用于获取基于相机采集的参考图像;检测模块,用于对所述参考图像进行角点检测,获取多个角点以及每个所述角点对应的分值;筛选模块,用于根据所述分值以及所述多个角点在所述参考图像上的位置信息,对所述多个角点进行第一筛选操作,确定目标特征点,其中,每两个相邻的所述目标特征点之间的距离不小于预设距离;定位模块,用于根据所述目标特征点进行视觉定位。11.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在终端设备上运行时,使得所述终端设备执行如权利要求1至9中任意一项所述的视觉定位方法。12.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行权利要求1至9任一项所述的视觉定位方法中的步骤。13.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至9所述方法的步骤。
技术总结
本申请提供了一种视觉定位方法、装置、介质、计算机设备和程序产品,该方法包括:获取基于相机采集的参考图像;对参考图像进行角点检测,获取多个角点以及每个角点对应的分值;根据分值以及多个角点在参考图像上的位置信息,对多个角点进行第一筛选操作,确定目标特征点,其中,每两个相邻的目标特征点之间的距离不小于预设距离;根据目标特征点进行视觉定位,从而避免特征点过于集中,提高特征点分布的均匀度,提高视觉定位的精度。提高视觉定位的精度。提高视觉定位的精度。
技术研发人员:李云龙 吴涛
受保护的技术使用者:北京字跳网络技术有限公司
技术研发日:2022.03.09
技术公布日:2023/9/23
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/