公开/公告号CN107392915A
专利类型发明专利
公开/公告日2017-11-24
原文格式PDF
申请/专利权人 谷歌公司;
申请/专利号CN201611223828.9
发明设计人 多米尼克·罗博列克;戴维·彼得鲁;马修·谢里菲;
申请日2016-12-27
分类号G06T7/11(20170101);G06K9/46(20060101);
代理机构11219 中原信达知识产权代理有限责任公司;
代理人黄刚;周亚荣
地址 美国加利福尼亚州
入库时间 2023-06-19 03:51:20
法律状态公告日
法律状态信息
法律状态
2019-04-09
授权
授权
2018-02-09
著录事项变更 IPC(主分类):G06T7/11 变更前: 变更后: 申请日:20161227
著录事项变更
2017-12-22
实质审查的生效 IPC(主分类):G06T7/11 申请日:20161227
实质审查的生效
2017-11-24
公开
公开
背景技术
从由用户在计算设备上查看的某些文档自动提取图像和/或其它内容可以是相对直接的过程。例如,包括图像的HTML网页可以显式地限定该图像的位置,并且该位置可以由计算设备用来提取该图像。例如,可以由一个或更多个计算设备(例如,由观看HTML网页的用户的计算设备)使用由HTML网页限定的分层结构来提取HTML网页上的图像。提取的图像可以保存到计算设备,通信到一个或更多个附加计算设备(例如,经由电子邮件)等。
发明内容
本说明书的实施方案针对解决如下问题:,根据现有技术,由用户提取正在计算设备上观看的图像和/或其它内容在大多数情况下不可能。例如,许多应用(例如,用于移动电话、平板电脑等的“应用(apps)”)可以生成用于向用户显示的图像和/或其它图形内容。从许多应用自动提取内容迄今为止是不可能的,除非应用专门支持导出该内容(这是相对不寻常的)。这与被编码为显示图像中的文本的文本内容的提取形成对照,文本提取现在是移动操作系统的普通特征。
通过从计算设备上显示的图形元件提取内容,与该内容的有用交互成为可能。这能够允许用户执行与以其它方式将是不可能的(或至少单独使用该设备是不可能的)内容有关的动作。
本说明书的实现针对于将在计算设备上显示的内容分割成区域。那些实现中的一些还针对于基于一个或更多个区域生成交互式内容以提供用于经由计算设备呈现给用户。经由计算设备呈现给用户的交互式内容可以被配置为:响应于经由计算设备的用户界面输入设备对交互式内容的选择,使得计算设备执行对于用于生成交互式内容的一个或更多个区域定制的一个或更多个动作。
经由分析捕获显示的内容的至少一部分(例如,全部)的“截屏图像”的像素来实现将计算设备上显示的内容分割成区域。可以分析截屏图像的各个像素以确定截屏图像的一个或更多个区域,并且向每一个区域分配对应的语义类型。区域限定截屏图像的连续区域,并且区域的语义类型是包括在该区域中的内容的分类。语义类型可以包括例如“图像”、“文本区域”、“列表项目”和/或更多粒度类型,诸如“摄影图像”、“作为绘画的图像”。对来自截屏图像的像素的分析可以使得能够从由多个应用中的任何一个生成的显示(诸如由不包括用于提取图像和/或其它内容的功能的移动电话“应用”生成的显示)提取图像和/或其它内容。在一些实现中,基于仅对截屏图像的多个像素的分析来实现截屏图像中捕获的显示内容的分割。在一些实现中,在不分析可用于生成内容的显示的任何标记语言(例如,HTML)的情况下,实现在截屏图像中捕获的显示内容的分割。
在一些实现中,提供了一种方法,该方法由一个或更多个处理器执行,并且该方法包括:捕获截屏图像,该截屏图像捕获由用户的计算设备提供给用户的显示的至少一部分;基于截屏图像的多个像素将截屏图像分割成至少第一区域和第二区域;基于第一区域的多个像素将第一语义类型分配给第一区域;基于第一区域和第一区域的第一语义类型生成交互式内容;以及提供交互式内容以经由用户的计算设备呈现给用户。用户经由用户的计算设备的用户界面输入设备选择交互式内容使得用户的计算设备执行对于第一区域定制的一个或更多个动作。
本文公开的技术的这些和其它实现可以可选地包括以下特征中的一个或更多个。
在一些实现中,交互式内容包括图形元件,当经由用户界面输入设备选择图形元件时,该图形元件使得计算设备:访问与第一区域的可见内容相关的网页,发出与第一区域的可见内容相关的搜索,或者访问与第一区域的可见内容相关的应用的状态。
在一些实现中,方法还包括:识别由用户经由用户界面输入设备或计算设备的另一用户界面输入设备提供的特定用户界面输入;并且响应于识别特定用户界面输入而提供交互式内容以呈现给用户。在那些实现中的一些中,特定用户界面输入针对于显示的与第一区域的子集对应的部分,并且提供交互式内容以呈现给用户基于针对于显示的与第一区域的子集对应的部分的特定用户界面输入。在那些实现的一些版本中,交互式内容包括图形元件,当经由用户界面输入设备选择图形元件时,使得计算设备在一个或更多个非暂时性计算机可读介质上保存第一区域的多个像素,而不保存第二区域的任何像素。在那些实现的一些其它版本中,交互式内容附加地且/或替代地包括图形元件,当经由用户界面输入设备选择该图形元件时,图形元件使得计算设备生成电子通信,该电子通信包括第一区域的多个像素,并且电子通信不包括第二区域的任何像素。生成交互式内容可以基于第一区域和第一区域的第一语义类型,并且可以独立于第二区域。在那些实现中的一些中,提供交互式内容以用于经由用户的计算设备呈现给用户包括在不提供基于第二区域确定的任何交互式内容的情况下提供交互式内容。
在一些实现中,实现该方法的所述一个或更多个处理器包括计算设备的一个或更多个计算设备处理器和远离计算设备的一个或更多个远程处理器。在那些实现中的一些中,捕获截屏图像的所述一个或更多个处理器由一个或更多个计算设备处理器构成,并且生成交互式内容的所述一个或更多个处理器包括一个或更多个远程处理器。在那些实现中的一些中,将截屏图像分割成至少第一区域和第二区域的所述一个或更多个处理器由一个或更多个计算设备处理器构成。在那些实现的一些版本中,该方法还包括通过一个或更多个计算设备处理器向第一组远程处理器传送第一区域的多个像素,而不将第二区域的任何像素传送到第一组远程处理器。将第一语义类型分配给第一区域的所述一个或更多个处理器可以由那些版本中的一些中的一个或更多个计算设备处理器构成。此外,在那些版本中的一些中,该方法还可以包括:由一个或更多个计算设备处理器向第一组远程处理器传送第一区域的第一语义类型;和/或基于第一区域的第一语义类型,由一个或更多个计算设备处理器选择第一组远程处理器。
在一些实现中,该方法还包括确定截屏图像中的第一区域的附加特性,并且还基于附加特性生成交互式内容。在那些实现中的一些中,生成交互式内容取决于附加特性满足阈值。附加特性可以指示以下中的一个:截屏图像中的第一区域的绝对大小、截屏图像中的第一区域的相对大小、截屏图像中的第一区域的位置以及截屏图像中的第一区域的像素的密度。
在一些实现中,将截屏图像分割成至少第一区域和第二区域包括将截屏图像划分成多个单元,每一个单元包含截屏图像的独特组像素,并且对于多个单元中的每一个单元:基于由单元包含的独特组像素的像素子集来为该单元确定多个分类中的对应一个,并且基于所确定的单元的分类来确定第一区域。在那些实现中的一些中,确定第一区域包括:基于一个或更多个最小边界框来确定第一区域,每一个最小边界框包含具有分类中的第一分类的多个单元。在那些实现中的一些中,确定所述多个单元中的给定单元的分类包括:基于准随机选择过程确定由单元包含的像素子集;以及基于作为特定颜色的像素子集的计数来确定分类。
在一些实现中,提供一种方法,该方法由一个或更多个处理器执行,并且该方法包括:捕获截屏图像,该截屏图像捕获由计算设备提供给用户的显示的至少一部分;基于截屏图像的多个像素将截屏图像分割成至少第一区域和第二区域;基于以下各项中的一个或更多个来确定第一区域的至少一个第一特性:第一区域的多个像素、第一区域的大小和第一区域的位置;基于以下中的一个或更多个来确定第二区域的至少一个第二特性:第二区域的多个像素、第二区域的大小和第二区域的位置;以及基于第一区域的多个像素执行特定动作。基于具有第一特性的第一区域在第一区域的像素上执行特定第一动作,并且不基于具有第二特性的第二区域在第二区域上执行特定动作。
本文公开的技术的这些和其它实现可以可选地包括以下特征中的一个或更多个。
在一些实现中,第一特性是第一语义标签,并且第二特性是第二语义标签。
在一些实现中,第一动作是将第一区域的像素提供给内容识别引擎。在那些实现中的一些中:基于具有第二特性的第二区域将第二区域的一个或更多个像素提供给单独的内容识别引擎;不基于具有第二特性的第二区域将第二区域的像素提供给任何内容识别引擎;或者不基于具有第二特性的第二区域提供第二区域的像素用于任何进一步的动作。
在一些实现中,提供了一种方法,该方法由一个或更多个处理器执行,并且该方法包括:捕获截屏图像,该截屏图像捕获由用户的计算设备提供给用户的显示的至少一部分;基于截屏图像的多个像素将截屏图像分割成至少第一区域和第二区域;基于第一区域的多个像素将第一语义类型分配给第一区域;基于第一区域和第一区域的第一语义类型确定内容;以及提供内容以经由用户的计算设备呈现给用户。
本文公开的技术的这些和其它实现可以可选地包括以下特征中的一个或更多个。
在一些实现中,内容是信息图形元件,该信息图形元件包括存在于第一区域中的实体的属性、实体的图像和/或聚焦于实体的其它内容。
在一些实现中,内容是交互式内容。
在一些实现中,内容是静态内容。在那些实现中的一些中,内容是信息图形元件,该信息图形元件包括存在于第一区域中的实体的属性、实体的图像和/或聚焦于实体的其它内容。
此外,一些实现包括一个或更多个计算设备的一个或更多个处理器,其中所述一个或更多个处理器可操作以执行存储在相关联的存储器中的指令,并且其中指令被配置为使得执行任何上述方法。一些实现还包括存储可由一个或更多个处理器执行以执行任何上述方法的计算机指令的非暂时性计算机可读存储介质。
应当理解,在此更详细描述的前述构思和附加构思的所有组合被设想为本文所公开的主题的一部分。例如,出现在本公开内容的结尾处的所要求保护的主题的所有组合被认为是本文所公开的主题的一部分。
附图说明
图1是其中可以实现本文所公开的技术的示例环境的框图。
图2示出了将在计算设备上显示的内容分割成区域并且基于区域中的一个生成要提供以经由计算设备呈现给用户的交互式内容的示例。
图3示出了将在计算设备上显示的内容分割成区域并且基于区域中的一个生成要提供以经由计算设备呈现给用户的交互式内容的另一示例。
图4A示出了示例移动计算设备和正在移动计算设备的显示屏上显示的内容。
图4B示出了图4A中正在显示的内容的截屏图像,并且示出了可以基于截屏图像确定的示例区域。
图4C示出了图4A的示例移动计算设备以及可以由移动计算设备显示的交互式内容的一个示例。
图4D示出了图4A的示例移动计算设备以及可以由移动计算设备显示的交互式内容的另一示例。
图4E示出了图4A的示例移动计算设备以及可以由移动计算设备显示的交互式内容的又一示例。
图5是示出了将截屏图像分割成一个或更多个区域的示例方法的流程图。
图6A是可以基于图5的方法确定的网格单元和网格单元的分类的示例。
图6B示出了图6A的网格单元和网格单元的分类,并且还示出了可以基于图5的方法确定的边界框。
图7是示出了将显示在计算设备上的内容分割成区域并基于区域的一个或更多个特性对区域执行一个或更多个动作的示例方法的流程图。
图8示出了计算设备的示例架构。
具体实施方式
本说明书的实现用于将在计算设备上显示的内容分割成区域。一些实现还用于基于一个或更多个区域生成交互式内容以提供用于经由计算设备呈现给用户。经由计算设备呈现给用户的交互式内容可以被配置为:响应于经由计算设备的用户界面输入设备的选择,使得计算设备执行一个或更多个动作,所述一个或更多个动作对于一个或更多个用于生成交互式内容的区域被定制。
在一些实现中,可以利用所确定的区域和该区域的可选的语义类型来生成与该区域的可见内容相关的交互式内容。例如,可以分割由计算设备提供的显示器的截屏图像以确定具有“照片”语义类型的显示器的特定区域。计算设备可以选择该区域的多个像素,并且基于该区域具有“照片”语义类型,可以将那些像素发送到配置为处理照片的识别引擎(其在计算设备上或远离计算设备)。识别引擎可以基于像素来识别区域的内容,诸如存在于区域中的一个或更多个实体、与存在于区域中的那些实体相关的实体、存在于区域中的那些实体的实体类等。交互式内容可以被生成,其对于所识别的内容被定制并且被提供用于经由计算设备呈现给用户。例如,所识别的内容可以包括一个或更多个实体,并且交互式内容可以响应于对交互式内容的用户选择而使得用户的计算设备访问对于所识别的实体定制的网页,发出与识别的实体相关的搜索,或访问应用的状态-其中该状态与所识别的实体相关。
在一些实现中,可以利用具有某种语义类型(例如,指示“图像”的语义类型)的确定区域来提供使得用户的计算设备能够(本地或远程)保存确定的区域的多个像素的交互式内容、共享(例如,通过电子邮件、文本、聊天)那些像素和/或指定要发送到一个或更多个引擎(远程和/或本地)的那些像素,用于识别和/或基于该区域生成另外的交互式内容。例如,响应于确定区域并确定该区域具有语义类型“图像”,可以响应于该区域的用户选择(例如,长按)来提供对于该图像的交互式内容。这使得用户的计算设备能够执行聚焦在用户的显示器的特定区域上的一个或更多个动作。通过基于对包括该区域的截屏的像素的分析而生成的交互式内容来向用户呈现动作,并且不需要显示该区域的特定应用为图像的提取提供明确支持。
在一些实现中,基于所确定的区域来生成交互式内容可以是响应于特别对于该确定的区域的用户界面输入,诸如该区域的“长按”。在这些实现中的一些中,除了或代替基于可能存在于计算设备的显示屏幕上的其它非选择区域的任何内容,基于所确定的区域生成的交互式内容被更突出地提供。在其它实现中,基于所确定的区域来生成交互式内容可以是响应于未特别对于所确定的区域的用户界面输入,诸如通用界面元件的“长按”、语言命令(例如,“告诉我更多关于屏幕上的内容”)等。
在一些实现中,将显示器的截屏图像分割成一个或更多个区域和/或确定一个或更多个区域的语义类型可以全部或部分地由生成显示的计算设备的一个或更多个处理器执行。在那些实现中的一些中,生成交互式内容和/或提供该交互式内容可以全部或部分地由远离计算设备的一个或更多个处理器执行。在这些实现的一些变体中,计算设备的所述一个或更多个处理器可以基于所确定的区域的语义类型来支配在生成交互式内容中哪些远程处理器将处理来自该区域的像素。例如,可以向第一识别引擎提供具有图像语义标签的区域,可以向第二识别引擎等提供具有文本语义标签的区域。
此外,在一些实现中,计算设备的所述一个或更多个处理器可以将显示器分割成一个或更多个区域和/或确定一个或更多个区域的语义类型——并且可以利用区域和/或语义类型以限制用于由计算设备的所述一个或更多个处理器和/或由一个或更多个远程处理器执行的一个或更多个附加计算动作的像素的数量。例如,计算设备的所述一个或更多个处理器可以将显示器分割成具有“图像”、“文本”和“无”的语义类型的多个区域。处理器可以将像素从图像区域提供到图像识别引擎(由计算设备的一个或更多个处理器或由远程处理器实现),并且可以将文本区域的像素提供给文本识别引擎(由计算设备的一个或更多个处理器或由远程处理器实现),但是可以不提供来自“无”区域的任何像素。这可以通过减少由引擎分析的像素的数目来节省引擎的计算资源,且/或可以减少在一个或更多个引擎远离计算设备的实现中的因特网使用(即,因为来自“无”区域的像素不被传送到远程引擎)。
作为另一示例,当区域的一个或更多个附加特性满足阈值时,计算设备的所述一个或更多个处理器可以仅向一个或更多个识别引擎提供区域,其中那些附加特性是除了区域的语义类型之外的。附加特性可以包括指示以下中的一个或更多个的特性:截屏图像中的区域的绝对大小、截屏图像中的区域的相对大小、截屏图像中的区域的位置以及截屏图像中的区域的像素的密度。例如,可能不发送非常小的图像,可能不发送用于由识别引擎识别的不具有足够高的分辨率的图像(即,不具有足够高的像素密度的图像),可能不发送仅仅摄取可能不发送截屏图像的较小部分和/或是在截屏图像的较不突出的部分中的图像等。
现在转到图1,示出了其中可以实现本文所公开的技术的示例环境。示例环境包括计算设备120、内容路由器引擎128、内容识别引擎129A-C、交互式内容生成系统130以及实体和动作数据库136。在一些实现中,计算设备120是便携式移动计算设备,例如蜂窝电话、平板计算机、膝上型计算机、手表、头戴式设备(例如眼镜)、虚拟或增强现实设备、其它可佩戴设备、音频/视频系统、导航系统、汽车和其它车辆系统等。
虽然在图1中示出了内容路由器引擎128、内容识别引擎129A-C和交互式内容生成系统130与计算设备120分离,但是在一些实现中,那些组件中的一个或更多个组件的所有或方面可以由计算设备120实现。而且,尽管在图1中将截屏分割系统121示出作为计算设备120的一部分,但是在一些实现中,系统121的全部或方面可以由远离计算设备120的一个或更多个计算设备来实现。在图1的一个或更多个组件由远离计算设备120的一个或更多个计算设备实现的实现中,计算设备120和远程计算设备可以经由诸如局域网(LAN)和/或广域网(WAN)(例如,因特网))的一个或更多个网络进行通信。
计算设备120是客户端计算设备,并且生成用于在各种情况下向计算设备120的用户显示的内容。例如,计算设备120可以正在执行应用127中的一个,并且生成用于经由计算设备120的屏幕显示给用户的内容可以至少部分地由该应用支配。应用127可以包括可以安装在计算设备120上的各种应用中的一个或更多个,诸如例如web浏览器应用、个人助理应用、商业评论应用、社交网络应用、聊天应用、SMS应用、音乐应用、视频应用和/或提供用于探索关于电影、电视节目和其它媒体的信息的界面的应用。
截屏分割系统121至少选择性地捕获截屏图像,该截屏图像捕获在捕获截屏图像时由计算设备120提供的显示的至少一部分,并且将在计算设备120上显示的内容分割成基于截屏图像的像素的一个或更多个语义区域。在一些实现中,截屏分割系统121还与内容路由器引擎128和/或交互式内容生成系统130对接,以获得基于一个或更多个分割区域的交互式内容。在一些实现中,屏幕分割系统121可以是独立的应用。在一些实现中,截屏分割系统121可以整体或部分地集成为计算设备120的操作系统或固件的一部分。
在所示实现中的截屏分割系统121包括截屏捕获引擎122、分割引擎123、界面引擎124和渲染引擎125。截屏捕获引擎122捕获截屏图像,每一个截屏图像捕获当前正在由计算设备120提供给用户的显示的至少一部分。
在一些实现中,截屏捕获引擎122响应于用户界面输入模块126响应于用户与计算设备120的一个或更多个用户界面输入设备的交互而提供的某些用户界面输入来捕获截屏图像。例如,在一些实现中,截屏捕获引擎122可以响应于以下操作捕获截屏图像:通过触摸屏虚拟用户界面元件的“按”(例如,短按、长按、以至少一阈值水平的力按);计算设备120的机械接口元件的致动;提供给计算设备120的麦克风的语言命令;触摸屏的一个或更多个区域的按;等等。在一些实现中,截屏捕获引擎122可以响应于其它标准(例如经由计算设备120打开新应用,经由计算设备120切换到不同的虚拟屏幕等)来附加地和/或替代地捕获截屏图像。在一些实现中,截屏捕获引擎122可以附加地和/或替代地连续地、周期性地和/或以另一规则或不规则间隔捕获截屏图像。
分割引擎123将截屏捕获引擎122捕获的截屏图像分割成一个或更多个语义区域。在一些实现中,分割引擎123分析截屏图像的多个像素,以确定截屏图像的一个或更多个区域并且向每一个区域分配对应的语义类型。区域限定截屏图像的连续区,并且区域的语义类型对包括在该区域中的内容进行分类。语义类型可以包括例如“图像”、“文本区域”、“列表项目”等——和/或更多粒度类型(诸如“摄影图像”、“正在绘画的图像”等)。
分割引擎123可以利用各种技术来确定截屏图像的区域和/或区域的语义类型。在一些实现中,分割引擎123包括训练的机器学习模型(例如,卷积神经网络(CNN)模型)或与训练的机器学习模型通信,并且训练的机器学习模型可以由分割引擎123利用,以确定区域和/或区域的语义类型。例如,可以基于多个训练示例来训练训练的机器学习模型,以能够应用图像的多个像素作为模型的输入,并且在模型上生成识别输入图像的区域和那些区域的语义标签的输出。在那些实现中的一些中,可以训练模型,以接收用户选择作为“侧面输入”,并且生成识别包含用户选择的区域并且可选地识别该区域的语义标签的输出。
在一些实现中,分割引擎123实现启发式粒子提取器以确定截屏图像的区域和/或区域的语义类型。在那些实现方式中的一些中,启发式粒子提取器利用单元网格覆盖截屏图像,例如正方形单元的粗粒度网格。对于网格的每一个单元,启发式粒子提取器分析由单元包含的图像的像素的分数(例如,小于10%,例如2.6%),并基于像素的分析对该单元分类。每一个单元根据它属于多个候选分类中的哪个来分类。例如,单元可以被二进制分类为“照片”或“非照片”。单元的分类导致单元矩阵,单元矩阵每一个被分配对应的分类。例如,对于二进制分类(例如,照片/非照片),每一个单元可以被分配正(例如,照片)或负(非照片)分类。具有给定分类的单元可以被最小边界框覆盖并且合并相交的边界框。例如,在二进制分类中,正单元可以利用边界框覆盖并且合并相交框。不能满足大小阈值的边界框可以可选地被丢弃。如果在通过启发式粒子提取器分析之前截屏图像被缩减,则边界框可以被放大到原始截屏分辨率。边界框识别原始截屏中的区域的位置,并且用于生成边界框的分类识别那些区域的语义标签。
在一些实现中,小于整个网格单元由启发式粒子提取器处理。例如,如果用户的选择的位置(例如,显示器上的按)被提供为“侧面输入”,则网格单元的分析可以在与用户选择的位置对应的网格单元处开始。只要边界框继续增长(即,只要至少一个方向上的相邻单元具有相同的分类),分析就进行到相邻单元。当边界框停止在任何方向上生长时,将不会分析超出它在该方向上的可能生长的极限的网格单元。当边界框在所有方向上停止生长时,网格单元的分析能够被完全停止。在图5、图6A和图6B中提供了启发式粒子提取器的实现的附加描述。
界面引擎124提供与内容路由器引擎128、交互式内容生成系统130和/或其它组件的接口。界面引擎124向内容路由器引擎128和/或向交互式内容生成系统130提供与截屏图像的一个或更多个区域相对应的内容。例如,界面引擎124可以提供截屏图像的区域的多个像素以及可选地该区域的语义标签的指示。在一些实现中,界面引擎124可选地分析区域的一个或更多个特性,并且仅当那些标准满足一个或更多个阈值时才将该区域提供给一个或更多个组件。区域的特性可以包括区域的语义标签和/或指示以下的一个或更多个的那些特性:截屏图像中的区域的绝对大小、截屏图像中的区域的相对大小、截屏图像中的区域的位置以及截屏图像中的区域的像素的密度。例如,当区域不满足大小阈值(例如,是非常小的区域)时,当该区域不具有足够高的分辨率(即,该区域的像素不是足够高的密度)以用于由一个或更多个内容识别引擎129A-C识别时,和/或时该区域仅占据截屏图像的一小部分和/或在截屏图像的非突出部分中时,界面引擎124可以不为该区域提供内容。
渲染引擎125管理基于所确定的区域产生的交互式内容的呈现。例如,渲染引擎125可以生成用于呈现给用户的所生成的交互式内容的视觉显示和/或可听输出。例如,渲染引擎125可以使得交互式内容显示在计算设备120的显示屏幕上。例如,交互式内容可以显示在一个或更多个信息“卡”和/或“下拉菜单”,其中的任一个可以可选地覆盖在由分析的截屏图像所捕获的内容的至少一部分上,以生成交互式内容。
本文提供了对引擎122-125的附加描述。在一些实现中,一个或更多个引擎122-125的全部或方面可以在另一个引擎中组合和/或实现。例如,在一些实现中,引擎124的一个或更多个方面可以结合到引擎123中。而且,尽管在图1的示例环境中将引擎122-125图示为被设置在计算设备120上,但这并不意味着限制。在其它实现中,引擎122-125中的一个或更多个的全部或方面可以在远离计算设备120的一个或更多个计算设备上实现。
内容路由器引擎128确定多个内容识别引擎(例如引擎129A-C)中的哪一个将处理由界面引擎124提供的给定区域的像素。内容识别引擎129A-C每一个被配置为:接收区域的多个像素作为输入,并且提供该区域的至少一些内容的指示作为输出。例如,内容识别引擎129A可以被配置为:接收具有照片的语义标签的区域的像素,并且提供存在于由像素形成的图像中的一个或更多个实体的指示,诸如一个或更多个特定实体(例如,指示花(flowers)水仙和雏菊(daisy)的实体)和/或实体类(例如,指示花的实体)。此外,例如,内容识别引擎129B可以被配置为:接收具有文本的语义标签的区域的像素,并且提供在由像素形成的图像中存在的一个或更多个字符和/或词语的指示。在一些实现中,引擎129A-C中的一个或更多个可以包括图像搜索系统和/或深度神经网络例如CNN。
在一些实现中,内容路由器引擎128至少部分地基于给定区域的语义标签来选择用于给定区域的像素的处理的引擎。例如,内容识别引擎129A可以特别地被配置为确定存在于具有指示摄影图像的语义标签的区域中的内容,引擎129B可以被特别地配置为识别存在于具有指示非摄影图像的语义标签的区域中的内容,并且引擎129C可以被特别地配置为识别存在于具有指示文本的语义标签的区域中的内容。在这样的示例中,内容路由器引擎128将来自具有指示摄影图像的语义标签的区域的像素提供到内容识别引擎129B,以处理那些像素。
在一些实现中,内容路由器引擎128可以在选择内容识别引擎时利用附加的和/或替代的标准。例如,区域的大小、区域的分辨率和/或区域的其它特性可以影响哪个内容识别引擎设有来自该区域的像素。此外,例如,可以考虑内容识别引擎的可用性。尽管图1中将内容路由器引擎128和内容识别引擎129A-C图示为与计算设备120分离,但是在一些实现方式中,那些组件中的一个或更多个可以在计算设备120上实现。
交互式内容生成系统140生成用于经由计算设备120呈现给用户的交互式内容,其中交互式内容被定制为正在由计算设备120向用户显示的内容。交互式内容生成系统140可以基于由分割引擎123确定的一个或更多个区域并且可选地基于它们的语义类型来生成内容。交互式内容生成系统140包括实体确定引擎132和动作确定引擎134。
在一些实现中,实体确定引擎132从内容识别引擎129A-C中的一个接收经由计算设备120显示给用户的内容的截屏图像的区域中存在的内容的指示。实体确定引擎132基于所提供的指示来确定在内容中引用的一个或更多个实体。实体可以例如与人、感兴趣的位置、地址、电话号码等中的一个相关联。在实现中,指示明确地指示实体,并且实体确定引擎132可以选择该实体和/或一个或更多个相关实体作为将是所生成的交互式内容的一个或更多个方面的焦点的实体。
在一些实现中,由内容识别引擎129A-C中的一个提供的指示没有明确地指示实体。例如,内容识别引擎129A-C中的一个可以提供文本,该文本存在于文本区域中,但该文本不明确指示与该文本相关联的任何实体。在这些实现中的一些中,实体确定引擎132可以基于这样的信息来确定一个或更多个实体。例如,实体确定引擎142可以确定与一个或更多个实体数据库(例如知识图)中的文本或其它信息强烈相关联的一个或更多个实体。例如,文本可以与特定实体的别名最强关联。
在一些实现中,动作确定引擎134确定能够对由实体确定引擎132确定的实体执行的一个或更多个基于计算机的动作。在那些实现中的一些中,动作确定引擎134基于被映射到诸如实体和动作数据库136的一个或更多个数据库中的实体的基于计算机的动作确定基于计算机的动作。实体和动作数据库136包括多个实体中的每一个到与该实体相关联的一个或更多个基于计算机的动作的映射。动作可以直接与实体映射,且/或可以经由与实体的类的映射间接映射到实体。例如,拨打电话号码的动作可以被映射到多个特定电话号码中的每一个,且/或可以与一般的电话号码的类相关联。此外,例如,播放电影的动作可以被映射到多个电影、通常的电影和/或仅通过安装在计算设备120上的应用127中的一个可用于点播观看的电影中的每一个。
在对于实体识别多个动作的实现中,动作确定引擎134可以可选地基于一个或更多个因素对所识别的动作进行排名和/或过滤,诸如例如:动作与实体的关联的强度和/或实体的类;一般动作的历史流行度;内容源自的应用的动作的历史流行度;该动作是否可经由安装在计算设备120上的一个或更多个应用127执行;经由安装在计算设备120上的一个或更多个应用127执行动作的历史流行度;等等。
交互式内容生成系统130基于由引擎134确定的动作生成要呈现给计算设备120的交互式内容。交互式内容可以是视觉、听觉和/或能够经由计算设备120的一个或更多个用户界面输出设备提供给用户的其它形式。作为一个示例,交互式内容可以包括图形元件(文本、图标和/或图像),当用户经由计算设备120的用户界面输入设备选择该图形元件时,使计算设备120执行一个或更多个动作。例如,图形元件可以与导致所述一个或更多个动作的执行的链接相关联。动作可以包括例如访问特定网页、发出特定搜索、访问应用的特定状态、呈现附加媒体等。可以可选地生成交互式内容的多个项目,并且可以可选地与非交互式内容结合提供交互式内容,诸如包括一个或更多个实体的别名或其它属性的内容。
在一些实现中,动作确定引擎134可以可选地确定独立于来自实体确定引擎132和/或内容识别引擎129A-C中的任一个的输入的一个或更多个动作。例如,在一些实现中,交互式内容可以使得计算设备的用户能够保存所确定区域的多个像素、共享那些像素且/或指定要发送到一个或更多个附加组件的那些像素,用于识别区域中的内容和/或用于基于该区域生成另外的交互式内容。在那些实现中的一些中,动作确定引擎134可以基于具有特定语义标签和/或具有一个或更多个附加特性的区域来生成交互式内容。例如,响应于确定区域具有一个或更多个特定语义类型(例如,指示“图像”的语义类型或不是“空/无”的任何语义类型)的语义类型,可以提供交互式内容使得用户能够执行聚焦于该区域的一个或更多个动作。例如,响应于确定区域并确定该区域具有语义类型“图像”,用于该图像的交互式内容可以被生成并且配置为响应于用户选择该区域(例如长按)而被显示。交互式内容可以使得用户的计算设备能够执行聚焦在该区域上的一个或更多个动作。
图2示出了将计算设备120上显示的内容分割成区域并基于区域中的一个生成交互式内容207以提供经由计算设备120呈现给用户的示例。在图2中,截屏捕获引擎122捕获截屏图像201,截屏图像201捕获通过计算设备120的显示屏提供给用户的显示的至少一部分。截屏捕获引擎122将截屏图像201提供给分割引擎123。
分割引擎123分析截屏图像201的多个像素以确定截屏图像的一个或更多个区域并且向每一个区域分配对应的语义类型。分割引擎123可以利用各种技术来确定截屏图像的区域和/或区域的语义类型。在一些实现中,分割引擎123包括训练的机器学习模型(例如,卷积神经网络(CNN)模型)或与训练的机器学习模型通信,并且训练的机器学习模型可以由分割引擎123利用,以确定区域和/或区域的语义类型。在一些实现中,分割引擎123实现启发式粒子提取器以确定截屏图像的区域和/或区域的语义类型。
分割引擎123向界面引擎124提供区域中的一个和区域202的语义类型。界面引擎124提取与该区域对应的截屏图像的多个像素(例如,全部或子集),并且向内容路由器引擎128提供像素和区域203的语义类型的指示。在一些实现中,界面引擎124响应于用户界面输入(诸如特别指向该区域的一般用户界面输入或用户界面输入)提供区域203的像素和语义类型的指示。在一些实现中,界面引擎124基于确定区域的一个或更多个特性满足一个或更多个阈值来提供区域203的像素和语义类型的指示。
内容路由器引擎128从多个内容识别引擎中选择内容识别引擎129A,并且将来自区域204的像素提供给引擎129A。在一些实现中,内容路由器引擎128基于如本文所述的区域的语义类型来选择内容识别引擎129A。在一些实现中,内容路由器引擎128基于附加和/或替代标准(诸如区域的特性)选择引擎129A。在一些实现中,路由器128可以基于引擎129A的属性来预处理提供给引擎129A的像素。例如,路由器128可以改变由所提供的像素形成的图像的大小和/或分辨率,以实现能够被引擎129A处理或者被更适当地格式化以供引擎129A处理的图像。
内容识别引擎129A基于来自区域204的像素确定指示那些像素的至少一些内容的一个或更多个内容指示205。引擎129A向实体确定引擎142提供内容指示205。实体确定引擎142基于所提供的内容指示205来确定在内容中引用的至少一个实体206。
实体确定引擎142向动作确定引擎144提供实体206。动作确定引擎144确定能够被执行的与实体206相关的一个或更多个基于计算机的动作,并生成交互式内容207,该交互式内容207使得能够执行那些动作。
引擎144向渲染引擎125提供交互式内容207以供渲染引擎125呈现交互式内容207。在一些实现中,通过取代由截屏图像201捕获的显示内容,或者通过提供由截屏图像201捕获的显示内容的交互式内容“之上的”部分,渲染引擎125显示交互式内容207。
现在转到图4A-图4D,图2的示例的特定示例的一些实现以及本文所描述的其它实现将被额外详细地描述。在图4A中,计算设备420在计算设备420的显示屏幕440上显示所示的内容。显示在显示屏幕440上的内容可以由在计算设备420上执行的消息收发应用(诸如不包括用于从消息收发应用提取图像、文本和/或其它内容的功能的消息收发应用)显示。显示在显示屏幕440上的内容包括通过“Susan(苏珊)”发送到计算设备420的用户的第一消息中包括的第一文本内容444。该内容还包括在由Susan发送给用户的第二消息中包括的第二文本内容445和第一图像446。内容还包括回复界面元件447,用户可以选择回复界面元件447来生成回复消息,并且内容还包括可以由用户交互以使计算设备420执行一个或更多个动作的系统界面元件441、442、443。
图4B示出了由图4A中的计算设备420显示的内容的截屏图像460。截屏图像460可以由截屏捕获引擎122捕获。图4B的截屏图像460省略了系统界面元件441-443(例如,截屏可以仅捕获那些元件“上方”的区域),虽然在其它实现中它们可以被包括在截屏图像中。图4B中还示出了由分割引擎123基于截屏图像确定的区域的指示。区域461A包含第一文本内容444,并且可以具有诸如“文本”的第一语义类型。区域462A包含第二文本内容445,并且也可以具有第一语义类型。区域463包含第一图像446,并且可以具有诸如“图像”的第二语义类型。区域465包含回复界面元件447,并且可以具有诸如“UI元件”的第三语义类型。也可以生成包括不被区域461A、461B、463或465包含的截屏图像460的所有区域的另一区域,并且可以具有诸如“无”的第四语义类型。虽然在图4B中图形地示出了区域,但是应当理解,分割引擎123可以以各种方式限定区域。例如,分割引擎123可以将区域限定为该区域的中心像素和该中心像素的像素宽度和像素高度内的所有像素。
图4C示出了图4A的示例移动计算设备420以及可以由移动计算设备420显示的交互式内容的一个示例。在图4C的一些实现中,计算设备的用户可能已经提供了特别对于包含花的图像的区域463(图4B)的用户界面输入,诸如该区域的“长按”或“长点击”或对于该区域的语言输入(例如,“告诉我更多关于屏幕上的图像”的语言输入)。基于对于区域463的用户界面输入,界面引擎124可以可选地连同该区域的语义类型的指示(例如,“图像”)一起向内容路由器引擎128提供区域463的像素。在一些实现中,界面引擎124提供区域463的像素,而不提供来自任何其它区域的像素。在那些实现的一些中,不提供来自任何其它区域的像素可能导致一个或更多个下游组件对计算资源的较少消耗(例如,由于它们不必还分析那些像素)和/或减少的网络流量(例如,当下游组件远离计算设备420时)。
内容路由器引擎128可以可选地基于该引擎被配置为处理与语义类型相关联的像素来向内容识别引擎129A-C中的一个提供像素。该引擎可以分析像素并且确定像素的内容的一个或更多个指示,诸如图像是雏菊花(daisy flower)的指示。
交互式内容生成系统130可以利用内容的指示来生成交互式内容,诸如图形元件474A、474B和474C。例如,交互式内容生成系统130可以生成图形元件474A,使得图形元件474A的选择使得计算设备420执行一个或更多个动作,所述一个或更多个动作导致发出与雏菊花相关的搜索(例如,搜索“daisy(雏菊)”或“daisy flower(雏菊花)”)。此外,例如,交互式内容生成系统130可以生成图形元件474B,使得图形元件474B的选择导致计算设备420执行一个或更多个动作,所述一个或更多个动作导致应用127的“garden(花园)”应用的特定状态被访问。例如,图形元件474B的选择可以使得计算设备420打开花园(garden)应用并导航到聚焦在雏菊花或一般的装饰花上的应用的状态。此外,例如,交互式内容生成系统130可以生成图形元件474C,使得图形元件474C的选择导致计算设备420检索和/或显示雏菊花的一个或更多个附加图像。
交互式内容生成系统130还生成非交互式内容472,该非交互式内容472提供图像(“Daisy”)中所示的实体的指示和该实体(“Flower(花)”)的类的指示。在图形“卡”470中显示由交互式内容生成系统130生成的内容,该图形“卡”470覆盖显示屏幕440上的其它内容。此外,提供符合区域463的指示473,以向计算设备的用户提供反馈以使用户知道:图形卡470的内容针对于区域463,且/或基于用户对该区域463的选择而被提供。指示473和/或图形卡470的生成和/或格式化可以由交互式内容生成系统130和/或渲染引擎125执行。
图4D示出了图4A的示例移动计算设备420和可由移动计算设备420显示的交互式内容的另一示例。在图4D的一些实现中,计算设备的用户可以提供不指向任何特定区域的用户界面输入,诸如系统元件482上的“长按”或“长击”或者一般语言输入(例如,语言输入“告诉我更多关于屏幕上的内容”)。基于更一般的用户界面输入,界面引擎124可以向内容路由器引擎128提供多个区域的像素,可选地连同那些区域的语义类型的指示。例如,界面引擎124可以提供来自区域461A、461B和463中的每一个的像素。在一些实现中,界面引擎124提供区域461A、461B和463的像素,而不提供来自任何其它区域的像素(例如“无”区域和/或“UI元件”区域465)。在那些实现的一些中,不提供来自任何其它区域的像素可能导致一个或更多个下游组件对计算资源的较少消耗(例如,由于它们不必还分析那些像素)和/或减少的网络流量(例如,当下游组件远离计算设备420时)。
内容路由器引擎128可以可选地基于区域的语义类型向一个或更多个内容识别引擎129A-C提供每一个区域的像素。例如,路由器128可以向内容识别引擎129A提供区域463的像素,向内容识别引擎129B提供区域461A的像素,以及向内容识别引擎129B提供区域461B的像素。那些引擎可分析那些像素并确定像素的内容的一个或更多个指示。例如,引擎129A可以提供区域463包括雏菊花的指示,并且引擎129B可以提供区域461A包括项目列表的指示,并且可以提供那些项目的文本。
交互式内容生成系统130可以利用内容的指示来生成诸如图形元件474A、474B、474C和477的交互式内容。图形元件474A-C与图4C中所示的相同。交互式内容生成系统130还可以生成图形元件477,使得图形元件477的选择使得计算设备420将列出的项目(从区域461A中的内容的指示导出)添加到购物列表(shopping list),诸如由计算设备420的一个或更多个应用127维护的购物列表。
交互式内容生成系统130还生成非交互式内容472,该非交互式内容472提供图像(“雏菊”)中所示的实体的指示和该实体(“花”)的类的指示。在第一图形“卡”470中提供由交互式内容生成系统130生成的与区域363的内容相关的内容,该第一图形“卡”470覆盖显示屏幕440上的其它内容。在视觉上分离的第二图形“卡”475中提供由交互式内容生成系统130生成的与区域361A的内容相关的内容,该第二图形“卡”475也覆盖显示屏幕440上的其它内容。卡470和475的生成和/或格式化可以由交互式内容生成系统130和/或渲染引擎125执行。
现在参考图3,示出了另一个示例,其将在计算设备上显示的内容分割成区域并且基于区域中的一个生成交互式内容以提供用于经由计算设备呈现给用户。在图3中,截屏捕获引擎122捕获截屏图像301,截屏图像301捕获通过计算设备的显示屏提供给用户的显示的至少一部分。截屏捕获引擎122将截屏图像301提供给分割引擎123。
分割引擎123分析截屏图像301的多个像素,以确定截屏图像的一个或更多个区域并且向每一个区域分配对应的语义类型。分割引擎123可以利用各种技术来确定截屏图像的区域和/或区域的语义类型。
分割引擎123向界面引擎124提供区域中的一个和区域302的语义类型。界面引擎124向动作确定引擎144提供区域和区域302的语义类型的指示。在一些实现中,界面引擎124响应于由用户界面输入模块126提供的用户界面输入(该用户界面输入特别针对于该区域,例如针对于该区域的长按或其它选择)来提供区域和区域302的语义类型的指示。
动作确定引擎144确定能够基于所提供的区域的语义类型来执行的一个或更多个基于计算机的动作。例如,对于具有语义类型“图像”的区域,动作确定引擎144可以提供交互式内容,该交互式内容使得用户的计算设备能够(本地或远程)保存所确定的区域的多个像素、共享(例如通过电子邮件、文本、聊天)那些像素和/或指定要发送用于远程服务器的那些像素,用于识别和/或基于该区域生成另外的交互式内容。这使得用户的计算设备能够执行聚焦在用户的显示的特定区域上的一个或更多个动作。
动作确定引擎144向呈现交互式内容304的渲染引擎125提供交互式内容304。
现在转到图4E,图3的示例的特定实现以及本文所描述的其它实现的附加细节被描述。图4E示出了计算设备420和可以被提供用于经由显示屏幕440向用户显示的交互式内容。可以响应于特别针对于包含花的图像的区域463(图4B)的用户界面输入来提供交互式内容。例如,用户可以在观看图4A的显示的同时提供用户界面输入。用户界面输入可以是例如该区域的“长按”或“长击”或针对于该区域的语言输入(例如,“在屏幕上选择图像”的语言输入)。
基于针对于区域463的用户界面输入,界面引擎124可以向动作确定引擎144提供区域463和区域的语义类型的指示。动作确定引擎144可以确定能够在具有语义类型的区域上执行计算机动作,且/或确定用于提取与区域463对应的像素的指令。动作确定引擎144还可以生成交互式内容,诸如在弹出窗口476中示出的图形元件“save image(保存图像)”、“share image(共享图像)”和“search this image(搜索该图像)”。
动作确定引擎134可以生成图形元件“save image”,使得图形元件“save image”的选择使得计算设备420自动提取区域463的一个或更多个(例如所有)像素以在本地或远程存储介质——并且自动保存图像或者向用户呈现一个或更多个其它界面以指定用户想要在哪里保存图像。动作确定引擎134可以生成图形元件“share image”,使得图形元件“share image”的选择使得计算设备420自动提取区域463的一个或更多个(例如,所有)像素,以在电子邮件、聊天或其它通信中进行填充——并且自动填充通信中的图像或者向用户呈现一个或更多个进一步的界面以指定应当填充哪种类型的通信。动作确定引擎134可以生成图形元件“搜索图像”,使得图形元件“搜索图像”的选择使得计算设备420使得基于区域463的一个或更多个(例如,所有)像素发出搜索。此外,提供指示473,该指示473符合区域463以向计算设备的用户提供反馈,以使用户知道交互式内容针对于区域463并且基于用户对该区域463的选择而被提供。
图5是示出利用启发式粒子提取器将截屏图像分割成一个或更多个区域的示例方法500的流程图。为了方便起见,参考执行操作的系统来描述流程图的操作。该系统可以包括各种计算机系统的各种组件,诸如分割引擎123。此外,尽管以特定顺序示出了方法500的操作,但这并不意味着限制。一个或更多个操作可以被重新排序、省略或添加。
在框552处,系统接收截屏图像。截屏图像捕获由用户的计算设备提供给用户的显示的至少一部分。作为工作示例,假设系统接收图4B的截屏图像460。
在框554处,系统利用单元网格覆盖截屏图像。在一些实现中,单元的网格可以是粗粒度和/或方形单元。例如,单元的网格可以是正方形单元,每一个正方形单元小于0.2”乘0.2”,例如小于0.1”乘0.1”(例如,0.9”乘0.9”)。继续该工作示例,图6A示出了图4B的截屏图像460的一部分(即,包含花的部分),并且示出了可以覆盖在截屏图像460上的单元网格。注意为了图示的容易,图6A的网格单元被示出为比它们在各种实现中可能的大小更大。
在框556处,系统基于由单元包含的像素来对每一个单元进行分类。在一些实现中,对于网格的多个单元中的每一个,系统分析由单元包含的图像的像素的子集(例如,小于10%,诸如2.6%),并且基于对像素子集的分析对单元分类。在一些实现中,子集的像素可以是稀疏分散的低差异准随机像素,诸如基于利用哈尔顿序列和/或Sobol序列的准随机子采样选择的像素。
系统根据每一个单元所属于的多个候选分类中的哪个来对它进行分类。例如,单元可以被二进制分类为“照片”或“非照片”。继续该工作示例,图6A示出被分类为具有阴影的“非照片”的那些单元,并且示出被分类为“照片”而没有阴影的那些单元。例如,单元61被分类为“照片”,并且单元62被分类为“非照片”。
系统可以利用一种或更多种技术来对给定单元进行分类。例如,在一些实现中,基于所分析的像素的独特颜色的数目的计数和/或对于一种或更多种独特颜色中的每一个存在的像素的数量,可以将单元分类为“照片”或“非照片”。例如,如果在单元中存在至少阈值数目的独特颜色的像素且/或对于一种或更多种独特颜色存在至少阈值数目的像素,则单元可以被分类为“照片”。作为另一示例,单元的像素可以被提供作为训练的训练分类器的输入,该训练分类器基于像素组来预测分类。不管用于分类的技术如何,单元的分类导致单元矩阵,每一个单元被分配对应的分类。
在框558处,系统基于单元的分类生成边界框。例如,在二进制分类中,系统可以覆盖“正”单元并合并任何相交的边界框。系统可以可选地丢弃不能满足大小阈值的任何边界框。继续该工作示例,图6B示出了图6A的网格单元,其中还示出了边界框63。边界框63可以在框558处生成,并且边界框63限定截屏图像460的多个区域中的一个。
在框560处,系统基于边界框来限定截屏图像的语义区域。如果在通过一个或更多个块进行分析之前截屏图像被缩减,则系统可以在限定区域时将边界框扩大到原始截屏分辨率。(可选地,放大的)边界框识别原始截屏中的区域的位置。系统可以利用用于生成边界框的分类来识别那些区域的语义标签。继续该工作示例,基于基于分类为“照片”的单元生成的边界框63的区域,系统可以限定基于具有指示“照片”或其它图像的语义标签的图6B的边界框63。在一些实现中,系统还可以通过查找检测到的粗略边缘的邻域中的精确边缘来微调区域的粗糙边缘。给定区域的边缘是否由系统微调可以取决于系统对区域的预期用途。例如,微调边缘对于识别引擎对区域的分析可能是不必要的,但是当该区域要被提取并保存、发送给另一用户等时可能是期望的。
在一些实现中,系统在一个或更多个块(例如,块556和558)中处理小于整个网格单元。例如,如果用户的选择的位置(例如,在显示器上按)作为“侧面输入”被提供给系统,则网格单元的分析能够在与用户的选择的位置对应的网格单元处开始。只要边界框继续增长(即,只要至少一个方向上的相邻单元具有相同的分类),分析就进行到相邻单元。当边界框在任何方向上停止生长时,将不会分析延伸超出边界框在该方向上的可能生长的极限的网格单元。当边界框在所有方向上停止生长时,网格单元的分析能够被完全停止。在这些实现中的一些中,可以确定与用户界面输入对应的截屏图像的特定区域,而不需要对在该特定区域的外侧的许多单元中的像素进行分析。
图7是示出了将计算设备上显示的内容分割成区域并基于区域的一个或更多个特性对区域执行一个或更多个动作的示例方法700的流程图。该系统可以包括各种计算机系统的各种组件,诸如截屏分割系统121、内容路由器引擎128、内容识别引擎129A-C和/或交互式内容生成系统130的一个或更多个组件。此外,尽管方法700的操作以特定顺序示出,但这并不意味着限制。一个或更多个操作可以被重新排序、省略或添加。
在框752处,系统捕获由计算设备提供的显示的至少一部分的截屏图像。
在框754处,系统基于截屏图像的像素将图像分割成多个区域。系统可以利用各种技术来确定截屏图像的区域。例如,在一些实现中,系统包括训练的机器学习模型或者与训练的机器学习模型通信,并且系统可以利用训练的机器学习模型来确定区域。在一些实现中,系统实现启发式粒子提取器以确定截屏图像的区域。
在框756处,系统确定第一区域的至少一个第一特性,并确定第二区域的至少一个第二特性。在一些实现中,第一特性是第一语义类型,并且第二特性是第二语义类型。在一些实现中,第一区域和/或第二区域的特性包括截屏图像中对应区域的绝对大小、截屏图像中对应区域的相对大小、截屏图像中对应区域的位置以及截屏图像中对应区域的像素的密度。
在框758处,系统基于具有第一特性的第一区域在第一区域上执行特定动作。例如,系统可以:基于具有第一特性的第一区域,由内容识别引擎提供用于内容识别的第一区域的像素;基于具有第一特性的第一区域,由适于第一特性的特定内容识别引擎提供第一区域的像素用于内容识别;可以使得能够经由用户界面输入来选择第一区域,以导致保存第一区域的像素、在一个或更多个通信中发送第一区域的像素、将第一区域的像素发送到一个或更多个内容识别引擎;和/或其它动作。
在一些实现中,系统不基于具有第二特性和/或未能具有第一特性的第二区域对第二区域执行特定动作。例如,如果第二特性是“无/空”语义标签,则第二区域的像素可以不被发送到任何内容识别引擎。此外,例如,如果第二特性是与作为第一特性的语义标签不同的语义标签,则可以将第二区域的像素发送到内容识别引擎——而不将第二区域的任何像素发送到第一动作可以针对的不同内容识别引擎。
图8是可以可选地用于执行本文中所描述的技术的一个或更多个方面的实例计算装置810的框图。在一些实现中,计算设备120、交互式内容生成系统130和/或其它组件可以包括示例计算设备810的一个或更多个组件。
计算设备810通常包括经由总线子系统812与多个外围设备通信的至少一个处理器814。这些外围设备可以包括存储子系统824(包括例如存储器子系统825和文件存储子系统826)、用户界面输出设备820、用户界面输入设备822和网络接口子系统816。输入和输出设备允许与计算设备810的用户交互。网络接口子系统816提供到外部网络的接口,并且耦合到其它计算设备中的对应的接口设备。
用户界面输入设备822可以包括键盘,指针设备(诸如鼠标、轨迹球、触摸板或图形输入板)、扫描仪、结合到显示器中的触摸屏、诸如语音识别系统的音频输入设备、麦克风和/或其它类型的输入设备。一般来说,术语“输入设备”的使用旨在包括将信息输入到计算设备810中或通信网络上的所有可能类型的设备和方式。
用户界面输出设备820可以包括显示子系统、打印机、传真机或诸如音频输出设备的非视觉显示器。显示子系统可以包括阴极射线管(CRT)、诸如液晶显示器(LCD)的平板设备、投影设备或用于产生可见图像的一些其它机构。显示子系统还可以例如经由音频输出设备提供非视觉显示。一般来说,术语“输出设备”的使用旨在包括从计算设备810向用户或向另一机器或计算设备输出信息的所有可能类型的设备和方式。
存储子系统824存储提供本文所述的一些或全部模块的功能的编程和数据构造。例如,存储子系统824可以包括用于执行图5和/或图7的方法的所选方面的逻辑。
这些软件模块通常由处理器814单独地或与其它处理器组合地执行。存储子系统824中使用的存储器825能够包括多个存储器,所述多个存储器包括用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)830和其中存储固定指令的只读存储器(ROM)832。文件存储子系统826能够为程序和数据文件提供持久存储,并且可以包括硬盘驱动器、软盘驱动器以及相关联的可移除介质、CD-ROM驱动器、光驱动器或可移除介质盒。实现某些实现的功能的模块可以由文件存储子系统826存储在存储子系统824中或者由处理器814可访问的其它机器中。
总线子系统812提供用于使计算设备810的各种组件和子系统按照预期彼此通信的机制。虽然总线子系统812被示意地示出为单个总线,但是总线子系统的替代实现可以使用多个总线。
计算设备810可以是各种类型的,包括工作站、服务器、计算集群、刀片服务器、服务器场或任何其它数据处理系统或计算设备。由于计算机和网络的不断变化的性质,图8中描述的计算设备810的描述仅出于说明一些实现的目的作为具体实例。计算设备810的许多其它配置可能具有比图8中所示的计算设备多或少的组件。
在本文描述的系统收集关于用户的个人信息或者可以利用个人信息的情况下,可以向用户提供控制程序或特征是否收集用户信息(例如,关于用户的社交网络、社交动作或活动、职业、用户的偏好或用户的当前地理位置)或者控制是否和/或如何从内容服务器接收可能与用户更相关的内容的机会。此外,可以在存储或使用某些数据之前以一种或更多种方式来处理这些数据,从而移除个人可识别信息。例如,可以对用户的身份进行处理,使得不能为用户确定个人可识别信息,或者可以在获得地理位置信息的地方(例如城市、邮政编码或州级别)对用户的地理位置进行概括,使得不能确定用户的特定地理位置。因此,用户可以具有对如何收集关于用户的信息和/或使用信息的控制。
虽然本文已经描述和示出了若干实现,但是可以利用用于执行功能和/或获得结果和/或本文所述的一个或更多个优点的各种其它手段和/或结构,并且这样的变体和/或变型被认为在本文所描述的实现的范围内。更一般地,本文所述的所有参数、尺寸、材料和配置意在是示例性的,并且实际参数、尺寸、材料和/或配置将取决于使用教导的具体应用。本领域技术人员将认识到或者能够使用至多常规实验来确定本文所述的具体实现的许多等同物。因此,应当理解,前述实现仅以示例的方式给出,并且在所附权利要求及其等同物的范围内,可以以与具体描述和要求保护的方式不同的方式实现。本公开的实现涉及本文所述的每一个单独的特征、系统、物品、材料、套件和/或方法。此外,如果这些特征、系统、制品、材料、套件和/或方法不相互不一致,则两个或更多个此类特征、系统、制品、材料、套件和/或方法的任何组合包括在本公开的范围内。
机译: 基于捕获内容的屏幕快照图像的像素,将显示在计算设备上的内容划分为多个区域
机译: 基于捕获内容的屏幕快照图像的像素,在计算设备上显示的内容的区域分割
机译: 基于捕获内容的屏幕快照图像的像素,在计算设备上显示的内容的区域分割