针对图像的多区域检测的制作方法

文档序号:24728846发布日期:2021-04-16 22:46阅读:176来源:国知局
针对图像的多区域检测的制作方法
针对图像的多区域检测


背景技术:

1.在移动设备中,包括相机的计算设备越来越常见,包括膝上型计算机、平板电脑、数码相机、智能手机和其它移动数据、消息传递和/或通信设备。通常,用户使用与计算设备相关联的相机来拍摄各种图片,例如风景、人物、演示、白板、名片、文档、草图、绘画等图像。用户可以参考所捕捉的图像以回忆其中包含的信息,例如示意图、图片、列表和其它文本,和/或以电子方式将其交给其他用户、存储服务或设备。然而,传统上,相机捕捉的图像是静态的,并且提取图像中的特定区域以经由扫描来获得电子可用和/或可编辑信息可能是有挑战性的。
2.另外,因为照片通常尺寸很大,并且包括丰富的文本和图形信息,通过设备捕捉而自动选择的图像区域可能不是用户想要的。识别包括用户感兴趣项目的图像特定部分仍然是低效且容易出差错的。因此,仍然有广阔空间来提出针对图像的有效扫描和用户对图像范围选择过程的管理的新的和改进的构思。


技术实现要素:

3.根据本公开的第一方面的一种数据处理设备包括至少一个处理器以及一个或多个计算机可读介质。计算机可读介质包括指令,该指令当由至少一个处理器执行时,使至少一个处理器经由图像扫描应用在显示器上呈现图像。该指令还使至少一个处理器接收与图像的第一区相关联的第一输入,并且在响应于接收到第一输入,自动检测包括至少第一区的第一区域,该第一区域由第一周界定边界。该指令还使至少一个处理器经由图像扫描应用在显示器上向用户呈现第一区域作为用于扫描的潜在区域。
4.根据本公开的第二个方面的一种方法包括经由图像扫描应用在显示器上呈现图像。该方法还包括接收与图像的第一区相关联的第一输入。另外,该方法涉及响应于接收到第一输入自动检测包括至少第一区的第一区域。该第一区域由第一周界定边界。此外,该方法包括经由图像扫描应用在显示器上向用户呈现第一区域作为用于扫描的潜在区域。
5.根据本公开的第三个方面的一种方法包括经由图像扫描应用在显示器上呈现图像,以及接收与图像的第一区相关联的第一输入。另外,该方法包括在响应于接收到第一输入自动呈现包括至少第一区的第一四边形区域。在另一个步骤中,该方法包括接收与图像的第二区相关联的第二输入,其中第二区位于第一四边形区域的外侧。此外,该方法包括响应于接收到第二输入自动呈现包括至少第一四边形区域的第二四边形区域。
6.提供本发明内容以简化形式介绍一些概念,这些概念将在下面的具体实施方式中进一步描述。本发明内容既不旨在标识所要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求保护的技术方案的范围。此外,所要求保护的技术方案不限于解决在本公开的任何部分中指出的任何或所有缺点的实施方式。
附图说明
7.附图描绘了根据仅作为示例而非限制的本公开的一个或多个实施例。在附图中,
相似的附图标记指代相同或相似的元素。此外,应当理解,附图不一定是按比例绘制的。
8.图1a和图1b均图示了图像扫描应用和环境的实现;
9.图2是图示了用于管理图像中的区域以用于扫描的分布式计算环境的一个实现的概念图;
10.图3是图示了被配置为提供扫描工具和真实世界设定的应用的用户界面的实现的显示图;
11.图4是图示了被配置为向扫描工具提供所选择的图像中的第一区域的用户界面的实现的显示图;
12.图5a和图5b是显示图,其图示了被配置为提供扫描工具的用户界面的实现,其中第一用户输入使图像中的不同的第二区域被选择;
13.图6a和图6b是显示图,其图示了被配置为提供扫描工具的用户界面的实现,其中第二用户输入使图像中的不同的第三区域被选择;
14.图7是显示图,其图示了被配置为提供扫描工具的应用的用户界面的实现,其中图像中的第一区域被选择;
15.图8a和图8b是显示图,其图示了被配置为提供扫描工具的应用的用户界面的实现,其中第一用户输入使图像中的不同的第二区域被选择,第二区域包括第一区域;
16.图9a和图9b是显示图,其中图示被配置以提供扫描工具的应用的用户界面的实现,其中第二用户输入使图像中的不同的包括第三区域被选择;
17.图10a

10g是图示了被配置为响应于多个用户输入来检测图像中的变化区域的应用的实现的示意图;
18.图11a和图11b是显示图,其图示了被配置为提供扫描工具的应用的用户界面的实现,其中第一用户输入使图像中的不同的第二区域被选择;
19.图12是针对扫描选择工具的实现的过程流程图;
20.图13是图示了用于管理扫描选择的过程的实现的流程图;
21.图14是示例计算设备的框图,该示例计算设备可以被用于提供本文描述的机制的实现;以及
22.图15是图示了被配置为从机器可读介质读取指令的示例机器的组件的框图。
具体实施方式
23.在下面的具体实施方式中,通过示例阐述了许多具体细节以便提供对相关教导的透彻理解。然而,应当清楚,可以没有这样的细节的情况下实践本公开。在其它情况下,在相对较高的水平且没有细节的情况下,描述了众所周知的方法、程序、组件和/或电路装置,以避免不必要地混淆本公开的各个方面。
24.以下实现介绍扫描应用工具箱,该工具箱可以通过接收输入来增强用户的扫描体验,该应用可以利用该输入来确定图像中的哪个区域将被检测和/或标识为用于扫描。传统上,扫描工作流程包括一系列步骤,其中用户可以:(1)将相机对准文档;(2)拍照;(3)裁剪或拖动文档边界以更精确地围绕感兴趣的对象;(4)清洁所选择的图像内容(滤波、透视校正等)以及;(5)保存文件和/或共享扫描项。为了标识用于扫描的区域,一些应用可能会检测被称为“四边形”或四边形形状的区域。在一些情况下,四边形表示文档或其它对象,其中
andandandgoogle和helmut filmgoogleevernoteevernote这些非限制示例以及任何其它电子内容编辑或查看应用可以从本公开的实现获益。
30.在图像的扫描期间,在有多个潜在区域可供扫描的情况下,端用户可能会被减缓或阻碍。用于本申请的目的,扫描或进行扫描指代应用用以标识、选择、分隔或以其它方式来确定图像中用户可能感兴趣的特定区域的边界的机制。因此,扫描可以实时发生(例如,当相机指向场景或对象时),和/或在捕捉、生成或在存储器中存储图像之后发生,并且可以被理解为允许对图像中的特定区域的高分辨率捕捉。换句话说,在一些实现中,扫描可以涉及在更大的捕捉的图像中捕捉更小区域。
31.以下的实现被配置为向用户提供能够检测给定位点周围的四边形。在一些实现中,如果多个四边形在图像中可用或被检测到,用户在与想要的四边形相关的范围中的手指轻敲,可以配置为帮助确定与“轻敲”区域相关的潜在四边形的边界(例如,周界)。这样的应用能使用户捕捉一个或多个他们选择的四边形。因此,在不同实现中,用户可以将便携式设备的相机对准拍摄对象,并使用按钮、语音命令、触摸、手写笔、鼠标、方向键和/或其它合适的输入设备来发起对拍摄对象的图像的捕捉或记录。当用户发起捕捉时,捕捉操作可以发生以捕捉拍摄对象的图像。图像捕捉可以发起对所捕捉的图像的各种处理,以检测第一可扫描区域并将该区域呈现给用户。在触摸屏上触摸输入或触摸事件可以指示用户的感兴趣范围,并且将尝试对不同的第二区域的检测。触摸输入的位置可以被用于将可能区域的范围缩小到仅包括由用户标识的图像内容部分的范围。
32.为了更好地向读者介绍系统和方法,图1a和图1b呈现了用于实现多区域扫描系统的代表性区域选择和检测扫描环境的示例(图2中对该系统有更详细的示意性地图示)。在不同实现中,环境可以包括多个计算设备端用户,或者简单地说“用户”(例如第一用户、第二用户、第三用户等),其能够捕捉、查看、编辑和/或修改图像。一个或多个用户可以与经由用户设备呈现的图像进行交互或操作该图像。当用户查看电子内容(诸如图像)时,图像的各种区域可以被检测或者以其他方式被标识为潜在可扫描。在一个实现中,用户可以查看或被呈现单个图像中的多个区域。
33.图1a和图1b中,用户102手持设备150,其中图像100经由图像扫描应用被呈现在显示器120上。图像100可以包括如上文描述的任何类型的数字媒体文件。在该示例中,图像100是包括多个图像区块160的数字图像。图像区块可以被理解为指代潜在或可能的可扫描区域。每个区块在这里用一个小的矩形(四边形)表示。然而,在其它实现中,区块可以由其它规则形状来定义,诸如三角形、圆形、五边形和不同的几何轮廓,或其他不规则形状。虽然出于该示例的目的仅描绘了5个区块,图像可以包括任何数量的区块。另外,为了简单起见,在这种情况下,每个区块或四边形对应于真实世界中的单独项目。
[0034]“界面”将被理解为指代通过客户端应用向应用用户传送内容的机制。例如,界面可以包括可以经由本机应用用户界面(ui)被呈现给用户的弹窗、控件、可致动界面、交互式按钮、或通过本地应用ui以及特定于应用的用于呈现与那些原生控件相关联的内容的原生
机制而可以被显示给用户的其它对象。此外,“致动”或“致动事件”指代经由界面与特定应用输入或使用相关联的事件(或特定的事件序列),诸如,可以触发在应用上的显示的改变的手指轻敲、键盘命令、语音命令或鼠标点击。
[0035]
在该示例中,图1a和图1b中的设备150的显示器120上可以区分五件项目。显示器120可以被配置为从与设备150相关联的相机接收实时预览的数据,并且通过图像捕捉或图像扫描来呈现相机视场中的项目或对象。在一些实现中,应用可以提供或呈现图形用户界面,其在本文被称为图像内容扫描界面(“界面”)。在一些实现中,界面可以在显示器120上“全屏”或仅在显示器120的部分上呈现和/或界面可以基本上透明,使得通过应用接收来与屏幕或图像的交互,与此同时,图像本身仍然完全可见,而没有附加的界面图形的叠加,否则会阻碍观看图像。然而,在其他实现中,应用可以呈现与图像关联的、覆盖图像或邻近图像的各种图形元素,例如菜单、设置或其它选项。
[0036]
此外,应用可以包含设备150的功能以实现本文描述的基于相机的扫描技术。界面190被图示为取景器,取景器可以呈现来自相机的当前图像和/或当图片已被拍摄或正在从存储器中被访问时切换到呈现已捕捉的图像(例如,来自存储器)。另外,在一些实现中,用户可以能够通过与显示器120的取景器部分进行交互来修改和/或选择捕捉图像的各部分。
[0037]
在一些其它实现中,界面190可以被配置来显示或呈现各种指示符以将用户引导到在图像中检测到的任何可扫描区域。例如,界面190可以被配置为显示或呈现菜单、符号或其它可致动选项,其可以允许用户轻松导航通过任何检测到的可扫描区域和/或简单地提醒用户在同一图像中有可用的多个或备选的可扫描区域。在一些实现中,检测到的区域可以按照目标区域是用户想要的可扫描区域统计概率的顺序被高亮或呈现。然而,在其它实现中,应用可以仅检测第一区域,并且如果用户随后提供了对应于检测其它区域的请求的某种输入,则仅搜索和/或检测备选的(第二)区域。
[0038]
在图1a和图1b中,每个区块都与真实世界场景130中的特定特征、对象或范围相关联或对应。在该示例中真实世界场景130包括在桌子136上的书132和铅笔134。然而,设备150中的相机被定位或定向,使得真实世界场景130的仅部分以“预览”模式被呈现在显示器120上。因此,图像100可以理解为对应于更大场景130的子场景,在这种情况下,包括书132的页面138,以及页面138的各种内容。在该示例中,页面138的各种内容包括第一插图172,第二插图174,第三插图176,第四插图178和第五插图180。为简单起见,上文所标识的图像100的每个指定区块160对应于页面138上的单个插图。然而,应该理解,在其它实现中可能有其它类型的区域,检测到的区域的边界可能更复杂,和/或潜在的可检测区域之间可能有重叠。
[0039]
在图1a中,通过显示器120向用户102呈现第一区域162(对应于第一插图172)已被自动地检测到(由围绕第一区域162的边界的粗线表示)。在一些实现中,与检测到的区域相关联的边界被高亮或以其它方式区分,以通知用户已经检测到并且当前被选择的区域。然而,应理解,在许多情况下用户可能想要选择与剩余项目中的任一个(诸如第二插图174、第三插图176、第四插图178和/或第五插图180)相关联的第二区域。在不同实现中,系统可以包括从用户接收指示哪个区域是实际上想要的或者是“正确的”区域的输入的配置。
[0040]
作为示例,在图1b中用户已经触摸了在显示器120上显示的图像100的部分(“区”)122。该输入通过应用被接收,作为对用户的目标区域包括区122中可见或被显示的那些内
容的指示。因此,系统可以检测是否有任何其它可能的可扫描区域以及进一步确定哪个或哪些区域包括区122。在这种情况下,应用检测包括区122的第二区域164,并且高亮第二区域164以指示用户对于扫描的选择。在一些实现中,第一区域162还可以被取消选择,使得一次只选择仅一个可扫描区域。然而,在其它实现中,第一区域162和第二区域164(以及附加的区域)可能被同时选择以用于扫描。这样可以大大减少从图像中收集想要的内容所需的时间。不要求用户重拍照片、裁剪照片、放大、聚焦、调整光照条件、增加对比度、或操纵其它的图像参数,以试图“帮助”应用程序来检测需要的区域,用户能够简单的触摸(或以其他方式来交互)图像中包括在想要的区域中的任何部分,并且应用自动地检测正确的区域。
[0041]
现在参考图2,描述了多区域检测扫描系统(“系统”)200的代表性架构的示例。在不同实现中,系统200可以被配置来呈现用户界面,用于电子内容的显示和以及可扫描区域的标识。系统200可以进一步被配置为基于用户的输入来更新所选择的区域。应理解,本文提出的系统200仅是示例实现,出于清楚目的仅提出了一些方面,并且各种其他实现是可能的。
[0042]
在图2中,系统200包括设备240。设备240可以包括能够呈现图像和/或图像相关内容的任何类型的设备,诸如相机、移动电话、平板电脑、笔记本电脑、台式机、游戏设备、投影仪以及其它类似设备。设备240可以包括各种硬件和软件组件。在该示例中,尽管扫描应用250被示为被本地安装在设备240上,但是在其它实现中,扫描应用250的部分或全部方面或特征可以从另一个设备被访问或者从云存储计算服务器被访问。
[0043]
扫描应用250被配置为经由设备240接收图像内容210。图像内容210可以是先前已捕捉的或“静态的”:从存储器214(本地、外部或基于云的存储器)访问,或者可以是“直播的”并且当前被实时查看或捕捉。扫描应用250可以经由四边形标识模块260来接收图像内容210,四边形标识模块260被配置为处理图像内容210的数据以及检测对应于近似或基本四边形形状的对象的图像的部分。特别地,四边形检测模块262可以被配置为标识图像内可以被特征化为用于扫描的潜在区域的四边形。可以使用适用于在图像和其它文档中发现任意的形状的各种特征抽取技术来检测这些四边形。
[0044]
在不同实现中,设备240被进一步配置为经由用户输入处理器270来接收用户输入202。用户输入202可以基于所使用的输入装置的类型而广泛变化。图2中,用户输入202可以被理解为与正在被用户查看或访问的一些特定的图像的目标部分或方面相关联或相对应。在一个实现中,用户输入处理器270可以在用户输入历史组件274中以某种形式存储用户输入202,以供以后参考(参见图10a

10g)。例如,用户输入可以包括触摸屏界面上的触摸或者鼠标点击,其指定图像中的用户想要的包含在扫描区域中的目标区。
[0045]
在一些实现中,用户输入202可以由区确定模块272处理,区确定模块272被配置为处理和评估与设备显示相关的输入,并且确定显示的哪个部分(区)是用户输入的目标或被用户输入选择。四边形区匹配模块264可以接收由区确定模块272和四边形检测模块262二者生成的信息,以便确定所检测的四边形中是否包括已被区确定模块272标识的区以及是哪些区。被分类为包括目标区的任何四边形都可以被四边形区匹配候选模块266收集和存储。
[0046]
在不同实现中,特别是在四边形区匹配模块264确定存在包括目标区的多个四边形候选块的情况下,四边形标识模块260可以配置为评估哪个或哪些四边形表示或对应于
图像中想要的扫描区域的可能性最大。该确定可能基于各种因素,包括用户输入、图像内容、先前的输入、图像特点、以及与图像中已检测到的并且被分类为四边形区匹配的每个边或顶点相关联的置信度。如果仅有一个四边形适合作为四边形区匹配候选,该四边形将被四边形选择器284自动选择。然而,如果多个潜在的四边形被标识,则四边形概率确定模块282可以评价每个潜在候选四边形并且估计哪个最可能表示意图的扫描区域。四边形选择器284接收该候选并提交它到四边形显示组件286。连接到设备240的显示器可以接收由四边形显示组件290生成的信息并且向用户呈现该四边形,该四边形重叠或叠加在图像内容210上。在一些实现中,四边形显示组件286可以访问来自视觉指示符模块268的各种图形元素。在请求或需要附加用户界面元素的情况下,附加用户界面元素可以叠加或重叠在显示器290上正在呈现的图像内容之上。
[0047]
为清楚起见,现在参考图3

6,呈现了可扫描区域选择过程的一个实现。在图3中,图像扫描应用(“应用”)300被描绘,由显示在显示器390上的图形用户界面(gui)表示。在不同实现中,应用300被用于发起gui和各种用户界面元素、特征和控件的显示,以促进经由相机(未示出)捕捉图像、扫描和/或图像处理。
[0048]
在一些实现中,用户可以通过查看或捕捉真实世界场景(例如,拍照或摄像),通过捕捉或查看包括虚拟生成对象(例如,截屏或截图工具)的图像,或者通过加载任何先前捕捉或保存的图像以经由应用或结合应用来查看,来发起扫描。例如,主题可以包括一个或多个四边形的对象,诸如文档、纸、名片、照片、白板、支票、艺术品、人物和其他此类对象中的一个或多个。可以理解,应用300最经常被实现为检测大致对应于矩形对象的图像的部分。
[0049]
如前所述,在一些实现中,应用300可以被配置为检测和/或标识在图像内可以适合作为潜在扫描区域的四边形。这些还可以被称为四边形区域。可以使用适用于在图像和其它文档中发现任意形状的各种特征抽取技术来标识四边形在图像内的四边形。换句话说,在一些实现中,应用可以被配置为检测所查看图像的大致对应于具有四条边的形状或对象的部分。特别地,应用可以被配置为标识捕捉图像内可能是潜在扫描区域的四边形。
[0050]
在一些实现中,应用300包括或以其他方式利用边检测器,边检测器用于基于视觉差异(如亮度的急剧变化)来检测边。当边被标识时,这些边可以被连接成为相连的线,以形成一个四边形形状的周界。例如,通过边检测机制可以标识顶点(角),并且这些顶点可以被连接或映射以形成四边形。因此,可以基于检测到的边和线来得到一组潜在的四边形区域,其中从沿着特定方向的相似取向的边检测到线,然后将这些线组合以形成四边形。
[0051]
图3中呈现了该示例的机制,gui覆盖在由连接或集成到设备350(这里表示为移动电话)中的相机捕捉真实世界场景302的实时图像的显示上。在图3中,真实世界场景302是艺术画廊,其中几件艺术品沿着墙固定,包括第一对象310、第二对象320和第三对象330,它们在这里彼此靠近地排列着。画廊的部分包括正在被设备350的相机捕捉的画廊墙壁部,并且可以在显示器390上作为第一图像340被看到。第一图像340可以是数字表示,包括第一主题312(对应于第一对象310)、第二主题322(对应于第二对象320)以及第三主题332(对应于第三对象330)。在图3的实现中,应用300处于被动模式,在该模式中图像被查看但不发生扫描或区域检测。
[0052]
在不同实现中,在应用程序300的扫描或区域检测特征已经被激活或发起之后,应用300可以被配置为自动检测图像中的用于扫描的区域。然而,应理解,在其它实现中该应
用可以不要求被动模式和主动模式之间的任何转换,并且替代地,可以被配置为一旦发起图像查看就尽快检测要扫描的区域。
[0053]
在图4中,第一图像340在设备350上显示,并且已经激活应用300的扫描操作。在图4中显示器390进一步包括与第二主题322的第一周界324相关联或围绕该第一周界324的指示符342。指示符342可以向用户指示已经检测到候选区域,和/或强调区域的边界。这样指示符可以出现在用户界面来帮助区分或高亮捕捉图像中的被检测和/或被选择的四边形。
[0054]
指示符可以在不同的实现中变化,并且可以包括各种效果,诸如闪烁、亮度变化、沿检测区域的各部分的图形元素的叠加、闪光灯、动画线、颜色变化、标志、图形元素(诸如每个顶点处的点或圆圈以及沿边缘出现的虚线或实线),或其它类似的视觉指示符。例如,在图4中指示符342包括大致围绕第二主题322的增加的亮度。
[0055]
可以理解,在许多情况下,被应用300标识为潜在扫描候选的第一检测区域可能不对应于用户具体想要扫描的区域,或者该第一检测区域可能仅是用户想要扫描的多个区域中的一个区域。在不同实现中,用户可以提供可以由应用300使用的输入信号,以细调或改进区域检测过程。该信号可以变化,但是可以包括指定显示器的、位于用户想要扫描的区域的边界内的另一个(第二、第三等)不同部分或区的用户输入。在一个实现中,在接收到指示一个或多个具体像素坐标集合的用户输入时,应用300可以被配置为仅检测图像中包含或包括一个或多个指定坐标的一个或多个区域。
[0056]
该特征的一个示例依次在图5a和图5b中被描绘。在图5a中,第二主题322仍然被高亮或仍然保持选择用于扫描。然而,用户(由手510表示)被示为与显示器390进行交互。在这种情况下,用户在显示器390的第一区550处轻敲或接触显示器390(在该图中用一系列放射状同心圆弧来表示),其中可以理解的是,第一区550被包括、放置或位于用户想要的区域之中。作为回应,应用300可以自动发起对包括至少第一区550的四边形区域的搜索或检测。
[0057]
在不同实现中,应用300可以被配置为检测包括对应第一区550的目标范围的一个或多个区域并且呈现这些候选区域给用户。在图5b中,具有第二周界524的第一主题312现在被呈现为潜在扫描候选(由指示符542表示),而不是第二主题322。然而,在其它实现中,先前检测的区域(扫描候选)可以保持被选择,使得用户可以选择并且将多个离散区域汇编为用于扫描的单个图像。
[0058]
依次在图6a和图6b中图示了这种多区域选择工具的一种实现。在该示例中,应用300处于主动模式,第一主题312已经被指示符543高亮为可扫描候选区域(与图5b的图示相似)。然而,用户(由手510表示)现在被示为与显示器390交互。在这种情况下,用户在显示器390的第二区650轻敲或接触显示器390(参见放射状的同心圆弧),其中可以理解,第二区650被包括、放置或位于用户想要的区域之中。作为响应,应用300可以自动发起对包括至少第二区650的四边形区域的搜索或检测。
[0059]
在不同实现中,应用300可以被配置为检测包括第二区650中的范围的一个或多个区域。在图6b中,具有第三周界624的第三主题332现在作为潜在扫描候选被呈现(由指示符642表示),与此同时第二主题322仍然被选择。换句话说,扫描界面可以包括用于由用户输入以促进选择多个区域进行扫描的配置。在一些实现中,这可以发生在经由与该应用相关联的菜单或设置选项而可用的多区域扫描模式或选项期间。在一些实现中,各种命令或快捷方式(例如,手指轻按与屏幕的接触的持续时间、键盘命令、双击、滑动等)可以被应用解
释为在单区域选择模式(参见图5a和5b)和多区域选择模式(参见图6a和6b)之间切换的指令。在不同实现中,可以对多个区域的选择进行汇编,使得按照选择发生的顺序对每个区域进行扫描,从而允许用户方便地优先处理或组织来自单个图像的扫描项目
[0060]
应理解,除本文描述的工具之外,在使用该应用时其它扫描特征仍然对用户可用。例如,在一些实现中,各种指示符可以是用户可选择的,以允许对选择的四边形进行调整,例如,通过拖动角来重新定位角。再例如,用户可以通过与用户界面的交互来选择一个角来以定义自定义四边形,并且在某些情况下,应用可以基于用户对指定角的选择来自动生成相应的四边形。用户还可以能够在用户界面上应用选择和拖动工具来更直接地标识选择范围(例如,自定义四边形)。
[0061]
如前所述,在一些实现中,区域候选可以与另一区域候选重叠,该另一区域候选包含或包括由用户输入指定的像素坐标。现在参考图7,一个这样场景的示例被呈现。在图7中,图像扫描应用(“应用”)700被描绘,其由显示在显示器790上的图形用户界面(gui)表示。在不同实现中,应用700被用于促进经由相机(未示出)捕捉图像、扫描和/或图像处理。
[0062]
如上文关于图3的描述,用户可以通过查看和捕捉真实世界场景(例如,通过拍照或摄像),通过捕捉或查看包括虚拟生成的对象(例如,截屏或截图工具)的图像,或者通过加载任何先前捕捉或保存的图像用于在应用中查看,来发起扫描。在该示例中,用户正在查看先前捕捉(保存)的第二图像748。因此,在这种情况下,基本透明的gui在设备750(这里表示为平板电脑)的显示器790上的静态图像的呈现整合和重叠,静态图像的呈现包括与显示图像中的主题相对应的多个真实世界对象。在图7中,静态图像710包括相片710大致由第一边界垫720围绕或环绕。另外,第一边界垫720(以及放置或布置在由第一边界垫720定边界的内部空间内的相片710)进一步大致由第二边界垫730围绕或环绕。换句话说,第一边界垫720和相片710放置在由第二个边界垫730界定的内部空间中。此外,相框740基大致围绕或环绕第二边界垫730。
[0063]
为简单起见,虽然这里标识的每个对象(相片710、第一边界垫720、第二边界垫730以及相框740)被布置成彼此大致同心的布置,但应该理解,本文描述的工具可以适用于区域之间彼此不环绕或围绕的场景,但是可以扩展到其中有两个或多个区域重叠、共享或包括至少一组相同像素坐标的任何图像。在图7中,应用700自动呈现具有第一周界724的第一候选区域用于扫描,第一周界724在这种情况下包含相片710,如指示符742所指定。虽然在图7中最初呈现了最小或在最中心的区域,但是应理解在其它实现中,作为对图像应用的算法的结果,任何其它区域可以被自动呈现。
[0064]
然而,如上面记录的,最初或者以其他方式被应用标识为潜在扫描候选的第一检测区域候选可以不对应于用户感兴趣或者用户想要扫描的区域,或者可能仅是图像内想要扫描的多个区域中的一个区域。在一些实现中,用户可以输入信号,该信号可以被应用700用于细调区域检测过程。
[0065]
参考图8a,在一些实现中,用户可以经由触摸屏输入机制与应用700进行交互,并且通过触摸(参见靠近手850的同心圆弧)来指示感兴趣的区域包括第一组坐标或位置(“第一区”)810。应用700可以接收该输入,并且作为响应来重新运行或重新发起四边形检测过程,该过程现在仅限于检测包括所指定的第一区810的那些四边形。换句话说,响应于用户输入,应用700可以自动发起针对包括第一区810的四边形区域的新搜索。在图8b中,可以看
出,该过程导致了由第二周界824定边界的第二区候选域的标识,如指示符842所指定。在这种情况下,第二候选区域包含相框740以及被放置或包括在相框的内部空间内的所有对象(例如,第二边界垫730、第一边界垫720和相片710)。
[0066]
因此,在图7、图8a和8b之间所图示的示例中,应用已从中心(内部)四边形切换到外部(外围)四边形。在其它实现中,替代地,用户可以确定感兴趣区域位于这些四边形之间。参考图9a,用户(由手850表示)再次与显示器790交互。在这种情况下,用户在显示器790的第二组坐标(“第二区”)910处轻敲或接触显示器790,应理解,第二区910被包括、放置或位于用户想要的区域之中。作为响应,应用700可以自动发起针对至少包括第二区910的四边形区域的新搜索。在图9b中,可以看到,这个过程已导致了由第三周界924定边界的第三候选区域的标识,如指示符942所指定。在这种情况下,第三候选区域排除了相框740,并且替代地,仅包含第二边界垫730以及被放置或包括在第二边界垫730的内部空间内的所有对象(例如,第一边界垫720和相片710)。
[0067]
可以注意到,在有多个四边形包括用户的目标范围(例如,第一区)的情况下,应用可以检测和呈现扫描候选(“第一四边形区域”),该扫描候选实际包括第一区,但是仍然不对应于用户实际想要扫描的区域。例如,在扫描存在重叠的两个或多个四边形的图像时这可能发生。在这样的情况下,应用可以被配置允许用户重复录入相同或类似的一个或多个输入。例如,用户可以提交与第一区的指定相对应的重复输入。应用可以接收相同输入的提交,作为搜索和检测还包括第一区的至少第二(备选)四边形区域的请求,其中第二四边形区域不同于所标识的第一四边形区域。可以重复该过程,其中用户继续轻敲或以其它方式指定与第一区相关联的坐标,直到包含第一区的正确区域被标识为止。
[0068]
在不同实现中,应用700还可以被配置为促进对“非典型性”四边形的用于扫描的区域的选择。例如,用户可以最初选择外部的四边形(例如,相框740)并且保留这个选择,同时从单个图像中添加进一步的四边形选择(第二区域、第三区域、第四区域等),如上文关于图6a和图6b的讨论。然而,在用户最初选择第一区域并且保留所选区域,然后选择第二区域的情况下,应用可以被配置为分隔被包含在所选择的两个区域内或者在所选择的两个区域的边界之间延伸的形状。换句话说,如果用户选择第一区域(诸如相框740)以及第二区域(诸如相片710),应用可以被配置为将这两种选择解释为指定所产生的第三区域的外部边界,该第三区域在第一四边形和第二四边形的边界之间的空间中延伸,或者被封闭或放置在该空间内(在这种情况中,相框740、第二边界垫730和第一边界垫720,并且不包括相片710)。这样的“双边界”区域还可以被称为有孔或空心四边形。
[0069]
另外,在使用该应用时,传统扫描功能仍然对用户可用。例如,在一些实现中,当多个区域被用户选中时,每个区域可以是可选择的,以允许自定义一个或多个四边形,诸如通过拖动角来重新定位角。关于上文描述的场景,如果选择了有孔四边形,则用户可以通过与用户界面交互来选择顶点或角,以自定义或调整内部边界和/或外部边界。应用可以被配置为基于用户对指定角的选择来自动得到相应的四边形。用户还可以能够在用户界面上应用选择和拖拽工具来更直接地标识边界以用于选择(例如,自定义有孔四边形)。
[0070]
在不同实现中,可以通过公开的系统的实现来提供其它工具。在包括一群合并或重叠区域的图像中,以下过程可能有用。在图10a

10g中呈现了备选的扫描应用实现的示例。在图10a中,示出了具有标识的多个候选区域的简化显示的图示。为清楚起见,仅显示了
几个区域,并且这些区域均被布置为彼此直接相邻或彼此合并/相邻。特别地,在图10a中,出于引用的目的,第一区域(区域a)、第二区域(区域b)以及第三区域(区域c)被标记。应理解,用户可能想要的不是区域a、b或c中任一个(作为分隔区域)的四边形,而是想要包含或包括这些区域中的两个或更多个区域的四边形区域。例如,第四区域(区域d)可以理解为横跨并包括区域a和区域b,第五区域(区域e)可以被理解为横跨并包括区域b和区域c,以及第六区域(区域f)可以被理解为横跨并包括区域a、区域b和区域c。
[0071]
在图10b中,用户(由手表示)1000被显示为提供与位于区域a中的第一区相关联的第一输入1010。响应接收到第一输入1010,应用可以被配置为自动检测和呈现区域a(参见与区域a的周界相关联的第一指示符1012)作为潜在区域候选。在一些实现中,用户1000实际上可能意图请求更大区域d的扫描。在这样场景中,不解除或取消选择区域a,和/或不尝试定位将会触发想要的四边形的不同的点(区),用户可以简单地提供与区域d中的第二区(这里位于区域b中)相关联的第二输入1020(参见图10c)。响应于接收到该第二输入1020,应用可以被配置为自动检测并呈现区域d(参见与区域d的周界相关的第二指示符1022)。换句话说,在一些实现中,应用被配置为接收两个或更多个不同输入的序列,并且基于该输入检测用于扫描的区域。响应于接收到针对图像的输入序列,该图像包括彼此直接相邻或以其他方式共享该图像的至少一部分的多个候选区域,应用可以被配置为检测和呈现所产生的更大的四边形,该四边形包含、包围或包括用户指定的每个子区域。
[0072]
关于图10d示出了另一示例,其中用户想要包括若干个“子区域”或四边形分段的区域。更多数目的子区域可能增加快速和有效定位和/或选择想要的四边形的难度。如图10d中所示,用户1000提供与第三区相关联的第三输入1030(这里位于区域c中)。响应于接收到该第三输入1030,应用可以被配置为自动检测和呈现区域f(参见与区域f的周界相关联的第三指示符1032)。因此,应用可以向用户提供有效和高度精确地选择他们想要的扫描区域的方式,即使在图像或四边形包括多个子四边形的情况下。
[0073]
在不同实现中,用户可以输入错误的序列或以其它方式改变他们已选择的用于扫描的区域的想法。本文描述的过程还可以被配置为允许用户

撤销’或修改所选择的用于扫描的区域。在图10e中,用户1000想要从图10d的更大的区域f中移除或排除第一区域(区域a)。在这种情况下,用户1000可以提交或提供与位于区域a中的任何范围或部分(包括第一区)相关联的第四输入1040。该输入可以简单地包括单次轻敲,其类似于之前提供的用于选择区域的输入。因此,当区域先前已经被选择并且之后被重新选择,或与高亮区域相关联的输入(第四输入1040)被接收时,应用可以被配置为自动检测和移除指定的区域,与此同时,保持对其它区域的选择时,如与区域e的周界相关联的第四指示符1042所表示。换句话说,在一些实现中,应用被配置为接收两个或更多个输入的序列。响应于接收到针对图像的特定输入序列,该图像包括彼此直接相邻或以其他方式共享该图像的至少一部分的多个候选区域,应用可以被配置为检测针对先前选择区域的输入,并从当前的扫描选择中移除或删除该区域。
[0074]
类似地,用户可能希望分隔或瞄准用于扫描的范围,包括当前统一的或连续的更大四边形选择的部分。在图10f中,用户1000显示提交定位在区域c中与范围或部分(包括第三区)相关联的第五输入1050。该输入可以简单的包括单次轻敲,类似于先前提供的用于选择区域的输入。在该示例中,应用接收第五输入1050,并且作为响应,自动检测和移除对应
于第五输入1050的区域,与此同时保持对任何剩余区域的选择,如与区域b的周界相关联的第五指示符1052所表示。备选地,在图10e之后,如果用户希望分隔出区域c而不是区域b,则用户可以提交与区域b的任何部分相关联的第六输入1060,如图10g中的第六指示符1062所示。
[0075]
应理解,在不同实现中,虽然这类“取消选择”模式可以经由应用提供的菜单选项而可用,但是这种模式也可以由不同的输入类型来触发。在某些情况下,如果用户希望取消选择已经选择的四边形(如本文关于图1

10的描述),例如,他们可以简单地双击(连续两次快速轻敲)先前选择的四边形,并且应用可以被配置为自动从选择中移除(撤销)相应的区域。其它输入类型,包括在选定的四边形上按下手指或鼠标点击至少持续一段时间、或其他类型的点击、键盘快捷键或语音命令,可以被用于或由用户经由应用设置来自定义为选择/取消选择区域。
[0076]
在图11a和11b中,显示图图示了扫描应用的用户界面的另一种实现。在图11a中,第一用户输入使图像中的第一区域被选择,如与显示器1190的交互的手1110所表示。在这种情况下,用户已经在显示器1190的第一区1150处轻敲或接触(或其它方式提供的输入类型)显示器1190(由同心弧表示),应理解,用户输入指示第一区1150被包括、放置、或位于用户想要的区域之中。作为响应,应用1100可以自动发起对至少包括第一区1150的四边形区域的搜索或检测。在图11a中,在本文中被称为第一区域1102的所提出的目标区域用如前所述的指示符来呈现。
[0077]
以下参考图11b,用户在第二区1152处轻敲或接触显示器1190,使得第二区域1104现在被呈现为潜在扫描区域(由指示符表示),而不是图11a的第一区域1102。可以看出,图11a中的第一区域1102和图11b中的第二区域1104中每个区域以重叠方式布置。在这种情况下,两个区域共享公共范围1180,同时每个区域还包括不在这两个区域之间共享的或公共的一部分显示范围。因此,通过允许用户简单地接触或点击包括想要的区域的显示器的部分,用户可以快速指示哪个区域是想要的,即使这些区域重叠、或以其它方式包括共享的特征、范围和/或边界。
[0078]
为清楚起见,图12图示了用于基于用户输入来选择扫描区域的过程的一个实现。在该示例中,第一步骤1210包括在设备的显示器上呈现图像,通常经由由设备访问或执行的扫描应用。结合该图像,第二步骤1220,应用接收与图像的特定范围、部分或区相关联的、并且可以被用于指定目标区的用户输入。该输入通常可以经由应用提供的且与图像相关联的用户界面来提交。在第三步骤1230期间,应用可以确定是否有任何可用的可扫描四边形,其能够包括、界定、包含、围绕或以其它方式包围该目标区域,别称为潜在四边形候选。如果没有潜在四边形候选(第一子步骤1232),则应用可以被配置为等待进一步的输入或经由界面来呈现备选的图形元素可致动选项或通知。
[0079]
如果有潜在四边形候选(第二子步骤1234),则在第四步骤1240,应用将检测这些一个或多个候选。如果检测到包括目标区的多个四边形(第三子阶段1242),则应用可以经由算法来处理候选,算法可以确定和标识哪个四边形候选最有可能表示意图的扫描区域(参见第五步骤1250),并且在显示器上呈现该四边形,通常经由与标识的四边形相关联的区域中或附近的视觉指示符的叠加(见第六步骤1252)。然而,在仅检测到一个候选的情况下(第四子步骤1244),应用可以基本上立刻标识四边形并且经由与标识的四边形相关联的
区域中或附近的视觉指示符的叠加(见第六步骤1252),在显示器上呈现它。
[0080]
在一些实现中,如第七步骤1260所描绘,应用还可以可选地被配置为接收附加用户输入,附加用户输入可以确认所呈现的四边形是否实际就是想要的扫描区域。如果用户输入对应于准确检测(第五子步骤1262),则应用可以自动地选择用于扫描的四边形(参见第七步骤1290),或者添加四边形到已从图像中被选择为用于扫描的四边形区域的组中。相反,如果输入对应于不想要的区域呈现(第六子步骤1254),则在第八步骤1266中,应用可以可选地通过移除视觉指示符来响应。
[0081]
此外,在第八步骤1270中,应用可以查明是否曾经有过附加的、备选的包括目标区的四边形候选。如果没有其它候选可用(第七子步骤1272),则应用可以被配置为等待进一步的输入,或经由界面来呈现备选的图形元素可致动选项或通知。如果其它候选可用(第八子步骤1274),如第九步骤1280所示,应用可以继续,按照四边形候选表示意图的四边形的可能性的顺序来提供备选的四边形。如本文描述,应用可以再一次寻找或接收与呈现的四边形候选的准确度有关的输入(第七步骤1260)。应理解,在一些其它实现中,在第六步骤1252呈现四边形之后提交与图像的一部分或区相关联的任何其他用户输入,可以被应用解释为所呈现的四边形不是用户想要的四边形的指示,并且可以触发过程的重新启动和/或直接移动到第八步骤1270。
[0082]
图13是图示当查看电子内容时对潜在扫描区域的检测和选择进行管理的方法1300的实现的流程图。在图13中,第一步骤1310包括例如经由图像扫描应用在用户设备的显示器上呈现图像。第二步骤1320包括接收与图像的第一区相关联的第一输入。第三步骤1330包括响应接收到第一输入,自动检测包括至少第一区的第一区域,第一区以第一周界定边界。第四步骤1340包括经由图像扫描应用在显示器上向用户呈现第一区域,作为用于扫描的潜在区域。
[0083]
在其它实现中,方法可以包括附加的或备选的步骤。例如,方法可以进一步包括接收与图像的第二区相关联的第二输入,其中第二区不同于第一区,以及响应第二输入,自动检测不同于第一区域并且包括至少第二区的第二区域。作为另一个示例,方法可以涉及接收与图像的第一区相关联的第二输入,并且之后响应于第二输入,自动检测不同于第一区域并且包括至少第一区的第二区域。
[0084]
在另一个示例中,方法可以包括通过与第一周界相关联的视觉指示符的显示来指定第一区域。在一些实现中,方法包括接收与视觉指示符相关联的第二输入,并且之后响应于第二输入,自动选择第一区域用于扫描。在一些情况下,方法进一步包括接收与视觉指示符相关联的第二输入,并且之后响应于第二输入,自动调整第一周界的尺寸。
[0085]
此外,在一些实现中,方法可以涉及响应于接收到第一输入来选择用于扫描的第一区域,和/或响应于接收到第二输入来选择用于扫描的第二区域。在另一个实现中,方法可以包括响应接收到第一输入来选择用于扫描的第一区域和/或响应接收到第二输入来取消选择用于扫描的第一区域。
[0086]
在一些实现中,第二区域可以包括、围绕、包含和/或包围第一区和第二区二者的坐标。在另一个实现中,第二区域排除与第一区对应的图像的坐标。在又一个实现中,第一区域排除第二区。
[0087]
作为另一个示例,方法可以包括接收与图像的第一区相关联的第三输入,并且之
后响应于第三输入,自动检测与第一区域和第二区域二者均不同并包括至少第一区的第三区域。另外,在第二区域由第二周界定边界的情况下,方法可能会进一步包括响应接收到第二输入,自动选择用于扫描的有孔区域(类似于四边形或其它形状的“甜甜圈”或环),该有孔区域在第一周界和第二周界之间延伸。
[0088]
应理解,在不同实现中,方法可以变化。例如,在关于图10a

10g示出的本申请保护范围内的另一个方法,,包括:第一步骤,经由图像扫描应用在显示器上呈现图像,以及第二步骤,接收与图像的第一区相关联的第一输入。第三步骤包括响应于接收到第一输入,自动检测和在显示器上自动呈现包括至少第一区的第一区域。在第四步骤中,方法包括接收与图像的第二区相关联的第二输入,其中第二区被放置、定位或位于图像中的第一区域之外。另外,该方法包括响应于接收到第二输入,自动检测和在显示器上自动呈现包括至少第一区域的第二区域。
[0089]
在一些实现中,该方法还包括接收与图像的第三区相关联的第三输入,其中第三区被放置、定位或位于图像中的第二区域之外,并且之后响应于接收到第三输入,自动检测和在显示器上自动呈现包括至少第二区域的第三区域。此外,在一些情况下,该方法包括接收与图像的第一区相关联的第四输入,并且响应于接收到第四输入,自动检测和在显示器上自动呈现包括第二区和第三区、并且排除第一区的第四区域。备选的,该方法可以包括接收与图像的第三区相关联的第四输入,并且之后响应于接收到第四输入,自动检测和在显示器上自动呈现包括第一区和第二区、并且排除第三区的第四区域。
[0090]
因此,本公开的系统和方法的使用可以使用户能够方便地轻敲以选择图像中的点,并且作为响应来提供被标识为在其内部具有该点的一个或多个四边形候选。如果用户连续轻敲多个位置,他或她将被连续呈现多个四边形。有意地在选择图像(实时图像捕捉和存储图像均可)中的用于扫描的一个或多个区域的能力,为用户提供了广泛的益处。该特征大大减少了扫描各种项目所需的时间;不必尝试重新捕捉或修改图像以获得想要的区域,用户可以提交指示位于想要的区域中的目标位点的输入,并且之后应用可以自动检测包含目标位点的一个或多个区域。此外,通过为用户提供用以在单个图像内选择多个分散的用于扫描的区域的简单方式,不需要收集或存储多个图像来获取扫描,并且该过程将在短得多的持续时间内发生。
[0091]
用于本公开的说明及其益处,提出了结合图1至图12描述的系统、设备和技术的详细示例。此类使用示例不应被解释为对本公开的逻辑过程实现的限制,也不应被认为本文描述的用户界面方法的变化超出了本公开的范围。在一些实现中,在图1至图13中描述的各种特征在各自的模块中实现,这些模块也可以被称为和/或包括逻辑、组件、单元和/或机制。模块可以构成软件模块(例如,在机器可读介质上体现的代码)或硬件模块。
[0092]
在一些示例中,硬件模块可以用机械、电子或其任何合适组合被实施。例如,硬件模块可以包括被配置为执行某些操作的专用电路或逻辑。例如,硬件模块可以包括专用处理器,如现场可编程门阵列(fpga)或专用集成电路(asic)。硬件模块还可以包括由软件临时配置以执行某些操作的可编程逻辑或电路,还可以包括机器可读介质数据和/或用于这种配置的指令的一部分。例如,硬件模块可以包括被包含在可编程处理器中的软件,可编程处理器被配置为执行一组软件指令。应理解,在专用和永久配置的电路装置中或在临时配置的电路中(例如,由软件配置)机械实现硬件模块的决定,可能受成本、时间、支持和工程
考虑驱动。
[0093]
因此,短语“硬件模块”应理解为涵盖能够执行某些操作的有形实体并且可以被配置或布置为特定物理方式,以及理解为被物理构造的实体、永久配置(例如,硬连线)、和/或临时配置(例如,编程)以某些方式来操作或执行本文描述的某些操作。如本文所用的,“硬件实现模块”是指硬件模块。考虑到临时配置(例如,编程)硬件模块的示例,每个硬件模块不必在任何一个实例中及时配置或实例化。例如,其中硬件模块包括由软件配置成专用处理器的可编程处理器,该可编程处理器可以在不同时间分别配置为不同的专用处理器(例如,包括不同的硬件模块)。软件可以相应地配置一个或多个特定处理器,例如,在某一时刻构成特定硬件模块,并在不同的时间点构成不同的硬件模块。使用一个或多个处理器实现的硬件模块可以被称为“处理器实现”或“计算机实现”。
[0094]
硬件模块可以向其它硬件模块提供信息,也可以从其它硬件模块接收信息。因此,描述的硬件模块可以被看作是通信耦合的。当多个硬件模块同时存在时,可以通过信号传输(例如,通过适当的电路和总线)在两个或多个硬件模块之间或中间实现通信。在实现中多个硬件模块在不同时间被配置或实例化,这些硬件模块之间的通信可以被实现,例如,通过在存储器设备中存储和检索信息来访问多个硬件模块。例如,一个硬件模块可以执行一个操作并将输出存储在存储器设备中,然后另一个硬件模块可以访问该存储器设备以检索和处理所存储的输出。
[0095]
在一些示例中,方法的至少一些操作可以由一个或多个处理器或处理器实现模块来执行。此外,一个或多个处理器还可以在“云计算”环境或“软件即服务”(saas)中运行,以支持相关操作的性能。例如,至少一些操作可以由和/或中间多台计算机(以包括处理器的机器为例)执行,这些操作可以经由网络(例如,互联网)和/或经由一个或多个软件接口(例如,应用程序接口(api))被访问。某些操作的执行可能被分布在处理器中间,非仅驻留在单个机器上,而是部署在许多机器上。处理器或处理器实现模块可以位于单个地理位置(例如,在家庭或办公环境中,或服务器群中),或者可以分布在多个地理位置。
[0096]
图14是图示了示例软件架构1402的框图1400,其各个部分可以与本文描述的各种硬件架构结合使用,这些硬件架构可以实现上文描述的任何特征。图14是软件架构的非限制性示例,并且应理解,许多其它的架构可以被实现以促进本文描述的功能。软件架构1402可以在硬件上执行,例如图1a中的设备150,其中包括文档存储1070、处理器、存储器和输入/输出(i/o)组件等。图示了代表性硬件层1404,并且它可以表示例如图1的设备150。代表性硬件层1404包括处理单元1406和相关联的可执行指令1408。可执行指令1408表示软件架构1402的可执行指令,包括本文描述的方法、模块等的实现。硬件层1404还包括存储器/存储设备1410,它还包括可执行指令1408和伴随数据。硬件层1404还可以包括其它硬件模块1412。由处理单元1408保存的指令1408可以是由存储器/存储1410保存的指令1408的一部分。
[0097]
示例软件架构1402可以概念化为层,每个层提供各种功能。例如,软件架构1402可以包括诸如操作系统(os)1414、库1416、框架1418、应用1420和表示层1444等的层或组件。操作上,应用1420和/或层内的其它组件可以调用对其它层的api调用1424,并接收相应的结果1426。图示的层在本质上是具有代表性的,其它软件架构可以包括附加的或不同的层。例如,一些移动或专用操作系统可以不提供框架/中间件1418。
[0098]
os 1414可以管理硬件资源并提供公共服务。os 1414可以包括例如内核1428,服务1430和驱动1432。内核1428可以用作硬件层1404和其它软件层之间的抽象层。例如,内核1428可以负责存储器管理、处理器管理(例如,调度)、组件管理、联网、安全设置等等。服务1430可以为其它软件层提供其它公共服务。驱动1432可以负责控制或与底层硬件层1404建立接口。例如,取决于硬件和/或软件配置,驱动1432可以包括显示驱动、相机驱动、存储器/存储设备驱动、外围设备驱动(例如,经由通用串行总线(usb))、网络和/或无线通信驱动、音频驱动等。
[0099]
库1416可以提供被应用1420和/或其它组件和/或层使用的公共基础设施。库1416通常提供其它软件模块用来执行任务的功能,而不是直接与os 1414交互。库1416可以包括系统库1434(例如,c标准库),其可以提供诸如存储器分配、字符串操纵、文件操作的功能。另外,库1416可以包括api库1436,诸如媒体库(例如,支持演示以及图像、声音和/或视频数据格式的操纵),图形库(例如,在显示器上用于渲染2d和3d图形的opengl库),数据库库(例如,sqlite或其它关系数据库功能)以及web库(例如,可以提供web浏览功能的webkit)。库1416还可以包括各种各样的其它库1438以为应用1420和其它软件模块提供许多功能。
[0100]
框架1418(有时还称为中间件)提供了可以被应用1420和/或其它软件模块使用的更高级公共基础设施。例如,框架1418可以提供各种图形用户界面(gui)功能、高级资源管理或高级位置服务。框架1418可以为应用1420和/或其它软件模块提供广泛的其它api。
[0101]
应用1420包括内置应用1440和/或第三方应用1442。内置应用1440的示例可以包括但不限于联系人应用、浏览器应用、位置应用、媒体应用、消息传递应用和/或游戏应用。第三方应用1442可以包括由特定平台的卖方以外的实体开发的任何应用。应用1420可以使用经由os 1414、库1416、框架1418和表示层1444可用的功能来创建用户界面以与用户交互。
[0102]
一些软件架构使用虚拟机,如虚拟机1448所示。虚拟机1448提供执行环境,在该环境中应用/模块可以执行犹如它们在一台硬件机器上执行一样(例如,图10的机器1000)。虚拟机1448可以由主机os(例如,os 1414)或管理程序托管,并且可以具有管理虚拟机1448的操作以及与主机操作系统的互操作的虚拟机监视器1446。可能不同于虚拟机外部的软件架构1402的软件架构在虚拟机1448内执行,诸如os 1450、库1452、框架1454、应用1456和/或表示层1458。
[0103]
图15是示出示例机器1500的组件的框图,该示例机器1500被配置为从机器可读介质(例如,机器可读存储介质)读取指令并执行本文所述的任何特征。示例机器1500是计算机系统的形式,在其中可以执行用于使机器1500执行本文描述的任何特征的指令1516(例如,以软件组件的形式)。这样,指令1516可以用于实现本文描述的模块或组件。指令1516使未被编程和/或未被配置的机器1500操作为被配置为执行所描述的特征的特定机器。机器1500可以被配置为作为独立设备来操作,或者可以被耦合(例如,联网)到其它机器。在网络部署中,机器1500可以在服务器

客户端网络环境中以服务器机器或客户端机器的能力操作,或者在对等或分布式网络环境中作为节点操作。机器1500可以被实施为例如服务器计算机、客户端计算机、个人计算机(pc)、平板计算机、膝上型计算机、上网本、机顶盒(stb),游戏和/或娱乐系统、智能电话、移动设备、可穿戴设备(例如,智能手表)和物联网(iot)设备。此外,尽管仅示出了单个机器1500,但是术语“机器”包括单独地或共同地执行指令1516
的机器的集合。
[0104]
机器1500可以包括处理器1510、存储器1530和i/o组件1550,它们可以通过例如总线1502通信耦合。总线1502可以包括多个总线经由各种总线技术和协议耦合机器1500的各个元件。在示例中,处理器1510(例如,包括中央处理单元(cpu)、图形处理单元(gpu)、数字信号处理器(dsp)、asic或它们的适当组合)可以包括可以执行指令1516并处理数据的一个或多个处理器1512a至1512n。在一些示例中,一个或多个处理器1510可以执行由一个或多个其它处理器1510提供或标识的指令。术语“处理器”包括多核处理器,该多核处理器包括可以同时执行指令的核。虽然图15示出了多个处理器,但是机器1500可以包括具有单个核的单个处理器、具有多个核的单个处理器(例如,多核处理器)、每个处理器具有单个核的多个处理器,每个处理器具有多个核的多个处理器,或其任何组合。在一些示例中,机器1500可以包括分布在多个机器中间的多个处理器。
[0105]
存储器/存储设备1530可以包括主存储器1532、静态存储器1534或其它存储器,以及存储设备单元1536,两者都可以处理器1510诸如经由总线1502访问。存储设备单元1536和存储器1532、1534存储体现本文所述功能的任何一个或多个的指令1516。存储器/存储设备1530还可以存储用于处理器1510的临时、中间和/或长期数据。在执行期间,指令1516还可完全或部分地驻留在存储器1532、1534内,在存储设备单元1536内,在至少一个处理器1510内(例如,在命令缓存或高速缓存存储器内),在至少一个i/o组件1550的存储器内,或者其任何适当组合。因此,存储器1532、1534,存储设备单元1536,处理器1510中的存储器以及存储器中的i/o组件1550是机器可读介质的示例。
[0106]
如本文所用,“机器可读介质”是指能够临时或永久存储使机器1500以特定方式操作的指令和数据的设备。如本文所用,术语“机器可读介质”不包含暂态电信号或电磁信号本身(诸如在通过介质传播的载波上);因此,术语“机器可读介质”可以被认为是有形的和非暂态的。非暂态有形机器可读介质的非限制性示例可以包括但不限于:非易失性存储器(诸如闪存或只读存储器(rom))、易失性存储器(诸如静态随机存储器(ram)或动态ram)、缓冲存储器、高速缓存存储器、光学存储介质、磁性存储介质和设备、网络可访问或云存储、其它类型的存储和/或其任何合适的组合。术语“机器可读介质”适用于存储由机器1500执行的指令(例如,指令1516)的单个介质或多个介质的组合,使得所述指令当由机器1500的一个或多个处理器1510执行时,使机器1500执行本文描述的一个或多个特征。因此,“机器可读介质”可以指代单个存储设备,以及包括多个存储装置或设备的“基于云”的存储系统或存储网络。
[0107]
i/o组件1550可以包括各种硬件组件,其适于接收输入、提供输出、产生输出、发送信息、交换信息、捕捉测量等。包括在特定机器中的具体i/o组件1550将取决于机器的类型和/或功能。例如,移动设备(诸如移动电话)可以包括触摸输入设备,然而无头服务器或iot设备可以不包括这种触摸输入设备。在图15中所示的i/o组件的具体示例绝不是限制性的,并且其它类型的组件可以被包括在机器1500中。i/o组件1550的分组仅仅是为了简化该讨论,并且该分组绝不是限制性的。在各种示例中,i/o组件1550可以包括用户输出组件1552和用户输入组件1554。用户输出组件1552可以包括例如用于显示信息的显示组件(例如,液晶显示器(lcd)或投影仪)、听觉组件(例如,扬声器)、触觉组件(例如,振动马达或力反馈设备)和/或其它信号发生器。用户输入组件1554可以包括例如字母数字输入组件(例如,键盘
或触摸屏)、指点组件(例如,鼠标设备、触摸板或另一种指示工具)和/或触感输入组件(例如,提供触摸或触摸手势的位置和/或力的实体按钮或触摸屏),它们被配置为接收各种用户输入,诸如用户命令和/或选择。
[0108]
在一些示例中,i/o组件1550可以包括生物识别组件1556和/或定位组件1562,在众多其它环境传感器组件中。生物识别组件1556可以包括,例如,用于检测身体表情(例如,面部表情、声音表情、手或身体手势或眼睛跟踪)的组件、用于测量生物信号(例如,心率或脑电波)的组件以及用于标识人(例如,经由语音、视网膜和/或基于面部的识别)的组件。定位组件1562可以包括,例如,位置传感器(例如,全球定位系统(gps)接收器)、高度传感器(例如,可以从中得出高度的气压传感器)和/或方向传感器(例如,磁力计)。
[0109]
i/o组件1550可以包括通信组件1564,其实现用于经由相应的通信耦合1572和1582将机器1500耦合到网络1570和/或设备1580的多种技术。通信组件1564可以包括一个或多个网络接口组件或与网络1570连接的其它合适设备。通信组件1564可以包括,例如适于提供有线通信、无线通信、蜂窝通信、近场通讯(nfc)、蓝牙通信、wi

fi和/或经由其它模式的通信的组件。设备1580可以包括其它机器或各种外围设备(例如,经由usb耦合)。
[0110]
在一些示例中,通信组件1564可以检测标识符或者包括适于检测标识符的组件。例如,通信组件1564可以包括射频识别(rfid)标签读取器、nfc检测器、光学传感器(例如,一维或多维条形码或其它光学代码)和/或声学检测器(例如,用于标识带标记的音频信号的麦克风)。在一些示例中,可以基于来自通信组件1562的信息来确定位置信息,诸如但不限于经由互联网协议(ip)地址的地理位置,经由wi

fi、蜂窝、nfc、蓝牙或其它无线站识别和/或信号三角测量的位置。
[0111]
尽管已经描述了各种实施方式,但是该描述旨在是示例性的,而不是限制性的,并且应当理解的是在实现的范围内,更多的实现和实施方式是可能的。尽管在附图中示出了特征的许多可能组合并且在本发明内容中进行了讨论,但是公开特征的许多其它组合也是可能的。除非明确限制,否则任何实现的任何特征可以与任何其他实现中的任何其它特征或元素组合或替代。因此,应当理解的是本公开中示出和/或讨论的任何特征可以以任何适当的组合一起实现。因此,除非根据所附权利要求及其等同物,否则实现不受限制。同样,可以在所附权利要求的范围内进行各种修改和改变。
[0112]
尽管前面已经描述了被认为是最佳模式和/或其它示例,应当理解的是可以在其中进行各种修改,并且可以以各种形式和示例来实现本文公开的技术方案,并且这些教导可以被应用于许多应用中,本文仅描述了其中的一些。以下权利要求书旨在请求保护落入当前教导的真实范围内的任何和所有应用、修改和变化。
[0113]
除非另作说明,否则本说明书(包括以下权利要求书)中列出的所有尺寸、值、额定值、位置、大小、尺寸和其它规格均为近似值,并不精确。它们旨在有一个合理的范围,与它们所涉及的功能以及它们所涉及的领域中的习惯相一致。
[0114]
保护范围仅受所附权利要求书的限制。当根据本说明书和随后的审查历史进行解释时,该范围旨在并且应当解释为与权利要求中所使用的语言的普通含义相一致,并且涵盖所有结构和功能上的等同物。尽管如此,所有权利要求均未打算包含不满足专利法第101、102或103条要求的主题,也不应以这种方式解释这些主题。从而拒绝对此类主题的任何非预期的领会。
[0115]
除以上所述外,所述或说明的任何内容都不打算或应该被解释为导致任何组件、特征、对象、利益、优势或等同于公众的内容,无论是否在权利要求书中有或没有列举。
[0116]
应当理解的是,本文使用的术语和表达方式相对于其相应的探究和研究领域具有与此类术语和表达方式相一致的普通含义,除非另有说明。诸如第一和第二等的关系术语可以仅用于区分一个实体或动作与另一个实体或动作,而不必要求或暗示这种实体或动作之间的任何实际的这种关系或顺序。术语“包括”、“包含”或其任何其它变体旨在涵盖非排他性包含,使得包括一系列元素的过程、方法、物品或设备不仅仅包括那些元素,还包括可以包括未明确列出或此类过程、方法、物品或设备所固有的其它元素。在没有进一步的限制下,以“一”或“一个”开头的元素并不排除其它相同元素的存在,在包含该元素的过程、方法、物品或设备中。
[0117]
提供本公开的摘要以允许读者快速地确定技术公开的性质。提交本文档时,应理解为不会将其用于解释或限制权利要求的范围或含义。另外,在前面的发明内容中可以看出,为了简化本公开,在各种示例中将各种特征分组在一起。本公开的方法不应被解释为反映了意图,即权利要求需要比每个权利要求中明确列举的特征更多的特征。相反,如所附权利要求所反映的,发明的技术方案不少于单个公开示例的所有特征。因此,以下权利要求据此被结合到详细描述中,其中每个权利要求独立地作为单独要求保护的技术方案。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1