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

DIY效果图像修改的制作方法

2022-11-09 23:15:17 来源:中国专利 TAG:

diy效果图像修改
1.相关申请的交叉引用
2.本技术要求2020年5月5日提交的美国专利申请序列号15/929,484以及2020年2月14日提交的美国临时申请序列号62/976,916的优先权的权益,上述申请中的每一个通过引用整体并入本文中。
技术领域
3.本公开内容总体上涉及视觉呈现,并且更具体地涉及呈现在计算设备的摄像装置馈送中捕获的真实世界环境内的虚拟对象。


背景技术:

4.增强现实(ar)是指用计算机生成的图形内容补充真实世界对象和环境的视图。虚拟呈现系统可以用于创建、查看引人入胜且具有娱乐性的ar体验并与之交互,其中3d虚拟对象图形内容看起来存在于真实世界中。虚拟呈现系统经常在诸如智能电话和平板电脑的移动设备中实现。
附图说明
5.在不一定按比例绘制的附图中,相同的附图标记可以在不同的视图中描述相同的部件。为了容易识别对任何特定元件或动作的讨论,附图标记中的一个或多个最高位数字指代该元件被首次介绍时所在的图号。一些实施方式通过示例而不是限制的方式在附图的图中示出,在附图中:
6.图1是示出根据示例实施方式的用于通过网络交换数据(例如,消息和相关联的内容)的消息收发系统的框图。
7.图2是示出根据示例实施方式的关于消息收发系统的另外的细节的框图。
8.图3是示出根据示例实施方式的可以存储在消息收发系统的数据库中的数据的示意图。
9.图4是示出根据示例实施方式的由消息收发客户端应用生成的用于通信的消息的结构的示意图。
10.图5是示出根据示例实施方式的可以作为消息收发系统的一部分提供的diy效果图像修改系统的各种部件的框图。
11.图6和图7是示出根据示例实施方式的diy效果图像修改系统在执行用于生成包括3d字幕的消息的方法中的示例操作的流程图。
12.图8至图18是根据一些示例实施方式的示出由消息收发系统提供的各种界面的界面图。
13.图19是示出根据示例实施方式的可以结合本文中描述的各种硬件架构使用的代表性软件架构的框图。
14.图20是示出根据示例实施方式的能够从机器可读介质(例如,机器可读存储介质)
读取指令并执行本文中讨论的方法中的任何一种或更多种的机器的部件的框图。
具体实施方式
15.下面的描述包括体现本公开内容的说明性实施方式的系统、方法、技术、指令序列和计算机器程序产品。在下面的描述中,出于说明的目的,阐述了许多具体细节以提供对本发明主题的各种实施方式的理解。然而,对于本领域技术人员而言将明显的是,可以在没有这些具体细节的情况下实践本发明主题的实施方式。一般地,公知的指令实例、协议、结构和技术不一定详细示出。
16.由于环境条件、用户动作、摄像装置与正在呈现的对象之间的未预料到的视觉中断等,传统的虚拟呈现系统可能会遇到呈现问题。这会导致虚拟对象消失或者以其他方式表现异常,从而打破虚拟对象存在于真实世界中的错觉。例如,当用户在真实世界中四处移动时,虚拟呈现系统可能不会以与真实世界物品一致的方式呈现虚拟对象。
17.此外,常规的虚拟呈现系统通常缺乏与创作ar内容相关的功能,因为这些常规系统没有针对移动计算设备的有限显示尺寸进行优化。例如,常规虚拟呈现系统通常限于预定义的3d虚拟对象,并且不向用户提供创建或编辑这些虚拟对象的能力。作为另一示例,常规虚拟呈现系统的用户界面通常需要用户在各种视图或窗口之间导航以访问某些内容创作功能。这些系统通常提供按钮或其他交互元素来促进视图和窗口之间的导航,但按钮和其他交互元素通常会占用大部分可用显示空间,这可能会遮蔽正在创作的ar内容或者需要用户导航到另一窗口或查看以检查正在创作的ar内容。因此,常规虚拟呈现系统提供的ar内容创作处理可能是耗时且乏味的处理,需要用户反复在各种视图和窗口中切换,最终生成可能无法满足用户期望的内容。
18.本公开内容的方面包括用于进行以下操作的系统、方法、技术、指令序列和计算机程序产品:创建图像修改效果(例如包括三维(3d)字幕和3d绘图的虚拟3d对象);以及将包括虚拟3d对象的图像修改效果呈现在摄像装置馈送内,就好像它们存在于真实世界环境中一样。例如,所公开的技术包括如下操作:由消息收发应用从用户设备的摄像装置接收图像(例如视频馈送的帧);接收选择用于激活用户可定制效果模式的用户可定制效果选项的输入;响应于接收到输入,将多个效果选项的阵列连同接近用户可定制效果选项的图像一起显示;以及将与多个效果选项中的第一效果选项相关联的第一效果应用于图像。如本文所提及的,每种效果以不同方式修改底层图像或视频的像素化图案和/或配色方案。
19.以这些方式,这些用户界面改进了先前系统的接口,并且通过提供更多的功能和增强的交互机制,例如通过提供在实时视频馈送上呈现的描绘真实世界环境的用户可定制的图像修改效果,来改进设备的操作。鉴于这些改进,该系统可能特别适用于显示屏幕尺寸有限的移动设备实现方式。
20.图1是示出用于通过网络106交换数据(例如,消息和相关联的内容)的示例消息收发系统100的框图。消息收发系统100包括多个客户端设备102,每个客户端设备102托管包括消息收发客户端应用104的若干应用。每个消息收发客户端应用104经由网络106(例如,因特网)通信地耦接至消息收发客户端应用104和消息收发服务器系统108的其他实例。
21.因此,每个消息收发客户端应用104能够经由网络106与另一消息收发客户端应用104和消息收发服务器系统108进行通信并交换数据。在消息收发客户端应用104之间以及
消息收发客户端应用104与消息收发服务器系统108之间交换的数据包括功能(例如,激活功能的命令)以及有效载荷数据(例如,文本、音频、视频或其他多媒体数据)。
22.消息收发服务器系统108经由网络106向特定消息收发客户端应用104提供服务器端功能。虽然消息收发系统100的某些功能在本文中被描述为由消息收发客户端应用104或由消息收发服务器系统108执行,但是应当理解,某些功能的位置在消息收发客户端应用104或消息收发服务器系统108内是设计选择。例如,在技术上优选的是:可以最初将某些技术和功能部署在消息收发服务器系统108内,但是稍后将该技术和功能迁移至客户端设备102具有足够处理能力的消息收发客户端应用104。
23.消息收发服务器系统108支持向消息收发客户端应用104提供的各种服务和操作。这样的操作包括向消息收发客户端应用104发送数据、从消息收发客户端应用104接收数据以及对由消息收发客户端应用104生成的数据进行处理。该数据可以包括消息内容、客户端设备信息、地理位置信息、媒体注释和覆盖、消息内容持久性条件、社交网络信息和生活事件信息作为示例。通过经由消息收发客户端应用104的用户界面(ui)可用的功能来激活和控制消息收发系统100内的数据交换。
24.现在具体地转至消息收发服务器系统108,应用程序接口(api)服务器110耦接至应用服务器112并向应用服务器112提供编程接口。应用服务器112通信地耦接至数据库服务器118,数据库服务器118便于访问数据库120,在该数据库120中存储有与通过应用服务器112处理的消息相关联的数据。
25.具体处理api服务器110,该服务器在客户端设备102与应用服务器112之间接收和发送消息数据(例如,命令和消息有效载荷)。具体地,api服务器110提供一组接口(例如,例程和协议),由消息收发客户端应用104可以调用或查询该组接口以激活应用服务器112的功能。api服务器110展示由应用服务器112支持的各种功能,包括:帐户注册;登录功能;经由应用服务器112将消息从特定消息收发客户端应用104发送至另一消息收发客户端应用104;将媒体文件(例如,图像或视频)从消息收发客户端应用104发送至消息收发服务器应用114,并供另一消息收发客户端应用104可能访问;媒体数据集合(例如,故事)的设置;这样的集合的检索;客户端设备102的用户的朋友列表的检索;消息和内容的检索;向社交图添加和删除朋友;朋友在社交图中的位置;以及打开应用事件(例如,与消息收发客户端应用104有关)。
26.应用服务器112托管若干应用和子系统,包括消息收发服务器应用114、图像处理系统116以及社交网络系统122。消息收发服务器应用114实现了若干消息处理技术和功能,特别是与从消息收发客户端应用104的多个实例接收到的消息中包括的内容(例如,文本和多媒体内容)的聚合和其他处理有关的消息处理技术和功能。如将进一步详细描述的,来自多个来源的文本和媒体内容可以聚合成内容集合(例如,称为故事或库)。然后,由消息收发服务器应用114使这些集合对消息收发客户端应用104可用。鉴于对这样的处理的硬件要求,也可以由消息收发服务器应用114在服务器端执行数据的其他处理器和存储器密集型处理。
27.应用服务器112还包括图像处理系统116,该图像处理系统116通常关于在消息收发服务器应用114处的消息的有效载荷内接收到的图像或视频,专用于执行各种图像处理操作。
28.社交网络系统122支持各种社交联网功能和服务并使这些功能和服务可用于消息收发服务器应用114。为此,社交网络系统122维护并访问数据库120内的实体图。由社交网络系统122支持的功能和服务的示例包括识别特定用户与之有关系或“关注”其的消息收发系统100的其他用户,以及识别其他实体和感兴趣的特定用户。
29.应用服务器112通信地耦接至数据库服务器118,数据库服务器118便于访问数据库120,在数据库120中存储有与由消息收发服务器应用114处理的消息相关联的数据。
30.图2是示出根据示例实施方式的关于消息收发系统100的另外的细节的框图。具体地,消息收发系统100被示出为包括消息收发客户端应用104和应用服务器112,它们又包含多个一些子系统,即短暂定时器系统202、集合管理系统204和注释系统206。
31.短暂定时器系统202负责实施对由消息收发客户端应用104和消息收发服务器应用114允许的内容的临时访问。为此,短暂定时器系统202结合了多个定时器,这些定时器基于与消息或消息的集合(例如,故事)相关联的持续时间和显示参数,选择性地显示消息和相关联的内容以及使得能够经由消息收发客户端应用104访问消息和相关联的内容。
32.集合管理系统204负责管理媒体的集合(例如,文本、图像、视频和音频数据的集合)。在一些示例中,可以将内容(例如,消息,包括图像、视频、文本和音频)的集合组织成“事件库”或“事件故事”。可以使这样的集合在例如与内容有关的事件的持续时间的指定的时间段内可用。例如,可以使与音乐会有关的内容在音乐会的持续时间内作为“故事”可用。集合管理系统204还可以负责向消息收发客户端应用104的用户界面发布提供存在特定集合的通知的图标。
33.此外,集合管理系统204还包括使得集合管理者能够管理和策展特定内容集合的策展界面208。例如,策展界面208使得事件组织者能够策展与特定事件相关的内容集合(例如,删除不适当的内容或冗余消息)。此外,集合管理系统204采用机器视觉(或图像识别技术)和内容规则来自动地策展内容集合。在某些实施方式中,可以向用户支付补偿以将用户生成的内容包括到集合中。在这样的情况下,策展界面208操作以自动向这样的用户支付费用以使用其内容。
34.注释系统206提供使得用户能够注释或以其他方式修改或编辑与消息相关联的媒体内容的各种功能。例如,注释系统206提供与生成和发布用于由消息收发系统100处理的消息的媒体覆盖有关的功能。注释系统206可操作地向消息收发客户端应用104供应媒体覆盖(例如,过滤器或滤镜)。在另一示例中,注释系统206基于其他信息(例如客户端设备102的用户的社交网络信息)可操作地向消息收发客户端应用104供应媒体覆盖。媒体覆盖可以包括音频和视觉内容以及视觉效果。音频和视觉内容的示例包括图片、文本、标志、动画和声音效果。视觉效果的示例包括颜色覆盖。图14至图18中描绘了根据所公开实施方式的特定视觉效果,可以通过从包括晒伤效果选项、古典效果选项、霜效果选项、霓虹灯效果选项、方形效果选项、明信片效果选项、天线效果选项、莫尔效应选项、cctv效果选项、圆形效果选项、心形效果选项、矩形效果选项、散景效果选项、眩光效果选项和/或爱情效果选项在内的多种选项中进行选择来应用。
35.音频及视觉内容或视觉效果可以应用于客户端设备102处的媒体内容项(例如,照片)。例如,媒体覆盖包括可以覆盖在由客户端设备102生成的图像或视频上方的文本。在另一示例中,媒体覆盖包括位置标识(例如,威尼斯海滩)覆盖、实况事件的名称或商家名称
(例如,海滩咖啡馆)覆盖。
36.注释系统206包括diy效果图像修改系统210,diy效果图像修改系统210提供在客户端设备102的摄像装置馈送内捕获的3d空间内在相对于客户端设备102的位置处生成、显示和跟踪虚拟对象的功能(本领域普通技术人员也将其称为“摄像装置流”、“视频流”或“视频馈送”)。由diy效果图像修改系统210生成、显示和跟踪的虚拟对象包括3d字幕、3d剪切和3d绘画。3d字幕是一个或更多个文本字符(例如字母、符号和表情符号)的3d表示。diy效果图像修改系统210还提供用户友好和直观的显示,以用于选择各种图像效果以应用和修改那些效果的属性,同时给定的视频馈送(或视频流)正在被呈现给用户。当用户选择每个效果时,diy效果图像修改系统210显示当前激活的指示并且根据效果修改视频流。diy效果图像修改系统210还允许用户改变被应用于视频馈送的给定效果的属性。
37.diy效果图像修改系统210提供使用户能够创作、编辑和预览图像修改效果和3d对象(例如3d字幕)的功能。为此,diy效果图像修改系统210包括编辑界面212和预览界面214。编辑界面212允许用户根据选择的图像修改效果来创作和编辑视频馈送。预览界面214允许用户在生成包括具有所选效果的已编辑视频馈送的消息之前预览和查看已编辑视频馈送。预览界面214还可以使用户能够编辑3d对象的呈现(例如,通过改变3d字幕的比例、取向、位置、字体、样式和/或颜色)。
38.在一些情况下,diy效果图像修改系统210可以基于在3d空间中检测到的参考表面(例如,地面)使3d字幕显示(例如,在客户端设备102的显示器上)在摄像装置馈送内捕获的3d空间中的位置处。如以下将进一步详细讨论的,diy效果图像修改系统210包括冗余跟踪系统,该冗余跟踪系统包括一组跟踪子系统,该一组跟踪子系统被配置成基于一组跟踪标记在3d空间中的某个位置处跟踪3d字幕,并且在跟踪子系统之间转换。diy效果图像修改系统210还可以基于跟踪标记的可用性在六自由度跟踪(6dof)与三自由度跟踪(3dof)之间转换。
39.在一些实施方式中,diy效果图像修改系统210包括面部检测和/或跟踪部件。diy效果图像修改系统210可以从面部检测部件接收在正在接收和显示的摄像装置馈送中检测到面部的指示。在这样的情况下,diy效果图像修改系统210自动地将3d字幕定位在紧靠近面部的位置。例如,diy效果图像修改系统210可以围绕在摄像装置馈送中描绘的人的面部的顶部(例如,以皇冠的形状)、面部的底部或者前额上使3d字幕弯曲。随着用户四处移动摄像装置,面部检测部件可能不再检测到面部。结果,diy效果图像修改系统210可以将3d字幕从放置在靠近面部移动至放置在合适的参考表面(例如,地面)上。当摄像装置向后平移以再次露出面部时,diy效果图像修改系统210将3d字幕的显示从参考表面自动移动和转换到靠近面部。当3d字幕被定位在摄像装置馈送中的面部附近时,diy效果图像修改系统210激活面部跟踪部件以相对于面部位置的变化连续调整3d字幕的位置。例如,当面部上下移动时,3d字幕也会上下移动,以保持其位置在摄像装置馈送中的面部上方或下方。
40.在一些实施方式中,当在摄像装置馈送中检测到面部时,diy效果图像修改系统210用一个或更多个图形元素(例如,表情符号或化身)来增强和扩充3d字幕。例如,当在摄像装置中检测到面部时,diy效果图像修改系统会在紧靠近面部的位置放置3d字幕(基于上下文自动填充的文本或者用户手动提供的文本)。diy效果图像修改系统210还基于3d字幕中的文本的上下文来搜索一个或更多个图形元素。具体而言,diy效果图像修改系统210可
以自动识别3d字幕中的一个或更多个词汇,这些词汇在数据库中与一个或更多个图形元素相关联。例如,diy效果图像修改系统210可以确定3d字幕包括词汇“love”并且可以检索与词汇“love”相关联的心形表情符号。diy效果图像修改系统210可以将检索到的图形元素放置在3d字幕的左侧和右侧,以用图形元素包围3d字幕。例如,diy效果图像修改系统210可以在用户的面部上方以3d将词汇love显示为皇冠,并且在3d字幕周围放置两个心形表情符号(一个在左侧,一个在右侧)。在一些情况下,diy效果图像修改系统210可以确定3d字幕中的词汇或短语都不匹配或对应于先前与图形元素相关联的词汇或短语。在这样的情况下,diy效果图像修改系统210选择默认图形元素来填充并添加到3d字幕。
41.图3是示出根据某些示例实施方式的可以存储在消息收发服务器系统108的数据库120中的数据的示意图300。虽然数据库120的内容被示为包括若干表,但是应当理解,数据可以存储在其他类型的数据结构中(例如,作为面向对象的数据库)。
42.数据库120包括存储在消息表314内的消息数据。实体表302存储实体数据,包括实体图304。在实体表302内维护记录的实体可以包括个人、公司实体、组织、对象、地点、事件等。不管类型如何,关于消息收发服务器系统108存储数据的任何实体可以是被识别的实体。每个实体设置有唯一标识符以及实体类型标识符(未示出)。
43.实体图304还存储关于实体之间的关系和关联的信息。仅举例而言,这样的关系可以是社交的、职业的(例如,在共同的公司或组织工作)、基于兴趣的或基于活动的。
44.数据库120还在注释表312中以过滤器和滤镜的示例形式存储注释数据。在注释表312内存储数据的过滤器和滤镜是与视频(其数据存储在视频表310中)和/或图像(其数据存储在图像表308中)相关联并被应用于视频和/或图像。过滤器是在呈现给接收方用户期间被显示为覆盖在图像或视频上的覆盖。滤镜包括实时视觉效果和/或声音,这些效果和/或声音可以添加到摄像装置馈送中描绘的真实世界环境中(例如,当用户通过消息收发系统100的一个或更多个界面查看摄像装置馈送时,同时编写消息,或者在向接收方用户呈现期间)。相比之下,在客户端设备102处捕获图像或视频之后将过滤器应用于图像或视频,而将滤镜应用于客户端设备102的摄像装置馈送,使得应用了滤镜的情况下在客户端设备102处捕获图像或视频时,所应用的滤镜被结合作为生成的图像或视频的一部分。过滤器和滤镜可以是各种类型的,包括当发送用户正在编写消息时由消息收发客户端应用104呈现给发送用户的过滤器库或滤镜库中的用户选择的过滤器和滤镜。
45.如上所述,视频表310存储视频数据,在一个实施方式中,该视频数据与其记录被维护在消息表314内的的消息相关联。类似地,图像表308存储与其消息数据被存储在实体表302中的消息相关联的图像数据。实体表302可以将来自注释表312的各种注释与存储在图像表308和视频表310中的各种图像和视频相关联。
46.故事表306存储与消息和相关联的图像、视频或音频数据的集合有关的数据,所述消息和相关联的图像、视频或音频数据被编译成集合(例如,故事或库)。特定集合的创建可以由特定用户(例如,其记录被维护在在实体表302中的每个用户)发起。用户可以以已由该用户创建和发送/广播的内容集合的形式创建“个人故事”。为此,消息收发客户端应用104的ui可以包括用户可选择的图标,以使得发送用户能够将特定内容添加至他或她的个人故事。
47.集合还可以构成“实况故事”,“实况故事”是手动地、自动地或使用手动和自动技
术的组合创建的来自多个用户的内容的集合。例如,“实况故事”可以构成来自各种位置和事件的用户提交内容的策划流。其客户端设备具有启用的位置服务并且在特定时间处于共同位置事件处的用户可以例如经由消息收发客户端应用104的用户界面被呈现有选项,以向特定实况故事贡献内容。可以由消息收发客户端应用104基于用户的位置向他或她标识实况故事。最终结果是从社区视角讲述的“实况故事”。
48.另外类型的内容集合被称为“位置故事”,“位置故事”使得其客户端设备102位于特定地理位置(例如,在学院或大学校园)内的用户能够对特定集合做出贡献。在一些实施方式中,对位置故事的贡献可能需要二级认证以验证最终用户属于特定组织或其他实体(例如,是大学校园中的学生)。
49.图4是示出根据一些实施方式的消息400的结构的示意图,消息400由消息收发客户端应用104生成以用于传送至另外的消息收发客户端应用104或消息收发服务器应用114。特定消息400的内容用于填充存储在消息服务器应用114可访问的数据库120内的消息表314。类似地,消息400的内容存储在存储器中作为客户端设备102或应用服务器112的“在途”或“飞行中”的数据。消息400被示为包括以下组成部分:
50.·
消息标识符402:标识消息400的唯一标识符。
51.·
消息文本有效载荷404:要由用户经由客户端设备102的用户界面生成并且包括在消息400中的文本。
52.·
消息图像有效载荷406:由客户端设备102的摄像装置部件捕获的或从客户端设备102的存储器检索到的、并且包括在消息400中的图像数据。
53.·
消息视频有效载荷408:由摄像装置部件捕获的或从客户端设备102的存储器部件检索到的、并且包括在消息400中的视频数据。
54.·
消息音频有效载荷410:由麦克风捕获的或从客户端设备102的存储器部件检索到的、并且包括在消息400中的音频数据。
55.·
消息注释412:表示要应用于消息400的消息图像有效载荷406、消息视频有效载荷408或消息音频有效载荷410的注释的注释数据(例如,过滤器、贴纸或其他增强)。
56.·
消息持续时间参数414:以秒为单位指示消息的内容(例如,消息图像有效载荷406、消息视频有效载荷408、消息音频有效载荷410)将经由消息收发客户端应用104被呈现给用户或使其对于用户可访问的时间量的参数值。
57.·
消息地理位置参数416:与消息的内容有效载荷相关联的地理位置数据(例如,纬度和经度坐标)。在有效载荷中可以包括多个消息地理位置参数值416,其中这些参数值中的每一个都与包括在内容中的内容项(例如,消息图像有效载荷406内的特定图像或消息视频有效载荷408中的特定视频)相关联。
58.·
消息故事标识符418:标识与消息400的消息图像有效载荷406中的特定内容项相关联的一个或更多个内容集合(例如,“故事”)的标识符值。例如,消息图像有效载荷406内的多个图像可以各自使用标识符值与多个内容集合相关联。
59.●
消息标签420:每个消息400可以用多个标签来标记,多个标签中的每个标签指示消息有效载荷中包括的内容的主题。例如,在消息图像有效载荷406中包括的特定图像描绘动物(例如狮子)的情况下,标签指可以包括在指示相关动物的消息标签420中。标签值可以基于用户输入手动地生成,或者可以使用例如图像识别自动地生成。
60.·
消息发送者标识符422:指示在其上生成消息400并且从其发送消息400的客户端设备102的用户的标识符(例如,消息收发系统标识符、电子邮件地址或设备标识符)。
61.·
消息接收者标识符424:指示消息400被寻址到的客户端设备102的用户的标识符(例如,消息收发系统标识符、电子邮件地址或设备标识符)。
62.消息400的各个组成部分的内容(例如,值)可以是指向在其存储器储内容数据值的表中的位置的指针。例如,消息图像有效载荷406中的图像值可以是指向图像表308内的位置(或地址)的指针。类似地,消息视频有效载荷408内的值可以指向存储在视频表310内的数据,存储在消息注释412中的值可以指向存储在注释表312中的数据,存储在消息故事识别符418中的值可以指向存储在故事表306中的数据,并且存储在消息发送者标识符422和消息接收者标识符424内的值可以指向存储在实体表302内的用户记录。
63.图5是示出diy效果图像修改系统210的功能部件的框图,其配置diy效果图像修改系统210以修改应用于视频馈送的效果和/或在实时摄像装置馈送中描绘的3d空间(例如,真实世界的环境)中呈现3d对象。diy效果图像修改系统210被示出为包括呈现部件502、跟踪系统504和中断检测部件506。diy效果图像修改系统210的各种部件可以被配置成相互通信(例如,通过总线、共享存储器或交换机)。尽管图5中未示出,但在一些实施方式中,diy效果图像修改系统210可以包括前置摄像装置或后置摄像装置或者与前置摄像装置或后置摄像装置通信,该前置摄像装置或后置摄像装置被配置成产生包括图像数据的摄像装置馈送,该图像数据包括图像序列(例如,视频)。
64.所描述的任何一个或更多个部件可以单独使用硬件(例如,机器的一个或更多个处理器508)或者硬件和软件的组合来实现。例如,描述的diy效果图像修改系统210的任何部件可以物理地包括被配置成执行本文中描述的用于该部件的操作的一个或更多个处理器508(例如,机器的一个或更多个处理器的子集或其中的一个子集)的布置。作为另一示例,diy效果图像修改系统210的任何部件可以包括软件、硬件或两者,其配置一个或更多个处理器508(例如,在机器的一个或更多个处理器中)的布置以执行本文中描述的用于该部件的操作。因此,diy效果图像修改系统210的不同部件可以包括和配置这样的处理器508的不同布置或者在不同时间点处的这样的处理器508的单个布置。
65.此外,diy效果图像修改系统210的任何两个或更多个部件可以组合成单个部件,并且本文针对单个部件描述的功能可以在多个部件之间细分。此外,根据各种示例实施方式,本文描述为在单个机器、数据库或设备内实现的部件可以跨多个机器、数据库或设备分布。
66.跟踪系统504可以包括第一跟踪子系统504a、第二跟踪子系统504b和第三跟踪子系统504c。每个跟踪子系统基于一组跟踪标记跟踪3d字幕在3d空间内的位置。
67.由于环境条件、用户动作、摄像装置与被跟踪的对象/场景之间的未预料到的视觉中断等,跟踪系统经常经受跟踪失败。传统上,这样的跟踪失败会导致虚拟对象在3d空间中的呈现中断。例如,虚拟对象可能会消失或以其他方式表现异常,从而中断虚拟对象呈现在3d空间内的错觉。这会破坏整体3d体验的感知质量。
68.传统跟踪系统依赖于单一方法(自然特征跟踪(nft)、同时定位和映射(slam)、陀螺仪等),由于不准确的传感器数据、运动、视觉标记的丢失或遮挡或者场景的动态中断,因此每种方法在真实世界使用中具有断点。此外,每种方法可能在能力上都有各自的限制。例
如,陀螺仪跟踪系统只能跟踪具有3dof的物品。此外,由于每个个体系统的固有限制,因此使用单个跟踪系统会提供不准确或不稳定的位置估计。例如,仅由于视觉跟踪的不准确性,nft系统可能无法提供足够的俯仰、偏航或滚动估计,而陀螺仪跟踪系统提供不准确的平移(上、下、左、右)。
69.为了解决传统跟踪系统的上述问题,diy效果图像修改系统210包括多个冗余跟踪子系统504a至504c,其实现跟踪子系统之间的无缝转换。多个冗余跟踪子系统504a至504c通过将多个跟踪方法合并到单个跟踪系统504中来解决传统跟踪系统的问题。跟踪系统504能够基于由跟踪系统跟踪的跟踪标记的可用性,通过在多个跟踪系统之间组合和转换来组合6dof和3dof跟踪技术。因此,当任何一个跟踪系统跟踪的标记变得不可用时,diy效果图像修改系统210在6dof与3dof跟踪之间无缝切换,从而为用户提供不间断的体验。例如,在视觉跟踪系统(例如,nft、slam)的情况下,通常分析以确定取向的跟踪标记可以用来自陀螺跟踪系统的陀螺跟踪标记代替。这将因此能够基于跟踪标记的可用性在6dof与3dof跟踪之间进行转换。
70.在一些示例实施方式中,为了在6dof与3dof中的跟踪之间转换,diy效果图像修改系统210在跟踪矩阵内收集和存储跟踪标记,该跟踪矩阵包括平移标记(例如,上、下、左、右)和旋转标记(例如,俯仰、偏航、滚动)。由nft系统收集的平移标记由此可以从跟踪矩阵中提取,并且在由nft系统收集的未来平移标记变得不准确或不可用时使用。同时,旋转标记继续由陀螺仪提供。这样,当移动设备丢失跟踪标记时,在3d空间中呈现的被跟踪对象将不会在跟踪标记丢失时的帧处突然发生变化。随后,当目标跟踪对象重新出现在屏幕中,并且获得新的平移t1时,视图矩阵的平移部分将利用新的平移t1,并且使用t
1-t0作为视图矩阵的平移。
71.diy效果图像修改系统210的呈现部件502被配置成生成用户可定制效果以应用于由摄像装置产生的实时摄像装置馈送。呈现部件502被配置成将一组效果选择选项与摄像装置馈送一起呈现在阵列中,并且呈现效果属性修改滑块,以使用户能够修改当前应用于摄像装置馈送的效果的属性。
72.diy效果图像修改系统210的呈现部件502还被配置成在由摄像装置产生的实况摄像装置馈送内捕获的3d空间中生成和呈现3d字幕。例如,呈现部件502可以基于从用户接收的输入(例如,键盘输入)来生成3d字幕,并且将3d字幕呈现在实况摄像装置馈送内捕获的3d空间中。在呈现3d字幕时,diy效果图像修改系统210基于在3d空间中检测到的真实世界参考表面将3d字幕分配给3d空间中的位置。在一些情况下,呈现部件502响应于检测到摄像装置馈送中面部的存在而自动将3d字幕定位在用户的头部上方或用户的头部下方的3d空间中。当面部不再呈现在摄像装置馈送中(例如,因为用户将摄像装置向右/左/上/下平移到面部不再被摄像装置拍摄到的点)时,呈现部件502自动将3d字幕从呈现在用户的头部上方或用户的头部下方转换到参考表面(例如,地面)。类似地,当面部再次(或第一次)呈现在摄像装置馈送中(例如,因为用户将摄像装置向右/左/上/下平移到面部被摄像装置拍摄到的点)时,呈现部件502自动将3d字幕从呈现在参考表面(例如,地面)转换到呈现在用户的头部上方或用户的头部下方。
73.diy效果图像修改系统210此后可以通过6dof中的一个或更多个跟踪系统跟踪3d字幕相对于3d空间中的用户设备的位置。例如,diy效果图像修改系统210的一个或更多个
跟踪系统可以收集和分析一组跟踪标记(例如,滚动、俯仰、偏航、自然特征等)以便以6dof跟踪3d字幕相对于3d空间中的用户设备的位置。在这样的实施方式中,diy效果图像修改系统210可以基于被跟踪标记的可用性在跟踪系统之间转换,以在6dof中保持一致的跟踪。
74.中断检测部件506监测跟踪标记以检测中断。在中断检测部件506检测到一个或更多个标记的中断使得6dof中的跟踪变得不可靠或不可能时,diy效果图像修改系统210转变为以3dof在3d空间中跟踪3d字幕以防止显示的中断。例如,diy效果图像修改系统210可以从第一跟踪系统(或成组跟踪系统中的第一组跟踪系统)转换到成组跟踪系统中的第二跟踪系统(或第二组跟踪系统),其中,第二跟踪系统能够基于可用的跟踪标记在3d空间中以3dof跟踪3d字幕。
75.在一些示例实施方式中,diy效果图像修改系统210的成组跟踪系统包括陀螺跟踪系统、nft系统以及slam跟踪系统。成组跟踪系统中的每个跟踪系统可以分析跟踪标记以便跟踪虚拟对象在3d空间内的位置。例如,为了跟踪具有6dof的虚拟对象,diy效果图像修改系统210可能需要至少六个可用的跟踪标记。当跟踪标记由于各种原因变得被遮蔽或不可用时,diy效果图像修改系统210可以在成组跟踪系统中的可用跟踪系统之间转换,以便保持6dof,或者在必要时转换到3dof。
76.将容易理解,diy效果图像修改系统210在各种环境和情况中的真实世界3d空间中提供一致呈现的虚拟对象(例如,3d字幕、3d剪切和/或3d绘图或绘画)。在许多应用中,当一个或更多个用户、摄像装置或其他跟踪项目在环境中四处移动时,可能需要为这些虚拟对象的位置提供牢固的一致性。这可能涉及在真实世界环境中识别和使用特定的固定参考点(例如,固定表面)。不使用固定的参考点或项目会导致虚拟对象的呈现和表示中的浮动或其他不希望的不一致。
77.图6至图7是示出根据示例实施方式的diy效果图像修改系统在执行用于生成消息的方法600和700中的示例操作的流程图,该消息包括用用户可定制的效果和/或3d字幕增强的视频馈送。方法600和700可以被实施在由一个或更多个处理器执行的计算机可读指令中,使得方法600和700的操作可以部分或全部由diy效果图像修改系统210的功能部件执行;因此,下面将参照图6至图7以示例的方式描述方法600和700。然而,应当理解,方法600和700的至少一些操作可以部署在各种其他硬件配置上,并且方法600和700不旨在限于diy效果图像修改系统210。
78.在操作602处,diy效果图像修改系统210从用户设备的摄像装置接收视频馈送。例如,diy效果图像修改系统210接收并显示从客户端设备102的后置摄像装置接收到的摄像装置馈送。在另一示例中,diy效果图像修改系统210接收图像,例如实时视频馈送的帧和/或先前捕获的视频馈送的图片或帧。具体地,如图14a所示,图像1410(例如,视频馈送的帧)被接收并呈现给用户。
79.在操作604处,diy效果图像修改系统210接收选择用于激活用户可定制效果模式的用户可定制效果选项的输入。例如,diy效果图像修改系统210接收对创建选项1401的用户选择。响应于接收到对创建选项1401的用户选择,呈现图像修改元素的列表,用户从该列表中选择用户可定制效果选项(图14a)。
80.在操作606处,diy效果图像修改系统210显示多个效果选项的阵列以及接近用户可定制效果选项的视频馈送。例如,响应于diy效果图像修改系统210接收到对用户可定制
效果选项1402的用户选择,diy效果图像修改系统210在底层图像1410之上显示包括多个效果选项的阵列1403。
81.在操作610处,diy效果图像修改系统210将与多个效果选项中的第一效果选项相关联的第一效果应用于视频馈送。例如,diy效果图像修改系统210自动选择并应用与第一效果选项1404相关联的第一效果(例如,晒伤效果),该第一效果选项1404位于阵列1403中的第一位。底层图像1410根据与第一效果相关联的像素化图案和/或配色方案被修改。在一些情况下,接收用户输入以从阵列1403中选择第二效果选项。例如,用户可以通过在显示阵列1403的区域上扫动或滑动用户的手指来向左/向右导航。用户然后可以点击或者按压并保持特定效果选项1405(例如,古典效果),这使得diy效果图像修改系统210用新选择的效果(例如,古典效果)代替当前应用的效果(例如,晒伤效果)。所得图像1420由diy效果图像修改系统210呈现给用户(图14a)。当前激活的效果上会显示视觉指示器(例如,高亮环)。具体地,diy效果图像修改系统210现在将视觉指示器从高亮显示与晒伤效果对应的第一选项移动到高亮显示与所选择的古典效果对应的第二选项。
82.在一些实施方式中,用户可以通过在屏幕上的图像上扫动来在效果选项阵列1403的不同效果选项之间导航。具体地,如果diy效果图像修改系统210接收到用户在向左方向上扫过屏幕中的呈现图像(或修改的图像)的部分的指示,则diy效果图像修改系统210检索位于当前应用效果右侧或左侧的下一个相邻效果,并且自动应用下一个相邻效果。例如,如图14b所示,与霜效果对应的第三效果选项当前正被应用于图像1430。diy效果图像修改系统210接收来自用户的在向左方向上扫过屏幕的输入。作为响应,diy效果图像修改系统210识别紧邻第三效果选项右侧的下一个相邻效果选项。在这种情况下,diy效果图像修改系统210确定下一个相邻效果对应于霓虹灯形效果。结果,在图像1440的部分正被扫入时,diy效果图像修改系统210将霓虹灯方形效果或者与下一个相邻效果对应的效果应用于这些部分。特别地,在检索到根据下一个相邻效果显示的图像的附加部分并将其扫入到视频中时,diy效果图像修改系统210连续修改这些附加部分。结果,屏幕的第一部分呈现图像的应用了第三效果的第一部分,并且屏幕的第二部分呈现图像的应用了下一个相邻效果的第二部分。当扫入具有下一个相邻效果的完整图像并且显示呈现完全应用了下一个相邻效果的图像时,diy效果图像修改系统210更新阵列1403以指示当前正在应用下一个相邻效果。
83.图15是示出根据一些实施方式的由消息收发系统100提供的用户界面的界面图。具体来说,显示了其中将方形效果应用于底层图像(左侧)以及将明信片效果应用于底层图像(右侧)的另外两种类型的效果。
84.图16是示出根据一些实施方式的由消息收发系统100提供的用户界面的界面图。具体来说,显示了其中将莫尔效应(moire effects)应用于底层图像(左侧)以及将天线效果应用于底层图像(右侧)的另外两种类型的效果。
85.在一些实施方式中,diy效果图像修改系统210在屏幕上呈现的图像或视频上呈现接近效果选项阵列的效果修改选项。例如,如图17所示,diy效果图像修改系统210呈现当前应用了霓虹灯效果的图像1710。diy效果图像修改系统210还在效果选项阵列的右侧呈现效果修改选项1720。效果修改选项1720的视觉属性取决于效果修改选项允许用户针对所应用的效果改变的属性的类型。例如,效果修改选项1720可以允许用户改变底层效果的强度或者可以允许用户改变底层效果的颜色。如果效果修改选项1720允许用户改变强度,则效果
修改选项1720包括第一视觉属性,并且如果效果修改选项1720允许用户改变效果的颜色,则效果修改选项包括不同于第一视觉属性的第二视觉属性。
86.如果新效果选项或者应用的效果与和当前应用的效果不同的属性修改相关联,则效果修改选项1720的视觉属性仅在选择和/或应用不同的效果选项时改变。作为示例,应用于图像1710的霓虹灯效果可以与效果修改选项1720的颜色属性修改特征相关联。因此,效果修改选项1720被呈现为具有第一视觉特性。然后用户可以选择新的效果以应用于图像。diy效果图像修改系统210确定所应用的新效果是否与颜色属性修改特征或强度修改特征相关联。响应于确定新效果与颜色属性修改特征相关联(与先前应用的效果的属性修改特征相同),diy效果图像修改系统210保持效果修改选项1720的第一视觉特性。响应于确定如图18所示的新效果(例如,cctv效果)与强度修改特征相关联,diy效果图像修改系统210将效果修改选项1720的视觉特性改变为第二视觉特性1820。
87.响应于接收到与颜色修改特征对应的效果修改选项1720的用户选择,diy效果图像修改系统210用滑块1730代替效果选项阵列的显示,以改变所应用的效果的颜色。用户可以向左/向右滑动滑块1730或者滑块1730中的光标(或者在滑块1730上按压并拖动)以改变应用于图像1710的效果的颜色。例如,当用户将滑块1730进一步向右滑动时,应用于图像1710的霓虹灯效果的颜色可以从黄色变为蓝色变为红色。用户还可以在屏幕上扫动而不是滑动滑块1730来改变正在应用的效果的颜色。类似地,响应于接收到与强度修改特征对应的效果修改选项1820(图18)的用户选择,diy效果图像修改系统210用滑块1830代替效果选项阵列的显示以改变所应用的效果的强度。用户可以向左/向右滑动滑块1830或者滑块1830中的光标来改变应用于图像1810的效果的强度。用户还可以在屏幕上扫动而不是滑动滑块1830来改变正在应用的效果的强度。
88.在接收对效果修改选项1720或1820的用户选择时,diy效果图像修改系统210用新选项代替效果修改选项1720来访问效果选项阵列。响应于接收到用户对新选项的选择,diy效果图像修改系统210用先前呈现的效果选项阵列代替滑块1730/1830的显示。
89.返回来参照图7,在选项702处,diy效果图像修改系统210从用户设备的摄像装置接收视频馈送。例如,diy效果图像修改系统210接收并显示从客户端设备102的前置摄像装置接收的摄像装置馈送。
90.在选项704处,diy效果图像修改系统210从多个选项接收将3d字幕添加到视频馈送的请求,所述多个选项包括添加3d字幕的选项、创建3d剪切的选项以及以3d绘制的选项。例如,diy效果图像修改系统210接收添加3d字幕的选项的用户选择。diy效果图像修改系统210使屏幕变暗并且呈现允许用户以2d输入词汇或短语的一个或更多个字符的光标,基于该光标生成3d字幕。
91.在选项706处,diy效果图像修改系统210识别与3d字幕的上下文相关联的图形元素。例如,diy效果图像修改系统210搜索图形元素的数据库以识别与3d字幕中的词汇或短语相关联的图形元素。在一些情况下,diy效果图像修改系统210搜索与词汇或短语相关联的上下文数据库。然后,diy效果图像修改系统210检索匹配的上下文并且搜索将不同上下文与不同图形元素相关联的另一数据库,以识别与3d字幕相关联的图形元素。
92.在选项710处,diy效果图像修改系统210在视频馈送的3d空间中的靠近视频馈送中描绘的面部的位置处显示视频馈送中的3d字幕和识别的图形元素。例如,diy效果图像修
改系统210复制检索到的图形元素(例如,表情符号)并且在3d字幕的给定一侧呈现复制的图形元素的每个实例。即,第一图形元素可以位于3d字幕的左侧,而第二图形元素(即第一图形元素的副本)可以位于3d字幕的右侧。
93.图8是示出根据一些实施方式的由消息收发系统100提供的用户界面1000的界面图。用户界面1000包括滤镜转盘,用户可以从该转盘通过选择图标1002来启动diy效果图像修改系统210的功能。如图所示,滤镜转盘覆盖在由计算设备(例如,客户端设备102)的摄像装置产生的摄像装置馈送内捕获的3d空间上。
94.与一些实施方式一致,在接收到对图标1002的用户选择时,向用户呈现被配置用于创建和编辑3d字幕的编辑界面。例如,当接收到对图标1102的用户选择时,diy效果图像修改系统210可以显示图9所示的用户界面1100。如图9所示,用户界面1100包括键盘和覆盖在摄像装置馈送中捕获的3d空间上的闪烁光标。在一些情况下,当接收到对图标1002的用户选择时,用户界面1100的键盘从屏幕底部向上动画化。样式转盘(包括列出各种样式的菜单,例如圆形、幽灵、气泡、8位等)然后在键盘被向上动画化之后动画化。与键盘一起,包括各种颜色的颜色选择器也会在屏幕上显示动画效果,以允许用户用手指在屏幕上向上/向下扫动,以逐渐或快速改变3d字幕的文本输入的颜色。样式转盘和颜色选择器在图14a中显示和描述。用户可以使用键盘输入一个或更多个文本字符,这些文本字符为要在3d空间内呈现的3d字幕提供基础。用户界面1100是编辑界面212的示例。在某些情况下,可以使用屏幕上的指定选项来改变键盘的语言。
95.如图10所示,在接收到来自用户的输入(例如,通过键盘输入)时,用户界面1100被更新以呈现输入文本的表示(“typing on the screen”)。在用户界面1100内,用户输入的2d表示在客户端设备102的摄像装置馈送的前景处呈现。本质上,用户输入的2d表示是3d字幕的2d表示。换句话说,用户输入的2d表示是3d字幕的预览。在某些情况下,用于键入文本的2d表示画面以比在用户选择图标1002之前在显示器上呈现的摄像装置馈送暗(例如,亮度更小)的方式呈现。即,响应于接收到对图标1002的用户选择时,diy效果图像修改系统210使显示器变暗并且呈现允许用户输入2d文本串的光标。
96.与一些实施方式一致,客户端设备102的用户可以通过提供诸如改变客户端设备102的取向(例如,将摄像装置的取向从向上变为向下)或者通过选择在预览界面214内呈现的界面元素(例如,按钮)之类的输入来访问包括3d字幕的预览的预览界面(例如,预览界面214)。
97.图11示出了界面1300,界面1300包括基于用户输入(例如,经由界面1100提供的用户输入)生成的3d字幕的预览。界面1300是预览界面214的示例。如上所述,用户可以通过提供诸如取向改变之类的输入来访问界面1300。如图11所示,在检测到在摄像装置馈送中捕获的3d空间中的参考表面(例如,地面)时(例如,基于计算设备的取向变化),基于用户创作的文本的3d字幕被呈现在摄像装置馈送中捕获的3d空间内。如图所示,3d文本对象相对于3d空间中的参考表面进行呈现。也就是说,所呈现的3d文本对象在3d空间内定向在相对于参考表面(例如,地面)的位置处。以这种方式呈现3d对象使3d对象看起来附着在摄像装置馈送中捕获的真实世界表面。在示例中,如果后置摄像装置用于捕获和显示摄像装置馈送,则3d字幕位于摄像装置馈送中的表面例如地面上。如果前置摄像装置用于捕获和显示摄像装置馈送,则3d字幕被添加到摄像装置馈送中描绘的面部。
98.图12a至图12c示出了作为预览界面214的示例的界面。如图12a至图12c所示,当用户在访问预览界面214的同时编辑3d字幕时,用户可以使计算设备远离字幕移动,并且diy效果图像修改系统210能够跟踪移动并迫使3d字幕跟随在计算设备的摄像装置馈送内捕获的3d空间内。例如,diy效果图像修改系统210可以检测使得在摄像装置馈送中捕获第二3d空间的客户端设备的移动,并且在客户端设备的移动期间动画化从第一3d空间移动到第二3d空间的3d字幕。以这种方式,diy效果图像修改系统210确保在编辑时3d字幕对用户保持可见,直到他们提交3d字幕的最终版本。如图所示,移动3d字幕可能会以比保持静止时更低的不透明度呈现。
99.图13a至图13f是示出界面1700的界面图,界面1700是预览界面214的示例。如图13a所示,3d字幕1702在3d空间内的第一位置处被呈现;3d字幕1702被呈现为使得3d字幕1702看起来附着到参考表面1703(例如,地面)。如图13b所示,通过与3d字幕1702的适当交互(例如,选择和拖动手势),用户可以移动3d字幕1702,使得3d字幕1702被呈现在3d空间内的第二位置处。
100.如图13c和图13d所示,用户可以通过与3d字幕1702的适当交互来改变3d字幕1702的缩放和旋转。例如,用户可以用两根手指在在其上显示摄像装置馈送的输入触摸屏显示器上执行捏合和旋转手势以在参考表面上缩放和旋转3d字幕1702而不影响3d字幕1702的布局。如图13e和图13f所示,用户可以输入根据特定字体(例如,气泡字体)的文本(例如,“pizza”),并且3d字幕被生成和显示在摄像装置馈送中描绘的面部的部分上。
101.一旦用户对3d字幕的放置和外观感到满意,用户就可以创建包括3d字幕以及来自摄像装置馈送的一个或更多个图像的消息。例如,用户可以使用客户端设备102来记录视频,在该视频中呈现3d字幕,使得3d字幕看起来附着到视频中的表面。
102.图19是示出可以与本文中描述的各种硬件架构结合使用的示例软件架构1906的框图。图19是软件架构的非限制性示例,并且应当理解的是,可以实现许多其他架构以促进本文中描述的功能。软件架构1906可以在诸如图20的机器2000的硬件上执行,机器2000包括处理器2004、存储器2014和输入/输出(i/o)部件2018等。代表性硬件层1952被示出并且可以表示例如图20的机器2000。代表性硬件层1952包括具有相关联的可执行指令1904的处理单元1954。可执行指令1904表示软件架构1906的可执行指令,包括本文中描述的方法、部件等的实现。硬件层1952还包括也具有可执行指令1904的存储器和/或存储模块存储器/存储装置1956。硬件层1952还可以包括其他硬件1958。
103.在图19的示例架构中,软件架构1906可以被概念化为层的堆栈,在层的堆栈中,每个层提供特定的功能。例如,软件架构1906可以包括诸如操作系统1902、库1920、应用1916、框架/中间件1918和表示层1914的层。在操作上,层内的应用1916和/或其他组件可以通过软件堆栈激活api调用1908并且在消息1912中接收对api调用1908的响应。示出的层本质上是代表性的,并且并非所有软件架构都具有所有层。例如,一些移动操作系统或专用操作系统可能不提供框架/中间件1918,而其他操作系统可能提供这样的层。其他软件架构可以包括附加的层或不同的层。
104.操作系统1902可以管理硬件资源并且提供公共服务。操作系统1902可以包括例如核心1922、服务1924和驱动1926。核心1922可以用作硬件与其他软件层之间的抽象层。例如,核心1922可以负责存储器管理、处理器管理(例如,调度)、部件管理、联网、安全设置等。
服务1924可以为其他软件层提供其他公共服务。驱动器1926负责控制底层硬件或与底层硬件接口(interface)。例如,根据硬件配置,驱动器1926包括显示器驱动器、摄像装置驱动器、驱动器、闪速存储器驱动器、串行通信驱动器(例如,通用串行总线(usb)驱动器)、驱动器、音频驱动器、电源管理驱动器等。
105.库1920提供由应用1916和/或其他部件和/或层使用的公共基础设施。库1920提供如下功能,该功能允许其他软件组件以比与底层操作系统1902的功能(例如,核心1922、服务1924和/或驱动器1926)直接对接的方式更容易的方式来执行任务。库1920可以包括系统库1944(例如,c标准库),系统库1944可以提供函数例如存储器分配函数、串操纵函数、数学函数等。此外,库1920可以包括api库1946,例如媒体库(例如,支持诸如mpreg4、h.264、mp3、aac、amr、jpg、png的各种媒体格式的呈现和操纵的库)、图形库(例如,可以用于在显示器上以图形内容呈现2d和3d的opengl框架)、数据库库(例如,可以提供各种关系数据库功能的sqlite)、web库(例如,可以提供web浏览功能的webkit)等。库1920还可以包括各种各样的其他库1948,以向应用1916和其他软件组件/模块提供许多其他api。
106.框架/中间件1918(有时也称为中间件)提供可以由应用1916和/或其他软件组件/模块使用的较高级别的公共基础设施。例如,框架/中间件1918可以提供各种用户界面(gui)功能、高级资源管理、高级位置服务等。框架/中间件1918可以提供可以由应用1916和/或其他软件组件/模块利用的广范围的其他api,其中一些可以特定于特定操作系统1902或平台。
107.应用1916包括内置应用1938和/或第三方应用1940。代表性内置应用1938的示例可以包括但不限于:联系人应用、浏览器应用、图书阅读器应用、位置应用、媒体应用、消息收发应用和/或游戏应用。第三方应用1940可以包括由除特定平台的供应商之外的实体使用androidtm或iostm软件开发工具包(sdk)开发的应用,并且可以是在诸如iostm、androidtm、phone的移动操作系统或其他移动操作系统上运行的移动软件。第三方应用1940可以激活由移动操作系统(例如,操作系统1902)提供的api调用1908,以有利于本文中描述的功能。
108.应用1916可以使用内置操作系统功能(例如,核心1922、服务1924和/或驱动器1926)、库1920以及框架/中间件1918来创建ui以与系统的用户交互。替选地或另外地,在一些系统中,可以通过表示层例如表示层1914发生与用户的交互。在这些系统中,应用/部件“逻辑”可以与应用/部件的与用户交互的方面分开。
109.图20是示出根据一些示例实施方式的能够从机器可读介质(例如,机器可读存储介质)读取指令并且执行本文中讨论的方法中的任何一种或更多种方法的机器2000的部件的框图。具体地,图20以计算机系统的示例形式示出了机器2000的示意图,在该机器2000中可以执行指令2010(例如,软件、程序、应用、小程序、app或其他可执行代码),以使机器2000执行本文讨论的方法中的任何一种或更多种方法。因此,指令2010可以被用来实现本文中描述的模块或部件。指令2010将通用的非编程的机器2000转换成被编程为以所描述的方式执行所描述和所示功能的特定机器2000。在替选实施方式中,机器2000作为独立设备操作或者可以耦接(例如,联网)至其他机器。在联网部署中,机器2000可以在服务器-客户端网络环境中以服务器机器或客户端机器的身份进行操作,或者在对等(或分布式)网络环境中作为对等机器进行操作。机器2000可以包括但不限于:服务器计算机、客户端计算机、个人
计算机(pc)、平板计算机、膝上型计算机、上网本、机顶盒(stb)、个人数字助理(pda)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能电器)、其他智能设备、web装置、网络路由器、网络交换机、网络桥接器或者能够顺序地或以其他方式执行指定要由机器2000采取的动作的指令2010的任何机器。此外,虽然仅示出了单个机器2000,但是术语“机器”还应被认为包括单独地或联合地执行指令2010以执行本文中讨论的任何一种或更多种方法的机器的集合。
110.机器2000可以包括处理器2004、存储器/存储装置2006和i/o部件2018,所述处理器2004、存储器/存储装置2006和i/o部件2018可以被配置成例如经由总线2002彼此通信。在示例实施方式中,处理器2004(例如,中央处理单元(cpu)、精简指令集计算(risc)处理器、复杂指令集计算(cisc)处理器、图形处理单元(gpu)、数字信号处理器(dsp)、专用集成电路(asic)、射频集成电路(rfic)、另一处理器或其任何合适的组合)可以包括例如可以执行指令2010的处理器2008和处理器2012。术语“处理器”旨在包括多核处理器2004,该多核处理器2004可以包括可以同时执行指令的两个或更多个独立的处理器(有时被称为“核”)。虽然图20示出了多处理器2004,但是机器2000可以包括具有单个核的单个处理器、具有多个核的单个处理器(例如,多核处理器)、具有单个核的多个处理器、具有多个核的多个处理器或者其任何组合。
111.存储器/存储装置2006可以包括诸如主存储器或其他存储器存储装置的存储器2014以及存储单元2016,存储器2014和存储单元2016两者例如经由总线2002由处理器2004访问。存储单元2016和存储器2014存储体现本文中描述的方法或功能中的任何一种或更多种的指令2010。指令2010还可以在其被机器2000执行期间完全地或部分地驻留在存储器2014内、在存储单元2016内、在处理器2004中的至少一个内(例如,在处理器的高速缓存存储器内)或者在其任何合适的组合内。因此,存储器2014、存储单元2016以及处理器2004的存储器是机器可读介质的示例。
112.i/o部件2018可以包括用于接收输入、提供输出、产生输出、发送信息、交换信息、捕获测量结果等的各种部件。包括在特定机器2000中的具体i/o部件2018将取决于机器的类型。例如,诸如移动电话的便携式机器很可能包括触摸输入设备或其他这样的输入机构,而无终端(headless)服务器机器很可能不包括这样的触摸输入设备。将理解,i/o部件2018可以包括图20中未示出的许多其他部件。i/o部件2018根据功能被分组仅为了简化以下讨论,并且该分组决不是限制性的。在各种示例实施方式中,i/o部件2018可以包括输出部件2026和输入部件2028。输出部件2026可以包括视觉部件(例如,诸如等离子显示面板(pdp)、发光二极管(led)显示器、液晶显示器(lcd)、投影仪或阴极射线管(crt)的显示器)、听觉部件(例如,扬声器)、触觉部件(例如,振动马达、阻力机构)、其他信号发生器等。输入部件2028可以包括字母数字输入部件(例如,键盘、被配置成接收字母数字输入的触摸屏、光电键盘或其他字母数字输入部件)、基于点的输入部件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他指向仪器)、触觉输入部件(例如,物理按钮、提供触摸或触摸姿势的位置和/或力的触摸屏或其他触觉输入部件)、音频输入部件(例如,麦克风)等。
113.在其他示例实施方式中,i/o部件2018可以包括生物识别部件2030、运动部件2034、环境部件2036或定位部件2038以及广泛的其他部件。例如,生物识别部件2030可以包括用于检测表达(例如,手表达、面部表情、声音表达、身体姿势或眼睛跟踪)、测量生物信号
(例如,血压、心率、体温、出汗或脑波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的部件。运动部件2034可以包括:加速度传感器部件(例如,加速度计)、重力传感器部件、旋转传感器部件(例如,陀螺仪)等。环境部件2036可以包括例如照明传感器部件(例如,光度计)、温度传感器部件(例如,检测周围温度的一个或更多个温度计)、湿度传感器部件、压力传感器部件(例如,气压计)、听觉传感器部件(例如,检测背景噪声的一个或更多个麦克风)、接近传感器部件(例如,检测附近物体的红外传感器)、气体传感器(例如,为了安全而检测危险气体的浓度或者测量大气中的污染物的气体检测传感器)或者可以提供与周围物理环境对应的指示、测量或信号的其他部件。定位部件2038可以包括位置传感器部件(例如,gps接收器部件)、海拔传感器部件(例如,检测可以根据其得到海拔的气压的高度计或气压计)、取向传感器部件(例如,磁力计)等。
114.可以使用各种各样的技术来实现通信。i/o部件2018可以包括通信部件2040,通信部件2040能够进行操作以经由耦接2024和耦接1222分别将机器2000耦接至网络2032或设备2020。例如,通信部件2040可以包括网络接口部件或其他合适的设备以与网络2032对接。在另外示例中,通信部件2040可以包括有线通信部件、无线通信部件、蜂窝通信部件、近场通信(nfc)部件、部件(例如,低功耗)、部件和经由其他模态提供通信的其他通信部件。设备2020可以是其他机器或各种外围设备中的任何一个外围设备(例如,经由usb耦接的外围设备)。
115.此外,通信部件2040可以检测标识符或包括可操作以检测标识符的部件。例如,通信部件2040可以包括射频识别(rfid)标签阅读器部件、nfc智能标签检测部件、光学阅读器部件(例如,用于检测诸如通用产品代码(upc)条形码的一维条形码、诸如快速响应(qr)代码的多维条形码、aztec代码、数据矩阵、数据符号(dataglyph)、最大编码(maxicode)、pdf417、超代码(ultra code)、ucc rss-2d条形码和其他光代码的光学传感器)或听觉检测部件(例如,用于识别标记的音频信号的麦克风)。此外,可以经由通信部件2040得到各种信息,如经由因特网协议(ip)地理位置的位置、经由信号三角测量的位置、经由检测可以指示特定位置的nfc信标信号的位置等。
116.术语表:
117.该上下文中的“载波信号”是指能够存储、编码或携载由机器执行的指令的任何无形介质并且包括数字或模拟通信信号或其他无形介质以便于这些指令的通信。可以使用传输介质经由网络接口设备并且使用多个公知的传输协议中的任何一个来通过网络发送或接收指令。
118.该上下文中的“客户端设备”是指与通信网络对接以从一个或更多个服务器系统或其他客户端设备获得资源的任何机器。客户端设备可以是但不限于移动电话、桌上型计算机、膝上型计算机、pda、智能电话、平板计算机、超级本、上网本、多个膝上型计算机、多处理器系统、基于微处理器或可编程消费电子产品、游戏控制台、机顶盒或用户可以用于访问网络的任何其他通信设备。
119.该上下文中的“通信网络”是指网络的一个或更多个部分,该网络可以是自组织网络、内联网、外联网、虚拟专用网络(vpn)、局域网(lan)、无线lan(wlan)、广域网(wan)、无线wan(wwan)、城域网(man)、因特网、因特网的一部分、公共交换电话网(pstn)的一部分、普通
老式电话服务(pots)网络、蜂窝电话网络、无线网络、网络、另一类型的网络或者两个或更多个这样的网络的组合。例如,网络或网络的一部分可以包括无线网络或蜂窝网络,并且耦接可以是码分多址(cdma)连接、全局移动通信系统(gsm)连接或其他类型的蜂窝或无线耦接。在该示例中,耦接可以实现各种类型的数据传输技术中的任何一种,例如单载波无线电传输技术(1xrtt)、演进数据优化(evdo)技术、通用分组无线电业务(gprs)技术、增强型数据速率gsm演进(edge)技术、包括3g的第三代合作伙伴计划(3gpp)、第四代无线(4g)网络、通用移动电信系统(umts)、高速分组接入(hspa)、全球微波接入互操作性(wimax)、长期演进(lte)标准、由各种标准设置组织定义的其他标准、其他远程协议或其他数据传输技术。
120.该上下文中的“短消息”是指可以在时间有限的持续时间内访问的消息。短消息可以是文本、图像、视频等。短消息的访问时间可以由消息发送者设置。替选地,访问时间可以是默认设置或由接收者指定的设置。无论设置技术如何,该消息都是暂时的。
121.该上下文中的“机器可读介质”是指能够临时或永久地存储指令和数据的部件、设备或其他有形介质,并且可以包括但不限于随机存取存储器(ram)、只读存储器(rom)、缓冲存储器、闪速存储器、光学介质、磁介质、高速缓冲存储器、其他类型的存储装置(例如,可擦除可编程只读存储器(eeprom))和/或它们的任何合适的组合。术语“机器可读介质”应当被视为包括能够存储指令的单个介质或多个介质(例如,集中式或分布式数据库或相关联的高速缓存和服务器)。术语“机器可读介质”还将被视为包括能够存储由机器执行的指令(例如,代码)的任何介质或多个介质的组合,使得指令在由机器的一个或更多个处理器执行时使机器执行本文中描述的任何一种或更多种方法。因此,“机器可读介质”指的是单个存储装置或设备,以及包括多个存储装置或设备的“基于云”的存储系统或存储网络。术语“机器可读介质”不包括信号本身。
122.该上下文中的“部件”是指具有由功能或子例程调用、分支点、api或者对特定处理或控制功能提供分区或模块化的其他技术定义的边界的设备、物理实体或逻辑。部件可以经由其接口与其他部件组合以执行机器处理。部件可以是被设计用于与其他部件一起使用的经封装的功能硬件单元并且可以是通常执行相关功能中的特定功能的程序的一部分。部件可以构成软件组件(例如,体现在机器可读介质上的代码)或硬件部件。
[0123]“硬件部件”是能够执行某些操作的有形单元,并且可以以某种物理方式来配置或布置。在各种示例实施方式中,可以通过软件(例如,应用或应用部分)将一个或更多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或计算机系统的一个或更多个硬件部件(例如,处理器或处理器组)配置成用于执行本文中描述的某些操作的硬件部件。也可以机械地、电子地或以其任何合适的组合来实现硬件部件。例如,硬件部件可以包括被永久地配置成执行某些操作的专用电路或逻辑。硬件部件可以是专用处理器,例如现场可编程门阵列(fpga)或专用集成电路(asic)。硬件部件还可以包括通过软件临时配置成执行某些操作的可编程逻辑或电路。例如,硬件部件可以包括由通用处理器或其他可编程处理器执行的软件。
[0124]
一旦通过这样的软件而配置,硬件部件就成为被独特地定制成执行所配置功能的特定机器(或机器的特定部件),而不再是通用处理器。将理解,可以出于成本和时间考虑来决定在专用且永久配置的电路中还是在临时配置(例如,由软件配置)的电路中机械地实现
硬件部件。相应地,短语“硬件部件”(或者“硬件实现的部件”)应当被理解成包含有形实体,即为被物理构造、永久配置(例如,硬连线)或临时配置(例如,编程)成以某种方式操作或者执行本文中描述的某些操作的实体。
[0125]
考虑硬件部件被临时配置(例如,被编程)的实施方式,无需在任一时刻对硬件部件中的每个硬件部件进行配置或实例化。例如,在硬件部件包括通过软件配置成专用处理器的通用处理器的情况下,该通用处理器可以在不同时间处分别被配置成不同的专用处理器(例如,包括不同的硬件部件)。软件相应地配置一个或多个特定处理器以例如在一个时刻处构成特定硬件部件,并且在不同的时刻处构成不同的硬件部件。
[0126]
硬件部件可以向其他硬件部件提供信息以及从其他硬件部件接收信息。因此,所描述的硬件部件可以被认为通信地耦接。在同时存在多个硬件部件的情况下,可以通过在两个或更多个硬件部件之间或之中的信号传输(例如,通过适当的电路和总线)来实现通信。在其中多个硬件部件在不同时间处被配置或实例化的实施方式中,可以例如通过将信息存储在多个硬件部件访问的存储器结构中并且在该存储器结构中检索信息来实现这样的硬件部件之间的通信。例如,一个硬件部件可以执行操作,并且将该操作的输出存储在其通信地耦接到的存储器设备中。然后,其他硬件部件可以在随后的时间访问存储器设备以检索所存储的输出并对其进行处理。硬件部件还可以发起与输入设备或输出设备的通信,并且可以对资源进行操作(例如,信息的收集)。
[0127]
本文所述的示例方法的各种操作可以至少部分地由临时地配置(例如,由软件)或永久地配置以执行相关操作的一个或更多个处理器来执行。无论是被临时地配置还是永久地配置,这样的处理器可以构成进行操作以执行本文中描述的一个或更多个操作或功能的处理器实现的部件。如本文中使用的,“处理器实现的部件”是指使用一个或更多个处理器实现的硬件部件。类似地,本文中描述的方法可以至少部分地由处理器实现,其中,特定的一个或多个处理器是硬件的示例。例如,方法的至少一些操作可以由一个或更多个处理器或处理器实现的部件来执行。此外,一个或更多个处理器还可以进行操作以支持“云计算”环境中的相关操作的执行或操作为“软件即服务”(saas)。例如,操作中的至少一些操作可以由计算机组(作为包括处理器的机器的示例)执行,其中,这些操作能够经由网络(例如,因特网)并且经由一个或更多个适当的接口(例如,api)进行访问。某些操作的执行可以分布在处理器之间,不是仅驻留在单个机器内,而是部署在多个机器中。在一些示例实施方式中,处理器或处理器实现的部件可以位于单个地理位置中(例如,在家庭环境、办公室环境或服务器群内)。在其他示例实施方式中,处理器或处理器实现的部件可以跨若干地理位置分布。
[0128]
该上下文中的“处理器”是指根据控制信号(例如,“命令”、“操作码”、“机器码”等)操纵数据值并且产生被用于操作机器的对应输出信号的任何电路或虚拟电路(通过在实际处理器上执行的逻辑模拟的物理电路)。例如,处理器可以是中央处理单元(cpu)、简化指令集计算(risc)处理器、复杂指令集计算(cisc)处理器、图形处理单元(gpu)、数字信号处理器(dsp))、asic、射频集成电路(rfic)或其任何组合。处理器还可以是具有可以同时执行指令的两个或更多个独立处理器(有时称为“核”)的多核处理器。
[0129]
该上下文中的“时间戳”指的是识别某个事件何时发生的字符或编码信息的序列,例如,从而给出日期和一天中的时间,有时精确到几分之一秒。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献