CN117115238A - 一种确定位姿的方法、电子设备及存储介质 - Google Patents

一种确定位姿的方法、电子设备及存储介质 Download PDF

Info

Publication number
CN117115238A
CN117115238A CN202310415681.7A CN202310415681A CN117115238A CN 117115238 A CN117115238 A CN 117115238A CN 202310415681 A CN202310415681 A CN 202310415681A CN 117115238 A CN117115238 A CN 117115238A
Authority
CN
China
Prior art keywords
image
clustering result
feature
point
candidate images
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.)
Granted
Application number
CN202310415681.7A
Other languages
English (en)
Other versions
CN117115238B (zh
Inventor
赵渊
曹鹏蕊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honor Device Co Ltd
Original Assignee
Honor Device Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202310415681.7A priority Critical patent/CN117115238B/zh
Publication of CN117115238A publication Critical patent/CN117115238A/zh
Application granted granted Critical
Publication of CN117115238B publication Critical patent/CN117115238B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • G06V10/462Salient features, e.g. scale invariant feature transforms [SIFT]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/761Proximity, similarity or dissimilarity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/762Arrangements for image or video recognition or understanding using pattern recognition or machine learning using clustering, e.g. of similar faces in social networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Image Analysis (AREA)

Abstract

本申请提供了一种确定位姿的方法、电子设备及存储介质,应用在终端技术领域。该方法将与查询图像匹配的多个候选图像进行聚类,将相同对象的多个候选图像作为一类,以确保每一个聚类结果都包括同一对象的多个角度信息。确定与每个聚类结果对应的查询图像的特征点点对。根据匹配出的特征点点对,计算出与每个聚类结果对应的相机位姿。获取不同相机位姿下查询图像的实际像素点与重投影像素点的误差。用重投影像素点与实际像素点的误差表示该聚类结果下获取的相机位姿的精度,误差越小,该聚类结果对应的相机位姿精度越高。将该误差最小的重投影像素点对应的相机位姿作为电子设备的当前位姿,以提高电子设备定位的精度。

Description

一种确定位姿的方法、电子设备及存储介质
技术领域
本申请涉及终端技术领域,尤其涉及一种确定位姿的方法、电子设备及存储介质。
背景技术
视觉定位技术是一种根据机器视觉完成定位任务的技术。视觉定位技术是扩展显示(Extend Reality,XR)领域的研究热点。目前,电子设备厂商利用电子设备图像采集装置和视觉定位服务(Visual Positioning Service,VPS)在电子设备上实现部分XR功能,比如通过增强显示(Augmented Reality,AR)技术进行实景导航等。
现有技术利用视觉定位技术进行视觉导航等XR功能时,需要将实时采集的图像与云端存储的地图进行特征匹配,匹配的精确度直接影响了定位的精确度。然而,当定位场景具有相似纹理时,比如定位场景具有相似的建筑体、正反面相似的墙壁等,实时采集的图像与云端存储的地图进行匹配时会存在误匹配问题,导致定位精度低,从而影响用户体验。
发明内容
本申请的目的在于:提供一种确定位姿的方法、电子设备以及存储介质,旨在通过提高电子设备的当前位姿估算精度,提升视觉定位的精度,提升用户体验。
第一方面,本申请提供了一种确定位姿的方法,应用于电子设备,所述方法包括:
获取与查询图像匹配的多个候选图像。其中,查询图像用于指示当前场景的图像信息;将多个候选图像按照相同对象进行聚类,得到至少一个聚类结果。以确保每一类聚类结果都包括同一对象的多个角度信息。确定与每个聚类结果对应的查询图像的特征点点对。由于聚类结果包括同一对象的多个角度信息,因此,可以从多个角度对查询图像的特征点进行匹配,匹配出查询图像的特征点点对信息。
确定与每个聚类结果对应的查询图像的特征点点对,特征点点对包括特征点的像素点以及投影出像素点的空间点。根据匹配出的特征点点对,计算出与每个聚类结果对应的相机位姿。当电子设备处于相似纹理时,查询图像的图像信息与每个聚类结果进行特征点匹配时,获取的特征点点对也会存在差别,如此导致与每个聚类结果对应的相机位姿存在不同。获取不同相机位姿下查询图像的实际像素点与重投影像素点的误差。其中重投像素点为实际像素点在聚类结果下匹配出空间点在该聚类结果对应的相机位姿下,重新投影到查询图像上获取的像素点。当相机位姿正确时,实际像素点对应的空间点按照相机位姿进行重新投影到查询图像,在查询图像上获取的重投影像素点与实际像素点会重合,即误差最小或几乎为0。如此,可以准确获取电子设备的当前位姿。
在一种可能的实现方式中,可以通过多个候选图像中每两个候选图像的对象相似度;将对象相似度超过第一预设相似度阈值的两个候选图像聚类,以得到一个聚类结果。
可选地,根据候选图像中相同的对象标注标签的数量,确定对象相似度。其中,对象相似度与相同的对象标注标签的数量呈正相关关系。相同对象标注标签数量越过,对象相似度越大。多个候选图像为对象标注标签标注后的图像。如此,可以直接通过相同对象标注标签的数量,直接进行聚类,降低了计算复杂度。
可选的,当对象标注标签为空间点实例标签,可以通过以下方式获得:
根据待标注图像的目标点云数据,生成多个第一提案特征向量。第一提案特征向量用于描述提案的几何信息,提案指示目标点云数据对应的每个空间点所属的实例中心点;根据多个第一提案特征向量,生成包含提案间关联关系的多个第二提案特征向量;提案间关联关系指示两个提案之间的距离小于预设距离阈值;根据多个第二提案特征向量,生成待标注图像的空间点实例标签,并对待标注图像进行离线标注。比如可以选择点云实例分割网络实现空间点实例标签标注,提高标注标签的准确度和速度。
在一种可能的实现方式中,可以根据多个候选图像,构建以多个候选图像为节点的无向加权图,无向加权图中节点之间的权重为节点对应的候选图像间相同对象标注标签的数量;每两个候选图像的对象相似度为候选图像对应的节点之间的权重;当无向加权图中节点之间的权重超过第一预设相似度阈值时,将节点对应的两个候选图像聚类,得到至少一个聚类结果。
可选的,可以对无向加权图进行分割,以使相同区域中节点之间的所述权重超过第一预设相似度阈值,且使不同区域中节点之间的权重和最小;将分割后节点对应的所述候选图像聚类,得到多个聚类结果。比如,利用Ncut算法实现切割,以保证聚类结果的速度和准确度。
在一种可能的实现方式中,将查询图像的空间点,按照聚类结果对应的相机位姿,重新投影到查询图像上,获取重投影像素点;计算空间点对应的实际像素点与重投影像素点的距离;误差大小与距离值正相关;将距离最小的重投影像素点对应的相机位姿作为电子设备的当前位姿。
如果一个聚类结果与查询图像相似度越高,也即几何一致性越好,获得的相机位姿准确度越高,利用该相机位姿获取的重投影像素点与实际像素点的距离越小。同样的,选择距离最小的重投影像素点对应的相机位姿,该相机位姿对应的聚类结果与查询图像的相似度最高。即利用重投影误差,即使在定位场景具有相似纹理的情况中,电子设备也能够获取高精度的相机位姿。
在一种可能的实现方式中,根据查询图像中目标对象的特征点的特征描述符,从每个聚类结果的候选图像中匹配出与每个聚类结果对应的目标特征点;所示目标特征点为特征描述符在候选图像中的表示;根据与每个聚类结果对应的目标特征点,从每个聚类结果的候选图像中获取目标特征点的特征点点对。
可选的,根据与每个聚类结果对应的目标特征点的特征点点对,利用位姿估计算法PNP,计算与每个聚类结果对应的相机位姿。
在一种可能的实现方式中,根据查询图像的图像描述符,确定云端图像库中每个特征地图与查询图像的图像相似度,图像描述符用于描述图像中的目标对象;根据图像相似度,从图像库的特征地图中匹配出图像相似度大于第二预设相似度阈值的特征图像作为多个候选图像。如此可以保证获取的候选图像包括与查询图像相同或相似的多个图像。
第二方面,本申请提供了实现确定位姿的方法的电子设备,包括:
存储器和处理器,所述存储器与所述处理器耦合;
所述存储器存储有程序指令,当所述程序指令由所述处理器执行时,使得所述电子设备执行如第一方面任一项所述的方法。
第三方面,本申请提供了一种存储介质,包括:包括计算机可读指令,当所述计算机可读指令在计算设备上运行时,使得所述计算设备执行如第一方面任一项所述的方法。
附图说明
图1为本申请实施例提供的一种视觉定位的应用场景示意图;
图2为一种视觉定位系统的示意图;
图3为本申请提供的确定位姿的方法效果图;
图4为本申请实施例提供的一种视觉定位的方法流程图;
图5为获取多个候选图像的示意图;
图6为本申请实施例提供的一种聚类效果示意图;
图7为本申请实施例提供的一种重投影像素点效果图;
图8为本申请提供的一种3D点实例标签标注的方法流程图;
图9为本申请实施例提供的一种点云实例分割网络实现流程图;
图10为本申请实施例提供的一种聚类方法流程图;
图11为本申请实施例提供的一种无向加权图示意图;
图12为一种无向加权图分割后的示意图;
图13为本申请实施例提供的一种Ncut算法切割的示意图;
图14为本申请实施例提供的一种电子设备100的硬件结构示意图;
图15为本申请实施例通过的一种电子设备100的软件结构框图。
具体实施方式
为了便于技术人员理解本申请实施例的技术方案,首先对本申请实施例涉及的技术术语进行解释说明。
视觉定位技术:是根据机器视觉完成定位任务的技术。当电子设备需要自身定位时,用户利用电子设备的图像采集装置,采集一张当前场景的场景图像,即可以利用该场景图像和视觉定位,获取电子设备的当前位姿。然后根据电子设备的当前位置,获取电子设备的位置和方向,以实现对电子设备的定位。
视觉定位技术主要应用在具有实景导航等部分XR功能的电子设备上。
XR是指通过计算机将真实世界和虚拟世界结合,以打造可人机交互的虚拟环境。XR是AR、虚拟现实(Virtual Reality,VR)以及混合现实(Mixed Reality,MR)等多种技术的统称。
参见图1,为本申请实施例提供的一种视觉定位的应用场景示意图。参阅图1,用户进入陌生场景时,电子设备100通过AR技术可以向用户提供实景导航,也即AR导航,以使用户准确识别路线。电子设备100在进行AR导航时,需要对当前场景进行识别,以根据当前场景实现对电子设备100自身的定位。
为实现电子设备100自身的定位,一般在电子设备100内嵌视觉定位系统,根据电子设备100云端存储的特征地图,在无卫星定位情况下对电子设备100自身实现定位。
参见图2,该图为一种视觉定位系统的示意图。
视觉定位系统包括:图像采集模块20、图像检索模块21、特征提取模块22、位姿计算模块23和输出模块24。
图像采集模块20调用电子设备100内嵌的摄像头,实时采集当前场景的图像信息作为查询图像,并输入至图像检索模块21。
图像检索模块21检索该查询图像在云端特征地图中的匹配区域。
特征提取模块22待图像检索模块21检索到匹配区域后,从查询图像中提取查询图像特征点,并根据匹配出的匹配区域,将从查询图像中提取的特征点与云端特征地图中的2D/3D特征点进行匹配,得到特征点点对(又称特征点的2D-3D点点对)。
其中,2D点为图像中特征点的像素点,3D点为投影出像素点的空间点。特征点的2D-3D点对是指特征点的像素点以及投影出像素点的空间点组成的点对。
位姿计算模块23接收特征提取模块发送的特征点点对,对特征点的2D-3D点对进行位姿计算,获取电子设备当前位姿,并输出计算电子设备当前位姿的置信度,也即计算获取的电子设备当前位姿的可靠程度。
输出模块24用于将相机位姿和置信度输出至电子设备100的显示界面。然而,在实际应用中,经常遇到具有相似纹理的定位场景。比如定位场景中具有相同的建筑物,或定位场景中具有重复的路灯、树木等。参阅图1所示的应用场景,定位场景中道路左手边建筑物与道路右手边的建筑物具有相似的纹理,比如对于建筑物11,与道路右手边建筑物具有相似的纹理。
当视觉定位系统实时采集的查询图像为建筑物11的图像时,即查询图像的对象为建筑物11,采用图2所示的确定位姿方式,在云端特征地图中检索到的匹配区域可能为其他建筑物对应的区域,比如建筑物12对应的区域,或建筑物13对应的区域,由此导致获取的特征点点对错误。当利用该特征点点对计算位姿时,会引起位姿计算错误,进而导致可能进行错误的导航。
为解决上述技术问题,本申请提供了一种确定位姿的方法、电子设备及存储介质。该方法将与查询图像匹配的多个候选图像进行聚类,将包括相同对象的多个候选图像作为一类,以确保每一类聚类结果都包括同一对象的多个角度信息。确定与每个聚类结果对应的查询图像的特征点点对。由于聚类结果包括同一对象的多个角度信息,因此,可以从多个角度对查询图像的特征点进行匹配,匹配出查询图像的特征点点对信息。根据匹配出的特征点点对,计算出与每个聚类结果对应的相机位姿。当电子设备所处场景中包括具有相似纹理的对象时,比如存在相似建筑物场景中,由于相似纹理的对象在图像中存在其他差别,比如图1所示的建筑物11与建筑物12的窗户形状不同,查询图像的图像信息与每个聚类结果进行特征点匹配时,获取的特征点点对也会存在差别,如此导致与每个聚类结果对应的相机位姿存在不同。获取不同相机位姿下查询图像的实际像素点与重投影像素点的误差。其中重投像素点为实际像素点对应的空间点在聚类结果对应的相机位姿下,重新投影到查询图像上获取的像素点。当相机位姿正确时,实际像素点对应的空间点按照相机位姿进行重新投影到查询图像,在查询图像上获取的重投影像素点与实际像素点会重合,即误差最小或几乎为0。可以理解的是,重投影像素点与实际像素点的误差可以表示该聚类结果下获取的相机位姿的精度,误差越小,该聚类结果对应的相机位姿精度越高。将该误差最小的重投影像素点对应的相机位姿作为电子设备的当前位姿,精度越高。如此通过提高电子设备的当前位姿估算精度,提高视觉定位精度,进而避免出现导航错误。
为了更好的说明本申请实施例提供的确定位姿的效果,下面结合图3,对本申请实施例提供的确定位姿的方式说明。
参见图3,为本申请提供的确定位姿的方法效果图。
将查询图像(a)输入图像检索模块,在图像检索模块检索到查询图像在云端特征地图中的匹配区域,即(b)部分。查询图像的目标对象为建筑物11。(b)部分分别对应建筑物12对应的匹配区域、建筑物13对应的匹配区域以及建筑物11对应的匹配区域。分别计算不同匹配区域下对应的相机位姿,获取位姿1、位姿2和位姿3。在3个位姿下分别进行空间点重投影,获取重投影像素点1、重投影像素点1和重投影像素点3。计算每个重投影像素点与实际像素点的误差,将误差最小的重投影像素点3对应的相机位姿作为电子设备的当前位姿。
值得注意的是,上述建筑物11、建筑物12、建筑物13仅仅用于指示具有相似纹理的建筑物,(b)中的各个图像用于表示与查询图像匹配的同一对象的聚类结果,而非一幅特征地图。
由此可知,相对于图2所示的确定位姿方式,本申请提供的确定位姿方法,将与查询图像相似度较高的区域都匹配出来,分别聚类,计算每个聚类结果对应的相机位姿,然后利用重投影像素点和实际像素点的误差,获取误差最小的重投影像素点对应的相机位姿作为电子设备当前位姿,可以克服定位场景具有相似纹理的对象时,匹配一个匹配区域导致误匹配的问题,提高了电子设备的位姿计算精度,进而提高了用户体验感。
下面对本申请实施例提供的确定位姿的方法进行详细介绍。
参见图4,为本申请实施例提供的一种确定位姿的方法流程图。该方法应用于电子设备,具体可以应用于电子设备的视觉定位系统。该方法具体包括以下步骤:
S401:获取查询图像。
查询图像用于指示当前场景的图像信息。查询图像可以为包括目标对象的图像。在进行导航时,目标对象一般包含建筑物,比如包括图3所示的建筑物11,以根据查询图像的目标对象,获取电子设备的当前位姿,从而进行实景导航等XR功能。本申请不对查询图像的具体场景对象进行限定。
电子设备可以通过多种方式获取查询图像。示例性的,通过拍照应用调用电子设备内置的摄像头拍摄当前场景的目标对象,获取查询图像。此时图像采集模块为电子设备100的相机应用。比如,电子设备包括触摸传感器,当触摸传感器接收到触摸操作,相应的硬件中断被发给内核层。内核层将触摸操作加工成原始输入事件(包括触摸坐标,触摸操作的时间戳等信息)。原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,识别该输入事件所对应的控件。以该触摸操作是触摸单击操作,该单击操作所对应的控件为相机应用图标的控件为例,相机应用调用应用框架层的接口,启动相机应用,进而通过调用内核层启动摄像头驱动,通过内置的摄像头捕获静态图像或视频,获取查询图像。
或者,电子设备上能够运行支持实景导航功能的应用程序(application,APP)。用户通过打开APP,触发实景导航功能,由APP自动调用电子设备携带的摄像头拍摄当前场景的目标对象,获取查询图像。本申请不对电子设备获取查询图像的方式进行限定。
S402:检测查询图像的特征点和计算特征描述符。
查询图像的特征点是指标识查询图像中目标对象的点。比如图3所示点A,能够表示查询图像(a)中的目标对象,因此点A为(a)图像的一个特征点。
视觉定位系统接收到查询图像之后,会检测查询图像的特征点并计算特征点对应的特征描述符。
本申请可以通过多种方式检测查询图像的特征点,比如基于局部极大值选择图像特征点的算法,或尺度不变特征变换(Scale-Invariant Feature Transform,SIFT)算法等。本申请不对检测查询图像的特征点的方法进行限定。
特征描述符是描述查询图像的特征点的一组向量。比如特征点A向沿方位轴方向的特征描述符可以为向量(a,b,c,……)。需要注意的是,特征描述符为一个包括多个维度的向量,比如256个维度的向量。本申请根据特征描述符,从云端特征地图的2D/3D点中匹配出特征点点对。
本实施例中,每个特征描述符用于描述查询图像中的一个特征点,也即一个特征点对应一个特征描述符。本申请实施例采用的特征描述符可以为基于梯度的描述符,比如SIFT特征描述符,也可以为二进制描述符等,本申请不对特征描述符的具体形式进行限定。
S403:图像检索,获取与查询图像匹配的多个候选图像。
将查询图像输入视觉定位系统的图像检索模块,从云端特征地图中匹配出与查询图像匹配的多个候选地图。如此,将云端特征地图与查询图像相似度高的特征地图筛选出来作为候选地图。
在一些实施例中,本申请可以选择与查询图像相似度为前n位的特征地图作为候选地图。其中,n≥2,且n位正整数。比如云端图像库预存10000张特征地图,从10000张特征地图中筛选出与查询图像相似度最高的前30张特征地图作为候选图像。本申请中候选图像的个数根据需要,本领域技术人员可以自行设定。本申请可以通过查询图像的图像描述符,从云端特征地图中匹配出与查询图像的图像描述符的相似度最高的前n位的特征地图。图像描述符是一个向量,用于量化图像的形状、颜色、纹理、空间关系中至少一项。
为获取相似度最高的前n位特征地图,可以通过查询图像的图像描述符,确定云端图像库中每个特征地图与查询图像的图像相似度。示例性的,获取特征地图的图像描述符,计算特征地图的图像描述符与查询图像的图像描述符的欧式距离。其中图像相似度与距离大小呈负相关关系,也即两个图像描述符对应的向量之间的欧式距离越大,则图像的相似度越小。
关于图像的图像描述符,可以通过局部聚合描述符的向量(vector of locallyaggregated descriptors,Vlad)算法提取。下面以Vlad算法为例,提取图像的图像描述符。
将待提取图像输入卷积神经网路,可以获取H*W*D(H为待提取图像的高度,W为待提取图像的宽度,D为特征维度)的特征矩阵。将该特征矩阵输入卷积网络层,通过卷积和归一化指数函数,可以获取聚类中心,并获取待提取图像的局部特征与聚类中心的残差分布。最后利用该残差分布,通过归一化操作,输出待提取图像的图像描述符。
本申请预先设定第二预设相似度阈值,当图像相似度大于第二预设相似度阈值时,该特征图像为候选图像。如此,获取多个候选图像。比如,计算获取特征地图A与查询图像的图像相似度为X1,第二预设相似度阈值为X2,当X1>大于X2时,则特征地图A为候选图像。
此外,本申请实施例还可以计算所有云端图像库中特征地图与查询图像的图像相似度,假设为A1,A2,A3,……,Am,将图像相似度依照从大到小排列,得到A1,A3,A5,A4,A2,A10,……。可以从中选取图像相似度最高的前n位的特征地图作为候选图像,m大于或等于n。除此之外,还可以将图像相似度依照从小到大排列,获取图像相似度最后的后n位的特征地图作为候选地图。
示例性说明:如图5所示,为获取多个候选图像的示意图。(a)为电子设备的图像采集装置获取的查询图像。将查询图像输入图像检索模块,从云端匹配出与查询图像匹配的多个候选地图。假设为4个候选地图。利用上述任意一种方式均可以获取4个候选地图,如(b)所示。这4个候选地图为与查询图像(a)的图像相似度最高的四个特征地图。
本申请实施例中,云端图像库用于存放预先采集的特征地图。云端图像库中的特征地图可以为包括图像描述符、特征描述符的图像。此外云端图像库还包括特征图像的2D点以及3D点。
此外,云端图像库还包括空间点实例标签标注后的特征地图,用于根据相同实例标签的个数进行图像聚类。空间点实例标签也称为3D点实例标签,是指将投影出图像的2D点的3D点所代表的实例,在图像的2D点上使用标签进行标注。比如3D点表示的实例为“红色车”,可以将该投影出图像的2D点用“红色车”标签标注出来。实例为类的具体对象,比如一只猫、一个建筑物、一个气球等都可以认为是一个实例。
在本申请中,云端图像库的特征地图可以为其他电子设备的采集装置离线条件下拍摄获取,也可以为当前电子设备的采集装置在离线条件下采集获取。
在另一些实施例中,本申请可以选择与查询图像相似度满足预设阈值的特征地图作为候选地图。预设阈值可以预先设定,或者可以由实景导航功能自行调节。实际应用中,当未获取到与查询图像相似度满足预设阈值的特征地图是,可以重新获取查新图像并重新进行图像检索。具体的图像检索过程与以上说明类似,在此不再赘述。
S404:多个候选图像按照相同对象聚类。
的通过图像检索模块获取的多个候选地图中,可能存在部分候选图像中包括了同一个对象,但是该对象在不同候选图像中所处的角度不同。将包括同一对象的多个候选图像聚为一类,得到一个聚类结果。不管查询图像为哪一角度的视图,从聚类结果中匹配特征点点对,都可以精准匹配。
本申请对多个候选图像按照是否具有相同的对象进行聚类时,可能只获取一个聚类结果,也可能获取多个聚类结果,这与具体的对象有关。比如候选图像为4个,分别为A1,A2,A3和A4。其中,A1和A2为对象P和R的图像,A3和A4为对象Q和R的图像,则按照是否具有对象P进行聚类时,可以将4个候选图像聚类为2个聚类结果,一个聚类结果包括A1和A2,另一个聚类结果包括A3和A4。若按照是否具有对象R进行聚类时,A1,A2,A3和A4均为对象R的图像,此时聚类结果为一个,包括A1,A2,A3和A4。示例性说明:将图5所示的4个候选图像,按照是否具有相同对象的进行聚类,得到图6所示的2个聚类结果。参见图6,为本申请实施例提供的一种聚类效果示意图。聚类结果601的两幅图为处于不同角度的同一对象的建筑物,聚类结果602的两幅图为处于不用角度的同一对象的建筑物,601针对的对象窗户相对于602针对的对象窗户不同。
S405:根据检测的特征点和对应的特征描述符,从每个聚类结果的候选图像中匹配出与聚类结果对应的目标特征点。
本申请实施例根据特征点的特征描述符,对查询图像和每个聚类结果的候选图像执行特征匹配,获取查询图像的特征点在每个聚类结果下的表示,也即与聚类结果对应的目标特征点。比如,查询图像的特征点A,在一个聚类结果的表示为A’,即与该聚类结果对应的目标特征点为A’。在另一个聚类结果的表示为A”,即与这一聚类结果对应的目标特征点为A”。
具体执行特征匹配的方式为:计算查询图像的特征点的特征描述符,与聚类结果中的候选图像的特征点的特征描述符的特征相似度。筛选出特征相似度最高的候选图像的特征点作为当前聚类结果下的目标特征点。比如查询图像的特征点A,与聚类结果下的候选图像中其他特征点B1,B2,B3,B4的特征相似度分别为a,b,c,d(a>b>c>d),则当前聚类结果下的目标特征点为B1。如此,依次执行上述特征匹配方式,获取每个聚类结果对应的目标特征点。上述中其他特征点B1,B2,B3和B4仅为示意性表示,并不对特征匹配的特征点个数以及特征点进行限定。
为获取特征相似度,本申请可以通过计算特征描述符之间的距离l确定,其中,特征相似度与l呈负相关关系,l越小,相似度越高。l可以为欧式距离,也可以为汉明距离,还可以为其他距离,本申请不对的l具体形式限定。
考虑到在实际应用时,查询图像的特征点与每个聚类结果的候选图像的特征点进行匹配,计算量大的问题,本申请可以采用快速最近邻搜索包(Fast Library forApproximate Nearest Neighbors,FLANN)匹配算法,通过机器学习训练索引结果寻找潜在匹配点,以避免海量计算。本申请也可以通过其他神经网络算法,比如基于图神经网络和注意力机制的特征点匹配网络(Learning Feature Matching with Graph NeuralNetworks,SuperGlue)算法等。
S406:查询与目标特征点对应的特征点点对。
云端地图库的特征点包括2D点和3D点,以及2D和3D点坐标。本申请根据上述获取的每个聚类结果下的目标特征点,对目标特征点执行2D-3D匹配算法,可以获取该目标特征点对应的特征点点对。利用特征点点对获取的相机位姿,不需要对极约束,且可以在很少的特征点下获取准确的相机位姿。
示例性的,本申请可以通过比较查询图像中的目标特征点的特征描述符与云端地图库中特征点的特征描述符,获取目标特征点对应的特征点点对。比如基于近似树的搜索方式。也可以通过其他方式查询特征点点对,本申请不对具体查询方式进行限定。
S407:根据特征点点对,计算与聚类结果对应的相机位姿。
相机位姿是指相机在空间中的位置以及相机的朝向。相机位姿可以看作相机从原始位置到当前位置的变换,包含平移变换和旋转变换。本申请根据特征点点对,可以计算出电子设备在每个聚类结果下对应的相机位姿。假设聚类结果为四个,分别为G1,G2,G3和G4,每个聚类结果对应一个相机位姿,即电子设备在G1下的相机位姿为R1和T1,在G2下的相机位姿为R2和T2,在G3下的相机位姿为R3和T3,在G4下的相机位姿为R4和T4。其中,R1,R2,R3和R4表示旋转矩阵,用于表示旋转变换,T1,T2,T3和T4表示平移矩阵,用于表示平移变换。
具体可以通过PNP方式计算相机位姿。
PnP(全称Perspective-n-Points),指3D到2D点对的物体运动定位问题,即已知物体在世界坐标系下的坐标,即3D对应的坐标,以及物体在相机的图像平面的像素坐标,即2D点对应的坐标,求解相机的位姿。具体的,电子设备可以根据上述获取的每个聚类结果对应的特征点点对,计算相机位姿。
S408:计算实际像素点与重投影像素点的误差,获取误差最小的重投影像素点对应的相机位姿。
为准确获取电子设备的当前位姿,针对上述步骤获取的与每个聚类结果对应的相机位姿,计算查询图像中实际像素点和重投影像素点的误差,并将误差最小的重投影像素点对应的相机位姿作为电子设备的当前位姿。
重投影像素点是指实际像素点对应的空间点,按照相机位姿重新投影到查询图像上的像素点。比如查询图像的实际像素点A,其对应的空间点为Q,按照G1聚类结果对应的相机位姿,重新投影到查询图像上,获取的像素点Ac,即为当前相机位姿下的重投影像素点。根据重投影像素点和实际像素点的距离,就可以获取重投影像素点和实际像素点的误差,也称为重投影误差。具体的,重投影误差与距离正相关,距离越大,重投影误差越大。
在本申请中,如果一个聚类结果与查询图像相似度越高,也即几何一致性越好,获得的相机位姿准确度越高,利用该相机位姿获取的重投影像素点与实际像素点的距离越小。同样的,选择距离最小的重投影像素点对应的相机位姿,该相机位姿对应的聚类结果与查询图像的相似度最高。即利用重投影误差,即使在定位场景具有相似纹理的情况中,电子设备也能够获取高精度的相机位姿。
示例性说明:如图6所示的两个聚类结果,查询图像与(a)聚类结果的相似度更高。按照(a)对应的相机位姿,将实际像素点71重新投影到查询图像上,获取重投影像素点72,重投影像素点与实际像素点的距离S1,小于距离S2。S2为实际像素点71与重投影像素点73的距离。重投影像素点73为实际相像素点71对应的空间点,按照(b)对应的相机位姿重新投影到查询图像上,获取的像素点。具体投影结果参见图7所示。图7为本申请实施例提供的一种重投影像素点效果图。因此,将(a)对应的相机位姿作为电子设备的当前位姿。
在本申请实施例中,查询图像中实际像素点所对应的空间点,为实际像素点在聚类结果下匹配出的空间点。同一实际像素点,在不同的聚类结果可能会匹配出不同的空间点。不同实际像素点,在同一聚类结果下,也会匹配出不同的空间点。为了更加准确度获取重投影误差,可以选择查询图像中多个实际像素点,分别计算多个实际像素点在不同聚类结果下的重投影像素点。计算同一聚类结果下,多个实际像素点中每个实际像素点对应的重投影像素点和实际像素点的误差,将误差的平均值作为该聚类结果下的重投影误差。
示例性说明:假设查询图像中的实际像素点(也即实际特征点)为X1和X2,聚类结果有2个,分别为G1和G2。在G1聚类结果下:X1匹配出的特征点为D1,D1对应的空间点为Q1,X2匹配出的特征点为D2,D2对应的空间点为Q2。在G2聚类结果下:X1匹配出的特征点为D3,D3对应的空间点为Q3,X2匹配出的特征点为D4,D4对应的空间点为Q4。
将Q1按照G1聚类结果对应的相机位姿,重新投影到查询图像,获取的重投影像素点为A1;将Q2按照G1聚类结果对应的相机位姿,重新投影到查询图像,获取的重投影像素点为A2;将Q3按照G2聚类结果对应的相机位姿,重新投影到查询图像,获取的重投影像素点为A3;将Q4按照G2聚类结果对应的相机位姿,重新投影到查询图像,获取的重投影像素点为A4,具体结果如表1所示。
表1实际像素点与重投影像素点的对应关系
参见表1,计算重投影像素点与实际像素点的距离,根据计算的距离,确定重投影像素点与实际像素点之间的误差,并将同一聚类结果下,不同重投影像素点与实际像素点之间的误差平均值作为重投影误差。
即,A1与X1的距离为S1,A2与X2的距离为S2,A3与X1的距离为S3,A4与X2的距离为S4,获取的A1与X1的误差为W11,A2与X2的误差为W12,A3与X1的误差为W21,A4与X2的误差为W22。在G1聚类结果下,将W11和W12的平均值作为重投影误差W1。在G2聚类结果下,将W21和W22的平均值为重投影误差W2。
比较W1和W2的大小,如果W1>W2,则将G2聚类结果对应的相机位姿作为电子设备的当前位姿。否则,将G1聚类结果对应的相机位姿作为电子设备的当前位姿。
需要注意的是,上述示例中的聚类结果个数,以及实际像素点的个数均为示意性表示。
在具体使用时,为使获取的电子设备的当前位姿准确度更高,可以将所有获取的聚类结果,和查询图像中确定的特征点对应的实际像素点,都进行匹配计算,并将同一聚类结果下不同实际像素点,获取重投影像素点与实际像素点的误差的平均值作为重投影误差,再进行比对。原理与上述表相同,这里不在赘述。
S409:输出误差最小的重投影像素点对应的相机位姿和置信度。
电子设备中视觉定位系统将筛选出的误差最小的重投影像素点对应的相机位姿以及置信度输出至电子设备的显示界面。
在一种可选的实现方式中,电子设备会根据相机位姿,计算出具体的位置,比如如图1所示的A街道B号,并在电子设备的显示界面进行显示。此外,置信度以百分数的形式在电子设备的显示界面。如图1所示的90%,即为置信度。
本申请实施例提供的视觉定位方法,将与查询图像匹配的多个候选图像进行聚类,将相同对象的多个候选图像作为一类,以确保每一类聚类结果都包括同一对象的多个角度信息。确定与每个聚类结果对应的查询图像的特征点点对。由于聚类结果包括同一对象的多个角度信息,因此,可以从多个角度对查询图像的特征点进行匹配,匹配出查询图像的特征点点对信息。根据匹配出的特征点点对,计算出与每个聚类结果对应的相机位姿。当电子设备处于相似纹理时,查询图像的图像信息与每个聚类结果进行特征点匹配时,获取的特征点点对也会存在差别,如此导致与每个聚类结果对应的相机位姿存在不同。获取不同相机位姿下查询图像的实际像素点与重投影像素点的误差。其中重投像素点为实际像素点对应的空间点在聚类结果对应的相机位姿下,重新投影到查询图像上获取的像素点。当相机位姿正确时,实际像素点对应的空间点按照相机位姿进行重新投影到查询图像,在查询图像上获取的重投影像素点与实际像素点会重合,即误差最小或几乎为0。如此,可以准确获取电子设备的当前位姿。
在本申请实施例中,获取电子设备的当前位姿的关键是将多个候选图像按照相同对象进行聚类,得到至少一个聚类结果。
在一种可选的实现方式中,可以首先确定多个候选图像中每两个候选图像的对象相似度,当对象相似度超过第一预设相似度阈值时,将对象相似度对应的两个候选图像聚类,得到至少一个聚类结果。
示例性说明:假设候选图像为4个,分别为B1,B2,B3和B4。B1和B2的对象相似度为10,B1和B3的对象相似度为12,B1和B4的对象相似度为8,B2和B3的对象相似度为15,B2和B4的对象相似度为1,B3和B4的对象相似度为3。假设第一预设相似度阈值为9,则B1、B2和B3聚为一类,B4为一类。
在一种可选的实现方式中,可以根据候选图像中相同的对象标注标签的数量,确定对象相似度。相同对象标注标签数量越过,对象相似度越大。在这种实现方式中,候选图像为对象标注标签标注后的图像。可选的,用相同对象标注标签的数量作为对象相似度,比如两候选图像的相同对象标注标签的数量为5,则两候选图像的对象相似度为5。
在一种可选的实现方式中,对象标注标签可以为3D点实例标签。参见图8,为本申请提供的一种3D点实例标签标注的方法流程图。该方法具体包括:
S801:根据待标注图像的目标点云数据,生成多个第一提案特征向量。
目标点云数据是指待标注图像中待标注区域的2D点数据集。数据集中的2D点包含了丰富的信息,具体包括位置信息、颜色、强度值、时间等。第一提案特征向量用于描述提案的几何信息,比如位置信息,提案特征信息。提案特征信息用于指示提案中2D点包含的除位置信息之外的信息,比如颜色、强度值和时间等。提案用于指示目标点云数据中投影出2D点的每个3D点所属的实例中心。比如,投影出第一2D点的3D点所属的实例中心为D1,投影出第二2D的3D点所属的实例中心为D1,则提案为D1。
在本申请实施例中,目标点云数据可以通过激光扫描仪获取。激光扫描仪获取方式为利用激光测距原理,通过记录物体表面密集的3D点的三维坐标、反射绿和纹理等信息获取。目标点云数据也可以通过近红外激光器把具有结构特征的光线投影到物体上,通过红外摄像头获取。本申请实施例还可以通过其他方式获取目标点云数据,这里并不限定目标点云数据的获取方式。
在本申请实施例中,可以将目标点云数据输入特征提取网络,获取目标点云数据对应的多个语义特征点。示例性说明:目标点云数据为N个点I维特征的数据,输入稀疏卷积神经网络sparse volumetric backbone,可以获取N×F的语义特征点。其中I维特征包含了位置、颜色、强度值、时间等相关特征。
然后将多个语义特征点分为两支,一支是实例中心投票,一支是语义分类。实例中心投票为每个2D点对所属的实例中心进行投票,根据每个2D点的投票,获取实例中心分布图,并在实例中心分布图上随机抽取多个样本作为案例位置,获取多个提案。假设提案的个数为K,目标点云数据为N,K是一个远小于N的数。如此,可以降低标注数量,提高标注效率。对于提案,以实例为中心,设定一个半径r,r内的其他关联2D点设定一个集合Si。语义分类是指对每个2D点进行语义分类,以进行提案标注。将两个分支结果进行组合,可以获取多个第一提案特征向量。在本申请实施例中,第一提案特征信息除包括位置信息之外,还包括提案特征信息和集合Si
S802:根据多个第一提案特征向量,生成包含提案间关联关系的多个第二提案特征向量。
由于多个第一提案特征向量是局部特征向量,为和全局特征产生更多交互,需要将多个第一提案特征向量,生成包含提案间关联关系的多个第二提案特征向量。提案间关联关系指示两个提案之间的距离小于预设距离阈值。示例性说明1:假设预设距离阈值为2,当关联点集Si中的2D点i和2D点j之间的空间距离小于2时,将2D点i和2D点j连接成一条边,重新定义边特征,使边特征包含两2D点的关联关系。
本申请可以将多个第一提案特征向量输入图卷积网络获取多个第二提案特征向量。第二提案特征向量为包括重新定义的边特征、位置信息和关联点集的向量。在使用图卷积网络时,首先定义图卷积网络的处理方式,每提案都有提案特征信息和位置信息组成,对于关联点集合中两点距离小于预设距离阈值的两点,连接成一条边,并根据提案特征信息和位置信息重新定义边特征。示例性说明2:对于示例性说明1中的两个2D点i和2D点j,假设提案特征信息为gi,位置信息为yi,则重新定义的边特征为:
ei,j=hθ([yi,gi],[yj,gj]-[yi,gi])
其中,hθ是具有可学习参数θ的非线性函数,[yi,gi]表示yi和gi串联。根据hθ重新定义提案特征信息gi为hi。则当第一提案特征向量为(yi,gi,Si)时,对应的第二提案特征向量为(yi,hi,Si)。
S803:根据多个第二提案特征向量,生成待标注图像的空间点实例标签,并对待标注图像进行离线标注。
本申请根据多个第二提案特征向量,为每个提案预测一个语义类别、聚合特征向量、目标得分、以及一个二进制前景背景掩码。
目标得分包括正和负两种,当和正确提案中心点的距离小于第一预设距离阈值,获取的目标得分为正。当和正确提案中心的距离大于第二预设距离阈值,或/和两个正确提案中心点距离相等,获取的目标得分为负。示例性的,假设第一预设距离阈值为0.3m,第二预设距离阈值为0.6m,当T1提案和正确提案中心1的距离为0.2,小于第一预设距离阈值,则T1提案的目标得分为正。当T2提案和正确提案中心1的距离为0.5m,和正确提案中心2的距离为0.5m,即与两个正确提案中心的距离相等,则将T2提案的目标得分设定为负。
当提案的目标得分为正时,首先预测该提案的语义类别,然后聚合特征向量和进行二进制前景背景掩码。最后获取最接近真实提案的语义标签作为待标注图像的该提案关联集中的空间点实例标签。如此,生成待标注图像的空间点实例标签,并对待标注图像进行离线标注。当提案的目标得分为负时,本申请不对提案进行任何处理。
为实现对每个提案预测一个语义类别、聚合特征向量、目标得分、以及一个二进制前景背景掩码,可以将多个第二提案特征向量输入到多层感知器(MultilayerPerceptron,MLP)获取。
为了更好的实现上述3D点实例标签标注,上述方法中涉及的特征提取网络、图卷积网络、多层感知器等均为大量标注数据训练后的网络模型。
示例性说明,本申请实施例可以依据上述3D点实例标签标注方法,选择点云实例分割网格离线标注待标注图像。其中点云实例分割网络为大量标注标签训练后的点云实例分割网络。下面以点云实例分割网格为例进行说明。
参见图9所示,为本申请实施例提供的一种点云实例分割网络实现流程图。待标注图像的点云数据N×I输入稀疏卷积神经网络Sparse Volumetric Backbone网络,获取N×F的语义特征。N×I表示N个点I维输入特征,N×F表示N个点F维特征。将N×F的语义特征分为两支,上分支N×3的语义特征用于为实例中心投票,得到实例中心分布图,下分支N×C的语义特征用于语义分类。根据实例中心分布图,以及下分支的语义分类,随机抽样K个样本并进行组合(也即图示Sampling&Grouping),得到K×(3+D)的提案特征。提案特征具体包括3维位置信息和D维提案特征信息。将K×(3+D)的提案特征输入图卷积网络Graph ConvNet,重新定义提案特征,得到K×(3+D’)的提案特征。具体定义方式如上述步骤S802所示,这里不在赘述。将重新定义的提案特征信息hi输入MLP网络K×Dout结果。其中Dout=S+E+2,其中,S为语义类别,E是E维聚合向量,2为2维对象分数。当2维对象分数为正时,执行预测语义类别,二进制前景背景掩码(也即图示K个ni×2的Proposal Masks),并聚合(也即图示Aggregation)E维聚合向量,输出K’个3D点实例标注标签。
在一种可选的实现方式中,本申请实施例还可以通过以下方式得到至少一个聚类结果。参见图10,为本申请实施例提供的一种聚类方法流程图。该方法包括:
S11:构建以多个候选图像为节点的无向加权图。
无向加权图的节点为多个候选图像,节点之间的权重为节点对应的候选图像间相同对象标注标签的数量。示例性说明:假设有5个候选图像A、B、C、D、E,A与B相同对象标注标签的数量为1,A与C相同对象标注标签的数量为20,C与D相同对象标注标签的数量为2,D与B相同对象标注标签的数量为15,D和E相同对象标注标签的数量为1。其中两两之间没有相同对象标注标签。将5个候选图像A、B、C、D、E作为节点,分别对应节点A、节点B、节点C、节点D和节点E,将每两个候选图像的相同对象标注标签的数量作为权重,获取如图11所示的无向加权图。
在本申请实施例中,候选图像间相同对象标注标签的数量为预先获取的。具体获取方式本申请不进行限定。
S12:当无向加权图中节点之间的权重超过第一预设相似度阈值,将节点对应的两个候选图像聚类,得到至少一个聚类结果。
比较无向加权图中节点之间的权重与第一预设相似度阈值的关系。如果节点之间的权重超过第一预设相似度阈值,将该节点对应的两个候选图像聚类。
示例性说明:假设第一预设相似度阈值为10,对于图11所示的无向加权图,节点A和节点C之间的权重为20超过第一预设相似度阈值,将节点A和节点C聚为一类。节点B和节点D之间的权重为15超过第一预设相似度阈值,将节点B和节点D聚为一类。将节点E单独聚为一类。
在一种可选的实现方式中,对无向加权图进行分割,使相同区域节点之间的权重超过第一预设相似度阈值,不同区域节点之间的权重和最小。将分割后节点对应的候选图像聚类,得到多个聚类结果。
示例性说明:如图12所示为一种无向加权图分割后的示意图。其中,第一预设相似度阈值为10,对图11所示的无向加权图依照使相同区域节点之间的权重超过第一预设相似度阈值,不同区域节点之间的权重和最小进行分割,得到3个分割区域,每个分割区域节点之间权重和最小。
为提高图10所示的分割效果,本申请可选标准化剪切和图像分割(Normalizedcuts and image segmentation,Ncut)算法。在本申请实施例中,Ncut算法的输入为多个候选图像作为节点,相似度不同候选图像帧之间的相同对象标注标签,输出至少一个聚类结果。Ncut算法通过不相似度量,即归一化割Ncut选择不同分组之间总体最小不相似性与同一个组内部总体最大相似性。本申请实施例对归一化割Ncut设定一个阈值,假设为1.5,当Ncut值小于阈值1.5时,进行切割。
示例性说明:参加图13,为本申请实施例提供的一种Ncut算法切割的示意图。如图13所示,Ncut1=0.052,Ncut2=1.055均小于阈值2,可以在节点AC和节点BD之间切割,在BD和E之间切割。所得的聚类结果为3个,1个聚类结果包括节点A和节点C,1个聚类结果包括节点B和节点D,1个聚类结果近包括E。
Ncut算法为训练后的算法。本申请实施例通过Ncut算法能够快速准确的获取聚类结果。
本申请实施例提供的视觉定位系统所应用的电子设备100,可以为平板电脑、个人数字处理、具有无线通信功能的手持设备、计算设备、车载可穿戴设备、虚拟现实终端设备、增强现实终端设备、工业控制中的无线终端、无人驾驶中的无线终端等移动终端或固定终端。本申请实施例不对终端设备的形态进行具体限定。
图14所示,为本申请实施例提供的一种电子设备100的硬件结构示意图。
电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,摄像头193,显示屏194,陀螺仪传感器180B和触摸传感器180K。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
电子设备100通过GPU,显示屏194,以及应用处理器等实现实景导航显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
电子设备100可以通过图像信号处理器(Image Signal Processor,ISP),摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。在本申请实施例中,当电子设备100将相同标注标签的数量转换为节点权重时,数字信号处理器用于对相同标注标签数量进行处理等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。本申请实施例通过点云实例分割网络、Ncut算法、特征提取网络、图卷积网络、MLP网络等多种神经网络实现视觉定位。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备100的各种功能应用以及数据处理。
陀螺仪传感器180B可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定电子设备100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180B可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180B检测电子设备100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消电子设备100的抖动,实现防抖。陀螺仪传感器180B还可以用于导航,体感游戏场景。
触摸传感器180K,也称“触控器件”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
图15是本发明实施例的电子设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图15所示,应用程序包可以包括相机,AR导航等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图15所示,应用程序框架层可以包括视图系统,确定位姿实现算法、点云实例分割网络算法、Ncut算法、位姿估计算法、特征点匹配算法等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
确定位姿算法,用于估算位姿。在一种可能的实现方式中,确定位姿算法包括获取与查询图像匹配的多个候选图像;查询图像用于指示当前场景的图像信息;将多个候选图像按照相同对象进行聚类,得到至少一个聚类结果;确定与每个聚类结果对应的查询图像的特征点点对,特征点点对包括特征点的像素点以及投影出像素点的空间点;根据与每个聚类结果对应的特征点点对,确定与每个聚类结果对应的相机位姿;获取查询图像的实际像素点与重投影像素点的误差,并将误差最小的重投影像素点对应的相机位姿作为电子设备的当前位姿;重投影像素点为实际像素点对应的空间点在聚类结果对应的相机位姿下,重新投影到查询图像上获取的像素点。
在本申请实施例中,点云实例分割网络用于离线标注特征地图的实例标签,以根据相同实例标签的个数,确定两个候选图像的对象相似度。
Ncut算法用于图像聚类,即通过构建一个无向加权图,权重为相同对象标注标签的数量来对图像进行聚类。
位姿估计算法用于计算相机位姿。在本申请实施例中,位姿估计算法可以为PNP算法。
特征点匹配算法则用于根据图像的特征点的特征描述符,与其他图像进行特征点匹配,以获取2D-3D点对。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面1管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
上述各个附图对应的流程或结构的描述各有侧重,某个流程或结构中没有详述的部分,可以参见其他流程或结构的相关描述。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (12)

1.一种确定位姿的方法,其特征在于,应用于电子设备,所述方法包括:
获取与查询图像匹配的多个候选图像;所述查询图像用于指示当前场景的图像信息;
将所述多个候选图像按照是否具有相同对象进行聚类,得到至少一个聚类结果;
确定与每个所述聚类结果对应的所述查询图像的特征点点对,所述特征点点对包括特征点的像素点以及投影出所述像素点的空间点;根据与每个所述聚类结果对应的所述特征点点对,确定与每个所述聚类结果对应的相机位姿;
获取所述查询图像的实际像素点与重投影像素点的误差,并将误差最小的所述重投影像素点对应的所述相机位姿作为所述电子设备的当前位姿;所述重投影像素点为所述实际像素点对应的空间点在所述聚类结果对应的相机位姿下,重新投影到所述查询图像上获取的像素点。
2.根据权利要求1所述方法,其特征在于,所述将所述多个候选图像按照是否具有相同对象进行聚类,得到至少一个聚类结果,包括:
确定所述多个候选图像中每两个所述候选图像之间的对象相似度;
当所述对象相似度超过第一预设相似度阈值时,将超过所述第一预设相似度阈值的所述对象相似度对应的两个候选图像聚类,以得到一个聚类结果。
3.根据权利要求2所述方法,其特征在于,所述确定所述多个候选图像中每两个所述候选图像的描述对象相似度,包括:
根据所述候选图像中相同的对象标注标签的数量,确定所述对象相似度;所述对象相似度与所述相同的对象标注标签的数量呈正相关关系,所述多个候选图像为对象标注标签标注后的图像。
4.根据权利要求3所述方法,其特征在于,所述对象标注标签为空间点实例标签,所述对象标注标签标注的步骤,包括:
根据待标注图像的目标点云数据,生成多个第一提案特征向量;所述第一提案特征向量用于描述提案的几何信息,所述提案指示所述目标点云数据对应的每个空间点所属的实例中心点;
根据所述多个第一提案特征向量,生成包含提案间关联关系的多个第二提案特征向量;所述提案间关联关系指示两个提案之间的距离小于预设距离阈值;
根据所述多个第二提案特征向量,生成所述待标注图像的所述空间点实例标签,并对所述待标注图像进行离线标注。
5.根据权利要求2所述方法,其特征在于,所述确定所述多个候选图像中每两个所述候选图像的对象相似度,包括:
根据所述多个候选图像,构建以所述多个候选图像为节点的无向加权图,所述无向加权图中节点之间的权重为所述节点对应的候选图像间相同对象标注标签的数量;所述每两个所述候选图像的对象相似度为所述候选图像对应的节点之间的所述权重;
所述当所述对象相似度超过第一预设相似度阈值时,将超过所述第一预设相似度阈值的所述对象相似度对应的两个候选图像聚类,以得到一个聚类结果,包括:
当所述无向加权图中节点之间的权重超过第一预设相似度阈值时,将所述节点对应的两个所述候选图像聚类,以得到一个聚类结果。
6.根据权利要求5所述方法,其特征在于,所述当所述无向加权图中节点之间的权重超过第一预设相似度阈值时,将所述节点对应的两个所述候选图像聚类,得到一个聚类结果,包括:
对所述无向加权图进行分割,以使所述相同区域中节点之间的所述权重超过第一预设相似度阈值,且使不同区域中节点之间的所述权重和最小;
将分割后所述节点对应的所述候选图像聚类,以得到一个聚类结果。
7.根据权利要求1-6任一项所述方法,其特征在于,所述获取所述查询图像的实际像素点与重投影像素点的误差,并将误差最小的所述重投影像素点对应的所述相机位姿作为所述电子设备的当前位姿,包括:
将所述查询图像的空间点,按照所述聚类结果对应的相机位姿,重新投影到所述查询图像上,获取重投影像素点;
计算所述空间点对应的所述实际像素点与所述重投影像素点的距离;所述误差大小与所述距离值正相关;
将距离最小的所述重投影像素点对应的相机位姿作为所述电子设备的当前位姿。
8.根据权利要求1-7任一项所述方法,其特征在于,所述确定与每个所述聚类结果对应的所述查询图像的特征点点对,包括:
根据所述查询图像中目标对象的特征点的特征描述符,从每个所述聚类结果的所述候选图像中匹配出与每个所述聚类结果对应的目标特征点;所示目标特征点为所述特征描述符在所述候选图像中的表示;
根据与每个所述聚类结果对应的目标特征点,从每个所述聚类结果的候选图像中获取所述目标特征点的特征点点对。
9.根据权利要求8所述方法,其特征在于,所述根据与每个所述聚类结果对应的所述特征点点对,确定与每个所述聚类结果对应的相机位姿,包括:
根据与每个所述聚类结果对应的所述目标特征点的特征点点对,利用位姿估计算法PNP,计算与每个所述聚类结果对应的相机位姿。
10.根据权利要求1-9任一项所述方法,其特征在于,所述获取与查询图像匹配的多个候选图像,包括:
根据所述查询图像的图像描述符,确定所述云端图像库中每个特征地图与所述查询图像的图像相似度,所述图像描述符用于描述图像中的目标对象;
根据所述图像相似度,从所述图像库的特征地图中匹配出图像相似度大于第二预设相似度阈值的特征图像作为所述多个候选图像。
11.一种电子设备,其特征在于,所述电子设备包括:
存储器和处理器,所述存储器与所述处理器耦合;
所述存储器存储有程序指令,当所述程序指令由所述处理器执行时,使得所述电子设备执行权利要求1-10任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算设备上运行时,使得所述计算设备执行权利要求1-10任一项所述的方法。
CN202310415681.7A 2023-04-12 2023-04-12 一种确定位姿的方法、电子设备及存储介质 Active CN117115238B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310415681.7A CN117115238B (zh) 2023-04-12 2023-04-12 一种确定位姿的方法、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310415681.7A CN117115238B (zh) 2023-04-12 2023-04-12 一种确定位姿的方法、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN117115238A true CN117115238A (zh) 2023-11-24
CN117115238B CN117115238B (zh) 2024-06-25

Family

ID=88802684

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310415681.7A Active CN117115238B (zh) 2023-04-12 2023-04-12 一种确定位姿的方法、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN117115238B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107680133A (zh) * 2017-09-15 2018-02-09 重庆邮电大学 一种基于改进闭环检测算法的移动机器人视觉slam方法
CN108256574A (zh) * 2018-01-16 2018-07-06 广东省智能制造研究所 机器人定位方法及装置
CN111524164A (zh) * 2020-04-21 2020-08-11 北京爱笔科技有限公司 一种目标跟踪方法、装置及电子设备
CN111538855A (zh) * 2020-04-29 2020-08-14 浙江商汤科技开发有限公司 视觉定位方法及装置、电子设备和存储介质
CN111627065A (zh) * 2020-05-15 2020-09-04 Oppo广东移动通信有限公司 一种视觉定位方法及装置、存储介质
CN112102411A (zh) * 2020-11-02 2020-12-18 中国人民解放军国防科技大学 一种基于语义误差图像的视觉定位方法及装置
CN114898084A (zh) * 2022-04-18 2022-08-12 荣耀终端有限公司 视觉定位方法、设备和存储介质
CN115409896A (zh) * 2022-09-02 2022-11-29 中兴通讯股份有限公司 位姿预测方法、装置、电子设备和介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107680133A (zh) * 2017-09-15 2018-02-09 重庆邮电大学 一种基于改进闭环检测算法的移动机器人视觉slam方法
CN108256574A (zh) * 2018-01-16 2018-07-06 广东省智能制造研究所 机器人定位方法及装置
CN111524164A (zh) * 2020-04-21 2020-08-11 北京爱笔科技有限公司 一种目标跟踪方法、装置及电子设备
CN111538855A (zh) * 2020-04-29 2020-08-14 浙江商汤科技开发有限公司 视觉定位方法及装置、电子设备和存储介质
CN111627065A (zh) * 2020-05-15 2020-09-04 Oppo广东移动通信有限公司 一种视觉定位方法及装置、存储介质
CN112102411A (zh) * 2020-11-02 2020-12-18 中国人民解放军国防科技大学 一种基于语义误差图像的视觉定位方法及装置
US11321937B1 (en) * 2020-11-02 2022-05-03 National University Of Defense Technology Visual localization method and apparatus based on semantic error image
CN114898084A (zh) * 2022-04-18 2022-08-12 荣耀终端有限公司 视觉定位方法、设备和存储介质
CN115409896A (zh) * 2022-09-02 2022-11-29 中兴通讯股份有限公司 位姿预测方法、装置、电子设备和介质

Also Published As

Publication number Publication date
CN117115238B (zh) 2024-06-25

Similar Documents

Publication Publication Date Title
Sahu et al. Artificial intelligence (AI) in augmented reality (AR)-assisted manufacturing applications: a review
Masone et al. A survey on deep visual place recognition
US9965865B1 (en) Image data segmentation using depth data
Rahman et al. Notice of violation of IEEE publication principles: Recent advances in 3D object detection in the era of deep neural networks: A survey
EP3417425B1 (en) Leveraging multi cues for fine-grained object classification
Liu et al. Real-time robust vision-based hand gesture recognition using stereo images
WO2020134528A1 (zh) 目标检测方法及相关产品
CN110222572A (zh) 跟踪方法、装置、电子设备及存储介质
CN113761999A (zh) 一种目标检测方法、装置、电子设备和存储介质
CN113793370B (zh) 三维点云配准方法、装置、电子设备及可读介质
US11823415B2 (en) 3D pose estimation in robotics
CN113160283A (zh) 一种基于sift的多摄像头场景下的目标跟踪方法
CN113379748A (zh) 一种点云全景分割方法和装置
Haggui et al. Centroid human tracking via oriented detection in overhead fisheye sequences
CN114554279A (zh) 基于远程分析的触发器响应剪辑提取
Huang et al. Overview of LiDAR point cloud target detection methods based on deep learning
CN116069801B (zh) 一种交通视频结构化数据生成方法、装置及介质
WO2022165675A1 (zh) 一种手势识别方法、装置、终端设备及可读存储介质
CN113704276A (zh) 地图更新方法、装置、电子设备及计算机可读存储介质
CN114972492A (zh) 一种基于鸟瞰图的位姿确定方法、设备和计算机存储介质
CN117115238B (zh) 一种确定位姿的方法、电子设备及存储介质
CN116843867A (zh) 增强现实虚实融合方法、电子设备和存储介质
CN113570535B (zh) 视觉定位方法及相关装置、设备
CN117036658A (zh) 一种图像处理方法及相关设备
Porzi et al. An automatic image-to-DEM alignment approach for annotating mountains pictures on a smartphone

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