一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

语义纹理映射系统的制作方法

2022-02-20 13:47:06 来源:中国专利 TAG:

语义纹理映射系统
1.优先权要求
2.本技术要求于2019年4月1日提交的序列号为16/372,215的美国专利申请的优先权的权益,其整体内容通过引用并入本文。
技术领域
3.本公开的实施例大体涉及纹理映射(texture mapping),并且更特别地,涉及用于生成语义纹理图(semantic texture map)的系统。


背景技术:

[0004]“纹理图”是可应用于三维(3d)模型的表面以添加颜色、纹理或其他表面细节的二维(2d)图像文件。纹理图通常被开发为与3d模型的“uv”坐标直接对应,并且可能基于照片或其他图像。字母“u”和“v”表示2d纹理的轴(因为“x”、“y”和“z”已经用于表示3d对象的轴)。
[0005]
例如,当创建3d模型(诸如多边形网格)时,可以基于网格顶点的位置生成包括一组uv坐标的uv图。因此,uv图包括2d图像在3d模型表面上的投影。
[0006]
尽管传统的计算纹理分析为产生用于各种应用的纹理图提供了足够的手段,但是在空间的“视觉”和“语义”特征之间仍然存在差异。这意味着它们不适合于旨在用于高水平的用户交互的应用。
附图说明
[0007]
为了容易地标识对任何特定元素或动作的讨论,附图标记中最高的一个或多个有效数字是指首先引入该元素的附图编号。
[0008]
图1是示出根据一些实施例的用于通过网络交换数据(例如消息和相关联的内容)的示例消息传递系统的框图,其中,消息传递系统包括语义纹理图系统。
[0009]
图2是示出根据示例实施例的关于消息传递系统的更多细节的框图。
[0010]
图3是示出根据某些示例实施例的语义纹理图系统的各种模块的框图。
[0011]
图4是示出根据某些示例实施例的用于生成包括语义标签的纹理图的方法的流程图。
[0012]
图5是示出根据某些示例实施例的用于基于以包括语义标签的纹理图为基础的语义特征来呈现内容的方法的流程图。
[0013]
图6是示出根据某些示例实施例的用于将语义纹理图应用于客户端设备处的环境的呈现的方法的流程图。
[0014]
图7是示出根据某些示例实施例的用于生成语义纹理图的方法的流程图。
[0015]
图8是描绘根据某些示例实施例的基于语义纹理图的语义标签而呈现的增强现实(ar)内容的界面图。
[0016]
图9是示出可以与本文所描述的各种硬件架构结合使用并用于实现各种实施例的
代表性软件架构的框图。
[0017]
图10是示出根据一些示例实施例的能够从机器可读介质(例如机器可读存储介质)读取指令并执行本文讨论的方法中的任何一种或多种方法的机器的组件的框图。
具体实施方式
[0018]
如上文所讨论的,纹理映射是用于定义3d模型的细节、表面纹理或颜色信息的方法。虽然现有纹理映射系统足以向3d模型添加视觉细节,但是它们不能提供用于向3d模型的各种表面分配特性和标签的方法,从而使它们对于期望高水平的用户交互的应用而言不太理想。因此,本文所描述的示例实施例涉及用于生成3d对象的“语义”纹理图的系统和方法,其中,语义纹理图限定特定3d对象的一组语义分割标签。
[0019]
本文所描述的示例实施例涉及语义纹理图系统以执行包括以下各项的操作:访问包括一组图像特征的图像;基于图像的一组图像特征来取得语义分割图像,语义分割图像包括一组语义标签;基于图像的一组图像特征生成3d模型(诸如3d网格模型),3d模型包括多个顶点,该多个顶点包括指示多个顶点的位置的坐标;基于一组图像特征和3d模型的多个顶点的坐标生成uv图,uv图包括基于3d网格模型的多个顶点的坐标的一组二维(2d)纹理坐标;基于uv图的2d纹理坐标将语义分割图像投影到3d网格模型上;将语义分割图像的一组语义标签映射到uv图的2d纹理坐标;以及生成包括一组纹素(texel)的语义纹理图,其中,每个纹素包括一个或多个语义标签和一组2d纹理坐标。
[0020]“语义分割”描述了用于预测图像的每个像素的类标签的计算机视觉技术。因此,语义分割图像包括包含一组类标签的图像,这些类标签标识由图像的像素描绘的元素或对象。根据某些实施例,语义分割图像可以通过语义分割神经网络由语义纹理图系统生成。
[0021]
例如,语义纹理图系统可以从多个分布式客户端设备接收包括标识位置或对象的元数据的图像数据作为输入。图像数据可以基于对应的图像元数据由语义纹理图系统进行分类和排序。语义纹理图系统可以维护数据库,该数据库包括基于由图像数据所描绘的位置或对象而排序的图像数据的集合。然后可以基于来自数据库的图像集合训练语义分割神经网络以生成包括标识图像中的像素的语义特征的语义类标签的语义分割图像。
[0022]
语义特征可例如包括:与物理对象、位置或表面对应的上下文特征;引用一些其他已知类别或类的类比特征;限定对象或表面的视觉或图形特性的视觉特征;以及限定对象或表面的特性并且可包括“粗糙度值”、“金属值”、“镜面值”和“基色值”的材料参数。
[0023]
因此,响应于接收或访问包括图像元数据和一组图像特征的图像,语义纹理图系统基于该图像(图像的图像特征或图像的图像元数据)生成或取得语义分割图像,其中,语义分割图像包括分配给图像的像素的一组语义特征标签。
[0024]
语义纹理图系统基于由语义纹理图系统访问的图像生成3d模型。例如,语义纹理图系统可以基于图像元数据或图像特征来识别图像中描绘的位置或对象,并且从数据库取得描绘该位置或对象的图像的集合。语义纹理图系统通过3d重建管线处理图像的集合以基于与访问的图像中描绘的位置或对象对应的图像的集合获得密集的3d网格(即,3d模型),其中,密集的3d网格包括多个顶点,其中,多个顶点中的每个顶点包括对应的坐标。类似地,语义纹理图系统基于图像和图像集合生成uv图,其中,uv图包括一组2d纹理坐标以将2d图像投影在3d网格上。例如,3d网格可以基于uv图的2d纹理坐标用2d图像“包裹”。
[0025]
语义纹理图系统基于顶点的坐标将与图像对应的语义分割图像投影在3d模型上,并且将语义分割图像的语义特征标签映射到uv图的2d纹理坐标。因此,所得的语义纹理图包括一组纹素(其中,每个纹素包括一个或多个语义特征标签),以及基于uv图的2d纹理坐标。
[0026]
根据某些实施例,由语义纹理图系统生成的语义纹理图可被应用于在客户端设备处显示的环境的呈现内检测到的一个或多个对象。例如,语义纹理图可以与对应于对象(即,建筑物、结构、雕塑)的一组坐标相关联。响应于检测到在对象的阈值距离处或在对象的阈值距离内的客户端设备(即,基于地理围栏),语义纹理图系统访问语义纹理图并将该语义纹理图应用于包括客户端设备的显示器处的对象的环境的呈现内的对象的描绘。例如,基于3d模型的顶点的坐标,纹理图可以作为叠加应用于对象,以使得纹理图的纹素占据对象的表面的对应位置。
[0027]
通过将包括语义特征标签的纹理图应用于客户端设备处的环境的呈现中的对象,可以基于语义特征标签在环境的呈现内访问和呈现ar内容。如上文所讨论的,纹理图的纹素的语义特征标签可以为在环境的呈现中呈现的对象的特征提供分类信息。例如,语义特征标签可包括对纹素的语义信息的标识,诸如哪些纹素是“门”、“窗”、“墙”、“屋顶”或“烟囱”,以及提供关于由纹素表示的特征的材料特性的信息,包括但不限于“硬度”、“柔软度”、“柔韧性”和“光泽度”。
[0028]
这样做使得ar内容能够通过在客户端设备处空间的呈现来更真实地与用户交互。作为说明性示例,通过标记空间的哪些特征是“烟囱”,可以访问和呈现与特征真实地交互的ar内容。例如,响应于检测语义特征标签(诸如“烟囱”和“屋顶”),可以在空间的呈现中访问和呈现ar“圣诞老人”。在一些实施例中,可以考虑其他属性来选择ar内容,诸如用户简档信息、时间信息、季节信息和位置信息。
[0029]
图1是示出用于通过网络交换数据(例如,消息和相关联内容)的示例消息传递系统100的框图。消息传递系统100包括多个客户端设备102,每个客户端设备托管包括消息传递客户端应用104的多个应用。每个消息传递客户端应用104通过网络106(例如,因特网)通信地耦接到消息传递客户端应用104的其他实例和消息传递服务器系统108。
[0030]
因此,每个消息传递客户端应用104能够经由网络106与另一个消息传递客户端应用104和消息传递服务器系统108进行通信并交换数据。在消息传递客户端设备104之间以及在消息传递客户端应用104和消息传递服务器系统108之间交换的数据包括功能(例如调用函数的命令)以及有效载荷数据(例如,文本、音频、视频或其他多媒体数据)。
[0031]
消息传递服务器系统108经由网络106向特定的消息传递客户端应用104提供服务器端功能。尽管在本文中将消息传递系统100的某些功能描述为由消息传递客户端应用104或由消息传递服务器系统108执行,但是应当理解,某些功能在消息传递客户端应用104或消息传递服务器系统108中的位置是设计选择。例如,在技术上优选地是首先在消息传递服务器系统108内部署某些技术和功能,然后将该技术和功能迁移到其中客户端设备102具有足够处理能力的消息传递客户端应用104。
[0032]
消息传递服务器系统108支持提供给消息传递客户端应用104的各种服务和操作。此类操作包括向消息传递客户端应用104发送数据,从消息传递客户端应用104接收数据,以及处理由消息传递客户端应用104生成的数据。在一些实施例中,该数据包括消息内容、
客户端设备信息、地理位置信息、媒体注释和叠加(overlay)、消息内容持久性条件、社交网络信息,和现场事件信息,作为示例。其他实施例中,使用其他数据。消息传递系统100中的数据交换通过经由消息传递客户端应用104的gui可用的功能来调用和控制。
[0033]
现在具体转到消息传递服务器系统108,应用程序接口(api)服务器110耦接到应用服务器112并向应用服务器112提供编程接口。应用服务器112通信地耦接到数据库服务器118,数据库服务器118促进对数据库120的访问,数据库120中存储有与由应用服务器112处理的消息相关联的数据。
[0034]
特别处理应用程序接口(api)服务器110,该服务器在客户端设备102与应用服务器112之间接收和发送消息数据(例如,命令和消息有效载荷)。具体地,应用程序接口(api)服务器110提供可被消息传递客户端应用104调用或查询的一组接口(例如例程和协议),以便调用应用服务器112的功能。应用程序接口(api)服务器110公开由应用服务器112支持的各种功能,包括:帐户注册、登录功能、经由应用服务器112从特定消息传递客户端应用104向另一消息传递客户端应用104发送消息、从消息传递客户端应用104向消息传递服务器应用114发送媒体文件(例如图像或视频)并且以供另一消息传递客户端应用104进行可能的访问、媒体数据(例如故事)集合的设置、客户端设备102的用户的好友列表的取得、此类集合的取得、消息和内容的取得、在社交图中添加和删除好友、在社交图内的好友的定位、打开和应用事件(例如,与消息传递客户端应用104有关)。
[0035]
应用服务器112托管多个应用和子系统,包括消息传递服务器应用114、图像处理系统116、社交网络系统122,和语义纹理图系统124。消息传递服务器应用114实现多个消息处理技术和功能,其特别涉及包括在从消息传递客户端应用104的多个实例接收的消息中的内容(例如,文本和多媒体内容)的聚合和其他处理。如将进一步详细描述的,来自多个源的文本和媒体内容可以被聚合成内容的集合(例如被称为故事、图库(gallery)或集合)。然后,消息传递服务器应用114使得这些集合对于消息传递客户端应用104可用。考虑到此类处理的硬件要求,对数据的其他处理器和存储器密集型处理还可以在服务器端由消息传递服务器应用114来执行。
[0036]
应用服务器114还包括图像处理系统118,该图像处理系统118专用于通常关于在消息传递服务器应用116处的消息的有效载荷内接收到的图像或视频来执行各种图像处理操作。
[0037]
社交网络系统122支持各种社交网络功能服务,并使这些功能和服务可用于消息传递服务器应用114。为此,社交网络系统122维护并且访问数据库120内的实体图304。由社交网络系统122支持的功能和服务的示例包括识别特定用户与其具有关系或者该特定用户“正在关注”其的消息传递系统100的其他用户,以及还识别特定用户的其他实体和兴趣。
[0038]
应用服务器112通信地耦接到数据库服务器118,数据库服务器118促进对数据库120的访问,在数据库120中存储有与由消息传递服务器应用114处理的消息相关联的数据。
[0039]
图2是示出根据示例实施例的关于消息传递系统100的更多细节的框图。具体地,消息传递系统100被示出为包括消息传递客户端应用104和应用服务器112,它们进而体现了多个一些子系统,即短时计时器系统202、集合管理系统204和注释系统206。
[0040]
短时计时器系统202负责对由消息传递客户端应用104和消息传递服务器应用114所允许的内容执行临时访问。为此,短时计时器系统202并入了多个计时器,这些计时器基
于与消息、消息集合、或图形元素相关联的持续时间和显示参数,经由消息传递客户端应用104选择性地显示以及启用对消息和相关联内容的访问。下面提供有关短时计时器系统202的操作的更多细节。
[0041]
集合管理系统204负责管理媒体的集合(例如,包括文本、图像、视频和音频数据的集合的媒体集合)。在一些示例中,内容的集合(例如,包括图像、视频、文本和音频的消息)可以被组织成“事件图库”或“事件故事”。这种集合可以在指定时间段(例如与内容相关的事件的持续时间)内可用。例如,与音乐会有关的内容可以在该音乐会的持续时间内作为“故事”可用。集合管理系统204还可以负责发布图标,该图标向消息传递客户端应用104的用户界面提供特定集合的存在的通知。
[0042]
集合管理系统204还包括策展界面208,该策展界面208允许集合管理器管理和策展特定内容集合。例如,策展界面208使事件组织者能够策展与特定事件有关的内容的集合(例如删除不适当的内容或冗余消息)。另外,集合管理系统204采用机器视觉(或图像识别技术)和内容规则来自动策展内容集合。在某些实施例中,可对于将用户生成的内容包括进集合中向用户支付补偿。在这种情况下,策展界面208操作以自动向此类用户就使用其内容而支付费用。
[0043]
注释系统206提供使得用户能够注释或以其他方式修改或编辑媒体内容的各种功能,诸如由用户接收的要转发或重新分配给一个或多个接收者的用户支持内容。例如,注释系统206提供与针对由消息传递系统100处理的消息生成和发布媒体叠加有关的功能。注释系统206基于客户端设备102的地理位置向消息传递客户端应用104可操作地提供媒体叠加。在另一个示例中,注释系统206基于其他信息(诸如,客户端设备102的用户的社交网络信息)可操作地向消息传递客户端应用104提供媒体叠加。媒体叠加可以包括音频和视觉内容和视觉效果,以及增强现实叠加。音频和视觉内容的示例包括图片、文本、徽标、动画和声音效果,以及动画面部模型、图像滤镜和增强现实媒体内容。视觉效果的示例包括颜色叠加。音频和视觉内容或视觉效果可在客户端设备102处被应用于媒体内容项(例如照片或视频或实况流)。例如,媒体叠加包括可被叠加在由客户端设备102拍摄生成的照片之上的文本。在另一个示例中,媒体叠加包括位置叠加(例如威尼斯海滩)的标识、现场活动的名称、或商家叠加的名称(例如海滩咖啡馆)。在另一个示例中,注释系统206使用客户端设备102的地理位置来识别媒体叠加,该媒体叠加包括在客户端设备102的地理位置处的商家的名称。媒体叠加可以包括与商家相关联的其他标记。媒体叠加可被存储在数据库120中并且可以通过数据库服务器118来访问。
[0044]
在一个示例实施例中,注释系统206提供基于用户的发布平台,该平台使用户能够在地图上选择地理位置并上载与所选地理位置相关联的内容。用户还可指定在什么情况下应将特定媒体叠加提供给其他用户。注释系统206生成包括所上载内容的媒体叠加,并将所上载内容与所选地理位置相关联。
[0045]
在另一个示例实施例中,注释系统206提供基于商家的发布平台,该平台使商家能够选择与地理位置相关联的特定媒体叠加。例如,注释系统206在预定的时间量内将出价最高的商家的媒体叠加与对应的地理位置相关联。
[0046]
图3是示出根据某些示例实施例的语义纹理图系统124的组件的框图,其将语义纹理图系统124配置为通过执行包括以下各项的操作来生成语义纹理图:访问包括一组图像
特征的图像;响应于访问包括一组图像特征的图像,取得语义分割图像,其中,语义分割图像包括一组语义标签;响应于访问图像,至少基于图像的一组图像特征生成3d模型,其中,3d模型包括包含坐标的多个顶点;基于一组图像特征和3d网格模型的多个顶点的坐标生成uv图,uv图包括基于多个顶点的坐标的一组2d纹理坐标;基于uv图的2d纹理坐标将语义分割图像投影到3d模型上;将语义分割图像的一组语义标签映射到2d纹理坐标;以及基于语义标签、uv图和3d网格模型生成包括一组纹素的纹理图。
[0047]
语义纹理图系统124被示出为包括图像模块302、3d网格模块304、uv图模块306和语义标记模块308,所有这些被配置为彼此通信(例如,经由总线、共享存储器或开关)。这些模块中的任何一个或多个可使用一个或多个处理器310来实现(例如,通过配置该一个或多个处理器来执行针对该模块描述的功能)并且因此可包括处理器310中的一个或多个。
[0048]
所描述的模块中的任何一个或多个可以单独使用硬件(例如,机器的处理器310中的一个或多个)或硬件和软件的组合来实现。例如,所描述的语义纹理图系统124的任何模块可以物理地包括被配置为执行本文针对该模块所描述的操作的处理器310中的一个或多个处理器(例如,机器的一个或多个处理器的子集或其中的子集)的布置。作为另一示例,语义纹理图系统124的任何模块可包括软件、硬件或两者,其配置一个或多个处理器310(例如,在机器的一个或多个处理器中)的布置以执行本文针对该模块所描述的操作。因此,语义纹理图系统124的不同模块可包括以及配置该处理器310的不同布置或该处理器310在不同时间点处的单一布置。此外,语义纹理图系统124的任意两个或更多模块可以组合成单个模块,并且本文针对单个模块所描述的功能可以细分到多个模块中。此外,根据各种示例实施例,本文中描述为在单个机器、数据库或设备内实现的模块可以分布在多个机器、数据库或设备上。
[0049]
图4是示出根据某些示例实施例的用于生成包括语义标签的纹理图的方法400的流程图。方法400的操作可由上文相对于图3所描述的模块来执行。如图4所示,方法400包括一个或多个操作402、404、406、408、410、412和414。
[0050]
在操作402处,图像模块302访问包括一组图像特征的图像。例如,图像模块302可从客户端设备102接收图像,其中,图像包括在客户端设备102的显示器处呈现的图像并且描绘真实世界环境。例如,客户端设备102可包括一个或多个相机,该相机被配置为生成和流式传输要呈现在客户端设备102的显示器处或辅助设备处的图像数据(例如,将视频数据从客户端设备102流式传输到分开的显示器)。
[0051]
在一些实施例中,由图像模块302访问的图像可包括图像元数据或其他标识特征。例如,图像元数据可以基于地理位置坐标来识别位置,或者标识特征可以包括条形码或其他可扫描的编码图像。
[0052]
在操作404处,语义标记模块308基于图像的图像特征取得包括一组语义标签的语义分割图像。例如,语义标记模块308可以访问诸如数据库120的存储库,以基于图像的元数据或图像特征来取得与图像对应的语义分割图像。
[0053]
在一些实施例中,语义标记模块308基于语义分割神经网络生成用于位置或对象的语义分割图像。例如,语义标记模块308可访问包括与位置或对象相关联的图像的集合的图像存储库,并且使用图像的集合来训练语义分割神经网络以生成包括一组语义标签的语义分割图像。
[0054]
在操作406处,3d网格模块304基于图像的一组图像特征生成3d网格模型,其中,3d网格模型包括包含坐标的多个顶点。例如,3d网格模块304可以基于图像元数据的一组图像特征来识别图像中描绘的对象,并且取得与对象或位置相关联的图像的集合,其中,图像的集合包括描绘由图像模块302访问的图像所描绘的对象或位置的一组图像。3d网格模块304通过3d重建管线处理图像以获得在图像或图像的集合中描绘的对象或位置的密集的3d网格表示,以及相对于对象的3d姿态。
[0055]
在操作408处,uv图模块306基于图像的一组图像特征和3d网格模型的多个顶点的坐标来生成uv图。因此,uv图可包括与3d网格模型的顶点坐标对应的一组2d纹理坐标。通过将2d图像应用于uv图,3d网格模型可以被2d图像“包裹”。
[0056]
2d图像可以基于由图像模块302访问的图像或基于来自数据库120的图像的集合来生成。例如,2d图像可包括对象的照片,或基于来自数据库120的描绘对象的图像的集合生成的图像。
[0057]
在操作410处,语义标记模块308基于来自uv图的2d纹理坐标将语义分割图像投影在3d网格模型上,并且在操作412处,将语义分割图像的一组语义标签映射到2d纹理坐标。
[0058]
在操作414,语义标记模块308基于语义标签到uv图的2d纹理坐标的映射来生成语义纹理图。纹理图包括一组纹素,其中,每个纹素包括2d纹理坐标和一个或多个语义标签。因此,语义纹理图可包括基于2d纹理坐标的语义标签到3d网格的表面的映射。
[0059]
在一些实施例中,语义标记模块308可以将语义纹理图与诸如数据库120的数据库内的对象类别或位置相关联。例如,语义纹理图可以与识别感兴趣位置或感兴趣位置处的对象的一组地理位置坐标相关联。作为说明性示例,语义纹理图可以基于由一组地理位置坐标识别的特定位置处的建筑物或结构生成,其中,语义纹理图的语义标签可以将语义特征描述符分配给建筑物或结构的一个或多个元素。例如,语义特征图的纹素可以指示建筑物或结构的特定表面是门口,或建筑物或结构的出口。
[0060]
图5是示出根据某些示例实施例的用于基于以包括语义标签的纹理图为基础的语义特征来呈现内容的方法500的流程图。方法500的操作可由上文相对于图3所描述的模块来执行。如图5所示,方法500包括一个或多个操作502、504和506,其可以作为图4中描绘的方法400的一部分(例如,子例程)来执行。例如,方法500可以在方法400的操作之后执行。
[0061]
例如,在生成语义纹理图之后,语义纹理图系统124可以将语义纹理图与感兴趣的位置或对象相关联。响应于检测到在感兴趣的位置处的客户端设备102或接收识别感兴趣的位置或对象的图像数据,语义纹理图系统124取得语义纹理图并将其应用于从客户端设备102接收的图像数据。语义纹理图可以叠加在客户端设备102的显示器处呈现的图像上,其中,语义纹理图在图像中的位置基于图像本身的特征。例如,语义纹理图可以应用于在客户端设备102处呈现的图像中描绘的建筑物,其中,语义纹理图的语义标签识别建筑物的一个或多个特征并将特性分配给建筑物的一个或多个特征(例如,门口、出口、窗户、屋顶、烟囱、弹性地板)。
[0062]
在操作502处,语义标记模块308将材料参数分配给与语义纹理图中的一组语义标签中的语义标签对应的特征类。例如,语义纹理图系统124的管理员可以将材料参数分配给由数据库120内的一个或多个语义特征标签识别的类。材料参数可包括图形特性,诸如反射率或光泽度,以及物理特性,诸如柔软度或柔韧性。材料参数可以基于一组交互变量来定
义,其中,分配了参数的纹素可以基于相关联的材料参数由用户或由ar内容进行交互。
[0063]
例如,材料参数可包括反射率值,以使得高反射率值可对应于镜面、高反射表面(即,镜子),而低反射率值可对应于非反射表面(即,砖墙)。
[0064]
在操作504处,在将材料参数分配给类之后,图像模块302检测包括与类对应的语义特征标签的语义纹理图的纹素。例如,客户端设备102的用户可以显示包括对象的位置的呈现。响应于在该位置处检测到客户端设备102或在该位置的呈现内检测到对象,语义纹理图系统124访问与该位置或对象对应的语义纹理图,并且将该语义纹理图应用于一个或多个相关表面。例如,语义纹理图可以通过将与对象相关联的3d网格模型定位在基于对象在环境的呈现内的位置的位置,并且然后用包括一组语义特征标签的uv图的纹素包裹3d网格模型,该组语义特征标签包括与类相关联的特征标签。
[0065]
在操作506处,ar内容可以基于语义纹理图的纹素的材料参数在空间的呈现中呈现。作为说明性示例,材料参数可包括高反射率值,并且ar内容可包括在空间的呈现内的位置处的动画图形化身的显示。在检测到纹素的材料参数之后,可以相应地呈现ar内容,以使得动画图形化身的反射可以显现在纹素中。
[0066]
图6是示出根据某些示例实施例的用于将语义纹理图应用于客户端设备102处的环境的呈现的方法600的流程图。方法600的操作可由上文相对于图3所描述的模块来执行。如图6所示,方法600包括一个或多个操作602、604和606,其可以作为图4中描绘的方法400的一部分(例如,子例程)来执行。例如,方法600可以在基于图像数据生成语义纹理图之后执行。
[0067]
在操作602处,语义纹理图系统124接收将语义纹理图分配给数据库120内的位置或目标对象的输入。例如,语义纹理图可以与识别位置的一组地理位置坐标相关联,或者在进一步的实施例中可以被分配给与目标对象对应的一组图像特征。
[0068]
在操作604处,语义纹理图系统124在由与数据库120中的语义纹理图相关联的地理位置坐标识别的位置处检测客户端设备102。例如,地理围栏可以基于与语义纹理图相关联的地理位置坐标来配置,其中,地理围栏包含由地理位置坐标识别的位置。
[0069]
在操作606处,响应于在由地理位置坐标识别的位置处检测到客户端设备102,语义纹理图系统124将与该位置相关联的语义纹理图应用于客户端设备102处的图像的呈现。
[0070]
图7是示出根据某些示例实施例的用于生成语义纹理图的方法的流程图700。
[0071]
语义纹理图系统124基于包括图像特征的一个或多个图像生成语义纹理图。在流程图700的操作705处,语义纹理图系统124访问存储库,诸如数据库120,其中,存储库包括描绘目标对象或感兴趣位置的图像的集合。
[0072]
如流程图700中可见,图像的集合可以例如包括描绘目标对象的图像,诸如房子725。响应于访问图像的集合,在操作710处,语义纹理图系统124的各种模块通过将图像的集合应用于3d重建管线来生成图像中描绘的目标对象的3d网格模型730。3d网格模型730包括一组顶点,其包括指示顶点相对于彼此的位置的坐标。
[0073]
在操作715处,如方法400的操作408中所讨论的,语义纹理图系统124基于多个顶点的坐标生成uv图735。uv图735包括基于3d网格模型的多个顶点的坐标的一组2d纹理坐标。作为说明性示例,uv图735可被描述为3d网格模型730的“展开”层,其限定了可用于将图形应用于3d网格模型730的一组2d坐标。
[0074]
在操作720处,语义纹理图系统124通过将图像的集合应用于语义分割神经网络,基于包括图像725的图像的集合来生成语义分割图像740。由语义纹理图系统124生成的语义分割图像740向图像集合中描绘的一个或多个对象提供语义特征标签。根据某些实施例,语义分割图像740可包括描述纹素的一个或多个特性(包括纹理特性、物理特性和图形特性)的语义特征标签。
[0075]
如方法400的操作410中所讨论的,语义分割图像740基于来自uv图735的坐标而被投影在3d网格模型725上,并且语义分割图像740的语义特征标签被映射到uv图735的坐标以便生成语义纹理图。
[0076]
图8是描绘根据某些示例实施例的基于语义标签呈现的ar内容805、810和815的界面图800,诸如来自图7的语义分割图像740的语义标签。
[0077]
如界面图800中可见,ar内容805、810和815可以基于由语义纹理图系统124生成的语义纹理图的语义特征标签来呈现。例如,如图8所示,ar内容805、810和815可包括在基于语义纹理图的语义特征标签显示的图像的纹素中的特定位置处呈现的图形元素。例如,纹素820(由粗线强调)可以包括一组语义特征标签825,其中,语义特征标签识别纹素的特性。如界面图800中可见,纹素820的语义特征标签825可指示纹素包括窗户。因此,语义特征图系统124可以基于语义特征标签825中的一个或多个生成并呈现ar内容815,向ar内容提供增加的真实感层。
[0078]
软件架构
[0079]
图9是示出了可以结合本文所描述的各种硬件架构使用的示例软件架构906的框图。图9是软件架构的非限制性示例,并且将理解到,可以实现多个其他架构以促进本文所描述的功能。软件架构906可以在诸如图10的机器1000的硬件上执行,机器1000包括处理器1004、存储器1014和i/o组件1018等。代表性硬件层1504被示出并且可以表示例如图9的机器900。代表性硬件层952包括具有相关联的可执行指令904的处理单元954。可执行指令904表示软件架构906的可执行指令,包括本文所描述的方法、组件等的实现。硬件层952还包括也具有可执行指令904的存储器和/或存储模块存储器/存储设备956。硬件层952还可包括其他硬件958。
[0080]
在图9的示例架构中,软件架构906可以被概念化为层的堆叠,其中,每个层提供特定的功能。例如,软件架构906可包括诸如操作系统902、库920、应用916和呈现层914的层。在操作上,层内的应用916和/或其他组件可以通过软件堆栈调用应用程序接口(api)api调用908并且响应于api调用908来接收响应。所示出的层本质上是代表性的,并非所有软件架构都具有所有层。例如,某些移动或专用操作系统可能不提供框架/中间件918,而其他操作系统可提供此类层。其他软件架构可包括附加的或不同的层。
[0081]
操作系统902可管理硬件资源并提供公共服务。操作系统902可包括例如内核922、服务924和驱动器926。内核922可充当硬件和其他软件层之间的抽象层。例如,内核922可负责存储器管理、处理器管理(例如调度)、组件管理、联网、安全性设置等。服务924可为其他软件层提供其他公共服务。驱动器926可负责控制底层硬件或与底层硬件接口连接。例如,取决于硬件配置,驱动器926包括显示驱动器、相机驱动器、驱动器、闪存驱动器、串行通信驱动器(例如通用串行总线(usb)驱动器)、驱动器、音频驱动器、电源管理驱动器等。
[0082]
库920提供由应用916和/或其他组件和/或层使用的通用基础设施。库920提供如下功能:允许其他软件组件以比直接与基础操作系统902功能(例如内核922、服务924和/或驱动器926)接口连接更容易的方式执行任务。库920可包括系统库944(例如c标准库),该系统库944可提供诸如存储器分配功能、字符串操纵功能、数学功能等的功能。此外,库920可包括诸如媒体库的api库946(例如,用于支持各种媒体格式(诸如mpreg4、h.264、mp3、aac、amr、jpg、png)的呈现和操作的库)、图形库(例如,可用于在显示器上呈现2d和3d图形内容的opengl框架)、数据库库(例如,可提供各种关系数据库功能的sqlite)、网络库(例如,可提供网络浏览功能的webkit)等。库920还可包括各种各样的其他库948,以向应用916和其他软件组件/模块提供多个其他api。
[0083]
框架/中间件918(有时也称为中间件)提供可由应用916和/或其他软件组件/模块使用的高级通用基础设施。例如,框架/中间件918可提供各种图形用户界面(gui)功能、高级资源管理、高级位置服务等。框架/中间件918可提供可被应用916和/或其他软件组件/模块使用的广泛的其他api,其中一些可能是特定于特定操作系统902或平台的。
[0084]
应用916包括内置应用938和/或第三方应用940。代表性内置应用938的示例可包括但不限于:联系人应用、浏览器应用、书籍阅读器应用、位置应用、媒体应用、消息传递应用、和/或游戏应用。第三方应用940可包括由特定平台的卖方以外的实体使用android
tm
或ios
tm
软件开发工具包(sdk)开发的应用,并且可以是在移动操作系统(诸如ios
tm
、android
tm
、或其他移动操作系统)上运行的移动软件。第三方应用940可以调用由移动操作系统(诸如操作系统902)提供的api调用908,以促进本文所描述的功能。
[0085]
应用916可使用内置操作系统功能(例如,内核922、服务924和/或驱动器926)、库920和框架/中间件918来创建用户界面以与系统的用户进行交互。可替代地或附加地,在一些系统中,与用户的交互可通过诸如呈现层914的呈现层发生。在这些系统中,可将应用/组件“逻辑”与跟用户交互的应用/组件的各方面分开。
[0086]
图10是示出根据一些示例实施例的能够从机器可读介质(例如机器可读存储介质)读取指令并执行本文讨论的方法中的任何一个或多个的机器1000的组件的框图。具体地,图10示出了具有计算机系统的示例形式的机器1000的图解表示,在其中可以执行用于使得机器1000执行本文所讨论的任何一种或多种方法的指令1010(例如软件、程序、应用、小应用、应用程序或其他可执行代码)。因此,指令1010可用于实现本文所描述的模块或组件。指令1010将通用的、未编程的机器1000转换为被编程为以所描述的方式执行所描述和示出的功能的特定机器1000。在替代实施例中,机器1000作为独立设备运行,或者可耦接(例如联网)到其他机器。在网络部署中,机器1000可以在服务器-客户端网络环境中以服务器机器或客户端机器的身份运行,或者在对等(或分布式)网络环境中作为对等机器运行。机器1000可包括但不限于:服务器计算机、客户端计算机、个人计算机(pc)、平板计算机、膝上型计算机、上网本、机顶盒(stb)、个人数字助理(pda)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如智能手表)、智能家居设备(例如智能电器)、其他智能设备、网络家电、网络路由器、网络交换机、网桥,或能够依次或以其他方式执行指令1010的任何机器,这些指令指定了机器1000将要采取的动作。此外,尽管仅示出了单个机器1000,但术语“机器”还应被认为包括单独地或共同地执行指令1010以执行本文讨论的方法中的任何
一个或多个方法的机器的集合。
[0087]
机器1000可包括处理器1004、存储器存储器/存储设备1006、和i/o组件1018,它们可被配置为诸如经由总线1002彼此通信。存储器/存储设备1006可包括存储器1014,诸如主存储器或其他存储器存储设备和存储单元1016,它们可由处理器1004诸如经由总线1002访问。存储单元1016和存储器1014存储体现本文所描述的方法或功能中的任何一个或多个的指令1010。指令1010还可在由机器1000执行期间全部或部分地驻留在存储器1014内、在存储单元1016内、在处理器1004的至少一个内(例如在处理器的高速缓存存储器内)、或其任何适合的组合。因此,存储器1014、存储单元1016和处理器1004的存储器是机器可读介质的示例。
[0088]
i/o组件1018可包括各种各样的组件,以接收输入、提供输出、产生输出、发送信息、交换信息、采集测量等。包括在特定机器中的特定i/o组件1018将取决于机器的类型。例如,诸如移动电话的便携式机器将可能包括触摸输入设备或其他此类输入机构,而无头(headless)服务器机器将可能不包括此类触摸输入设备。应当理解,i/o组件1018可包括在图10中未示出的多个其他组件。仅出于简化下面讨论的目的,根据功能对i/o组件1018进行分组,并且分组绝不是限制性的。在各种示例实施例中,i/o组件1018可包括输出组件1026和输入组件1028。输出组件1026可包括视觉组件(例如显示器,诸如,等离子体显示面板(pdp)、发光二极管(led)显示器、液晶显示器(lcd)、投影仪,或阴极射线管(crt))、听觉组件(例如扬声器)、触觉组件(例如振动马达、电阻机构)、其他信号发生器等。输入组件1028可包括字母数字输入组件(例如键盘、被配置为接收字母数字输入的触摸屏、光电键盘或其他字母数字输入组件)、基于点的输入组件(例如鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他指向仪器)、触知输入组件(例如物理按钮、提供触摸的位置和/或力或触摸手势的触摸屏,或其他触知输入组件)、音频输入组件(例如麦克风)等。
[0089]
在进一步的示例实施例中,i/o组件1018可包括各种各样的其他组件中的生物特征组件1030、运动组件1034、环境环境组件1036或位置组件1038。例如,生物特征组件1030可包括用于检测表达(例如手部表达、面部表情、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如血压、心率、体温、汗水或脑波)、识别人(例如语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的组件。运动组件1034可包括加速度传感器组件(例如加速度计)、重力传感器组件、旋转传感器组件(例如陀螺仪)等。环境组件1036可包括例如照明传感器组件(例如光度计)、温度传感器组件(例如检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如气压计)、声学传感器组件(例如一个或多个检测背景噪声的麦克风)、接近度传感器组件(例如检测附近物体的红外传感器)、气体传感器(例如,用于为了安全而检测有害气体的浓度或测量大气中的污染物的气体检测传感器)、或可提供与周围物理环境相对应的指示、测量或信号的其他组件。位置组件1038可包括位置传感器组件(例如全球定位系统(gps)接收器组件)、高度传感器组件(例如检测可从哪个高度获得该空气压力的高度计或气压计)、取向传感器组件(例如磁力计)等。
[0090]
可使用多种技术来实现通信。i/o组件1018可包括通信组件1040,该通信组件740可操作以分别经由耦接(coupling)1022和耦接1024将机器1000耦接到网络1032或设备1020。例如,通信组件1040可包括网络接口组件或与网络1032接口连接的其它合适的设备。在进一步的示例中,通信组件1040可包括有线通信组件、无线通信组件、蜂窝通信组件、近
场通信(nfc)组件、组件(例如低能耗)、组件和经由其它形态提供通信的其他通信组件。设备1020可以是另一机器或各种各样的外围设备(例如经由通用串行总线(usb)耦接的外围设备)中的任何一个。
[0091]
此外,通信组件1040可检测标识符或包括可操作以检测标识符的组件。例如,通信组件1040可包括射频识别(rfid)标签读取器组件、nfc智能标记检测组件、光学读取器组件(例如用于检测诸如通用产品代码(upc)条形码的一维条形码、多维条形码(例如快速响应(qr)码、aztec码、数据矩阵、数字图形、最大码、pdf417、超码、ucc rss-2d条形码)和其他光学码的光学传感器),或声学检测组件(例如用于识别所标记的音频信号的麦克风)。另外,可以经由通信组件740来获得各种信息,诸如,经由互联网协议(ip)地理位置来获得位置、经由信号三角测量来获得位置、经由检测可指示特定位置的nfc信标信号来获得位置等。
[0092]
词汇表
[0093]
在本上下文中,“载波信号”是指能够存储、编码或携带指令以由机器执行的任何无形介质,并且包括数字或模拟通信信号或其他无形介质以促进此类指令的通信。指令可使用传输介质通过网络接口设备以及使用多个众所周知的传输协议中的任何一个在网络上发送或接收。
[0094]
在本上下文中,“客户端设备”是指与通信网络接口连接以从一个或多个服务器系统或其他客户端设备获取资源的任何机器。客户端设备可以是但不限于:移动电话、台式计算机、膝上型电脑、便携式数字助理(pda)、智能电话、平板电脑、超级本、上网本、膝上型电脑、多处理器系统、基于微处理器的或可编程的消费电子产品、游戏机、机顶盒、或用户可用来接入网络的任何其他通信设备。
[0095]
在此上下文中,“通信网络”是指网络的一个或多个部分,其可以是自组网、内联网、外联网、虚拟专用网(vpn)、局域网(lan)、无线局域网(wlan)、广域网(wan)、无线广域网(wwan)、城域网(man)、互联网、互联网的一部分、公共交换电话网络(pstn)的一部分、老式电话服务(pots)网络、蜂窝电话网络、无线网络、网络、另一类型的网络,或两个或更多个此类网络的组合。例如,网络或网络的一部分可包括无线或蜂窝网络,并且耦接可以是码分多址(cdma)连接、全球移动通信系统(gsm)连接或另一类型的蜂窝或无线耦接。在该示例中,耦接可实现多种类型的数据传输技术中的任何一种,例如单载波无线电传输技术(1xrtt)、演进数据优化(evdo)技术、通用分组无线电服务(gprs)技术、增强型数据速率gsm演进(edge)技术、包括3g的第三代合作伙伴计划(3gpp)、第四代无线(4g)网络、通用移动电信系统(umts)、高速分组接入(hspa)、全球微波接入互操作性(wimax)、长期演进(lte)标准、由各种标准制定组织定义的其他标准、其他远程协议或其他数据传输技术。
[0096]
在本上下文中,“短时消息”是指在时间受限的持续时间内可访问的消息。短时消息可以是文本、图像、视频等。短时消息的访问时间可由消息发送器设置。替代地,访问时间可以是默认设置,也可以是接收方指定的设置。不管设置技术如何,消息都是短时的。
[0097]
在本上下文中,“机器可读介质”是指能够临时或永久存储指令和数据的组件、设备或其他有形介质,并且可包括但不限于:随机存取存储器(ram)、只读存储器(rom)、缓冲存储器、闪存、光学介质、磁性介质、高速缓存存储器、其他类型的存储设备(例如可擦除可
编程只读存储器(eprom))和/或其任何合适的组合。术语“机器可读介质”应被理解为包括能够存储指令的单个介质或多个介质(例如集中式或分布式数据库,或相关联的高速缓存和服务器)。术语“机器可读介质“还应被理解为包括能够存储由机器执行的指令(例如代码)使得指令在由机器的一个或多个处理器执行时使得机器执行本文所描述的任何一种或多种方法的任何介质或多种介质的组合。因此,“机器可读介质”是指单个存储装置或设备,以及包括多个存储装置或设备的“基于云的”存储系统或存储网络。术语“机器可读介质”不包括信号本身。
[0098]
在本上下文中,“组件”是指具有由功能或子例程调用、分支点、应用程序接口(api)、或其他用于特定处理或控制功能的分区或模块化的技术定义的边界的设备,物理实体或逻辑。组件可通过它们与其他组件的接口进行组合以执行机器过程。组件可以是被设计为与其他组件以及通常执行相关功能的特定功能的程序的一部分一起使用的经封装的功能硬件单元。组件可构成软件组件(例如体现在机器可读介质上的代码)或硬件组件。“硬件组件”是能够执行某些操作的有形单元,并且可以以某种物理方式被配置或布置。在各种示例实施例中,一个或多个计算机系统(例如独立计算机系统、客户端计算机系统,或服务器计算机系统)或计算机系统的一个或多个硬件组件(例如处理器或一组处理器)可由软件(例如应用或应用部分)配置为操作以执行如本文所描述的某些操作的硬件组件。硬件组件也可机械地、电子地或其任何合适的组合来实现。例如,硬件组件可包括被永久性地配置为执行某些操作的专用电路或逻辑。硬件组件可以是专用处理器,诸如现场可编程门阵列(fpga)或专用集成电路(asic)。硬件组件还可包括可编程逻辑或电路,其由软件临时配置为执行某些操作。例如,硬件组件可包括由通用处理器或其他可编程处理器执行的软件。在由此类软件进行配置之后,硬件组件变成专门被定制以执行配置的功能的特定机器(或机器的特定组件),并且不再是通用处理器。可以理解,机械地在专用和永久配置的电路中或者在临时配置的电路中(例如由软件配置的)实现硬件组件的决定可以由成本和时间考虑来驱动。因此,短语“硬件组件”(或“硬件实现的组件”)应理解为包括有形实体,其是物理构造的、永久配置的(例如硬连线的)或临时配置的(例如编程的),以某种方式操作或执行本文所描述的某些操作的实体。考虑到其中硬件组件被临时配置(例如编程)的实施例,每个硬件组件不需要在任何时刻被配置或实例化。例如,在硬件组件包括由软件配置为成为专用处理器的通用处理器的情况下,通用处理器可在不同时间被分别配置为不同的专用处理器(例如包括不同的硬件组件)。因此,软件对应地配置特定处理器或处理器,例如以在一个时刻构成一个特定硬件组件,而在另一个不同时刻构成另一个不同硬件组件。硬件组件可向其他硬件组件提供信息并从其他硬件组件接收信息。因此,所描述的硬件组件可以被认为是通信耦接的。在同时存在多个硬件组件的情况下,可以通过在两个或更多个硬件组件之间的信号传输(例如通过适当的电路和总线)来实现通信。在其中在不同时间配置或实例化多个硬件组件的实施例中,可以例如通过在多个硬件组件可以访问的存储器结构中存储和取得信息来实现此类硬件组件之间的通信。例如,一个硬件组件可执行操作并将该操作的输出存储在其通信耦接到的存储器设备中。然后,另一硬件组件可以在稍后的时间访问该存储器设备以取得和处理所存储的输出。硬件组件还可发起与输入或输出设备的通信,并且可以在资源(例如信息的集合)上进行操作。本文所描述的示例方法的各种操作可以至少部分地由临时配置(例如通过软件)或永久配置为执行相关操作的一个或多个处理器执
行。无论是临时配置还是永久配置,此类处理器都可构成处理器实现的组件,该组件操作以执行本文所述的一个或多个操作或功能。如本文中所使用的,“处理器实现的组件”是指使用一个或多个处理器实现的硬件组件。类似地,本文描述的方法可以至少部分地由处理器实现,其中特定的处理器或处理器是硬件的示例。例如,一种方法的操作中的至少一些操作可由一个或多个处理器或处理器实现的组件执行。此外,一个或多个处理器还可操作以在“云计算“环境中或作为“软件即服务”(saas)来支持相关操作的执行。例如,操作中的至少一些操作可由一组计算机来执行(作为包括处理器的机器的示例),其中,这些操作可以经由网络(例如互联网)以及经由一个或多个适当的接口(例如应用程序接口(api))来访问。某些操作的执行可分布在处理器之间,不仅驻留在单个机器内,而且跨多个机器部署。在一些示例实施例中,处理器或处理器实现的组件可位于单个地理位置中(例如在家庭环境、办公室环境,或服务器场中)。在其他示例实施例中,处理器或处理器实现的组件可分布在多个地理位置上。
[0099]
在此上下文中,“处理器”是指根据控制信号(例如“命令”、“操作码”、“机器码”等)操纵数据值并产生适用于操作机器的对应输出信号的任何电路或虚拟电路(由在实际处理器上执行的逻辑来仿真的物理电路)。处理器可以例如是中央处理单元(cpu)、精简指令集计算(risc)处理器、复杂指令集计算(cisc)处理器、图形处理单元(gpu)、数字信号处理器(dsp)、专用集成电路(asic)、射频集成电路(rfic)或其任何组合。处理器可进一步是具有可同时执行指令的两个或两个以上独立处理器(有时称为“核”)的多核处理器。
[0100]
在本上下文中,“时间戳”是指一系列的字符或编码信息,其识别何时发生特定事件,例如给出日期和时间,有时精确到几分之一秒。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献