CN117132648B - 一种视觉定位方法、电子设备及计算机可读存储介质 - Google Patents
一种视觉定位方法、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN117132648B CN117132648B CN202310492817.4A CN202310492817A CN117132648B CN 117132648 B CN117132648 B CN 117132648B CN 202310492817 A CN202310492817 A CN 202310492817A CN 117132648 B CN117132648 B CN 117132648B
- Authority
- CN
- China
- Prior art keywords
- image
- confidence
- pose
- historical
- determining
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000000007 visual effect Effects 0.000 title claims abstract description 66
- 238000000034 method Methods 0.000 title claims abstract description 63
- 230000004807 localization Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 4
- 238000012216 screening Methods 0.000 claims description 4
- 241001422033 Thestylus Species 0.000 claims 1
- 238000012545 processing Methods 0.000 abstract description 20
- 238000004364 calculation method Methods 0.000 description 25
- 230000006870 function Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 12
- 238000004422 calculation algorithm Methods 0.000 description 10
- 230000001133 acceleration Effects 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 6
- 238000010295 mobile communication Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000000605 extraction Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/58—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/583—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
- G06V10/757—Matching configurations of points or features
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
Abstract
本申请实施例提供了一种视觉定位方法、电子设备及计算机可读存储介质。该方法中,通过获取与待定位的第一图像匹配的历史位姿置信度,根据历史位姿置信度,确定用于指导图像检索的第一图像数量K,检索与第一图像匹配的K个数据库图像,并根据K个数据库图像,确定针对第一图像的视觉定位结果。可以无需对大量数据库图像进行分析,能够有效缓解数据处理冗余、计算资源消耗大的问题。
Description
技术领域
本申请实施例涉及终端技术领域,尤其涉及一种视觉定位方法、电子设备及计算机可读存储介质。
背景技术
视觉定位在增强现实、自动驾驶、机器人导航等多种场景中有着重要的应用。在视觉定位技术中,可以利用预先构建的地图数据库,根据电子设备所采集的图像进行空间定位。
在基于视觉信息进行空间定位的过程中,可能需要对大量数据库图像进行分析,存在数据处理冗余、计算资源消耗大的缺陷。
发明内容
为了解决上述技术问题,本申请提供一种视觉定位方法、电子设备及计算机可读存储介质。该方法中,通过获取与待定位的第一图像匹配的历史位姿置信度,根据历史位姿置信度,确定用于指导图像检索的第一图像数量K,检索与第一图像匹配的K个数据库图像,并根据K个数据库图像,确定针对第一图像的视觉定位结果。可以无需对大量数据库图像进行分析,能够有效缓解数据处理冗余、计算资源消耗大的问题。
第一方面,本申请实施例提供了一种视觉定位方法,应用于电子设备,所述方法包括:获取与第一图像关联的历史位姿置信度;根据所述历史位姿置信度,计算用于指导图像检索的第一图像数量K;对预设的地图数据库进行检索,得到与所述第一图像匹配的K个数据库图像;根据所述K个数据库图像,确定与所述第一图像匹配的第一估计位姿,以作为基于所述第一图像的视觉定位结果。所述历史位姿置信度指示了与第二图像匹配的第二估计位姿的可信程度,所述第二图像为基于所述第一图像的前序帧图像。
通过获取与第一图像关联的历史位姿置信度,根据历史位姿置信度,确定用于指导图像检索的参考图像数量。可以无需对大量数据库图像进行分析,不会产生大规模的数据,计算流程简洁,可以较好地节省计算资源和计算时间。
根据第一方面,所述获取与第一图像关联的历史位姿置信度,包括:确定与所述第一图像关联的目标前序帧图像,以作为所述第二图像;获取与所述第二图像匹配的所述第二估计位姿的位姿置信度,以作为所述历史位姿置信度。
在第二图像为图像序列中的非首帧图像的情况下,第二估计位姿是根据与第二图像关联的前序帧图像的位姿置信度确定的。在第二图像为图像序列中的首帧图像的情况下,第二估计位姿是以预设的最大图像数量为图像检索数量确定的。
根据第一方面,或者以上第一方面的任意一种实现方式,所述确定与所述第一图像关联的目标前序帧图像,以作为所述第二图像,包括:将所述图像序列中基于所述第一图像的前一帧图像,作为所述第二图像;或者,将所述图像序列中与所述第一图像间隔预设时长的前序帧图像,作为所述第二图像。
第二图像可以包括单个或者多个前序帧图像。在第二图像包括多个前序帧图像的情况下,可以根据与任意前序帧图像关联的第二估计位姿的位姿置信度,计算由对应前序帧图像指示的参考图像数量。
可以根据各前序帧图像与第一图像之间的采集时间间隔,对由多个前序帧图像指示的参考图像数量进行加权平均,得到第一图像数量K。或者,根据各前序帧图像与第一图像之间的特征相似度,对由多个前序帧图像指示的参考图像数量进行加权平均,得到第一图像数量K。
根据第一方面,或者以上第一方面的任意一种实现方式,所述根据所述历史位姿置信度,计算用于指导图像检索的第一图像数量K,包括:在所述历史位姿置信度小于预设的第一置信度阈值的情况下,将所述最大图像数量作为所述第一图像数量K;在所述历史位姿置信度大于或等于预设的第二置信度阈值的情况下,将所述最小图像数量作为所述第一图像数量K,所述第二置信度阈值大于所述第一置信度阈值;在所述历史位姿置信度大于或等于所述第一置信度阈值、并且小于所述第二置信度阈值的情况下,所述第一图像数量K与所述历史位姿置信度呈负相关关系。
在历史位姿置信度小于第一置信度阈值的情况下,表征与第二图像匹配的位姿估计结果的置信度较低,可以不对基于第一图像的检索图像数量进行缩减。同时,为不致于图像检索数量过多,造成计算资源的非必要耗费,可以将预设的最大图像数量作为第一图像数量。
在历史位姿置信度大于或等于第二置信度阈值的情况下,表征与第二图像匹配的位姿估计结果的置信度良好,可以对基于第一图像的检索图像数量进行缩减。同时,为不致于图像检索数量过少,影响位姿估计结果的可靠性,可以将预设的最小图像数量作为第一图像数量。
在历史位姿置信度位于第一置信度阈值与第二置信度阈值之间的情况下,可以根据历史位姿置信度计算第一图像数量,第一图像数量与历史位姿置信度呈负相关关系,并且第一图像数量在最大图像数量与最小图像数量之间波动。
根据第一方面,或者以上第一方面的任意一种实现方式,所述根据所述历史位姿置信度,计算用于指导图像检索的第一图像数量K,包括:根据所述历史位姿置信度和预设的位姿置信度最高水平,确定第二图像数量;根据所述第二图像数量和预设的图像数量阈值,计算所述第一图像数量K。
根据历史位姿置信度,动态执行图像检索,有利于减少冗余的特征匹配和位姿计算,有利于提升视觉定位系统的性能。
根据第一方面,或者以上第一方面的任意一种实现方式,所述图像数量阈值包括最大图像数量和最小图像数量;所述根据所述第二图像数量和预设的图像数量阈值,计算所述第一图像数量K,包括:根据所述第二图像数量和所述最大图像数量,将其中较小的图像数量作为第三图像数量;以及根据所述第三图像数量和所述最小图像数量,将其中较大的图像数量作为所述第一图像数量K。
例如,可以通过以下公式计算第一图像数量K与历史位姿置信度之间的关系。
K=max{min[log(1-confidence_max)/log(1-confidence_prev),TopKmax],TopKmin}
其中,confidence_max表示预设的位姿置信度最高水平,confidence_prev表示历史位姿置信度,log(1-confidence_max)/log(1-confidence_prev)表示第二图像数量,TopKmax表示预设的最大图像数量,TopKmin表示预设的最小图像数量。
根据第一方面,或者以上第一方面的任意一种实现方式,所述对预设的地图数据库进行检索,得到与所述第一图像匹配的K个数据库图像,包括:确定与所述第一图像匹配的特征描述符;基于所述特征描述符和所述地图数据库中的数据库图像的特征信息,确定与所述第一图像的特征相似度最高的所述K个数据库图像。
根据历史位姿置信度,确定用于指导图像检索的参考图像数量,可以有效减少冗余的特征匹配计算,能够有效降低位姿估计的计算资源消耗,有利于提升视觉定位效率,有利于提供高效的定位导航支持。
根据第一方面,或者以上第一方面的任意一种实现方式,所述根据所述K个数据库图像,确定与所述第一图像匹配的第一估计位姿,包括:对所述K个数据库图像进行聚类,得到M个图像分组,M为小于或等于K的整数;确定所述第一图像与各所述图像分组中的代表图像之间的特征匹配点对;基于所述特征匹配点对,确定与所述第一图像匹配的所述第一估计位姿。所述代表图像包括对应图像分组中与所述第一图像的特征相似度最高的数据库图像。
同一图像分组内的不同数据库图像可能属于相同场景或者具有相似纹理。基于至少一个图像分组,确定针对第一图像的第一估计位姿,有利于提升位姿估计效率,减少位姿估计的计算资源消耗,同时有利于保证位姿估计结果的准确性。
根据第一方面,或者以上第一方面的任意一种实现方式,所述对所述K个数据库图像进行聚类,得到M个图像分组,包括:根据所述K个数据库图像中的不同数据库图像之间的相同特征点的数量,对所述K个数据库图像进行聚类,得到所述M个图像分组。
基于至少一个图像分组对输入图像进行视觉定位,有助于判断输入图像是否属于相似场景或相似纹理,有利于提升位姿计算效率,能够有效减少视觉定位的计算资源消耗,有助于提高视觉定位的准确性。
根据第一方面,或者以上第一方面的任意一种实现方式,所述基于所述特征匹配点对,确定与所述第一图像匹配的所述第一估计位姿,包括:针对任意所述图像分组,根据所述第一图像与对应图像分组中的代表图像之间的特征匹配点对,确定由所述特征匹配点对指示的候选估计位姿的位姿置信度;根据与各所述图像分组关联的所述候选估计位姿的位姿置信度,在所述M个图像分组中筛选N个有效图像分组,N为小于或等于M的整数;根据所述N个有效图像分组中的所述数据库图像,确定所述第一估计位姿。
根据对应候选估计位姿的位姿置信度,对M个图像分组进行筛选,能够有效减少位姿估计的计算资源和计算时间消耗,有利于提升视觉定位效率,此外还有助于保证视觉定位的准确性,降低视觉定位的误报率。
根据第一方面,或者以上第一方面的任意一种实现方式,所述根据与各所述图像分组关联的所述候选估计位姿的位姿置信度,在所述M个图像分组中筛选N个有效图像分组,包括:针对任意所述图像分组,在所述候选估计位姿的位姿置信度高于预设阈值的情况下,将对应图像分组作为所述有效图像分组。在候选估计位姿的位姿置信度低于或等于预设阈值的情况下,将对应图像分组作为无效图像分组并丢弃。
根据第一方面,或者以上第一方面的任意一种实现方式,所述根据所述N个有效图像分组中的所述数据库图像,确定所述第一估计位姿,包括:确定所述第一图像与所述N个有效图像分组中的各所述数据库图像之间的特征匹配点对;根据所述第一图像与各所述数据库图像之间的所述特征匹配点对,确定所述第一估计位姿。
根据第一方面,或者以上第一方面的任意一种实现方式,在执行所述获取与第一图像关联的历史位姿置信度的操作之前,还包括:响应于获取的定位图像,确定针对所述定位图像的质量指标信息;在所述质量指标信息满足预设质量条件的条件下,将所述定位图像作为所述第一图像,所述质量指标信息包括图像清晰度、图像亮度和图像纹理丰富度中的至少之一。
通过对低质量图像进行过滤,可以有效减轻位姿计算的运算压力,能够有效减少计算资源和计算时间的非必要耗费。此外,还有利于提高视觉定位的准确性,能够有效避免因采用低质量图像进行位姿估计,造成视觉定位错误的情况。
第二方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器、存储器以及一个或多个计算机程序,其中所述一个或多个计算机程序存储在所述存储器上,当所述计算机程序被所述一个或多个处理器执行时,使得所述电子设备执行以下步骤:获取与第一图像关联的历史位姿置信度;根据所述历史位姿置信度,计算用于指导图像检索的第一图像数量K;对预设的地图数据库进行检索,得到与所述第一图像匹配的K个数据库图像;根据所述K个数据库图像,确定与所述第一图像匹配的第一估计位姿,以作为基于所述第一图像的视觉定位结果。所述历史位姿置信度指示了与第二图像匹配的第二估计位姿的可信程度,所述第二图像为基于所述第一图像的前序帧图像。
第二方面以及第二方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第二方面以及第二方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第三方面,本申请实施例提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
第四方面,本申请实施例提供了一种计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
第五方面,本申请实施例提供了一种芯片,该芯片包括处理电路、收发管脚。其中,该收发管脚、和该处理电路通过内部连接通路互相通信,该处理电路执行第一方面或第一方面的任一种可能的实现方式中的方法,以控制接收管脚接收信号,以控制发送管脚发送信号。
附图说明
图1为示例性示出一种应用场景示意图;
图2为示例性示出的电子设备的结构示意图;
图3为示例性示出的电子设备的软件结构框图;
图4为本申请实施例提供的一种视觉定位过程的流程图;
图5为本申请实施例提供的第一图像与第二图像之间的关系示意图;
图6为本申请实施例提供的第一图像数量与历史位姿置信度之间的关系示意图;
图7为本申请实施例提供的视觉定位方法的过程示意图;
图8为本申请实施例提供的图像聚类结果的示意图;
图9为本申请实施例提供的图像分组的示意图;
图10为本申请实施例提供的另一视觉定位过程的流程图;
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一目标对象和第二目标对象等是用于区别不同的目标对象,而不是用于描述目标对象的特定顺序。
在本申请实施例中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个处理单元是指两个或两个以上的处理单元;多个系统是指两个或两个以上的系统。
在对本申请实施例的技术方案说明之前,首先结合附图对本申请实施例的应用场景进行说明。如图1所示为本申请实施例提供的一种应用场景示意图。如图1所示,用户在进入待定位的场景区域后,可以使用电子设备10对场景区域进行拍摄,得到当前场景图像11。电子设备10根据当前场景图像11和预设的地图数据库,对当前场景区域进行识别,并基于当前场景区域对电子设备自身进行定位,得到视觉定位结果12。
在基于当前场景图像进行空间定位的过程中,可能需要对大量数据库图像进行分析,导致产生大规模的数据,造成数据处理冗余、计算资源和计算时间消耗大的缺陷。
本申请实施例提供了一种视觉定位方法,可应用于电子设备。电子设备通过获取与待定位的当前场景图像匹配的历史位姿置信度,根据历史位姿置信度,确定用于指导图像检索的参考图像数量K。电子设备基于预设的地图数据库,检索与当前场景图像匹配的K个数据库图像,以及根据K个数据库图像,确定针对当前场景图像的视觉定位结果。可以无需对大量的数据库图像进行分析,能够有效缓解数据处理冗余、计算资源消耗大的缺陷。
电子设备可以包括手机、平板电脑、智慧手表、笔记本电脑、自动驾驶车辆、智能家居、机器导航设备、虚实融合设备等。本申请实施例可以应用于各种需要进行视觉定位的场景中。示例性地,本申请实施例可以应用于基于客户端的视觉定位导航系统中,可以为自动驾驶车辆提供视觉信息的定位导航辅助,可以应用于机器人的自主定位导航中。
当前场景图像可以是由电子设备实时采集的图像。以电子设备为手机为例,当前场景图像可以是由手机摄像头拍摄的图像。以电子设备为自动驾驶车辆为例,当前场景图像可以是由车辆摄像装置采集的图像。当前场景图像还可以是由电子设备从其他设备处接收的图像,例如可以是由电子设备实时接收的图像,也可以是由电子设备预先接收的图像。
如图2所示为电子设备100的结构示意图。可选地,电子设备100可以称为终端,也可以称为终端设备,电子设备100的具体产品形态可以是智能终端,如手机、平板电脑、可穿戴设备、增强现实/虚拟现实设备、笔记本电脑、车载设备、个人助理(Personal DigitalAssistant,PDA)等具有视觉定位功能的电子设备。具体地,本申请涉及的功能模块可以部署于相关设备的DSP芯片上,具体可以是其中的应用程序或软件。可以通过软件安装或升级,以及通过硬件的调用配合,实现一种视觉定位功能。
应该理解的是,图2所示的电子设备100仅是电子设备的一个范例,并且电子设备100可以具有比图中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图2中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
电子设备100可以包括:处理器110、存储器200、移动通信模块130、无线通信模块140、传感器模块150、按键160、马达161、指示器162、摄像头163和显示屏164。传感器模块150可以包括压力传感器、陀螺仪传感器、加速度传感器、温度传感器、运动传感器、气压传感器、磁传感器、距离传感器、接近光传感器、指纹传感器、触摸传感器、环境光传感器、骨传导传感器等。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP)、调制解调处理器、图形处理器(graphics processingunit,GPU)、图像信号处理器(image signal processor,ISP)、控制器、存储器、视频编解码器、数字信号处理器(digital signal processor,DSP),基带处理器和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
处理器110可以包括空间计算(Spatial Computing,SC)模块111和同步定位与地图构建(Simultaneous Localization And Mapping,SLAM)模块112。SC模块111可用于基于当前场景图像进行图像位姿估计,以进行视觉空间定位。SLAM模块112可用于根据SC模块111的位姿估计结果,对电子设备进行实时追踪,以实现电子设备的自主定位和导航。SC模块111和SLAM模块112可以集成在处理器110的同一处理单元中。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。
电子设备100的无线通信功能可以通过天线1、天线2、移动通信模块130、无线通信模块140、调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。
移动通信模块130可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块130可以包括至少一个滤波器、开关、功率放大器、低噪声放大器(low noise amplifier,LNA)等。
无线通信模块140可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络)、蓝牙(bluetooth,BT)、全球导航卫星系统(global navigation satellite system,GNSS)、调频(frequency modulation,FM)、近距离无线通信技术(near field communication,NFC)、红外技术(infrared,IR)等无线通信的解决方案。
在一些实施例中,电子设备100的天线1和移动通信模块130耦合,天线2和无线通信模块140耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。
电子设备100通过GPU、显示屏164以及应用处理器等实现显示功能。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏164用于显示图像、视频等,显示屏164包括显示面板。在一些实施例中,电子设备100可以包括1个或N个显示屏164,N为大于1的正整数。
电子设备100可以通过ISP、摄像头163、视频编解码器、GPU、显示屏164以及应用处理器等实现拍摄功能。
ISP用于处理摄像头163反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点、亮度、肤色进行算法优化。ISP还可以对拍摄场景的曝光、色温等参数优化。在一些实施例中,ISP可以设置在摄像头163中。
摄像头163用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB、YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头163,N为大于1的正整数。
其中,摄像头163可以位于电子设备的边缘区域,可以为屏下摄像头,也可以是可升降的摄像头。摄像头163可以包括前置摄像头,还可以包括后置摄像头。本申请实施例对摄像头163的具体位置和形态不予限定。电子设备100可以包括一种或多种焦段的摄像头,例如不同焦段的摄像头可以包括长焦摄像头、广角摄像头、超广角摄像头或全景摄像头等。
存储器120可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在存储器120的指令,从而执行电子设备100的各种功能应用以及数据处理,例如使得电子设备100实现本申请实施例中的视觉定位方法。存储器120可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、通用闪存存储器(universal flashstorage,UFS)等。
存储器120中可以存储有视觉定位模块121,视觉定位模块121是存储有本申请实施例提供的视觉定位方法的程序代码模块,可用于对输入图像进行位姿估计,并对位姿估计结果进行置信度评估,以判断位姿估计结果的可靠性。SLAM模块112可以基于视觉定位模块121的位姿估计结果和置信度评估结果,进行电子设备位姿的实时追踪,从而实现电子设备的自主定位和导航。
触摸传感器,也称“触控面板”。触摸传感器可以设置于显示屏164,由触摸传感器与显示屏164组成触摸屏,也称“触控屏”。触摸传感器用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏164提供与触摸操作相关的视觉输出。
压力传感器用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器可以设置于显示屏164。电子设备100也可以根据压力传感器的检测信号计算触摸的位置。
陀螺仪传感器可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器确定电子设备100围绕三个轴(即,x、y和z轴)的角速度。
加速度传感器可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时加速度传感器可检测出重力的大小及方向。加速度传感器还可以用于识别电子设备姿态,应用于横竖屏切换、计步器等应用。
按键160包括开机键(或称电源键)、音量键等。按键160可以是机械按键,也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
电子设备100的软件系统可以采用分层架构、事件驱动架构、微核架构、微服务架构或云架构。本发明实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
如图3为示例性示出的电子设备100的软件结构框图,电子设备100的分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层、应用程序框架层、安卓运行时(Android runtime)、系统层和内核层。
应用程序层可以包括一系列应用程序包,如图3所示,应用程序包可以包括相机、图库、AR导航、机器人管理等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(ApplicationProgramming Interface,API)和编程框架,包括各种组件和服务来支持开发者的安卓开发。应用程序框架层包括一些预先定义的函数。如图3所示,应用程序框架层可以包括窗口管理器、内容提供器、通知管理器、资源管理器、位姿估计模块和位姿置信度计算模块等
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小、判断是否有状态栏、锁定屏幕、截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。数据可以包括视频、图像、音频、拨打和接听的电话、浏览历史和书签、电话簿等。
资源管理器可以为应用程序提供各种资源,比如本地化字符串、图标、图片、布局文件、视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知信息被用于告知下载完成、消息提醒等。通知信息还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息、发出提示音、电子设备振动、指示灯闪烁等。
位姿估计模块用于响应于电子设备获取的当前场景图像,根据当前场景图像和预设的地图数据库,确定与当前场景图像匹配的估计位姿。位姿置信度计算模块用于计算估计位姿的置信度,判断位姿估计结果的可靠性。
系统层包括系统库和安卓运行时(Android Runtime)。系统库可以包括多个功能模块,例如图像渲染库、图像合成库、函数库和媒体库等。安卓运行时包括核心库和虚拟机,安卓运行时负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中,虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理、堆栈管理、线程管理、安全和异常的管理以及垃圾回收等功能。
可以理解的是,图3示出的系统框架层、系统库与运行时层包含的部件,并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。
内核层是硬件和上述软件层之间的层。内核层至少包含显示驱动、摄像头驱动和传感器驱动。硬件可以包括摄像头、显示屏、麦克风、处理器以及存储器等器件。
下面结合图4所示的流程图,对视觉定位过程进行示意说明。如图4所示,视觉定位过程可以包括操作S101~S104。
在操作S101,电子设备获取与第一图像关联的历史位姿置信度。
在操作S102,电子设备根据历史位姿置信度,计算用于指导图像检索的第一图像数量K。
在操作S103,电子设备对预设的地图数据库进行检索,得到与第一图像匹配的K个数据库图像。
在操作S104,电子设备根据K个数据库图像,确定与第一图像匹配的第一估计位姿,以作为基于第一图像的视觉定位结果。
在一些实施例中,电子设备可以通过图3所示的位姿估计模块,确定与第一图像匹配的第一估计位姿。可以理解的是,电子设备也可以利用其他位姿估计模块或用于位姿估计的程序代码来确定第一图像对应的第一估计位姿,本申请实施例对电子设备确定第一估计位姿的方式不作限定。
下面示例说明本实施例的视觉定位过程的各操作示例流程。
在操作S101,电子设备获取与第一图像关联的历史位姿置信度。
示例性地,第一图像可以是由电子设备实时采集的当前场景图像,也可以是由电子设备从其他设备处接收的图像。电子设备响应于获取的第一图像,获取与第一图像关联的历史位姿置信度。历史位姿置信度指示了与第二图像匹配的第二估计位姿的可信程度,第二图像为基于第一图像的前序帧图像。
电子设备可以确定与第一图像关联的目标前序帧图像,以作为第二图像。示例性地,电子设备可以将图像序列中基于第一图像的前一帧图像,作为第二图像。或者,将图像序列中与第一图像间隔预设时长的前序帧图像,作为第二图像。
图5示例性示出了第一图像与第二图像之间的关系示意图,如图5所示,图像序列中包括时序递增的5帧图像,图像101构成待视觉定位的第一图像,电子设备可以将基于第一图像的前一帧图像102作为第二图像,也可以将与第一图像间隔预设时长的前序帧图像103,作为第二图像。
例如,在实际应用中,考虑到人的行走速度(以行走速度为3m/s为例)和摄像头拍摄图像的帧率(以帧率为帧/30ms为例),可以将图像序列中与第一图像间隔1s的前序帧图像作为第二图像,第一图像与第二图像之间例如间隔30张前序帧图像。
电子设备获取与第二图像匹配的第二估计位姿的位姿置信度,以作为历史位姿置信度。在第二图像为图像序列中的非首帧图像的情况下,第二估计位姿是根据与第二图像关联的前序帧图像的位姿置信度确定的。
本申请实施例涉及的位姿用于指示图像所对应的位置和姿态。位置可以表示图像或采集图像的摄像头位置的坐标,位置可以通过空间直角坐标系(x,y,z)坐标来表示。姿态可以表示摄像头方向相对空间直角坐标系的x、y、z轴的旋转角度,姿态可以通过(yaw,roll,pitch)空间来表示,pitch(俯仰角)表示围绕x轴旋转的参数,yaw(偏航角)表示围绕y轴旋转的参数,roll(翻滚角)表示围绕z轴旋转的参数。
在操作S102,电子设备根据历史位姿置信度,计算用于指导图像检索的第一图像数量K。
示例性地,电子设备根据与第一图像关联的历史位姿置信度,计算用于指导图像检索的参考图像数量,也即第一图像数量K。一种示例方式,电子设备可以根据历史位姿置信度和预设的位姿置信度最高水平,确定第二图像数量。接下来,根据第二图像数量和预设的图像数量阈值,计算第一图像数量K。
示例性地,图像数量阈值可以包括最大图像数量和最小图像数量,电子设备可以根据第二图像数量和最大图像数量,将其中较小的图像数量作为第三图像数量,以及根据第三图像数量和最小图像数量,将其中较大的图像数量作为第一图像数量K。
例如,可以通过以下公式计算第一图像数量K与历史位姿置信度之间的关系。
K=max{min[log(1-confidence_max)/log(1-confidence_prev),TopKmax],TopKmin}
其中,confidence_max表示预设的位姿置信度最高水平,confidence_prev表示历史位姿置信度,log(1-confidence_max)/log(1-confidence_prev)表示第二图像数量,TopKmax表示预设的最大图像数量,TopKmin表示预设的最小图像数量。
另一示例方式,在历史位姿置信度小于预设的第一置信度阈值的情况下,电子设备可以将预设的最大图像数量作为第一图像数量K。在历史位姿置信度大于或等于预设的第二置信度阈值的情况下,电子设备可以将预设的最小图像数量作为第一图像数量K,第二置信度阈值大于第一置信度阈值。在历史位姿置信度大于或等于第一置信度阈值、并且小于第二置信度阈值的情况下,第一图像数量K与历史位姿置信度呈负相关关系。
图6示例性示出了第一图像数量与历史位姿置信度之间的关系示意图,如图6所示,第一图像数量在预设的最大图像数量Kmax与最小图像数量Kmin之间波动。
在历史位姿置信度小于第一置信度阈值(第一置信度阈值例如可以是0.2)的情况下,表征与第二图像匹配的位姿估计结果的置信度较低,可以不对基于第一图像的检索图像数量进行缩减。同时,为不致于图像检索数量过多,造成计算资源的非必要耗费,可以将预设的最大图像数量作为第一图像数量。
在历史位姿置信度大于或等于第二置信度阈值的情况下,表征与第二图像匹配的位姿估计结果的置信度良好,可以对基于第一图像的检索图像数量进行缩减。在历史位姿置信度大于或等于第二置信度阈值(第二置信度阈值例如可以是0.5)的情况下,根据历史位姿置信度计算出的第一图像数量可能小于预设的最小图像数量。为保证基于第一图像的视觉定位结果的可靠性,可以在历史位姿置信度大于或等于第二置信度阈值的情况下,将最小图像数量作为第一图像数量。
在历史位姿置信度位于第一置信度阈值与第二置信度阈值之间的情况下,第一图像数量可以与历史位姿置信度呈负相关关系,即,第一图像数量随历史位姿置信度的增大而减小。
在操作S103,电子设备对预设的地图数据库进行检索,得到与第一图像匹配的K个数据库图像。
示例性地,电子设备可以对第一图像进行特征点提取,以及对特征点进行描述,生成稳定且具有可比性的向量表示,以作为第一图像的特征描述符。特征描述符可用于描述第一图像中的局部区域的视觉特征。特征描述符例如可以包括方向梯度直方图(Histogramof Oriented Gradients,HOG)、局部二值模式(Local Binary Pattern,LBP)、加速稳健特征(Speeded Up Robust Feature,SURF)、尺度不变特征变换(Scale-invariant featuretransform,SIFT)等。
预设的地图数据库可用于实现特定场景下的电子设备的视觉定位。地图数据库例如包括特定场景下连续拍摄的多帧数据库图像,以及包括数据库图像的位姿信息、特征描述符、像素点投影关系、采集设备参数等数据。采集设备可以是用于拍摄地图数据库中的多帧数据库图像的电子设备,采集设备参数例如包括采集设备上一个或者多个摄像头的相机内参、摄像头相对位姿等。
在确定与第一图像匹配的特征描述符之后,电子设备可以基于特征描述符和地图数据库中的数据库图像的特征信息,确定与第一图像的特征相似度最高的K个数据库图像。例如,电子设备可以根据第一图像与数据库图像之间的特征描述符距离,确定对应图像之间的特征相似度。电子设备还可以通过图像处理技术等相关领域中任意一种图像相似度算法,例如结构相似度算法、感知哈希算法、直方图算法等,检索得到与第一图像的特征相似度最高的K个数据库图像,本实施例对具体使用的图像相似度算法不做限定。
在操作S104,电子设备根据K个数据库图像,确定与第一图像匹配的第一估计位姿,以作为基于第一图像的视觉定位结果。
示例性地,电子设备可以确定第一图像与数据库图像之间的特征匹配点对,基于特征匹配点对,确定与第一图像匹配的第一估计位姿,以作为基于第一图像的视觉定位结果。特征匹配点对可以包括第一图像的2D点(2D点即图像中的像素点)和数据库图像中对应于同一物体的2D点/3D点云(3D点云即实物表面空间点的集合)。例如,在第一图像的2D点和数据库图像的3D点云对应同一建筑的情况下,认为第一图像的2D点和数据库图像的3D点云构成特征匹配点对。
示例性地,电子设备可以基于特征匹配结果,利用PnP(Perspective-n-Point,n点透视图)算法计算第一图像的位姿估计结果。PnP算法可用于估计采集设备位姿,即采集设备在三维空间坐标系中的位置和方向。用于采集第一图像的电子设备的设备位姿,构成与第一图像匹配的位姿估计结果。
下面结合图7所示的过程示意图,对视觉定位方法进行示意说明。如图7所示,视觉定位方法可以包括操作S201~S207。
在操作S201,图像采集模块向位姿估计模块输入图像。
示例性地,位姿估计模块响应于接收到由图像采集模块输入的定位图像,确定针对定位图像的质量指标信息。在质量指标信息满足预设质量条件的条件下,位姿估计模块将定位图像作为待进行视觉定位的第一图像。
质量指标信息例如包括图像清晰度、图像亮度和图像纹理丰富度中的至少之一。例如,位姿估计模块可以通过拉普拉斯算子或sobel算子计算定位图像的梯度方差,得到定位图像的图像清晰度。位姿估计模块可以计算定位图像的平均灰度值,得到定位图像的图像亮度。或者,位姿估计模块可以提取定位图像中的特征点,根据特征点的数量确定定位图像的纹理丰富度。
在定位图像的质量指标信息满足预设质量条件的条件下,将定位图像作为待进行视觉定位的第一图像。通过对低质量图像进行过滤,可以有效减轻位姿计算的运算压力,能够有效减少计算资源和计算时间的非必要耗费。此外,还有利于提高视觉定位的准确性,能够有效避免因采用低质量图像进行位姿估计,造成视觉定位错误的情况。
在操作S202,位姿估计模块根据特征描述符地图和历史位姿置信度进行图像检索。
示例性地,位姿估计模块确定与第一图像关联的目标前序帧图像,以作为第二图像。第二图像例如可以是图像序列中基于第一图像的前一帧图像,也可以是图像序列中与第一图像间隔预设时长的前序帧图像。位姿估计模块获取与第二图像匹配的第二估计位姿的位姿置信度,以作为历史位姿置信度。
在第二图像为图像序列中的首帧图像的情况下,第二估计位姿是以预设的最大图像数量为图像检索数量确定的。在第二图像为图像序列中的非首帧图像的情况下,第二估计位姿是根据与第二图像关联的前序帧图像的位姿置信度确定的,例如是以根据前述位姿置信度得到的参考图像数量为图像检索数量确定的。
位姿估计模块根据历史位姿置信度,计算用于指导图像检索的第一图像数量K,第一图像数量K可以与历史位姿置信度呈负相关关系。位姿估计模块对预设的地图数据库进行检索,得到与第一图像匹配的K个数据库图像。
地图数据库包括特定场景下的特征描述符地图,特征描述符地图是将数据库图像中的特征点与对应的特征描述符进行关联得到的数据结构,数据结构中包含特征点坐标和对应的特征描述符向量。通过建立特征描述符地图,可以实现快速在数据库图像中搜索以及匹配特征点,从而实现各种计算机视觉任务。
示例性地,位姿估计模块可以检测第一图像中的局部特征,以及生成具有唯一性和鲁棒性的特征描述符。位姿估计模块根据前述特征描述符和地图数据库中的特征描述符地图,筛选与第一图像的特征相似度最高的K个数据库图像,以作为图像检索结果。
在操作S203,位姿估计模块对图像检索结果进行聚类。
示例性地,位姿估计模块可以对检索得到的K个数据库图像进行聚类,得到M个图像分组,M为小于或等于K的整数。例如,位姿估计模块可以根据不同数据库图像之间的相同特征点的数量,对K个数据库图像进行聚类,得到M个图像分组,各图像分组可以包括一个或者多个数据库图像。图像分组也可以称为共视组,属于同一图像分组的不同数据库图像之间可以认为具有共视关系,属于不同图像分组的数据库图像之间可以认为不具有共视关系。
结合图8所示的图像分组的示意图,对图像聚类结果进行示意性说明。如图8所示,位姿估计模块对检索得到的数据库图像进行聚类,得到图像分组201、202、203和204。图像分组201、202、203、204中分别例如包括3、2、1、3个数据库图像。
同一图像分组内的不同数据库图像之间具有超过预设数量阈值的相同特征点,同一图像分组内的不同数据库图像可能属于相同场景或者具有相似纹理。基于至少一个图像分组,确定针对第一图像的第一估计位姿,有利于提升位姿估计效率,减少位姿估计的计算资源消耗,同时有利于保证位姿估计结果的准确性。
在操作S204,位姿估计模块对输入图像和图像聚类结果进行特征点提取。
示例性地,位姿估计模块可以对第一图像和各图像分组中的数据库图像进行特征点提取,提取的特征点例如包括图像中的角点、斑点、边缘、SIFT(Scale-invariantfeature transform,尺度不变特征转换)特征点、SURF(Speeded Up Robust Feature,加速鲁棒特性)特征点、HOG(Histogram of Oriented Gradients,方向梯度直方图)特征ORB(Oriented FAST and Rotated BRIEF,定向快速旋转简报)特征点等,本实施例对特征点的种类及提取方式不做限定。
角点包括图像中梯度变化明显的像素点,通常可以是两条边缘的相交点,或者是图像中的拐角点。斑点包括图像中明显的圆形或椭圆形区域,通常是由于光照变化或物体表面纹理等因素引起的。边缘包括图像中具有明显亮度变化的像素点构成的线条,例如包括物体表面边缘或者不同物体之间的分界线,在垂直于边缘的方向上有明显的梯度变化。
SIFT特征点可以是通过在不同尺度和方向上对高斯差分图像进行计算,提取出的具有代表性和稳定性的局部特征点。SURF特征点具有尺度不变性和旋转不变性,可通过Haar小波响应和积分图像来加速特征点的提取和匹配。HOG特征点可以是通过从图像中提取物体边缘方向的梯度直方图得到的特征点。
在操作S205,位姿估计模块基于2D/3D特征点地图进行特征点匹配。
示例性地,位姿估计模块可以确定第一图像与各图像分组中的代表图像之间的特征匹配点对,代表图像可以是对应图像分组中与第一图像的特征相似度最高的数据库图像。例如,针对M个图像分组中的任意图像分组,位姿估计模块可以利用与代表图像匹配的2D/3D特征点地图,进行基于第一图像和代表图像之间的特征点匹配。2D/3D特征点地图可以包括数据库图像的2D/3D特征点和特征点对应的描述符,不同视角下的描述符可用于特征点匹配和定位。
在操作S206,位姿估计模块基于特征点匹配结果进行位姿计算。
示例性地,位姿估计模块根据第一图像与各图像分组中的代表图像之间的特征匹配点对,确定由特征匹配点对指示的候选估计位姿。通过位姿置信度计算模块,计算候选估计位姿的位姿置信度。
一种示例方式,位姿置信度计算模块可以计算第一图像和代表图像之间的重投影误差、点云匹配误差、帧间运动一致性等,以此确定候选估计位姿的位姿置信度。例如,针对第一图像和代表图像之间的特征匹配点对,位姿置信度计算模块可以计算对应特征点在候选估计位姿下的重投影误差,即重投影点与对应特征点之间的距离,重投影误差越小,候选估计位姿的位姿置信度越高。或者,位姿置信度计算模块可以计算点云在基于候选估计位姿变换后,与目标点云中对应点的距离来计算点云匹配误差,点云匹配误差越小,候选估计位姿的位姿置信度越高。
利用位姿估计模块,根据与各图像分组关联的候选估计位姿的位姿置信度,在M个图像分组中筛选N个有效图像分组,N为小于或等于M的整数。示例性地,针对任意图像分组,在候选估计位姿的位姿置信度高于预设阈值的情况下,将对应图像分组作为有效图像分组。在候选估计位姿的位姿置信度低于或等于预设阈值的情况下,将对应图像分组作为无效图像分组进行舍弃。
利用位姿估计模块,根据N个有效图像分组中的数据库图像,确定与第一图像匹配的第一估计位姿,以作为基于第一图像的视觉定位结果。可选地,利用位姿估计模块,确定第一图像与N个有效图像分组中的各数据库图像之间的特征匹配点对,以及根据第一图像与各数据库图像之间的特征匹配点对,确定第一估计位姿。
在确定出与第一图像匹配的第一估计位姿之后,可以利用位姿置信度计算模块确定第一估计位姿的位姿置信度。当需要确定基于第一图像的后续帧图像的估计位姿时,可以将第一估计位姿的位姿置信度,作为与后续帧图像关联的历史位姿置信度,以此实现根据历史位姿置信度,确定针对后续帧图像的图像检索数量。
在操作S207,利用输出模块,输出第一估计位姿和位姿置信度。
图9示意性示出了图像分组的示意图,如图9所示的横坐标为图像平面坐标系的横坐标,纵坐标为图像平面坐标系的纵坐标。位姿估计模块对检索得到的数据库图像进行聚类,得到图像分组G1、G2、G3和G4,图像分组G1中包括12个数据库图像,图像分组G2中包括9个数据库图像,图像分组G3中包括3个数据库图像,图像分组G4中包括1个数据库图像。
位姿估计模块计算第一图像分别与图像分组G1、G2、G3、G4中的代表图像之间的特征匹配点对,代表图像可以是对应图像分组中与第一图像的特征相似度最高的数据库图像。通过位姿估计模块,根据第一图像与各图像分组中的代表图像之间的特征匹配点对,确定由特征匹配点对指示的候选估计位姿。通过位姿置信度计算模块,计算候选估计位姿的位姿置信度。
示例性地,图像分组G1对应的位姿置信度最高,图像分组G1、G2对应的位姿置信度高于预设阈值,图像分组G3、G4对应的位姿置信度低于预设阈值。位姿估计模块将图像分组G1、G2作为有效图像分组,并根据有效图像分组中的所有数据库图像,计算第一图像的第一估计位姿。位姿估计模块将图像分组G3、G4作为无效图像分组,并进行丢弃。
下面结合图10所示的流程图,对视觉定位过程进行示意说明。如图10所示,视觉定位过程例如包括操作S301~S309。
在操作S301,图像采集模块向位姿估计模块输入图像。
在操作S302A,位姿估计模块对输入图像进行特征点检测和特征描述符计算。
在操作S302B,位姿估计模块获取与输入图像匹配的历史位姿置信度。
示例性地,位姿估计模块可以确定基于输入图像的目标前序帧图像,并将针对目标前序帧图像的第二估计位姿的位姿置信度,作为与输入图像匹配的历史位姿置信度。
在操作S302C,位姿估计模块根据历史位姿置信度,确定用于指导图像检索的参考图像数量K。
示例性地,位姿估计模块可以根据历史位姿置信度、预设的位姿置信度最高水平、预设的图像数量阈值,确定用于指导图像检索的参考图像数量K。图像数量阈值包括最大图像数量和最小图像数量。
在操作S303,位姿估计模块根据输入图像的特征点或特征描述符,在预设地图数据库中检索与输入图像匹配的K个数据库图像。
在操作S304,位姿估计模块对K个数据库图像进行聚类,得到M个图像分组,,M为小于或等于K的整数。
示例性地,位姿估计模块可以根据不同数据库图像之间的相同特征点的数量,对K个数据库图像进行聚类,得到M个图像分组。
在操作S305,位姿估计模块计算各图像分组对应的候选估计位姿的位姿置信度。
示例性地,位姿估计模块确定输入图像与各图像分组中的代表图像之间的特征匹配点对,代表图像可以是对应图像分组中与输入图像的特征相似度最高的数据库图像。位姿估计模块根据与各图像分组关联的特征匹配点对,确定由特征匹配点对指示的候选估计位姿。通过位姿置信度计算模块,计算候选估计位姿的位姿置信度。
在操作S306,位姿估计模块判断与各图像分组关联的候选估计位姿的位姿置信度是否大于预设阈值,是则执行操作S308,否则执行操作S307。
在操作S307,位姿估计模块将对应图像分组作为无效图像分组,并进行丢弃。
在操作S308,位姿估计模块根据对应图像分组中的所有数据库图像计算输入图像的第一估计位姿。
示例性地,位姿估计模块将对应图像分组作为有效图像分组,位姿估计模块确定输入图像与有效图像分组中的各数据库图像之间的特征匹配点对,以及根据前述特征匹配点对,计算输入图像的第一估计位姿。
在操作S309,由输出模块对输入图像的第一估计位姿进行输出。
可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本实施例还提供一种电子设备,包括:一个或多个处理器、存储器以及一个或多个计算机程序,其中一个或多个计算机程序存储在存储器上,当计算机程序被一个或多个处理器执行时,使得电子设备执行以下步骤:获取与第一图像关联的历史位姿置信度;根据历史位姿置信度,计算用于指导图像检索的第一图像数量K;对预设的地图数据库进行检索,得到与第一图像匹配的K个数据库图像;根据K个数据库图像,确定与第一图像匹配的第一估计位姿,以作为基于第一图像的视觉定位结果。历史位姿置信度指示了与第二图像匹配的第二估计位姿的可信程度,第二图像为基于第一图像的前序帧图像。
本实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的视觉定位方法。
本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的视觉定位方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的视觉定位方法。
其中,本实施例提供的电子设备、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
本申请各个实施例的任意内容,以及同一实施例的任意内容,均可以自由组合。对上述内容的任意组合均在本申请的范围之内。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
结合本申请实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(Read Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性地存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (14)
1.一种视觉定位方法,应用于电子设备,其特征在于,所述方法包括:
获取与第一图像关联的历史位姿置信度;
根据所述历史位姿置信度,计算用于指导图像检索的第一图像数量K;
对预设的地图数据库进行检索,得到与所述第一图像匹配的K个数据库图像;
根据所述K个数据库图像,确定与所述第一图像匹配的第一估计位姿,以作为基于所述第一图像的视觉定位结果,
其中,所述历史位姿置信度指示了与第二图像匹配的第二估计位姿的可信程度,所述第二图像为基于所述第一图像的前序帧图像,
所述根据所述历史位姿置信度,计算用于指导图像检索的第一图像数量K,包括:
在所述历史位姿置信度小于第一置信度阈值的情况下,将预设的最大图像数量作为所述第一图像数量K;
在所述历史位姿置信度大于或等于第二置信度阈值的情况下,将预设的最小图像数量作为所述第一图像数量K,所述第二置信度阈值大于所述第一置信度阈值;
在所述历史位姿置信度大于或等于所述第一置信度阈值、并且小于所述第二置信度阈值的情况下,所述第一图像数量K与所述历史位姿置信度呈负相关关系。
2.根据权利要求1所述的方法,其特征在于,所述获取与第一图像关联的历史位姿置信度,包括:
确定与所述第一图像关联的目标前序帧图像,以作为所述第二图像;
获取与所述第二图像匹配的所述第二估计位姿的位姿置信度,以作为所述历史位姿置信度,
其中,在所述第二图像为图像序列中的非首帧图像的情况下,所述第二估计位姿是根据与所述第二图像关联的前序帧图像的位姿置信度确定的。
3.根据权利要求2所述的方法,其特征在于,所述确定与所述第一图像关联的目标前序帧图像,以作为所述第二图像,包括:
将所述图像序列中基于所述第一图像的前一帧图像,作为所述第二图像;或者,
将所述图像序列中与所述第一图像间隔预设时长的前序帧图像,作为所述第二图像。
4.根据权利要求1所述的方法,其特征在于,所述根据所述历史位姿置信度,计算用于指导图像检索的第一图像数量K,还包括:
根据所述历史位姿置信度和预设的位姿置信度最高水平,确定第二图像数量;
根据所述第二图像数量和预设的图像数量阈值,计算所述第一图像数量K。
5.根据权利要求4所述的方法,其特征在于,所述图像数量阈值包括最大图像数量和最小图像数量;所述根据所述第二图像数量和预设的图像数量阈值,计算所述第一图像数量K,包括:
根据所述第二图像数量和所述最大图像数量,将其中较小的图像数量作为第三图像数量;以及
根据所述第三图像数量和所述最小图像数量,将其中较大的图像数量作为所述第一图像数量K。
6.根据权利要求1所述的方法,其特征在于,所述对预设的地图数据库进行检索,得到与所述第一图像匹配的K个数据库图像,包括:
确定与所述第一图像匹配的特征描述符;
基于所述特征描述符和所述地图数据库中的数据库图像的特征信息,确定与所述第一图像的特征相似度最高的所述K个数据库图像。
7.根据权利要求1所述的方法,其特征在于,所述根据所述K个数据库图像,确定与所述第一图像匹配的第一估计位姿,包括:
对所述K个数据库图像进行聚类,得到M个图像分组,M为小于或等于K的整数;
确定所述第一图像与各所述图像分组中的代表图像之间的特征匹配点对;
基于所述特征匹配点对,确定与所述第一图像匹配的所述第一估计位姿,
其中,所述代表图像包括对应图像分组中与所述第一图像的特征相似度最高的数据库图像。
8.根据权利要求7所述的方法,其特征在于,所述对所述K个数据库图像进行聚类,得到M个图像分组,包括:
根据所述K个数据库图像中的不同数据库图像之间的相同特征点的数量,对所述K个数据库图像进行聚类,得到所述M个图像分组。
9.根据权利要求7所述的方法,其特征在于,所述基于所述特征匹配点对,确定与所述第一图像匹配的所述第一估计位姿,包括:
针对任意所述图像分组,根据所述第一图像与对应图像分组中的代表图像之间的特征匹配点对,确定由所述特征匹配点对指示的候选估计位姿的位姿置信度;
根据与各所述图像分组关联的所述候选估计位姿的位姿置信度,在所述M个图像分组中筛选N个有效图像分组,N为小于或等于M的整数;
根据所述N个有效图像分组中的所述数据库图像,确定所述第一估计位姿。
10.根据权利要求9所述的方法,其特征在于,所述根据与各所述图像分组关联的所述候选估计位姿的位姿置信度,在所述M个图像分组中筛选N个有效图像分组,包括:
针对任意所述图像分组,在所述候选估计位姿的位姿置信度高于预设阈值的情况下,将对应图像分组作为所述有效图像分组。
11.根据权利要求9所述的方法,其特征在于,所述根据所述N个有效图像分组中的所述数据库图像,确定所述第一估计位姿,包括:
确定所述第一图像与所述N个有效图像分组中的各所述数据库图像之间的特征匹配点对;
根据所述第一图像与各所述数据库图像之间的所述特征匹配点对,确定所述第一估计位姿。
12.根据权利要求1至11任一项所述的方法,其特征在于,在执行所述获取与第一图像关联的历史位姿置信度的操作之前,还包括:
响应于获取的定位图像,确定针对所述定位图像的质量指标信息;
在所述质量指标信息满足预设质量条件的条件下,将所述定位图像作为所述第一图像,所述质量指标信息包括图像清晰度、图像亮度和图像纹理丰富度中的至少之一。
13.一种电子设备,其特征在于,包括:一个或多个处理器、存储器以及一个或多个计算机程序,其中所述一个或多个计算机程序存储在所述存储器上,当所述计算机程序被所述一个或多个处理器执行时,使得所述电子设备执行以下步骤:
获取与第一图像关联的历史位姿置信度;
根据所述历史位姿置信度,计算用于指导图像检索的第一图像数量K;
对预设的地图数据库进行检索,得到与所述第一图像匹配的K个数据库图像;
根据所述K个数据库图像,确定与所述第一图像匹配的第一估计位姿,以作为基于所述第一图像的视觉定位结果,
其中,所述历史位姿置信度指示了与第二图像匹配的第二估计位姿的可信程度,所述第二图像为基于所述第一图像的前序帧图像,
所述根据所述历史位姿置信度,计算用于指导图像检索的第一图像数量K,包括:
在所述历史位姿置信度小于第一置信度阈值的情况下,将预设的最大图像数量作为所述第一图像数量K;
在所述历史位姿置信度大于或等于第二置信度阈值的情况下,将预设的最小图像数量作为所述第一图像数量K,所述第二置信度阈值大于所述第一置信度阈值;
在所述历史位姿置信度大于或等于所述第一置信度阈值、并且小于所述第二置信度阈值的情况下,所述第一图像数量K与所述历史位姿置信度呈负相关关系。
14.一种计算机可读存储介质,其特征在于,包括计算机程序,当所述计算机程序在手写笔上运行时,使得所述手写笔执行如权利要求1至12中任意一项所述的视觉定位方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310492817.4A CN117132648B (zh) | 2023-04-28 | 2023-04-28 | 一种视觉定位方法、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310492817.4A CN117132648B (zh) | 2023-04-28 | 2023-04-28 | 一种视觉定位方法、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117132648A CN117132648A (zh) | 2023-11-28 |
CN117132648B true CN117132648B (zh) | 2024-07-12 |
Family
ID=88851552
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310492817.4A Active CN117132648B (zh) | 2023-04-28 | 2023-04-28 | 一种视觉定位方法、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117132648B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019133658A (ja) * | 2018-01-31 | 2019-08-08 | 株式会社リコー | 測位方法、測位装置及び読取り可能な記憶媒体 |
CN113313763A (zh) * | 2021-05-26 | 2021-08-27 | 珠海深圳清华大学研究院创新中心 | 一种基于神经网络的单目相机位姿优化方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109816686A (zh) * | 2019-01-15 | 2019-05-28 | 山东大学 | 基于物体实例匹配的机器人语义slam方法、处理器及机器人 |
CN110000786B (zh) * | 2019-04-12 | 2020-09-01 | 珠海市一微半导体有限公司 | 一种基于视觉机器人的历史地图利用方法 |
CN112907658A (zh) * | 2019-11-19 | 2021-06-04 | 华为技术有限公司 | 视觉定位评估方法和电子设备 |
CN111046125A (zh) * | 2019-12-16 | 2020-04-21 | 视辰信息科技(上海)有限公司 | 一种视觉定位方法、系统及计算机可读存储介质 |
CN112461230B (zh) * | 2020-12-07 | 2023-05-09 | 优必康(青岛)科技有限公司 | 机器人重定位方法、装置、机器人和可读存储介质 |
-
2023
- 2023-04-28 CN CN202310492817.4A patent/CN117132648B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019133658A (ja) * | 2018-01-31 | 2019-08-08 | 株式会社リコー | 測位方法、測位装置及び読取り可能な記憶媒体 |
CN113313763A (zh) * | 2021-05-26 | 2021-08-27 | 珠海深圳清华大学研究院创新中心 | 一种基于神经网络的单目相机位姿优化方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117132648A (zh) | 2023-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110070056B (zh) | 图像处理方法、装置、存储介质及设备 | |
US9947108B1 (en) | Method and system for automatic detection and tracking of moving objects in panoramic video | |
CN110807361B (zh) | 人体识别方法、装置、计算机设备及存储介质 | |
Liu et al. | Real-time robust vision-based hand gesture recognition using stereo images | |
CN111476306A (zh) | 基于人工智能的物体检测方法、装置、设备及存储介质 | |
CN110490179B (zh) | 车牌识别方法、装置及存储介质 | |
CN116324878A (zh) | 针对图像效果的分割 | |
CN112749613B (zh) | 视频数据处理方法、装置、计算机设备及存储介质 | |
CN110991491A (zh) | 图像标注方法、装置、设备及存储介质 | |
CN115170893B (zh) | 共视档位分类网络的训练方法、图像排序方法及相关设备 | |
CN110290426B (zh) | 展示资源的方法、装置、设备及存储介质 | |
CN114267041B (zh) | 场景中对象的识别方法及装置 | |
CN116048244B (zh) | 一种注视点估计方法及相关设备 | |
CN113378705B (zh) | 车道线检测方法、装置、设备及存储介质 | |
CN112053360B (zh) | 图像分割方法、装置、计算机设备及存储介质 | |
CN111582184B (zh) | 页面检测方法、装置、设备及存储介质 | |
CN112818979A (zh) | 文本识别方法、装置、设备及存储介质 | |
US20230048952A1 (en) | Image registration method and electronic device | |
CN111753813A (zh) | 图像处理方法、装置、设备及存储介质 | |
CN117132648B (zh) | 一种视觉定位方法、电子设备及计算机可读存储介质 | |
CN114943976B (zh) | 模型生成的方法、装置、电子设备和存储介质 | |
CN111444749A (zh) | 路面导向标志的识别方法、装置及存储介质 | |
CN113936240A (zh) | 确定样本图像的方法、装置、设备及存储介质 | |
CN110728275B (zh) | 车牌识别方法、装置及存储介质 | |
CN111563402B (zh) | 车牌识别方法、装置、终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |