一种定位方法、装置、电子设备及存储介质

文档序号:551876 发布日期:2021-05-14 浏览:1次 >En<

阅读说明:本技术 一种定位方法、装置、电子设备及存储介质 (Positioning method, positioning device, electronic equipment and storage medium ) 是由 李宇飞 张建博 于 2020-12-30 设计创作,主要内容包括:本公开提供了一种定位方法、装置、电子设备及存储介质,该方法包括:获取用户端拍摄的当前场景图像;基于所述当前场景图像,确定所述用户端对应的三维位姿信息;在所述三维位姿信息中的高度信息在目标高度范围内的情况下,将确定的三维位姿信息作为对所述用户端的定位结果;在所述三维位姿信息中的高度信息不在目标高度范围内的情况下,确定对所述用户端的定位结果为定位失败。(The disclosure provides a positioning method, a positioning device, an electronic device and a storage medium, wherein the method comprises the following steps: acquiring a current scene image shot by a user side; determining three-dimensional pose information corresponding to the user side based on the current scene image; under the condition that the height information in the three-dimensional pose information is within a target height range, taking the determined three-dimensional pose information as a positioning result of the user side; and determining that the positioning result of the user side is positioning failure under the condition that the height information in the three-dimensional pose information is not in the target height range.)

一种定位方法、装置、电子设备及存储介质

技术领域

本公开涉及计算机视觉技术领域,具体而言,涉及一种定位方法、装置、电子设备及存储介质。

背景技术

计算机视觉的目标定位是近年来快速发展的一种定位方法,具体的,该定位方法可以利用设备获取场景图像,并根据场景图像、和提前构建的视觉高精地图,确定该设备的位姿信息。

一般的,在利用视觉高精地图和场景图像进行定位时,在设备采集的场景图像中视觉特征较少的情况下,会造成定位结果产生较大的误差,降低了定位的精准度。

发明内容

有鉴于此,本公开至少提供一种定位方法、装置、电子设备及存储介质。

第一方面,本公开提供了一种定位方法,包括:

获取用户端拍摄的当前场景图像;

基于所述当前场景图像,确定所述用户端对应的三维位姿信息;

在所述三维位姿信息中的高度信息在目标高度范围内的情况下,将确定的三维位姿信息作为对所述用户端的定位结果;

在所述三维位姿信息中的高度信息不在目标高度范围内的情况下,确定对所述用户端的定位结果为定位失败。

采用上述方法,利用用户端拍摄的当前场景图像,确定用户端对应的三维位姿信息,并判断该三维位姿信息中的高度信息是否位于目标高度范围内,若是,则将确定的三维位姿信息作为对用户端的定位结果;若否,则确定对用户端的定位结果为定位失败;考虑到用户端对应的三维位姿信息中的高度信息一般与用户的身高相对应,故通过利用设置的目标高度范围对三维位姿信息进行筛选,可以将不在目标高度范围内的三维位姿信息筛掉,避免不准确的定位结果带来的应用上的误差,比如因为定位不准确导致的导航路线的偏差。

一种可能的实施方式中,确定对所述用户端的定位结果为定位失败之后,还包括:

通过所述用户端展示定位结果异常提示信息,所述定位结果异常提示信息用于提示用户调整拍摄视角。

上述实施方式下,可以在定位失败之后,提示用户将拍摄视角调整到一个合适的位置,比如拍摄视觉特征较多的场景图像,以便可以基于拍摄视角调整后的场景图像,得到定位结果。

一种可能的实施方式中,所述获取用户端拍摄的当前场景图像,包括:

响应用户导航请求,获取用户端拍摄的当前场景图像;

所述将确定的三维位姿信息作为对所述用户端的定位结果,包括:

将确定的三维位姿信息作为导航中对所述用户端的定位结果。

上述实施方式中,可以在导航过程中,对导航过程中得到的用户端对应的三维位姿信息进行筛选,保障定位结果的准确度,进而提高导航过程的准确度。

一种可能的实施方式中,确定所述用户端对应的三维位姿信息之后,还包括:

在存在前一帧场景图像对应的定位结果的情况下,判断所述三维位姿信息中的高度信息是否在设置的目标高度范围,以及判断所述三维位姿信息中的水平方向的位置信息与前一帧场景图像对应的定位结果指示的水平方向的位置信息之间的差值是否在设置的差值范围之内;

在所述三维位姿信息中的高度信息在目标高度范围内的情况下,将确定的三维位姿信息作为对所述用户端的定位结果,包括:

在所述三维位姿信息中的高度信息在目标高度范围内,且所述三维位姿信息中的水平方向的位置信息与前一帧场景图像对应的定位结果指示的水平方向的位置信息之间的差值在设置的差值范围之内的情况下,将确定的三维位姿信息作为对所述用户端的所述当前场景图像对应的定位结果。

上述实施方式下,考虑到在一定的时间内,用户端在水平方向的移动应该在设定的范围内,比如,在20秒内,用户端在水平方向的移动一般不会超过50米。故这里,可以基于三维位姿信息的高度信息和水平方向的位置信息,综合确定是否将三维位姿信息确定为用户端的定位结果,即在三维位姿信息中的高度信息在目标高度范围内,且三维位姿信息中的水平方向的位置信息与前一帧场景图像对应的定位结果指示的水平方向的位置信息之间的差值在设置的差值范围之内的情况下,将确定的三维位姿信息作为对用户端的当前场景图像对应的定位结果,提高了定位结果的准确度。

一种可能的实施方式中,所述将确定的三维位姿信息作为导航中对所述用户端的定位结果,包括:

在当前的所述定位结果为导航开始时的定位结果的情况下,将当前的所述定位结果作为导航起点信息;

基于所述导航起点信息以及所述用户端确定的导航终点信息,生成导航路径,并在所述用户端进行展示。

这里,在将确定的三维位姿信息作为导航中对用户端的定位结果时,可以将该定位结果作为导航起点信息,在定位结果较准确的前提下,可以使得导航过程的准确度也较高。

一种可能的实施方式中,所述将确定的三维位姿信息作为导航中对所述用户端的定位结果,还包括:

判断当前的所述定位结果是否处于所述导航路径上;

若不处于所述导航路径上,通过所述用户端展示路径偏离指示信息,和/或,根据当前的所述定位结果,以及所述导航终点信息,重新生成导航路径,并在所述用户端进行展示。

一种可能的实施方式中,基于所述当前场景图像,确定所述用户端对应的三维位姿信息,包括:

基于所述当前场景图像,以及预先构建的三维地图,确定所述用户端对应的三维位姿信息。

以下装置、电子设备等的效果描述参见上述方法的说明,这里不再赘述。

第二方面,本公开提供了一种定位装置,包括:

获取模块,用于获取用户端拍摄的当前场景图像;

确定模块,用于基于所述当前场景图像,确定所述用户端对应的三维位姿信息;

第一判断模块,用于在所述三维位姿信息中的高度信息在目标高度范围内的情况下,将确定的三维位姿信息作为对所述用户端的定位结果;

第二判断模块,用于在所述三维位姿信息中的高度信息不在目标高度范围内的情况下,确定对所述用户端的定位结果为定位失败。

一种可能的实施方式中,确定对所述用户端的定位结果为定位失败之后,还包括:

展示模块,用于通过所述用户端展示定位结果异常提示信息,所述定位结果异常提示信息用于提示用户调整拍摄视角。

一种可能的实施方式中,所述获取模块,在获取用户端拍摄的当前场景图像时,用于:

响应用户导航请求,获取用户端拍摄的当前场景图像;

所述第一判断模块,在将确定的三维位姿信息作为对所述用户端的定位结果时,用于:

将确定的三维位姿信息作为导航中对所述用户端的定位结果。

一种可能的实施方式中,在确定所述用户端对应的三维位姿信息之后,还包括:

第三判断模块,用于在存在前一帧场景图像对应的定位结果的情况下,判断所述三维位姿信息中的高度信息是否在设置的目标高度范围,以及判断所述三维位姿信息中的水平方向的位置信息与前一帧场景图像对应的定位结果指示的水平方向的位置信息之间的差值是否在设置的差值范围之内;

所述第一判断模块,在所述三维位姿信息中的高度信息在目标高度范围内的情况下,将确定的三维位姿信息作为对所述用户端的定位结果时,用于:

在所述三维位姿信息中的高度信息在目标高度范围内,且所述三维位姿信息中的水平方向的位置信息与前一帧场景图像对应的定位结果指示的水平方向的位置信息之间的差值在设置的差值范围之内的情况下,将确定的三维位姿信息作为对所述用户端的所述当前场景图像对应的定位结果。

一种可能的实施方式中,所述第一判断模块,在将确定的三维位姿信息作为导航中对所述用户端的定位结果时,用于:

在当前的所述定位结果为导航开始时的定位结果的情况下,将当前的所述定位结果作为导航起点信息;

基于所述导航起点信息以及所述用户端确定的导航终点信息,生成导航路径,并在所述用户端进行展示。

一种可能的实施方式中,所述第一判断模块,在将确定的三维位姿信息作为导航中对所述用户端的定位结果,还用于:

判断当前的所述定位结果是否处于所述导航路径上;

若不处于所述导航路径上,通过所述用户端展示路径偏离指示信息,和/或,根据当前的所述定位结果,以及所述导航终点信息,重新生成导航路径,并在所述用户端进行展示。

一种可能的实施方式中,所述确定模块,在基于所述当前场景图像,确定所述用户端对应的三维位姿信息时,用于:

基于所述当前场景图像,以及预先构建的三维地图,确定所述用户端对应的三维位姿信息。

第三方面,本公开提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述第一方面或任一实施方式所述的定位方法的步骤。

第四方面,本公开提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述第一方面或任一实施方式所述的定位方法的步骤。

为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本公开实施例所提供的一种定位方法的流程示意图;

图2示出了本公开实施例所提供的一种定位方法中,用户端的展示界面示意图;

图3示出了本公开实施例所提供的一种定位装置的架构示意图;

图4示出了本公开实施例所提供的一种电子设备的结构示意图。

具体实施方式

为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。

计算机视觉的目标定位可以利用设备获取场景图像,并根据场景图像、和提前构建的视觉高精地图,确定该设备的位姿信息。一般的,在利用视觉高精地图和场景图像进行定位时,在设备采集的场景图像中视觉特征较少的情况下,会造成定位结果产生较大的误差,降低了定位的精准度。为了解决上述问题,本公开实施例提供了一种定位方法。

为便于对本公开实施例进行理解,首先对本公开实施例所公开的一种定位方法进行详细介绍,本公开实施例所提供的定位方法的执行主体可以为用户端,比如,用户端可以为手机、平板、AR眼镜等电子设备;也可以为服务器,比如,本地服务器、云端服务器等,本公开实施例中不作限定。

参见图1所示,为本公开实施例所提供的定位方法的流程示意图,该方法包括S101-S104,其中:

S101,获取用户端拍摄的当前场景图像。

S102,基于当前场景图像,确定用户端对应的三维位姿信息。

S103,在三维位姿信息中的高度信息在目标高度范围内的情况下,将确定的三维位姿信息作为对用户端的定位结果。

S104,在三维位姿信息中的高度信息不在目标高度范围内的情况下,确定对用户端的定位结果为定位失败。

上述方法中,利用用户端拍摄的当前场景图像,确定用户端对应的三维位姿信息,并判断该三维位姿信息中的高度信息是否位于目标高度范围内,若是,则将确定的三维位姿信息作为对用户端的定位结果;若否,则确定对用户端的定位结果为定位失败;考虑到用户端对应的三维位姿信息中的高度信息一般与用户的身高相对应,故通过利用设置的目标高度范围对三维位姿信息进行筛选,可以将不在目标高度范围内的三维位姿信息筛掉,避免不准确的定位结果带来的应用上的误差,比如因为定位不准确导致的导航路线的偏差。

针对S101:

在具体实施时,用户端可以通过摄像头拍摄所处位置处对应的当前场景图像,进而使得执行主体可以获取用户端拍摄的当前场景图像。在执行主体为用户端时,则可以将用户端获取拍摄的当前场景图像。在执行主体为服务器时,用户端可以将拍摄到的当前场景图像发送给服务器;或者,服务器可以从用户端上获取当前场景图像。

该当前场景图像可以为彩色图像,也可以为灰度图,其中,该灰度图可以为将拍摄的彩色图像进行像素值转换后得到的。这里,在当前场景图像为灰度图时,可以减少将当前场景图像发送给服务器过程的时间,进而可以提高定位的效率。

针对S102:

这里,在获取到当前场景图像之后,可以对该当前场景图像进行识别,确定用户端对应的三维位姿信息。

一种可选实施方式中,基于当前场景图像,确定用户端对应的三维位姿信息,可以包括:基于当前场景图像,以及预先构建的三维地图,确定用户端对应的三维位姿信息。

这里,可以对当前场景图像进行识别,确定当前场景图像中包括的特征点的特征信息,基于确定的当前场景图像对应的特征点的特征信息、与预先构建的三维地图进行匹配,确定用户端对应的三维位姿信息。

这里,可以是用户端基于当前场景图像、和从服务器处获取到的三维地图,确定用户端对应的三维位姿信息;也可以为服务器基于当前场景图像、和预先构建的三维地图,确定用户端对应的三维位姿信息。

其中,三维位姿信息包括用户端的位置信息和朝向信息。该用户端的位置信息可以为用户端在世界地图坐标系下的三维坐标值,即该用户端的位置信息包括水平信息(水平方向上的位置信息)、深度信息(深度方向上的位置信息)、和高度信息(高度方向上的位置信息)。

示例性的,可以根据下述步骤构建三维地图:可以先获取现实场景对应的场景视频,并从场景视频中采样得到多帧样本图像;或者,获取现实场景对应的多帧样本图像;再从获取的多帧样本图像中,提取每帧样本图像中包括的样本特征点的特征信息,并基于多帧样本图像分别对应的样本特征点的特征信息,构建三维地图。

针对S103以及S104:

这里,可以基于确定的用户端对应的三维位姿信息中的高度信息,确定当前场景图像对应的定位结果。即在三维位姿信息中的高度信息在目标高度范围内时,则将确定的三维位姿信息作为对用户端的定位结果,在执行主体为服务器时,还可以将该三维位姿信息发送给用户端。在三维位姿信息中的高度信息不再目标高度范围内时,确定用户端的定位结果为定位失败,在执行主体为服务器时,还可以将指示定位失败的反馈信息发送给用户端。

比如,若目标高度范围为0.5米至3米,在三维位姿信息中的高度信息为2米时,将确定的三维位姿信息作为用户端的定位结果;在三维位姿信息中的高度信息为3.5米时,确定对用户端的定位结果为定位失败。

其中,目标高度范围可以为基于各个用户的身高确定的,示例性的,可以统计用户的最高身高和最低身高,基于最高身高和最低身高,确定目标高度范围。比如,该目标高度范围可以为0.5米至3米。

这里,目标高度范围可以根据实际情况进行设置。比如,可以在用户发起定位时,获取用户的身高信息,基于该用户的身高信息,确定目标高度范围。再比如,也可以在用户发起定位时,获取用户的图像,基于该用户的图像,确定该用户的身高信息。

一种可选实施方式中,在确定对用户端的定位结果为定位失败之后,还可以通过用户端展示定位结果异常提示信息,定位结果异常提示信息用于提示用户调整拍摄视角。

这里,可以在确定用户端的定位结果为定位失败时,生成定位结果异常提示信息,并通过用户端展示定位结果异常提示信息,使得用户在接收到该定位结果异常提示信息之后,可以调整拍摄视角,在进行下一次定位时得到准确的定位结果。

该定位结果异常提示信息用于提示用户调整拍摄视角,其中,该定位结果异常提示信息可以包括文字信息、图像信息、语音信息、视频信息、AR数据中的一种或多种。比如,该定位结果异常提示信息可以为:“定位失败,请调整用户端”等,参见图2所示的一种定位方法中,用户端的展示界面示意图。具体的,定位结果异常提示信息可以根据需要进行设置。

上述实施方式下,可以在定位失败之后,提示用户将拍摄视角调整到一个合适的位置,比如拍摄视觉特征较多的场景图像,以便可以基于拍摄视角调整后的场景图像,得到定位结果。

在具体实施时,本公开提供的定位方法可以应用于AR导航场景中。

作为一可选实施方式,获取用户端拍摄的当前场景图像,包括:响应用户导航请求,获取用户端拍摄的当前场景图像。

将确定的三维位姿信息作为对用户端的定位结果,包括:将确定的三维位姿信息作为导航中对用户端的定位结果。

这里,用户可以触发用户端上显示的导航按钮,生成用户导航请求,比如,该导航按钮可以为导航界面上的拍照按钮。再可以响应用户导航请求,获取用户端拍摄的当前场景图像,并基于获取的当前场景图像,可以确定用户端对应的三维位姿信息。最后,可以基于确定的三维位姿信息中的高度信息,确定导航过程中用户端的定位结果;即在三维位姿信息中的高度信息在目标高度范围内时,将确定的三维位姿信息作为导航中对用户端的定位结果;在三维位姿信息中的高度信息不在目标高度范围内时,则确定导航中对用户端的定位结果为定位失败。

上述实施方式中,可以在导航过程中,对导航过程中得到的用户端对应的三维位姿信息进行筛选,保障定位结果的准确度,进而提高导航过程的准确度。

一种可选实施方式中,在将确定的三维位姿信息作为导航中对用户端的定位结果的情况下,可以基于定位结果执行以下导航展示过程:

一、在当前的定位结果为导航开始时的定位结果的情况下,将当前的定位结果作为导航起点信息。

二、基于导航起点信息以及用户端确定的导航终点信息,生成导航路径,并在用户端进行展示。

这里,在导航场景中,若当前的定位结果为导航开始时的定位结果时,则将当前的定位结果作为导航起点信息。比如,可以将确定的三维位姿信息对应的场景对象,确定为导航起点。进一步的,基于导航起点信息以及用户端确定的导航终点信息,生成导航路径,并在用户端上展示生成的导航路径,以便用户可以按照导航路径移动至目的地位置(即导航终点位置)。

这里,在将确定的三维位姿信息作为导航中对用户端的定位结果时,可以将该定位结果作为导航起点信息,在定位结果较准确的前提下,可以使得导航过程的准确度也较高。

一种可选实施方式中,在将确定的三维位姿信息作为导航中对用户端的定位结果的情况下,还可以基于定位结果执行以下导航展示过程:

一、判断当前的定位结果是否处于导航路径上。

二、若不处于导航路径上,通过用户端展示路径偏离指示信息,和/或,根据当前的定位结果,以及导航终点信息,重新生成导航路径,并在用户端进行展示。

这里,导航过程中,在导航开始时,可以根据当前场景图像,确定定位结果(即确定用户的当前位置),并将该定位结果确定为导航起点信息。在用户按照导航路径移动过程中,可以每间隔目标距离或每间隔目标时间后,周期性的获取一次当前场景图像,基于该当前场景图像,确定一次定位结果。比如,可以每间隔10秒或者用户端每移动20米,获取一次当前场景图像,并基于该当前场景图像,确定一次定位结果。

在当前的定位结果为导航过程进行中的定位结果时,即在导航过程中生成了当前的定位结果后,可以判断该当前的定位结果是否处于导航路径上,即判断当前的定位结果是否偏离导航路径,若不处于导航路径上(即偏离导航路径)时,则可以通过用户端展示路径偏离提示信息,比如,该路径偏离提示信息可以为:“已偏离路线,请重新定位”。或者,可以根据当前的定位结果、以及设置的导航终点信息,重新为用户生成导航路径,并在用户端展示重新生成的导航路径。

在具体实施时,在一个现实场景中,可能存在两个不同的位置对应的图像特征信息相同的情况,比如,在场地A中,在位置A处设置了名人A的图像,在与位置A相距1公里的位置B处也设置了名人B的图像,若用户获取的当前场景图像为包含名人A的图像,在基于该当前场景图像,确定用户端对应的三维位姿信息(包括位置信息和朝向信息)时,可能会将位置B处的位置信息确定为该三维位姿信息中的位置信息,造成确定的三维位姿信息的误差较大。

考虑到上述情况的存在,故在确定所述用户端对应的三维位姿信息之后,还可以对三维位姿信息中水平方向的位置信息进行判断。

即在确定所述用户端对应的三维位姿信息之后,还可以包括:在存在前一帧场景图像对应的定位结果的情况下,判断所述三维位姿信息中的高度信息是否在设置的目标高度范围,以及判断所述三维位姿信息中的水平方向的位置信息与前一帧场景图像对应的定位结果指示的水平方向的位置信息之间的差值是否在设置的差值范围之内。

其中,在所述三维位姿信息中的高度信息在目标高度范围内的情况下,将确定的三维位姿信息作为对所述用户端的定位结果,可以包括:在所述三维位姿信息中的高度信息在目标高度范围内,且所述三维位姿信息中的水平方向的位置信息与前一帧场景图像对应的定位结果指示的水平方向的位置信息之间的差值在设置的差值范围之内的情况下,将确定的三维位姿信息作为对所述用户端的所述当前场景图像对应的定位结果。

这里,在存在前一帧场景图像对应的定位结果时,在确定用户端对应的三维位姿信息之后,可以判断当前场景图像对应的三维位姿信息中的高度信息和水平方向位置信息是否满足预设要求,在当前场景图像对应的三维位姿信息中的高度信息和水平方向位置信息均满足预设要求时,则将确定的三维位姿信息作为用户端的、当前场景图像对应的定位结果;在当前场景图像对应的三维位姿信息中的高度信息和/或水平方向位置信息不满足预设要求时,则确定对用户端的定位结果为定位失败。

具体实施时,可以判断当前场景图像对应的三维位姿信息中的高度信息是否在设置的目标高度范围,若是,则确定该高度信息满足预设要求。同时,可以判断当前场景图像对应的三维位姿信息中的水平方向的位置信息与前一帧场景图像对应的定位结果指示的水平方向的位置信息之间的差值是否在设置的差值范围之内,若是,则确定该水平方向的位置信息满足预设要求。其中,该设置的差值范围可以根据实际需要进行设置,比如,设置的差值范围可以为50米、100米等。

比如,在设置的差值范围为50米,前一帧场景图像对应的定位结果指示的水平方向的位置信息为2米时,若该当前场景图像对应的三维位姿信息中水平方向的位置信息为10米,则确定当前场景图像对应的三维位姿信息中水平方向的位置信息满足预设的要求;若该当前场景图像对应的三维位姿信息中水平方向的位置信息为100米,则确定当前场景图像对应的三维位姿信息中水平方向的位置信息不满足预设的要求。

在上述实施方式下,考虑到在一定的时间内,用户端在水平方向的移动应该在设定的范围内,比如,在20秒内,用户端在水平方向的移动一般不会超过50米。故这里,可以基于三维位姿信息的高度信息和水平方向的位置信息,综合确定是否将三维位姿信息确定为用户端的定位结果,即在三维位姿信息中的高度信息在目标高度范围内,且三维位姿信息中的水平方向的位置信息与前一帧场景图像对应的定位结果指示的水平方向的位置信息之间的差值在设置的差值范围之内的情况下,将确定的三维位姿信息作为对用户端的当前场景图像对应的定位结果,提高了定位结果的准确度。

本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。

基于相同的构思,本公开实施例还提供了一种定位装置,参见图3所示,为本公开实施例提供的定位装置的架构示意图,包括获取模块301、确定模块302、第一判断模块303、第二判断模块304、展示模块305、第三判断模块306,具体的:

获取模块301,用于获取用户端拍摄的当前场景图像;

确定模块302,用于基于所述当前场景图像,确定所述用户端对应的三维位姿信息;

第一判断模块303,用于在所述三维位姿信息中的高度信息在目标高度范围内的情况下,将确定的三维位姿信息作为对所述用户端的定位结果;

第二判断模块304,用于在所述三维位姿信息中的高度信息不在目标高度范围内的情况下,确定对所述用户端的定位结果为定位失败。

一种可能的实施方式中,确定对所述用户端的定位结果为定位失败之后,还包括:

展示模块305,用于通过所述用户端展示定位结果异常提示信息,所述定位结果异常提示信息用于提示用户调整拍摄视角。

一种可能的实施方式中,所述获取模块301,在获取用户端拍摄的当前场景图像时,用于:

响应用户导航请求,获取用户端拍摄的当前场景图像;

所述第一判断模块303,在将确定的三维位姿信息作为对所述用户端的定位结果时,用于:

将确定的三维位姿信息作为导航中对所述用户端的定位结果。

一种可能的实施方式中,在确定所述用户端对应的三维位姿信息之后,还包括:

第三判断模块306,用于在存在前一帧场景图像对应的定位结果的情况下,判断所述三维位姿信息中的高度信息是否在设置的目标高度范围,以及判断所述三维位姿信息中的水平方向的位置信息与前一帧场景图像对应的定位结果指示的水平方向的位置信息之间的差值是否在设置的差值范围之内;

所述第一判断模块303,在所述三维位姿信息中的高度信息在目标高度范围内的情况下,将确定的三维位姿信息作为对所述用户端的定位结果时,用于:

在所述三维位姿信息中的高度信息在目标高度范围内,且所述三维位姿信息中的水平方向的位置信息与前一帧场景图像对应的定位结果指示的水平方向的位置信息之间的差值在设置的差值范围之内的情况下,将确定的三维位姿信息作为对所述用户端的所述当前场景图像对应的定位结果。

一种可能的实施方式中,所述第一判断模块303,在将确定的三维位姿信息作为导航中对所述用户端的定位结果时,用于:

在当前的所述定位结果为导航开始时的定位结果的情况下,将当前的所述定位结果作为导航起点信息;

基于所述导航起点信息以及所述用户端确定的导航终点信息,生成导航路径,并在所述用户端进行展示。

一种可能的实施方式中,所述第一判断模块303,在将确定的三维位姿信息作为导航中对所述用户端的定位结果时,还用于:

判断当前的所述定位结果是否处于所述导航路径上;

若不处于所述导航路径上,通过所述用户端展示路径偏离指示信息,和/或,根据当前的所述定位结果,以及所述导航终点信息,重新生成导航路径,并在所述用户端进行展示。

一种可能的实施方式中,所述确定模块302,在基于所述当前场景图像,确定所述用户端对应的三维位姿信息时,用于:

基于所述当前场景图像,以及预先构建的三维地图,确定所述用户端对应的三维位姿信息。

在一些实施例中,本公开实施例提供的装置具有的功能或包含的模板可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。

基于同一技术构思,本公开实施例还提供了一种电子设备。参照图4所示,为本公开实施例提供的电子设备的结构示意图,包括处理器401、存储器402、和总线403。其中,存储器402用于存储执行指令,包括内存4021和外部存储器4022;这里的内存4021也称内存储器,用于暂时存放处理器401中的运算数据,以及与硬盘等外部存储器4022交换的数据,处理器401通过内存4021与外部存储器4022进行数据交换,当电子设备400运行时,处理器401与存储器402之间通过总线403通信,使得处理器401在执行以下指令:

获取用户端拍摄的当前场景图像;

基于所述当前场景图像,确定所述用户端对应的三维位姿信息;

在所述三维位姿信息中的高度信息在目标高度范围内的情况下,将确定的三维位姿信息作为对所述用户端的定位结果;

在所述三维位姿信息中的高度信息不在目标高度范围内的情况下,确定对所述用户端的定位结果为定位失败。

此外,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的定位方法的步骤。

本公开实施例所提供的定位方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的定位方法的步骤,具体可参见上述方法实施例,在此不再赘述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。

16页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于TM-SRC的三维无纹理目标位姿估计方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!