用于移动计算设备的方位确定
文献发布时间:2023-06-19 12:25:57
技术领域
本公开总体上涉及导航,并且具体地涉及用于确定包括计算设备的方位的方位的系统、设备和方法。
背景技术
能够在各种计算设备上实施与地理区域的状态相关联的操作。这些操作能够包括处理与地理区域相关联的数据以供用户或计算系统稍后访问和使用。另外,操作能够包括与远程计算系统交换数据。然而,被执行的操作的类型和执行操作的方式可能随着时间的推移而改变,实施操作的基本硬件也可能如此。因此,存在影响与地理区域的状态相关联的计算资源的不同的方式。
发明内容
将在以下描述中部分地阐述本公开的实施例的方面和优点,或本公开的实施例的方面和优点可以从说明书中被习得,或可以通过实施例的实践被习得。
本公开的一个示例方面涉及导航和方位确定的计算机实施的方法。计算机实施的方法能够包括:由包括一个或多个处理器的移动计算设备来捕捉在移动计算设备的视场中可见的环境的一个或多个图像。另外,计算机实施的方法能够包括:由移动计算设备接收与移动计算设备的位置相关联的位置数据。计算机实施的方法能够包括:由移动计算设备生成包括与一个或多个图像相关联的信息的图像数据。计算机实施的方法还能够包括:由移动计算设备至少部分地基于图像数据和一个或多个机器学习模型来确定环境中的一个或多个对象的一个或多个对象分类。计算机实施的方法能够包括。由移动计算设备至少部分地基于位置数据和一个或多个对象的一个或多个对象分类来确定一个或多个对象相对于移动计算设备的位置的一个或多个相应方位。此外,计算机实施的方法能够包括:由移动计算设备至少部分地基于一个或多个对象的一个或多个相应方位来生成包括移动计算设备的地理方位的方位数据。
本公开的另一个示例方面涉及存储计算机可读指令的一个或多个有形非暂时性计算机可读介质,当所述计算机可读指令由一个或多个处理器执行时,使一个或多个处理器执行操作。操作能够包括捕捉在移动计算设备的视场中可见的环境的一个或多个图像。另外,操作能够包括接收与移动计算设备的位置相关联的位置数据。操作能够包括生成包括与一个或多个图像相关联的信息的图像数据。操作还能够包括:至少部分地基于图像数据和一个或多个机器学习模型来确定环境中的一个或多个对象的一个或多个对象分类。操作能够包括:至少部分地基于位置数据和一个或多个对象的一个或多个对象分类来确定一个或多个对象相对于移动计算设备的位置的一个或多个相应方位。此外,操作能够包括:至少部分地基于一个或多个对象的一个或多个相应方位来生成包括移动计算设备的地理方位的方位数据。
本公开的另一个示例方面涉及能够包括以下的计算系统:一个或多个处理器;以及一个或多个有形非暂时性计算机可读介质,其存储当由一个或多个处理器执行时使一个或多个处理器执行操作的指令。操作能够包括捕捉在移动计算设备的视场中可见的环境的一个或多个图像。另外,操作能够包括接收与移动计算设备的位置相关联的位置数据。操作能够包括生成包括与一个或多个图像相关联的信息的图像数据。操作还能够包括:至少部分地基于图像数据和一个或多个机器学习模型来确定环境中的一个或多个对象的一个或多个对象分类。操作能够包括:至少部分地基于位置数据和一个或多个对象的一个或多个对象分类来确定一个或多个对象相对于移动计算设备的位置的一个或多个相应方位。此外,操作能够包括:至少部分地基于一个或多个对象的一个或多个相应方位来生成包括移动计算设备的地理方位的方位数据。
本公开的其他示例方面涉及用于导航和方位确定的其他方法、系统、设备、装置或有形非暂时性计算机可读介质。而且,将理解的是,关于一个示例方面被描述的任何特征也能够被实施为另一个示例方面的一部分。
参考以下描述和所附权利要求,各个实施例的这些和其他特征、方面和优点将变得更好理解。被并入本说明书中且组成本说明书的一部分的附图图示出本公开的实施例,并且与说明书一起用来解释有关的原理。
附图说明
在说明书中阐述了涉及本领域普通技术人员的对实施例的详细的讨论,其参考附图,在附图中:
图1描绘根据本公开的示例实施例的示例系统的图;
图2描绘根据本公开的示例实施例的示例设备的图;
图3描绘根据本公开的示例实施例的环境中的方位确定的示例;
图4描绘根据本公开的示例实施例的环境中的方位确定的示例;
图5描绘根据本公开的示例实施例的、执行方位确定的设备的示例;
图6描绘根据本公开的示例实施例的方位确定的流程图;
图7描绘根据本公开的示例实施例的方位确定的流程图;
图8描绘根据本公开的示例实施例的方位确定的流程图;
图9描绘根据本公开的示例实施例的方位确定的流程图;并且
图10描绘根据本公开的示例实施例的方位确定的流程图。
具体实施方式
现在将详细参考实施例,在附图中图示出其的一个或多个示例。作为对实施例的解释而非对本公开的限制来提供每个示例。实际上,对那些本领域技术人员将明显的是,在不背离本公开的范围或精神的情况下,能够对实施例做出各种修改和变化。例如,被图示或说明为一个实施例的一部分的特征能够被用于另一个实施例以产生其他实施例。因此,本公开的方面意图覆盖这样的修改和变化。
本公开的示例方面涉及一种设备,该设备能够用于确定在该设备周围的环境中的一个或多个对象的方位。另外,所公开的技术能够用于通过使用与设备的大概位置相关联的位置数据、与设备周围的环境的外观相关联的图像数据和能够被训练以确定设备周围的环境中的对象的特征的至少一个机器学习模型的组合来确定设备的方位。
具体地,所公开的技术能够使用来自导航卫星(例如,全球定位系统(“GPS”)卫星)的信号来确定设备的大概位置(大致地理位置)。通过访问与位置的特性相关联的附加数据(例如,设备位于的街道),设备的大致位置(或位置数据)能够被用于确定街道是单向道还是双向道。另外,设备能够捕捉街道和/或环境的图像。能够将所捕捉的图像的图像数据提供为对机器学习模型的输入,该机器学习模型能够使用所捕捉的图像来生成包括面向图像中的对象(例如,停放的车辆)的方向的输出。使用包括街道是单向还是双向以及图像中的对象的方位的信息,设备能够确定设备关于至少一个对象的方位。然后能够基于对象关于设备的相对方位来确定设备的地理方位。照此,所公开的技术能够向用户提供它们的方位的合理准确的估计,允许通过环境的更有效的导航。该方式在其中GPS定位系统由于建筑物的干扰效应而较不准确但是在环境内存在许多对象的市区中能够具有特定好处。另外,所公开的技术能够通过提供改善的位置服务来提供附加的好处,包括时间量的减少和从一个地方行进到另一个地方所需要的能量。
能够通过被配置为访问数据、对数据执行操作(例如,确定设备关于附近对象的方位)并且生成包括计算设备的方位的输出的计算设备(例如,移动计算设备)和/或计算系统(例如,方位计算系统)来实施所公开的技术。另外,计算系统能够被包括在移动计算设备中和/或作为如下系统的一部分,该系统包括导航服务器,该导航服务器:从客户端设备(例如,能够包括智能电话的移动设备)接收和/或发送位置数据(例如,移动设备的当前位置)和/或图像数据(例如,与移动设备周围的环境的一个或多个图像相关联的信息和/或数据);基于接收的数据来执行操作;以及生成包括设备的方位的输出和/或将其发送回客户端设备,该客户端设备能够被配置为使用确定的方位来执行另外的操作。
作为另外的示例,所公开的技术能够使用移动计算设备的一个或多个照相机来捕捉在移动计算设备的视场中可见的环境的一个或多个图像。移动计算设备然后能够接收与移动计算设备的位置相关联的位置数据(例如,能够与街道地址相关联的纬度、经度和/或海拔)。此外,能够生成包括与一个或多个图像相关联的信息的图像数据。一个或多个图像例如能够包括对环境中的对象的描绘并且能够被格式化以用作对机器学习模型的输入。一个或多个机器学习模型(例如,被训练为检测、辨识(identify)和/或识别(recognize)图像中的可见特征的机器学习模型)然后能够接收包括图像数据的输入并且使用输入来生成包括在图像数据中所描绘的环境中的一个或多个对象的一个或多个对象分类的输出。此外,至少部分地基于位置数据和/或一个或多个对象的一个或多个对象分类,移动计算设备能够确定一个或多个对象相对于移动计算设备的位置的一个或多个相应方位。然后能够至少部分地基于一个或多个对象的一个或多个相应(地理)方位来生成包括移动计算设备的地理方位的方位数据。地理方位例如能够包括罗盘测定的方位和/或与指南针的点相关联(例如,基本方向(北、南、东、西)、次基本方向(东北、东南、东南、西南)和/或副次基本方向)。此外,方位数据能够被包括为能够由包括车辆系统的其他设备和/或系统所使用的其他数据的一部分。
因此,所公开的技术能够改善(城市)环境中的方位和位置的确定,并且因此通过向用户提供它们的方位的更准确的指示来提高导航效率和安全性。此外,所公开的技术能够辅助用户更有效地执行使用设备的方位的技术任务以借助于连续的和/或引导的人类机器交互处理促进从一个位置到另一个位置的导航。
计算设备(例如,移动计算设备)能够捕捉在移动计算设备的视场中可见的环境的一个或多个图像。例如,移动计算设备能够包括具有一个或多个相应视场的一个或多个照相机。一个或多个照相机中的每一个能够被用于捕捉其中存在照相机的环境的一个或多个图像(例如,彩色图像)。此外,在一些实施例中,移动计算设备能够是被指向将被确定方位的方向和/或在该方向上被对准的手持设备(例如,智能电话)。
在一些实施例中,移动计算设备能够包括一个或多个图像捕捉设备。例如,移动计算设备能够包括能够被用于捕捉环境的一个或多个图像的一个或多个照相机。图像捕捉设备能够包括具有不同的焦距、不同的传感器类型(例如,被配置为捕捉可见光和/或红外光的传感器)和/或不同的光圈的各种类型的照相机。此外,移动计算设备能够包括其他类型的传感器,其能够被用于确定移动计算设备的位置和/或方位,包括雷达、声纳和/或其他无源和/或有源传感器系统。
移动计算设备能够接收与移动计算设备的位置相关联的位置数据。在一些实施例中,位置数据能够至少部分地基于或者包括来自卫星导航系统的输出和/或来自一个或多个无线通信网络设备的输出。例如,移动计算设备能够至少部分地基于来自GPS和/或GLONASS卫星的一个或多个信号来接收位置数据。位置数据能够包括与移动计算设备的纬度、经度和/或海拔相关联的信息。另外,位置数据能够至少部分地基于来自计算系统的数据和/或信息,该计算系统能够提供与移动计算设备的位置相关联的另外的信息。在向移动计算系统提供的位置数据中所包括的信息能够包括与移动计算设备的位置相关联的地址、邻域、城市、城镇和/或自治区。另外地,位置数据能够包括与行进路线(例如,街道、道路或其他路径)相关联的信息,其能够用于确定根据其能够确定一个或多个对象沿着该行进路线的方位的参考点。在一些实施例中,移动计算设备能够本地存储位置数据的一个或多个部分。
移动计算设备能够生成包括与一个或多个图像相关联的信息的图像数据。例如,移动计算设备能够执行一个或多个操作以至少部分地基于来自一个或多个传感器的输出来生成图像数据,该一个或多个传感器与用于捕捉了一个或多个图像的一个或多个图像捕捉设备相关联。在一些实施例中,能够以各种方式对图像数据进行编码,包括以光栅(例如,位图)、体素或矢量图像格式进行编码。另外,图像数据能够至少部分地基于包括一个或多个图像的视频。例如,能够从视频的多个顺序图像中提取图像数据。另外,能够以能够被提供为对机器学习模型的输入的格式来生成图像数据。
移动计算设备能够至少部分地基于图像数据和一个或多个机器学习模型来确定环境中的一个或多个对象的一个或多个对象分类。例如,移动计算设备能够包括一个或多个机器学习模型,该一个或多个机器学习模型能够被配置和/或被训练为:接收包括图像数据的输入;对输入执行一个或多个操作,包括从图像数据中提取一个或多个特征;以及生成包括一个或多个对象的一个或多个对象分类和/或特征的输出。例如,在图像数据中所描绘的图像的一部分的一个或多个特征能够被分类为机动车辆对象的一部分,包括挡风玻璃、门、车轮或牌照。
在一些实施例中,能够至少部分地基于训练数据来配置和/或训练一个或多个机器学习模型,训练数据包括一个或多个车辆关于捕捉该一个或多个车辆的一个或多个图像的图像捕捉设备在一个或多个距离以及一个或多个角度的一个或多个图像。例如,用于配置和/或训练一个或多个机器学习模型的训练数据能够包括根据以下捕捉的不同的车辆(例如,不同类型、品牌和/或型号的车辆)的一个或多个图像:从车辆周围的三百六十度;从包括观看车辆正面、上方或下方的高度的不同的高度;以不同的角度;在不同的照明条件(例如,正午日光、黎明光、黄昏光、月光、人造光(例如,街灯、室内停车库中的光和/或隧道中的光))之下;和/或在车辆的各个部分被模糊或挡住的情况下(例如,具有被泥弄乱的或被另一个车辆、行人或树枝挡住的特征的车辆)。可以因此提供更鲁棒的机器学习模型。
在一些实施例中,移动计算设备的位置能够被用于确定将被使用的一个或多个机器学习模型。另外,移动计算设备的位置能够用于确定包括至少一个机器学习模型的一个或多个机器学习模型,该至少一个机器学习模型是至少部分地基于与包括移动计算设备的位置的与地理区域相关联的训练数据被配置和/或训练的。例如,能够至少部分地基于相应的训练数据集来训练一个或多个机器学习模型中的每一个,该相应的训练数据集与特定地理区域(例如,其中标牌、语言、交通规则和/或道路标志是不同的不同的地理区域)相关联。另外,移动计算设备能够确定和/或选择与包括移动计算设备的位置的区域相关联的机器学习模型。在一些实施例中,能够至少部分地基于与多个不同地理区域相关联的多个训练数据集的任何组合来训练一个或多个机器学习模型。例如,能够使用与单独的国家中的三个不同的地理区域相关联的训练数据集来训练单个机器学习模型。该方式可以通过考虑可以影响在设备的环境中确定对象的方位的地区性差异来促进改善的设备方位确定。
在一些实施例中,能够至少部分地基于与一个或多个不同地理区域的一个或多个图像相关联的训练数据来配置和/或训练一个或多个机器学习模型。此外,一个或多个地理区域中的每一个能够与相应多个交通条例相关联。例如,多个交通条例能够包括与以下相关联的一个或多个条例:车辆能够在一些小时期间停放到的街道的那一侧;在行进路线上允许单向行进、双向行进还是一些其他交通流模式;和/或沿着行进路线的一部分的行进的容许方向。该方式可以通过考虑可以影响在设备的环境中确定对象的方位的地理差异来促进改善的设备方位确定。
在一些实施例中,一个或多个对象能够包括一个或多个车辆。例如,在图像数据中所描绘的一个或多个对象能够包括一个或多个机动车辆,包括汽车、公共汽车、火车、电车、无轨电车和/或有轨电车。
在一些实施例中,一个或多个机器学习模型能够被配置和/或训练为检测或辨识与图像数据相关联的一个或多个可见特征。例如,一个或多个机器学习模型能够:接收包括图像数据的输入;执行与在图像数据中所描绘的图像的一个或多个可见特征的检测、辨识和/或识别相关联的一个或多个操作;并且生成与对象的一个或多个可见特征的分类相关联的分类信息。例如,输出能够包括一个或多个可见特征包括车辆的后灯(例如,尾灯)的确定,其然后能够被用于确定车辆相对于环境内的设备的位置,并且其然后能够被用于确定提供了图像数据的移动设备的方位。
在一些实施例中,能够至少部分地基于与图像语料库(image corpus)相关联的训练数据来配置和/或训练一个或多个机器学习模型,图像语料库能够包括从陆基图像捕捉设备所捕捉的一个或多个环境的多个二维图像。例如,图像语料库能够包括各种街道的多个标记图像。另外,标记图像能够包括与街道的位置、名称和地址相关联的语义信息。此外,标记图像能够包括与在标记的图像中描绘的一个或多个对象相关联的信息,包括一个或多个对象的地理位置(例如,纬度、经度和/或海拔)和/或一个或多个对象中的每一个关于捕捉标记图像的图像捕捉设备的方位。
训练一个或多个机器学习模型能够包括将各种环境中的对象的多个图像作为输入提供给一个或多个机器学习模型。一个或多个机器学习模型然后能够对输入执行一个或多个操作,包括:提取输入的一个或多个特征并且生成输出,该输出包括对象的分类和/或在图像中描绘的对象特征。然后能够至少部分地基于分类的对象和与每个对象相关联的相应真实标注(ground-truth label)的一个或多个比较来评估一个或多个机器学习模型的输出。在一些实施例中,一个或多个机器学习模型的输出能够包括一个或多个对象距捕捉多个图像的图像捕捉设备的估计距离、对象关于捕捉多个图像的图像捕捉设备的相对方位的估计和/或对象的尺寸的估计。
至少部分地基于分类的对象和与每个对象相关联的相应真实标注的一个或多个比较,能够至少部分地基于与由一个或多个机器学习模型生成的输出的准确度相关联的损失函数的评估来确定相关联的损失。另外,一个或多个机器学习模型能够包括能够与分析、处理、确定、生成和/或提取输入的一个或多个特征(例如,与图像数据相关联的一个或多个特征)相关联的一个或多个参数。然后,能够至少部分地基于一个或多个参数中的每一个关于最小化损失作出的贡献来调整一个或多个机器学习模型的一个或多个参数。照此,能够通过多次迭代来调整一个或多个机器学习模型的一个或多个参数,使得减少损失,并且提高一个或多个机器学习模型的对象分类的准确度。
通过示例的方式,不改变损失(或不使损失改变超过阈值量)的一个或多个机器学习模型的一个或多个参数能够被保持原样;减小损失的一个或多个参数(例如,被调整以提高它们对损失的贡献)能够被更大程度地加权;和/或增加损失的一个或多个参数能够使它们的加权减小(例如,调整与相应参数相关联的值以减少参数对损失的贡献)。
在一些实施例中,一个或多个机器学习模型能够包括各种类型的机器学习模型(例如,卷积神经网络、循环神经网络和/或递归神经网络)。另外,一个或多个机器学习模型能够包括不同的层数,例如包括单层或多个层。
移动计算设备能够至少部分地基于位置数据和/或一个或多个对象的一个或多个对象分类来确定一个或多个对象相对于移动计算设备的位置的一个或多个相应方位。例如,位置数据能够指示移动计算设备在方位为地理北朝东十度的单向道上。另外,移动计算设备能够确定:在移动计算设备的视场中的对象的一个或多个对象分类与和单向道垂直的机动车辆的后保险杠相关联,并且保险杠附接到机动车辆的方位大致在地理北朝东十度。
在一些实施例中,确定一个或多个对象相对于移动计算设备的位置的一个或多个相应方位能够包括:至少部分地基于一个或多个对象分类来确定一个或多个对象的一侧或多侧。一个或多个对象的一侧或多侧能够包括前侧、后侧、顶侧、底侧、左侧和/或右侧。另外,一个或多个机器学习模型能够被配置和/或训练为确定面向图像捕捉设备的对象的一侧或多侧,该图像捕捉设备捕捉对象的一个或多个图像。
另外,移动计算设备能够确定一个或多个对象的一侧或多侧相对于移动计算设备的一个或多个相应方位。例如,移动计算设备能够确定:面向移动计算设备的第一对象是车辆,并且车辆的后侧直接在移动计算设备的前面。另外,移动计算设备能够确定:面向移动计算设备的第二对象是第二车辆,并且第二车辆的一侧在移动计算设备前面,与第一车辆垂直且跨越移动计算设备的视场从右往左布置。另外地,移动计算设备能够确定移动计算设备在街道右侧。基于指示移动计算设备在双向道上的位置数据以及在图像数据中描绘的对象(例如,第一车辆、第二车辆和街道)的侧,移动计算设备能够确定移动计算设备相对于一个或多个对象的方位。
在一些实施例中,一个或多个对象的一侧或多侧能够包括一个或多个车辆(例如,一个或多个机动车辆)的一侧或多侧。例如,一个或多个对象的一侧或多侧能够包括车辆的前侧、机动车辆的后侧或尾侧、机动车辆的左侧或车辆的右侧。此外,一个或多个对象的一侧或多侧能够包括行进路线的左侧或行进路线的右侧。
在一些实施例中,一个或多个对象分类能够与一个或多个车辆相关联。另外,一个或多个对象分类能够包括一个或多个前灯分类、一个或多个尾灯分类、一个或多个前挡风玻璃分类、一个或多个后挡风玻璃分类、一个或多个前格栅分类、一个或多个车轮分类、一个或多个侧窗分类、一个或多个门分类和/或一个或多个保险杠分类。
作为确定一个或多个对象的一个或多个相应方位的一部分,当一个或多个对象包括与一个或多个对象相关联的一个或多个车灯(例如,在照明状态或无光状态中的车辆的前灯和/或尾灯)时,移动计算设备能够至少部分地基于一个或多个对象分类来进行确定。另外,移动计算设备能够确定一个或多个车灯相对于移动计算设备的位置的一个或多个相应方位。例如,一个或多个机器学习模型能够被配置和/或训练为确定、辨识和/或识别与和一个或多个车辆关联的一个或多个车灯相关联的一个或多个特征,包括各种形状、色彩,和/或光强度水平中的各种一个或多个车灯。以这种方式使用车灯能够例如与位置数据组合、基于交通流在哪条路上来提供设备被指向的路和/或设备位于街道的哪一侧的指示。可以因此改善在环境内、特别是在城市环境内对设备的地理方位的确定。在当指示方位的其他可见信号可能难以识别的晚上,这可以尤其有益。
在一些实施例中,确定一个或多个对象相对于移动计算设备的位置的一个或多个相应方位能够包括:至少部分地基于一个或多个对象的一个或多个对象分类来确定与环境相关联的行进路径。例如,一个或多个机器学习模型能够被配置和/或训练为确定、辨识和/或识别与行进路径相关联的一个或多个对象分类,包括:路标、路缘、人行横道、交通灯和/或行进路径本身的各种特征(例如,与沥青、混凝土和/或其他路面相关联的形状、色彩和/或纹理)。
另外,移动计算设备能够确定行进路径相对于移动计算设备的方位。例如,移动计算设备能够使用与行进路径相关联的几何特征和可见特征(例如,与道路的边缘相关联的线)作为参考点,利用该参考点来确定行进路径相对于移动设备的方位。
在一些实施例中,与一个或多个对象相关联的一个或多个对象分类能够包括与沿着行进路径的行进的方向相关联的一个或多个指示。例如,一个或多个指示能够包括标志(例如,单向路标)和/或表面标记(例如,在路面上漆出的箭头或词语“单向”街道或“双向”街道)。
在一些实施例中,确定一个或多个对象相对于移动计算设备的位置的一个或多个相应方位能够包括:至少部分地基于一个或多个对象的一个或多个对象分类来确定一个或多个对象的行进的一个或多个方向。行进的一个或多个方向能够至少部分地基于一个或多个对象相对于移动设备的位置的一个或多个移动。例如,一个或多个机器学习模型能够被配置和/或训练为确定车辆的前侧,并且在检测靠近的车辆时,确定车辆向前朝着移动计算设备行驶。
在单向道上,在一些实施例中,移动计算设备能够至少部分地基于车辆的行进的方向来确定移动计算设备的方位(例如,如果单向道向着正南并且车辆的前方朝着移动计算设备行进,则移动计算设备方位为正北)。
在双向道上,移动计算设备能够首先确定移动计算设备所在的街道的一侧。假定交通规则要求右向驾驶,如果移动计算设备在街道的左侧并且车辆在街道的对侧向北行驶,车辆的后面对于移动计算设备是可见的,则移动计算设备的方位也是向北。
在一些实施例中,确定一个或多个对象相对于移动计算设备的位置的一个或多个相应方位能够包括:至少部分地基于一个或多个对象的一个或多个对象分类来确定与环境相关联的一个或多个位置标识。作为示例,一个或多个位置标识能够包括指示街道的号码的一个或多个街道号码,包括街道号码是奇数还是偶数。
移动计算设备然后能够确定一个或多个位置标识相对于移动计算设备的一个或多个相应方位。例如,移动计算设备能够使用一个或多个位置标识来确定移动计算设备所在的街道,并且能够使用街道号码和/或街道号码是奇数还是偶数来确定移动计算设备在街道的哪一侧。另外,移动计算设备能够使用移动计算设备所在的街道的侧以基于一个或多个街道号码在值上是增大还是减小来确定移动计算设备的方位在哪个方向上。
在一些实施例中,移动计算设备的方位能够至少部分地基于分别与一个或多个位置标识相关联的一个或多个位置。例如,一个或多个位置标识能够包括位于两个街道的十字路口的路标。处于移动计算设备的视场内的十字路口的位置能够被用于至少部分地基于一个或多个位置标识的位置来确定移动计算设备的大概方位。另外,能够至少部分地基于一个或多个位置标识和移动计算设备之间的空间关系(例如,距离)来确定移动计算设备的方位。
在一些实施例中,一个或多个位置标识能够包括一个或多个街道号码、一个或多个街道名和/或与地理位置相关联的一个或多个标志。
在一些实施例中,一个或多个位置标识(例如,具有地址号的路标)能够被用于确定移动计算设备位于行进路径(例如,街道)的哪侧。例如,一个或多个机器学习模型能够被配置和训练为对在路标上显示的数字执行文本识别。能够至少部分地基于识别的数字是奇数还是偶数来确定移动计算设备位于的街道的那侧(例如,在一些地理区域中,奇数始终在行进路径的一侧并且偶数始终在行进路径的另一侧)。
在一些实施例中,确定一个或多个对象相对于移动计算设备的位置的一个或多个相应方位能够包括至少部分地基于一个或多个对象的一个或多个特征来确定在环境的一个或多个部分(例如,环境的一个或多个不同的部分)的日光的量。例如,移动计算设备能够分析图像数据以便至少部分地基于图像的每个部分(例如,像素)的亮度和/或强度来确定在图像的不同部分中的日光的量。
另外,移动计算设备能够至少部分地基于在环境的一个或多个部分的日光的量来确定一个或多个对象相对于移动计算设备的一个或多个相应方位。例如,使用其中街道的一侧的对象被日光明亮地照射并且另一侧被日光较不明亮地照射的图像,能够估计太阳的位置。然后能够使用太阳的位置作为确定移动计算设备关于环境中的一个或多个对象的方位的一部分。
在一些实施例中,移动计算设备的方位能够至少部分地基于检测到在环境的一个或多个部分的日光的量的时刻。例如,图像数据能够指示太阳在天空中的位置,这能够被用于部分地确定移动计算设备的方位。作为另外的示例,在各个表面(例如,地面表面或建筑物的附近的墙壁)上检测到的日光的量能够被用于估计太阳的相对位置,太阳的相对位置进而能够被用于确定表面相对于移动计算设备的方位。此外,投射在不同表面上的日光的强度能够被用于估计太阳的相对位置并且因此确定移动计算设备的方位。在一些实施例中,太阳的实际位置能够被用于确定一个或多个对象的一个或多个相应方位。
另外,移动计算设备的方位能够至少部分地基于环境中一个或多个阴影的方向。例如,由静止对象投射的阴影的方向能够取决于时刻而改变,使得在黎明在静止对象的一侧的阴影将在黄昏在对象的另一侧。另外,一个或多个阴影的方向能够被用于估计太阳的相对位置,太阳的相对位置进而能够被用于确定移动计算设备的方位。
在一些实施例中,移动计算设备能够使用月亮和/或其他天体的位置来作为一个或多个对象相对于移动计算设备的位置的一个或多个相应方位的一部分。
在一些实施例中,确定一个或多个对象相对于移动计算设备的位置的一个或多个相应方位能够包括确定一个或多个对象沿着行进路径行进的一个或多个方向。确定沿着行进路径行进的一个或多个方向能够至少部分地基于一个或多个对象的一个或多个向前部分相对于行进路径的一个或多个位置。例如,一个或多个机器学习模型能够确定图像数据包括对车辆的前方的描绘,并且基于车辆沿着行进路径(例如,单向道)的位置,能够确定车辆的方位。车辆相对于移动计算设备的方位然后能够用于确定移动计算设备的方位。
移动计算设备能够生成和/或确定方位数据。方位数据能够包括移动计算设备的地理方位。移动计算设备的地理方位能够至少部分地基于一个或多个对象的一个或多个相应(地理)方位(例如,相对于设备的方位)。例如,移动计算设备能够确定对象的后部方位向北(例如,地理北或磁北)。另外,移动计算设备能够确定:在移动计算设备的视场中的对象的一个或多个对象分类与和单向道垂直的机动车辆的后保险杠相关联,保险杠附接到的机动车辆的方位大致在单向道的向北方位朝东大致十度。
如在本文所描述的,方位能够包括一个或多个对象关于某参考点的位置或方向,该参考点能够包括地理北极、磁北极、地理南极、磁南极或包括用于确定方位的设备的一些对象。另外,能够以各种方式表示方位,包括作为方位角(例如,一百一十度)、方向(例如,罗盘的基本方向),或作为时钟位置(例如,指示北的十二点钟、指示南的六点钟、指示东的三点钟以及指示西的九点钟)。
方位数据能够被发送给与移动计算设备相关联的一个或多个增强现实应用、被其访问和/或被其使用。例如,增强现实应用能够是在移动计算设备上实施的计算程序。另外,移动计算设备的方位能够被用于建立一个或多个增强现实对象相对于移动计算设备的一个或多个位置。例如,移动计算设备的方位能够被用于建立移动计算设备(例如,智能电话)相对于由增强现实应用生成的一个或多个三维动画角色的位置。也可以由其他映射或导航系统、软件和/或应用来使用方位数据。
所公开的技术中的系统、方法、设备、装置和有形非暂时性计算机可读介质能够提供各种技术效果和益处,包括改善设备的方位的确定。具体地,所公开的技术可以部分地基于用户的大概位置和与在设备的图像捕捉组件的视场中可见的对象相关联的影像、借助于其中向用户提供设备的方位的持续的和/或引导的人类机器交互处理来辅助用户(例如,定位设备的用户)执行技术任务。此外,所公开的技术也可以提供益处,包括:提高的导航安全;定位设备的减少的能量使用和数据消耗;以及对可用的网络资源的更有效利用。
所公开的技术能够通过改善设备方位的确定来提高导航的效率和安全,从而减少用户由于缺乏用户方位的意识而迷路的情形的出现。向用户提供准确的方位也能够减少用户因为不准确的或丢失的方位信息而将行进到不安全的位置的机会。例如,准确的方位信息能够减少用户行进到其中他们的安全性可能被损害的危险环境(例如,易于山崩或暴洪的区域)的发生。
所公开的技术也能够通过减少由于不适当的定位和相关联的改道所引起的用户必须访问的数据量来提高使用网络资源的效率。对于定位设备的当前位置周围的地理区域中的方位的更有效确定允许用户被适当地定位,因此减少反复地从远端源(例如,导航服务器)访问方向的需要。因此,方位的更有效确定能够导致网络资源的更有效的利用。
此外,所公开的技术能够通过向用户提供准确的方位来提高资源消耗的效率(例如,定位设备的减少的电池使用)。例如,定位设备能够通过接收准确的方位信息并且知晓向哪个方向走来节省电池资源,因此避免与重复耗费计算资源相关联的电池耗电和因原路返回和/或改道引起的电池功率。
因此,特别是在其中诸如导航卫星信号的外部信号被限制或阻挡(例如,被高层建筑物阻挡)的区域中,所公开的技术能够允许定位设备的用户更有效地执行确定和提供设备的方位的技术任务。因此,为用户提供提高的安全性、减少的网络带宽利用以及对计算和电池资源的更有效利用的特定益处。此外,向用户提供的任何特定益处能够被用于提高包括其中提供或请求设备的方位的定位设备和/或定位服务的多种设备和服务的效率。因此,通过所公开的技术所提供的改进能够导致对包括与导航和/或方位的确定相关联的机械、电子和计算系统的各种设备和/或系统的切实好处。
现在参考图1-10,将更加详尽地讨论本公开的示例实施例。图1描绘根据本公开的示例实施例的示例系统的图。系统100包括通过网络180通信地连接和/或耦合的计算设备102、计算系统130、训练计算系统150和一个或多个远程计算系统170。
计算设备102能够包括一个或多个处理器112和存储器114。一个或多个处理器112能够包括任何适当的处理设备(例如,处理器核、微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、控制器和/或微控制器)并且能够是一个处理器或操作地连接的多个处理器。存储器114能够包括一个或多个非暂时性计算机可读存储媒介,包括RAM、NVRAM、ROM、EEPROM、EPROM、闪速存储设备、磁盘和其组合。存储器114能够存储数据116和由处理器112执行以使计算设备102执行一个或多个操作的指令118。在一些实施例中,数据116能够包括:位置数据,能够包括与计算设备102的位置相关联的信息;与由图像捕捉设备或计算设备102的组件所捕捉的一个或多个图像相关联的图像数据;与一个或多个机器学习模型的输入、输出和/或一个或多个操作相关联的数据;和/或与计算设备102和/或计算设备102外部的一个或多个对象的方位相关联的方位数据。在一些实施例中,计算设备102能够包括计算系统130的任何属性和/或任何能力,并且能够执行包括由计算系统130执行的任何操作中的一个或多个操作。
计算设备102能够被实施在任何类型的计算设备中和/或包括任何类型的计算设备,例如包括:定位设备(例如,被配置为执行在本文描述的任何操作的计算设备,包括与导航和/或方位的确定相关联的一个或多个操作)、个人计算设备(例如,膝上型计算设备或台式机计算设备)、移动计算设备(例如,智能电话或平板机)、控制器、可穿戴计算设备(例如,智能手表)和/或嵌入式计算设备。
另外,计算设备102能够被配置为执行一个或多个操作,包括:捕捉在移动计算设备的视场中可见的环境的一个或多个图像;接收与移动计算设备的位置相关联的位置数据;生成包括与一个或多个图像相关联的信息的图像数据;至少部分地基于图像数据和一个或多个机器学习模型来确定环境中的一个或多个对象的一个或多个对象分类;至少部分地基于位置数据和一个或多个对象的一个或多个对象分类来确定一个或多个对象相对于移动计算设备的位置的一个或多个相应方位;和/或至少部分地基于一个或多个对象的一个或多个相应(地理)方位来生成包括移动计算设备的地理方位的方位数据。
在一些实施例中,计算设备102能够执行一个或多个操作,包括:向与移动计算设备相关联的一个或多个增强现实应用发送方位数据。
在一些实施方式中,计算设备102能够实施和/或包括一个或多个机器学习模型120。例如,一个或多个机器学习模型120能够包括各种机器学习模型,包括神经网络(例如,深度神经网络)或其他类型的机器学习模型,包括非线性模型和/或线性模型。神经网络能够包括前馈神经网络、循环神经网络(例如,长短记忆网络循环神经网络)、卷积神经网络和/或其他形式的神经网络。参考图1-10来讨论一个或多个机器学习模型120的示例。
在一些实施方式中,一个或多个机器学习模型120能够通过网络180从计算系统130(例如,服务器计算系统)接收,被存储在计算设备存储器114中,并且然后由一个或多个处理器112使用或以另外实施。在一些实施方式中,计算设备102能够实施一个或多个机器学习模型120的单个机器学习模型的多个并行实例(例如,用于遍及(across)机器学习模型120的多个实例确定一个或多个对象的一个或多个对象分类)。更具体地,一个或多个机器学习模型120能够被配置和训练为执行由计算系统130执行的任何操作。
另外地,或者替换地,一个或多个机器学习模型140能够被包括在例如根据客户端服务器关系与计算设备102进行通信的计算系统130中,或者以其他方式被计算系统130存储和实施。例如,能够由计算系统130将机器学习模型140实施为web服务的一部分(导航和/或方位确定服务)。因此,一个或多个机器学习模型120能够被存储和实施在计算设备102和/或一个或多个机器学习模型140能够被存储和实施在计算系统130。
计算设备102还能够包括能够接收用户输入的一个或多个用户输入组件122。例如,用户输入组件122能够是触敏组件(例如,触敏显示屏或触摸板),其对于用户输入的触摸(例如,手指和/或铁笔)敏感。触敏组件能够用来实施虚拟键盘。其他示例用户输入组件包括麦克风、机械键盘、机电式键盘和/或用户能够通过其提供用户输入的其他手段。
计算系统130能够包括一个或多个处理器132和存储器134。一个或多个处理器132能够包括任何适当的处理设备(例如,处理器核、微处理器、ASIC、FPGA、控制器和/或微控制器)并且能够包括一个处理器或操作地连接的多个处理器。存储器134能够包括一个或多个非暂时性计算机可读存储媒介,包括RAM、ROM、EEPROM、EPROM、闪速存储设备、磁盘和其组合。存储器134能够存储数据136和由处理器132执行以使计算系统130执行操作的指令138。在一些实施例中,数据136能够包括:位置数据和/或图像数据。
此外,在一些实施例中,计算系统130能够被配置为执行服务器计算设备的操作,包括:向和/或从包括计算设备102、训练计算系统150和/或远程计算系统170的一个或多个计算设备和/或计算系统发送和/或接收包括位置数据、图像数据、方位数据的数据和/或与一个或多个机器学习模型的输入、输出和/或一个或多个操作相关联的数据。在一些实施例中,计算系统130能够包括计算设备102的任何属性和/或任何能力并且能够执行包括由计算设备102执行的任何操作的一个或多个操作。
另外,计算系统130能够被实施在任何类型的计算系统中和/或包括任何类型的计算系统,例如包括:导航计算系统(例如,被配置为执行在本文描述的任何操作的计算系统,所述操作包括与以下数据相关联的一个或多个操作:位置数据、图像数据、与一个或多个机器学习模型的输入、输出和/或一个或多个操作相关联的数据,和/或方位数据)、个人计算设备(例如,膝上型计算设备或台式机计算设备)、移动计算设备(例如,智能电话或平板机)、服务器计算系统(例如,被配置为提供包括以下数据的计算系统:位置数据、图像数据、与一个或多个机器学习模型的输入、输出和/或一个或多个操作相关联的数据,和/或方位数据)和/或控制器。
此外,服务器计算系统130能够被配置为对向服务器计算系统130提供的一个或多个输入(例如,包括一个或多个图像的图像数据)执行图像内容分析。例如,服务器计算系统130能够经由网络180来接收数据。数据能够包括包含一个或多个图像的图像数据和/或相关联的元数据(例如,捕捉图像的位置(例如,纬度、经度和/或海拔))。服务器计算系统130然后能够执行各种操作,能够包括使用一个或多个机器学习模型140来确定一个或多个图像的一个或多个对象分类。作为另外的示例,服务器计算系统130能够使用对象识别技术以至少部分地基于一个或多个对象的识别来检测图像中的一个或多个对象(例如,车辆、车辆的部分、建筑物、行进路径、位置标识、文本、数字和/或包括日光的自然特征)。在另一个示例中,服务器计算系统130能够从一个或多个远程计算系统(例如,一个或多个远程计算系统170)接收数据,数据能够包括已经与元数据相关联的图像(例如,具有指示与由用户设备生成的图像相关联的地址的用户关联元数据的图像)。由服务器计算系统130接收的数据然后能够被存储(例如,被存储在图像存储库中)以供计算系统130稍后使用。
在一些实施方式中,计算系统130包括一个或多个服务器计算设备和/或以另外方式被一个或多个服务器计算设备实施。在其中计算系统130包括多个服务器计算设备的实例中,这样的服务器计算设备能够根据顺序计算架构、并行计算架构或其一些组合来操作。
如上所述,计算系统130能够存储或以其他方式包括一个或多个机器学习模型140。例如,一个或多个机器学习模型140能够包括各种机器学习模型。示例机器学习模型包括神经网络或其他多层非线性模型。示例神经网络包括前馈神经网络、深度神经网络、循环神经网络和卷积神经网络。参考图1-10来讨论一个或多个机器学习模型140的示例。
计算设备102和/或计算系统130能够经由与训练计算系统150的交互来训练一个或多个机器学习模型120和/或140,训练计算系统150通过网络180通信地连接和/或耦合。训练计算系统150能够与计算系统130分开或能够是计算系统130的一部分。
训练计算系统150包括一个或多个处理器152和存储器154。一个或多个处理器152能够是任何适当的处理设备(例如,处理器核、微处理器、ASIC、FPGA、控制器和/或微控制器),并且能够是一个处理器或操作地连接的多个处理器。存储器154能够包括一个或多个非暂时性计算机可读存储媒介,包括RAM、ROM、EEPROM、EPROM、闪速存储设备、磁盘和其组合。存储器154能够存储数据156和由处理器152执行以使训练计算系统150执行操作的指令158。在一些实施例中,数据156能够包括位置数据、图像数据、与一个或多个机器学习模型的输入、输出和/或一个或多个操作相关联的数据,和/或方位数据。在一些实施方式中,训练计算系统150包括一个或多个服务器计算设备或以另外方式被一个或多个服务器计算设备实施。
训练计算系统150能够包括模型训练器160,其使用各种训练或学习技术,例如包括反向误差传播,来对分别存储在计算设备102和/或计算系统130的一个或多个机器学习模型120和/或一个或多个机器学习模型140进行训练。在一些实施方式中,执行反向误差传播能够包括执行截断的沿时间反向传播(truncated backpropagation through time)。模型训练器160能够执行许多普遍技术(例如,权重衰减和/或Dropout(丢弃))来提高被训练的模型的一般能力。
具体地,模型训练器160能够基于训练数据162的集合来训练一个或多个机器学习模型120和/或一个或多个机器学习模型140。训练数据162能够例如包括:任何位置数据和/或包含各种车辆的图像的图像数据;车辆的部分;道路特征;标志;和/或路标。例如,训练数据能够包括一个或多个标记的训练对象,能够被用于训练一个或多个机器学习模型以执行各种操作,包括:确定一个或多个对象的一个或多个对象分类;确定、辨识和/或识别一个或多个对象的一个或多个分类;和/或估计对象的方位。一个或多个机器学习模型120和/或一个或多个机器学习模型140能够被配置和训练为执行由计算设备102和/或计算系统130执行的一个或多个操作中的任何。例如,一个或多个机器学习模型120能够被配置和/或训练为执行各种操作,包括:捕捉在移动计算设备的视场中可见的环境的一个或多个图像;接收与移动计算设备的位置相关联的位置数据;生成包括与一个或多个图像相关联的信息的图像数据;至少部分地基于图像数据和一个或多个机器学习模型来确定一个或多个对象在环境中的一个或多个对象分类;至少部分地基于位置数据和一个或多个对象的一个或多个对象分类来确定一个或多个对象相对于移动计算设备的位置的一个或多个相应方位;和/或至少部分地基于一个或多个对象的一个或多个相应(地理)方位来生成包括移动计算设备的地理方位的方位数据。
在一些实施方式中,如果用户已经提供了应允(consent),则能够通过计算设备102来提供训练示例。因此,在这样的实施方式中,能够由训练计算系统150至少部分地基于从计算设备102接收的用户特定数据来训练向计算设备102提供的一个或多个机器学习模型120,用户特定数据包括:先前分类的对象和/或关于对象被错误分类的指示。
模型训练器160能够包括被利用以提供期望的功能的计算机逻辑。能够以控制通用处理器的硬件、固件和/或软件来实施模型训练器160。例如,在一些实施方式中,模型训练器160包括存储在存储设备上的、加载到存储器中的并且由一个或多个处理器执行的程序文件。在其他实施方式中,模型训练器160包括存储在包括RAM硬盘或者光学或磁性介质的有形计算机可读存储媒介中的计算机可执行指令的一个或多个集合。
一个或多个远程计算系统170中的每一个能够包括一个或多个处理器172和存储器174。一个或多个处理器172能够包括任何适当的处理设备(例如,处理器核、微处理器、ASIC、FPGA、控制器和/或微控制器)并且能够包括一个处理器或操作地连接的多个处理器。存储器174能够包括一个或多个非暂时性计算机可读存储媒介,包括RAM、ROM、EEPROM、EPROM、闪速存储设备、磁盘和其组合。存储器174能够存储数据176和由处理器172执行以使远程计算系统170执行操作的指令178。
在一些实施方式中,一个或多个远程计算系统170包括一个或多个计算设备或以另外方式被一个或多个计算设备实施。在其中一个或多个远程计算系统170包括多个计算设备的实例中,这样的计算设备能够根据顺序计算架构、并行计算架构和/或其一些组合进行操作。此外,能够使用一个或多个远程计算系统170来收集、生成、发送和/或接收:一个或多个信号和/或包括位置数据——能够包括与计算设备102的位置相关联的信息——的数据;与由图像捕捉设备或计算设备102的组件所捕捉的一个或多个图像相关联的图像数据;与一个或多个机器学习模型的输入、输出和/或一个或多个操作相关联的数据;和/或与计算设备102和/或计算设备102外部的一个或多个对象的方位相关联的方位数据。一个或多个远程计算系统170能够包括智能电话设备,智能电话设备的用户能够使用智能电话设备来访问位置数据、图像数据和/或方位数据。
例如,智能电话设备的用户能够记录位置数据和/或图像数据,包括与用户捕捉一个或多个图像相关联的纬度、经度和/或海拔。然后能够向一个或多个远程计算系统170发送来自智能电话设备的信息,该一个或多个远程计算系统170能够包括能够被用于存储包括用户提供的方位数据的网络数据的存储库。在一些实施例中,用户提供的数据能够被强硬(strongly)加密、匿名化(例如,不收集与用户的身份相关联的任何个人信息或其他信息或者在接收之后删除),并且以安全和隐私增强的方式被维持,以供一个或多个远程计算系统170使用,该一个或多个远程计算系统170能够提供位置数据和/或图像数据以用于其他计算设备和/或包括在本文描述的那些的系统。
网络180能够包括任何类型的通信网络,包括局域网(例如,内联网)、广域网(例如,因特网)或其一些组合并且能够包括任何数量的有线或无线链路。总体上,能够使用各种通信协议(例如,TCP/IP、HTTP、SMTP、FTP)、编码或格式(例如,HTML、XML)和/或保护方案(例如,VPN、安全HTTP、SSL)经由任何类型的有线和/或无线连接来承载网络180上的通信。
图1图示出能够用于实施本公开的示例计算系统。也能够使用其他计算系统。例如,在一些实施方式中,计算设备102和/或计算系统130能够包括模型训练器160和训练数据162。在此类实施方式中,能够在计算设备102和/或计算系统130本地地既训练又使用一个或多个机器学习模型120。在一些这样的实施方式中,计算设备102和/或计算系统130能够实施模型训练器160以基于用户特定数据来个性化一个或多个机器学习模型120。
图2描绘根据本公开的示例实施例的示例设备的图。计算设备200能够包括计算设备102、计算系统130、训练计算系统150和/或一个或多个远程计算系统170的一个或多个属性和/或能力。此外,计算设备200能够执行一个或多个动作和/或操作,包括由图1中所描绘的计算设备102、计算系统130、训练计算系统150和/或一个或多个远程计算系统170所执行的一个或多个动作和/或操作。
如图2中所示,计算设备200能够包括一个或多个存储设备202、位置数据204、图像数据206、方位数据208、一个或多个互连210、一个或多个处理器220、网络接口222、一个或多个大容量储存设备224、一个或多个输出设备226、一个或多个传感器228、一个或多个输入设备230和/或定位设备232。
一个或多个存储设备202能够存储信息和/或数据(例如,位置数据204、图像数据206和/或方位数据208)。另外,一个或多个存储设备202能够包括一个或多个非暂时性计算机可读存储媒介,包括RAM、ROM、EEPROM、EPROM、闪速存储设备、磁盘和其组合。能够通过一个或多个处理器220来执行由一个或多个存储设备202所存储的信息和/或数据以使计算设备200执行操作。
位置数据204能够包括分别存储在存储器114、存储器134、存储器154和/或存储器174中的数据(例如,图1中所描绘的数据116、数据136、数据156和/或数据176)和/或指令(例如,图1中所描绘的指令118、指令138、指令158和/或指令178)中的一个或多个部分。此外,位置数据204能够包括与包括计算设备200的位置的一个或多个位置相关联的信息。在一些实施例中,能够从一个或多个计算系统(例如,图1中所描绘的计算系统130)和/或一个或多个导航卫星(例如,GPS)接收位置数据204。
图像数据206能够包括分别存储在存储器114、存储器134、存储器154和/或存储器174中的图1中所描绘的数据116、数据136、数据156和/或数据176和/或指令(例如,图1中所描绘的指令118、指令138、指令158和/或指令178)中的一个或多个部分。此外,图像数据206能够包括与在计算设备200的视场中可见的环境中的一个或多个对象的一个或多个图像相关联的信息。在一些实施例中,能够从一个或多个计算系统(例如,图1中所描绘的计算系统130)接收图像数据206。
方位数据208能够包括分别存储在存储器114、存储器134、存储器154和/或存储器174中的图1中所描绘的数据116、数据136、数据156和/或数据176和/或指令(例如,图1中所描绘的指令118、指令138、指令158和/或指令178)中的一个或多个部分。此外,方位数据208能够包括与计算设备200的方位(例如,罗盘方向和/或方位角)相关联的信息。在一些实施例中,能够从一个或多个计算系统(例如,图1中所描绘的计算系统130)接收方位数据208。
一个或多个互连210能够包括能够被用于在计算设备200的组件——包括一个或多个存储设备202、一个或多个处理器220、网络接口222、一个或多个大容量储存设备224、一个或多个输出设备226、一个或多个传感器228(例如,传感器阵列)和/或一个或多个输入设备230)——之间发送和/或接收一个或多个信号(例如,电子信号)和/或数据(例如,位置数据204、图像数据206和/或方位数据208)的一个或多个互联或总线。能够以作为并联或串联连接来包括的不同的方式来布置或配置一个或多个互连210。此外,一个或多个互连210能够包括:用于连接计算设备200的内部组件的一个或多个内部总线;以及用于将计算设备200的内部组件连接到一个或多个外部设备的一个或多个外部总线。作为示例,一个或多个互连210能够包括不同的接口,包括工业标准结构(ISA)、扩展ISA、外部组件互联(PCI)、PCIExpress、串行AT附件(SATA)、HyperTransport(HT)、USB(通用串行总线)、Thunderbolt(雷电)、IEEE 1394接口(FireWire)和/或能够用于连接组件的其他接口。
一个或多个处理器220能够包括被配置为执行存储在一个或多个存储设备202中的一个或多个指令的一个或多个计算机处理器。例如,一个或多个处理器220例如能够包括一个或多个通用中央处理单元(CPU)、专用集成电路(ASIC)和/或一个或多个图形处理单元(GPU)。此外,一个或多个处理器220能够执行一个或多个动作和/或操作,包括与位置数据204、图像数据206和/或方位数据208相关联的一个或多个动作和/或操作。一个或多个处理器220能够包括单个或多个核设备,包括微处理器、微控制器、集成电路和/或逻辑设备。
网络接口222能够支持网络通信。例如,网络接口222能够支持经由包括局域网和/或广域网(例如,因特网)的网络的通信。一个或多个大容量储存设备224(例如,硬盘驱动器和/或固态驱动器)能够被用于存储数据,数据包括位置数据204、图像数据206和/或方位数据208。一个或多个输出设备226能够包括一个或多个显示设备(例如,LCD显示器、OLED显示器和/或CRT显示器)、一个或多个光源(例如,LED)、一个或多个扬声器和/或一个或多个触觉输出设备。
一个或多个输入设备230能够包括一个或多个键盘、一个或多个触敏设备(例如,触摸屏显示器)、一个或多个按钮(例如,ON/OFF按钮和/或YES/NO按钮)、一个或多个麦克风和/或一个或多个照相机(例如,用于捕捉设备的环境的图像)。
一个或多个存储设备202和一个或多个大容量储存设备224被分开地图示,然而,一个或多个存储设备202和一个或多个大容量储存设备224能够是同一存储模块内的区域。计算设备200能够包括可以被分开地提供或者可以在同一芯片或板上提供的一个或多个附加的处理器、存储设备、网络接口。一个或多个存储设备202和一个或多个大容量储存设备224能够包括一个或多个计算机可读介质,包括但不限于非暂时性计算机可读介质、RAM、ROM、硬盘驱动器、闪盘驱动和/或其他存储设备。
一个或多个存储设备202能够存储能够与各种软件应用或数据相关联的用于包括操作系统的应用的指令的集合。一个或多个存储设备202能够被用于操作包括具体为移动设备开发的移动操作系统的各种应用。照此,一个或多个存储设备202能够存储指令,所述指令允许软件应用访问包括无线网络参数(例如,无线网络的标识、服务质量)的数据,并且调用包括(例如,经由全球定位系统(GPS)或WLAN)的通话、位置确定和/或无线网络数据呼叫源服务的各种服务。在其他实施例中,一个或多个存储设备202能够用于操作或执行在移动和固定设备(诸如,例如智能电话和台式计算机)两者上操作的通用操作系统。
能够被计算设备200操作或执行的软件应用能够包括与图1中示出的系统100相关联的应用。另外,能够被计算设备200操作和/或执行的软件应用能够包括本地应用和/或基于web的应用。
定位设备232能够包括用于确定计算设备200的位置的一个或多个设备或电路。例如,定位设备232能够通过基于IP地址使用卫星导航定位系统(例如,GPS系统、伽利略定位系统、全球导航卫星系统(GLONASS)、北斗卫星导航和定位系统)、惯性导航系统、航位推算系统,通过使用到蜂窝塔或Wi-Fi热点的三角测量和/或接近、信标等等和/或用于确定位置的其他适当的技术来确定计算设备200的实际和/或相对位置。
图3描绘根据本公开的示例实施例的环境中的方位确定的示例。能够通过包括计算设备102、计算系统130、训练计算系统150和/或一个或多个远程计算系统170的一个或多个属性和/或能力的计算设备和/或计算系统来执行在环境300中执行的任何操作和/或动作。如图3中所示,环境300包括行进路径302、向西方向的行进304、向东方向的行进306、行进路径308、向北方向的行进310、移动计算设备312、方位314、车辆316、方位318、车辆320、移动计算设备322、方位324、车辆326以及位置标识328。
环境300能够包括任何地理区域或场地。在该示例中,环境300是包括行进路径302和行进路径308的十字路口的市区。行进路径302是在其北侧沿着向西方向的行进304和在其南侧沿着向东方向的行进306行驶的双向道路。行进路径304是沿着向北方向的行进310从南向北行驶的单向道路。
移动计算设备312能够包括在本文描述的移动计算设备(例如,图1中所描绘的计算设备102)的任何属性和/或任何能力。另外,移动计算设备能够是便携式设备,该便携式设备被配置为执行一个或多个操作,包括使用如在本文所描述的位置数据和图像数据的组合来确定方位。例如,移动计算设备312能够通过获得与从其得到移动计算设备312的大致纬度、经度和/或海拔的一个或多个GPS信号相关联的位置数据来确定移动计算设备312的位置。
此外,使用与移动计算设备312的位置(例如,大致位置)相关联的位置数据,移动计算设备312能够确定用户在与行进路径302相邻的人行道上。移动计算设备312的用户能够将移动计算设备312指向位于行进路径302的南侧上的车辆314的前方。移动计算设备312然后能够确定车辆314位于街道的相对侧并且也能够使用在移动计算设备312上实施的一个或多个机器学习模型来确定车辆314的前方位于移动计算设备312的图像捕捉组件的视场中。在一些实施例中,车辆314的多个图像被能够用于确定车辆314沿着行进路径302的行进的方向。例如,视频流能够被用于确定车辆314随着时间的推移的行进的方向。
至少部分地基于车辆312的行进的方向,移动计算设备312能够确定车辆314的前方相对于移动计算设备312的位置的方位是方位316,该方位316粗略地是从真北(truenorth)具有大致二百二十(220)度的方位角的西南方位。
此外,移动计算设备312的用户能够将移动计算设备312指向位于行进路径302的北侧上的车辆318的前方。移动计算设备312然后能够确定车辆318的前方相对于移动计算设备312的位置的方位是方位320,该方位320粗略地是从真北具有大致一百一十(110)度的方位角的东南方位。
另外地,移动计算设备322的用户能够将移动计算设备312指向位于行进路径308上的车辆324的后方。移动计算设备322然后能够使用一个或多个机器学习模型来确定车辆324的后方位于移动计算设备322的图像捕捉组件的视场中。另外,移动计算设备322能够确定车辆324的后方相对于移动计算设备322的位置的方位是方位326,该方位326粗略地是从真北具有大致三百三十(330)度的方位角的西北方位。
在一些实施例中,移动计算设备312和/或移动计算设备322能够使用位置标识328来确定它们相应的方位。例如,位置标识328能够是路标,其指示与行进路径302和行进路径308相关联的名称和编号。例如,位置标识328能够包括两个标志:与行进路径302平行的标有“400东街”的第一标志和与行进路径308平行的标有“南街”的第二标志。移动计算设备312和/或移动计算设备322能够至少部分地基于位置标识328的一个或多个图像的捕捉来生成图像数据。另外,图像数据能够被用作至一个或多个机器学习模型的输入,该一个或多个机器学习模型已经被配置和/或训练为识别文本。至少部分地基于对位置标识328上的文本的识别,移动计算设备312和/或移动计算设备322能够分别确定位置标识328相对于移动计算设备312和/或移动计算设备322的方位。例如,从移动计算设备312的有利位置(vantage point)来看,移动计算设备312的视场能够在能够被用于确定位置标识328相对于移动计算设备312的位置的不同角度捕捉位置标识328的两个标志。
图4描绘根据本公开的示例实施例的环境中的方位确定的示例。能够通过包括计算设备102、计算系统130、训练计算系统150和/或一个或多个远程计算系统170的一个或多个属性和/或能力的计算设备和/或计算系统来执行在环境400中执行的任何操作和/或动作。如图4中所示的,环境400包括移动计算设备402、太阳404、建筑物406、建筑物408、区域410、区域412以及阴影区域414。
环境400能够包括任何地理区域或地理场地,例如包括建筑物404和建筑物406的市区。在该示例中,时刻是下午三点(3:00p.m.),天空没有云,并且太阳404明亮地照耀在头顶上。
移动计算设备402能够包括在本文描述的移动计算设备(例如,图1中所描绘的计算设备102)的任何属性和/或任何能力。另外,移动计算设备402能够是便携式设备,该便携式设备被配置为执行一个或多个操作,包括使用如在本文所描述的位置数据和图像数据的组合来确定方位。例如,移动计算设备402能够至少部分地基于图像数据来确定移动计算设备402的方位,图像数据能够被分析以用于确定在环境400的一个或多个部分的日光量。
在该示例中,移动计算设备402的用户位于建筑物406和建筑物408之间。由于建筑物406的高度和位置,移动计算设备402的用户不能直接地看见太阳404。作为确定移动计算设备402的方位的一部分,用户能够将移动计算设备402的图像捕捉组件瞄准建筑物408的区域410(例如,墙壁),使得区域410位于移动计算设备402的视场内。区域410不面向太阳404,并且结果,区域410的表面上的光强(日光)相对低。移动计算设备402的用户也能够捕捉包括阴影区域414的图像数据。移动计算设备402能够基于区域410的表面上的光强和/或阴影区域414中的阴影的方向来确定太阳的位置。
与区域410形成对比,如果用户将移动计算设备402瞄准建筑物406的区域412(例如,柱形物),光强(日光)将是显著的,因为区域412面向太阳404并且没有被遮挡。至少部分地基于光投射在区域412上的时刻和量,移动计算设备402能够确定太阳404的位置。然后能够在确定区域412相对于移动计算设备402的方位时使用太阳404的位置。甚至在其中准确的位置信息(例如,GPS)可能由于来自建筑物(例如,诸如建筑物406和408)的干扰或阻挡而不可用的环境中,这能够促进方位的更准确的确定。
在一些实施例中,移动计算设备402能够确定时刻并且使用该时刻作为确定在环境的不同部分中的日光的相对强度的因素。例如,与早晨十一点钟(11:00a.m.)相比较,在晚上七点钟(7:00p.m.),由表面反射的日光的量是不同的。
图5描绘根据本公开的示例实施例的环境中的方位确定的示例。导航计算设备500能够包括计算设备102、计算设备200、计算系统130、训练计算系统150和/或一个或多个远程计算系统170的一个或多个属性和/或能力。此外,导航计算设备500能够执行一个或多个动作和/或操作,包括由图1中所描绘的计算设备102、计算系统130、训练计算系统150和/或一个或多个远程计算系统170执行的一个或多个动作和/或操作。如图5中所示,移动计算设备500包括显示组件502、音频组件504、行进路径对象506、人行道对象508、路缘对象510、车辆对象512、后挡风玻璃对象514、车灯对象516、牌照对象518、后保险杠对象520、轮胎对象522和方位指示524。
移动计算设备500能够被配置为接收数据和/或信息,包括位置数据、图像数据和/或与确定移动计算设备500相对于周围环境中的一个或多个对象的方位相关联的任何数据。例如,移动计算设备500能够被实施为个人计算设备(例如,智能电话)或车辆内导航系统,其能够接收位置数据和/或图像数据和/或对位置数据和/或图像数据执行操作,并且其能够包括能够被配置为检测、辨识和/或识别环境中的一个或多个对象的一个或多个机器学习模型。此外,移动计算设备500的一个或多个机器学习模型能够被配置和/或训练为确定一个或多个对象相对于移动计算设备的方位和/或距离。
如所示,移动计算设备500包括显示组件502,其能够显示包括文本、一个或多个指示、一个或多个画面和/或一个或多个图形的影像。另外,显示组件502能够被配置为检测与显示组件502的交互。例如,显示组件502能够使用包括一个或多个电容传感器、一个或多个电阻传感器、一个或多个光传感器、一个或多个压力传感器和/或一个或多个声学传感器的一个或多个传感器来检测交互。作为另外的示例,显示组件502能够包括触敏显示器,其能够检测移动计算设备500的用户做出的一个或多个触摸。
另外,移动计算设备500能够包括音频组件504,其能够被配置为输出包括移动计算设备500的方位的听觉指示的一个或多个声音。例如,移动计算设备500能够生成通告“设备指向正北”的输出以指示移动计算设备500对准向北方向。
在该示例中,移动计算设备500包括照相机组件(未示出),其已经捕捉在照相机组件的视场中的环境的一部分的图像。在显示组件502上显示的环境的一部分包括能够被用于确定移动计算设备500的方位的多个对象。移动计算设备500能够使用从与在显示组件502上显示的环境的图像相关联的图像数据中提取的一个或多个对象分类以除与行进路径对象506(例如,城市街道)相邻的人行道对象508和路缘对象510之外还识别该行进路径对象506。使用位置数据来确定移动计算设备500的大致位置,移动计算设备500能够确定人行道对象508和/或路缘对象510的方位,并且因此确定移动计算设备500的方位。
此外,移动计算设备500能够使用从与环境的图像相关联的图像数据中提取的一个或多个对象分类以识别车辆对象512。另外,移动计算设备500能够确定、辨识和/或识别车辆512的一个或多个部分,包括后挡风玻璃对象514、车灯对象516、牌照对象518、后保险杠对象520和/或轮胎对象522。移动计算设备500能够使用车辆对象512的所识别的部分来确定车辆相对于移动计算设备500的位置的方位。例如,如果移动计算设备500已经使用位置数据确定移动计算设备500位于的街道是单向道,并且该街道上的车辆在该街道的一侧停放在相同的方向上,则关于后保险杠对象520处于移动计算设备500的视场中的确定能够被用于确定后保险杠对象520的方位、后保险杠对象520附接到的车辆对象512、和移动计算设备500的方位。
此外,移动计算设备500能够在显示组件502上生成方位指示524。在该示例中,方位指示524指示在显示组件502中描绘的影像被定位在稍微东北方向上。方位指示524例如能够通过在由显示组件502描绘的环境上迭加方位指示524来形象地指示方位。
图6描绘根据本公开的示例实施例的方位确定的流程图。能够在例如包括计算设备102、计算系统130、训练计算系统150和/或远程计算系统170的一个或多个计算设备或计算系统上执行和/或实施方法600的一个或多个部分。此外,能够在本文公开的硬件设备或系统上将方法600的一个或多个部分执行或实施为算法。图6为了说明和讨论目的来描绘以特定次序执行的步骤。使用在本文提供的本公开,本领域技术人员将理解,在不偏离本公开的范围的情况下,能够适配、修改、重新安排、省略和/或扩展任何在本文公开的方法的各个步骤。
在602,方法600能够包括捕捉一个或多个图像(例如,拍摄一个或多个图像),能够包括:捕捉其中存在捕捉一个或多个图像的设备(例如,移动计算设备)的环境的一个或多个图像。一个或多个图像能够包括在设备(例如,捕捉一个或多个图像的移动计算设备)的视场中可见的环境的描绘。例如,计算设备102能够包括能够捕捉环境的一个或多个图像的图像捕捉组件(例如,照相机)。
在604,方法600能够包括接收、访问、获取和/或调取位置数据。位置数据能够包括与设备(例如,移动计算设备)的位置相关联的信息。例如,计算设备102能够接收至少部分地基于和/或包括指示计算设备102的纬度、经度和/或海拔的一个或多个GPS信号的位置数据。
在606,方法600能够包括生成、创建和/或产生图像数据。图像数据能够包括与一个或多个图像相关联的信息和/或包括一个或多个图像的信息。例如,计算设备102能够基于一个或多个图像来生成图像数据。另外,能够格式化图像数据,使得能够将其提供为用于机器学习模型的输入。在一些实施例中,生成图像数据能够包括对图像数据执行一个或多个操作,包括相关联的一个或多个图像的色彩校正和/或锐化。
在608,方法600能够包括确定环境中的一个或多个对象的一个或多个对象分类。一个或多个对象分类能够至少部分地基于图像数据和/或一个或多个机器学习模型。例如,计算设备102能够包括能够在计算设备102上实施的一个或多个机器学习模型120。另外,一个或多个机器学习模型120能够被配置和/或训练为确定与方位的确定有关的一个或多个对象的一个或多个对象分类。例如,一个或多个对象分类能够包括与车辆对象的形状相关联的一个或多个可见特征,所述车辆对象包括车辆的特定部分,包括窗、保险杠(例如,前保险杆和/或后保险杠)、前灯、后灯、挡风玻璃和/或门。
在610,方法600能够包括确定一个或多个对象相对于设备(例如,移动计算设备)的位置的一个或多个相应方位。一个或多个对象相对于移动计算设备的位置的一个或多个相应方位能够至少部分地基于位置数据和/或一个或多个对象的一个或多个对象分类。例如,计算设备102能够使用计算设备102的位置和一个或多个对象的一个或多个对象分类来确定:附近车辆的后部直接地面向计算设备102,并且因为车辆方位向北(车辆的方位是基于将街道和街道方向匹配到计算设备102的位置而确定的),所以计算设备102也如此。
在612,方法600能够包括生成、创建和/或产生方位数据。方位数据能够包括至少部分地基于一个或多个对象的一个或多个相应(地理)方位的计算设备(例如,移动计算设备)的地理方位。方位数据能够包括与计算设备的方位的任何方面相关联的信息。另外,方位数据能够包括与一个或多个指示相关联的信息,该一个或多个指示能够被生成以向用户提供关于在计算设备的图像捕捉组件的视场内的环境中的一个或多个对象的方位的信息和/或指令。
作为示例,计算设备102能够生成包括与靠近计算设备102的一个或多个对象的方位相关联的信息的方位数据。计算设备102然后能够生成一个或多个指示,包括能够在计算设备102的显示组件上显示的与一个或多个对象的方位相关联的图像和/或文本(例如,箭头、边界框和相关联的方位指示)。作为另外的示例,方位数据能够被计算系统130访问,该计算系统130能够对方位数据执行一个或多个操作和/或向能够包括计算设备102的另一个系统和/或设备发送方位数据。
在614,方法600能够包括向一个或多个增强现实应用发送方位数据。一个或多个增强现实应用能够与计算设备(例如,移动计算设备)相关联。另外,移动计算设备的方位能够被用于建立一个或多个增强现实对象相对于移动计算设备的一个或多个位置。例如,计算设备102能够向本地执行的应用(例如,在计算设备102上运行的应用)发送包括方位数据的数据。方位数据能够提供移动计算设备(例如,智能电话、增强现实眼镜和/或增强现实耳机)的方位以供增强现实应用使用。
图7描绘根据本公开的示例实施例的方位确定的流程图。能够在例如包括计算设备102、计算系统130、训练计算系统150和/或远程计算系统170的一个或多个计算设备或计算系统上执行和/或实施方法700的一个或多个部分。此外,能够在本文公开的硬件设备或系统上将方法700的一个或多个部分执行或实施为算法。在一些实施例中,能够将方法700的一个或多个部分作为在图6中描绘的方法600的一部分来执行。图7为了说明和讨论目的来描绘以特定次序执行的步骤。使用在本文提供的本公开,本领域技术人员将理解,在不偏离本公开的范围的情况下,能够适配、修改、重新安排、省略和/或扩展任何在本文公开的方法的各个步骤。
在702,方法700能够包括确定一个或多个对象的一侧或多侧。能够至少部分地基于一个或多个对象的一个或多个对象分类来确定一个或多个对象的一侧或多侧。例如,计算设备102能够包括一个或多个机器学习模型,被配置和/或训练为确定各种分类的对象的一侧或多侧。另外,计算设备102能够接收一个或多个分类的对象作为输入并且从捕捉其图像的视角生成包括对象的一侧或多侧的输出。作为另外的示例,能够确定机动车辆的前部的格栅是相应车辆的前侧。
在704,方法700能够包括确定一个或多个对象的一侧或多侧相对于计算设备(例如,移动计算设备)的一个或多个相应方位。例如,对象相对于计算设备102的方位能够至少部分地基于计算设备102的位置和面向计算设备102的对象的一侧。如果例如计算设备102直接地面向对象的后侧,则计算设备102将面向与该对象的前方相同的方向。然而,如果计算设备102直接地面向对象的左侧,则计算设备102将与对象面向的方向垂直。
在706,方法700能够包括确定与一个或多个对象相关联的一个或多个车灯。一个或多个车灯的确定能够至少部分地基于一个或多个对象的一个或多个对象分类。例如,计算设备102能够包括针对一个或多个车灯被配置和/或训练的一个或多个机器学习模型。另外,计算设备102的一个或多个机器学习模型能够接收图像数据作为输入并且生成包括一个或多个对象分类——包括一个或多个车灯——的输出。作为另外的示例,一个或多个机器学习模型能够被配置和训练为基于前灯的特定特征(例如,光的强度和/光的颜色)将车辆的前灯与路灯相区分。这可以甚至在黑暗或夜间环境中促进改善的方位确定。
在708,该方法700能够包括确定一个或多个车灯相对于计算设备(例如,移动计算设备)的位置的一个或多个相应方位。例如,计算设备102能够至少部分地基于前灯的形状来确定前灯相对于计算设备102的方位,这能够指示相关联的车辆的方位(例如,角度)。另外,在暗度已经下降并且可用的光不准许捕捉环境的清晰图像的实例中,前灯的形状能够是有用的。
图8描绘根据本公开的示例实施例的方位确定的流程图。能够在例如包括计算设备102、计算系统130、训练计算系统150和/或远程计算系统170的一个或多个计算设备或计算系统上执行和/或实施方法800的一个或多个部分。此外,能够在本文公开的硬件设备或系统上将方法800的一个或多个部分执行或实施为算法。在一些实施例中,能够将方法800的一个或多个部分作为在图6中描绘的方法600的一部分来执行。图8为了说明和讨论的目的描绘以特定次序执行的步骤。使用在本文提供的本公开,本领域技术人员将理解,在不偏离本公开的范围的情况下,能够适配、修改、重新安排、省略和/或扩展任何在本文公开的方法的各个步骤。
在802,方法800能够包括确定与环境相关联的行进路径。行进路径的确定能够至少部分地基于一个或多个对象分类。例如,计算设备102能够基于一个或多个对象分类的组合来确定一个或多个对象分类与道路相关联。
在804,方法800能够包括确定行进路径相对于计算设备(例如,移动计算设备)的位置的方位。例如,计算设备102能够访问位置数据以将行进路径与位于计算设备102的位置的道路匹配。利用行进路径和计算设备102的位置两者,计算设备102然后能够确定行进路径相对于计算设备102的位置的方位。
在806,方法800能够包括确定一个或多个对象的行进的一个或多个方向。一个或多个对象的行进的一个或多个方向的确定能够至少部分地基于一个或多个对象的一个或多个对象分类。例如,计算设备102能够至少部分地基于车辆的前向部分的方位在相同的方向上(例如,对准在相同的方向上)以及车辆的移动图案也在相同的方向上来确定行进的一个或多个方向。
在808,方法800能够包括至少部分地基于一个或多个对象的行进的一个或多个方向来确定一个或多个对象相对于计算设备(例如,移动计算设备)的位置的一个或多个方位。例如,计算设备102能够访问指示计算设备102的位置的位置数据并且能够使用计算设备102的位置来确定在计算设备102的图像捕捉组件可见的环境中存在行进路径。另外,能够将一个或多个对象(例如,车辆)的行进的一个或多个方向匹配到附近的行进路径。计算设备102相对于对象的行进方向的位置然后能够被用于确定计算设备102相对于对象的方位。这可以促进在其中位置信息可能不准确的城市或都市环境中的改善的方位确定。
图9描绘根据本公开的示例实施例的方位确定的流程图。能够在例如包括计算设备102、计算系统130、训练计算系统150和/或远程计算系统170的一个或多个计算设备或计算系统上执行和/或实施方法900的一个或多个部分。此外,能够在本文公开的硬件设备或系统上将方法900的一个或多个部分执行或实施为算法。在一些实施例中,能够将方法900的一个或多个部分作为在图6中描绘的方法600的一部分来执行。图9为了说明和讨论目的描绘以特定次序执行的步骤。使用在本文提供的本公开,本领域技术人员将理解,在不偏离本公开的范围的情况下,能够适配、修改、重新安排、省略和/或扩展任何在本文公开的方法的各个步骤。
在902,方法900能够包括确定与一个或多个对象相关联的一个或多个位置标识。一个或多个位置标识的确定能够至少部分地基于一个或多个对象分类。例如,计算设备102能够对包括路标的一个或多个位置指示符执行一个或多个文本识别操作。在对路标执行文本识别之后,计算设备102能够将路标上的文本与实际地址相关联。
在904,方法900能够包括确定一个或多个位置标识相对于计算设备(例如,移动计算设备)的一个或多个相应方位。基于对一个或多个位置标识的文本识别,计算设备102能够通过将在位置标识上指示的实际地址与物理位置相匹配并且然后确定计算设备102关于该物理位置的位置来确定一个或多个位置标识的一个或多个相应方位。将物理位置匹配到位置标识能够包括访问数据集,数据集能够包括用于将文本名称与对应的物理位置相比较的查找表。
图10描绘根据本公开的示例实施例的方位确定的流程图。能够在例如包括计算设备102、计算系统130、训练计算系统150和/或远程计算系统170的一个或多个计算设备或计算系统上执行和/或实施方法1000的一个或多个部分。此外,能够在本文公开的硬件设备或系统上将方法1000的一个或多个部分执行或实施为算法。在一些实施例中,能够将方法1000的一个或多个部分作为在图6中描绘的方法600的一部分来执行。图10为了说明和讨论目的描绘以特定次序执行的步骤。使用在本文提供的本公开,本领域技术人员将理解,在不偏离本公开的范围的情况下,能够适配、修改、重新安排、省略和/或扩展任何在本文公开的方法的各个步骤。
在1002,方法1000能够包括确定在环境的一个或多个部分的日光量。确定在环境的一个或多个部分的日光量能够至少部分地基于一个或多个对象的一个或多个特征。例如,计算设备102能够包括能够被用于捕捉环境的一个或多个图像的照相机。计算设备102然后能够通过对一个或多个图像执行一个或多个图像分析操作来确定包括在图像的每个像素中的光量的一个或多个特征。图像分析能够包括确定与一个或多个图像中的多个像素的每个像素相关联的强度值或亮度值。
在1004,方法1000能够包括至少部分地基于在环境的一个或多个部分的日光量来确定一个或多个对象相对于计算设备(例如,移动计算设备)的位置的一个或多个相应方位。作为示例,计算设备102能够使用在环境的一个或多个部分的日光量来确定在环境中在一个或多个对象附近的阴影的长度和/或方向。阴影能够被用于确定东西方位,其进而能够被用于确定投射阴影的对象相对于计算设备102的一个或多个相应方位。这可以在存在少数识别对象的环境中促进改善的方位确定。
在本文讨论的技术参考服务器、数据库、软件应用和其他基于计算机的系统,以及所采取的动作和向这样的系统发送的和来自这样的系统的信息。本领域普通技术人员将认识到基于计算机的系统的固有的灵活性允许在组件之间和在其当中的许多种可能的配置、组合以及任务和功能的划分。例如,可以使用单个服务器或组合工作的多个服务器来实施在本文讨论的服务器处理。数据库和应用可以被实施在单个系统上或者被分布在多个系统上。可以顺序地或并行地操作分布的组件。
尽管已经关于其特定示例实施例详细地描述了本主题,但将理解的是,在取得对上文的理解时,那些本领域技术人员可以容易地产生这样的实施例的变化、变体,和等同物。因此,本公开的范围是作为示例而不是作为限制,并且主题公开不排除包括对本领域普通技术人员很明显的对本主题的这样的修改、变化和/或添加。
- 用于移动计算设备的方位确定
- 用于确定移动计算设备在多座位环境中的座位位置的系统和方法