使用弱监督神经网络在图像中视觉定位的制作方法

文档序号:19667336发布日期:2020-01-10 21:52阅读:145来源:国知局
使用弱监督神经网络在图像中视觉定位的制作方法

本发明涉及人工智能。更具体地,本发明涉及将人工智能应用于视觉识别系统。



背景技术:

视觉识别系统可以应用基于机器学习的方法,例如卷积神经网络,其可以包括训练系统根据学习的分类来识别图像中关注的特征或对象。分类可以包括有形属性,例如识别特定有生命或无生命物体的存在。例如,系统可以被训练为学习一个或多个分类(例如,花、狗、椅子),并且一旦训练,其分析一系列测试图像以识别哪些图像包括受训练的分类的对象。

具有机器学习辅助的视觉定位能够应用于检测图像内的异常或识别潜在地引起异常的异常对象。这些应用对于雇员的安全和工业生产过程中的质量控制都是重要的。常规的异常检测方法需要由人员进行视觉检查,或者通过物理检查或者通过观察来自摄像机馈送的图像。

基于机器学习的视觉定位的当前方法具有实际限制,包括需要训练图像的密集手动像素方式的或边界框的标记。例如,标记可以包括围绕出现在图像中的异常对象绘制边界框,这是耗时且不可尺度变化的。



技术实现要素:

根据本发明的实施方式的各方面包括一种用于在测试图像中的视觉定位的系统,该系统包括:至少一个储存装置,其储存计算机可执行指令;以及至少一个处理器,其被配置为存取至少一个储存装置并执行指令,用于使用经训练的分类器网络,以多个经尺度迭代,产生测试图像的注意力图,其中使用图像级分类对分类器网络进行弱监督。在分类器网络中的测试图像的前向传播检测到第一类别的情况下,使用分类器网络的反转生成当前注意力图。所执行的指令还可以在每个尺度迭代中,提取当前注意力图的具有大于阈值的注意力值的一个或多个区域,并且可以将一个或多个提取的区域中的每一个调整大小为子图像,其中子图像的大小是比提取的区域增量的放大。在分类器网络中的子图像的前向传播检测到第一类别的条件下,各尺度迭代的每个后续注意力图可基于对每个子图像的分类器网络的反转。对于每个尺度迭代,可以在当前注意力图显著不同于先前注意力图的条件下,提取当前注意力图的一个或多个区域。所执行的指令还可以基于后续注意力图中的一个或多个,识别测试图像的第一类别的视觉定位。

附图说明

参考以下附图描述本实施方式的非限制性和非穷举性实施方式,其中除非另有说明,否则在所有附图中相同的附图标记表示相同的元件。

图1示出根据本公开的一个或多个实施方式的用于检测图像类别的实例性系统的框图。

图2示出用于如图1所示的系统的训练数据输入的实例。

图3示出根据本公开的一个或多个实施方式的图像的异常区域的注意力图。

图4示出根据本公开的一个或多个实施方式的使用弱监督网络进行视觉定位的实例性过程的流程图。

图5示出与图4所示的视觉定位过程相关的注意力图图像的实例。

图6示出其中可以实现本公开的实施方式的实例性计算环境。

具体实施方式

本公开的实施方式的各方面包括一种使用弱监督网络来检测一个或多个对象的图像中的定位区域的方法。诸如卷积神经网络(cnn)的分类器网络可以被训练用于将图像分类为包括分类对象或具有概念类的特征。所捕获的图像可以由分类器网络处理,以根据一个或多个类别对图像的内容进行分类。例如,分类可以应用于识别图像中相对于经训练的正常状态的任何异常的存在。异常可以对应于图像中描绘的对象中的缺陷,或对应于在正常设置内检测到的异常。在没有先验知识(图像中的异常采取什么形状或形式)的情况下,可以应用分类器网络的基于梯度的反转或反向传播来发现图像的正常和异常部分的固有特性。例如,可以以输入图像的灰度表示的形式生成注意力图,其中突出显示可疑异常的关注。为了改进异常检测并滤除错误检测,可以将每个高响应关注区域(例如,注意力图的最亮区域)裁剪为补丁或子图像,用于以增量缩放进一步处理。每个子图像可以被缩放达到标准图像大小,并且如在输入图像的第一通路中一样由分类器的前向传播来处理。如果检测到异常分类,则可以执行分类器的反转以生成注意力图。可以重复以注意力区域的增量缩放进行的进一步迭代,直到连续注意力图之间的差小于阈值,或者直到已经发生最大次数的迭代为止。可以生成注意力图的汇编,例如通过对所有注意力图的像素量值求平均,这具有减小没有异常的区域的灰度级强度和增强具有异常检测指示的区域中的灰度级值的效果。

图1是描绘根据本公开的一个或多个实例性实施方式的图像异常检测的框图。分类器110,例如cnn,可以具有隐藏层125,其可以包括或省略以下层类型中的一个或多个:卷积层、最大池化层、完全连接层和softmax层。卷积层可以从图像数据中提取特征,例如边缘和线。可选推断模块127可以生成特征图,其可以将一个或多个特征映射到类别。特征图可以被储存为查找表。

在训练期间,分类器110可以被训练用以基于输入图像与训练数据102的比较来分类图像,即学习以识别一系列输入图像中的对象,该训练数据可以是图像或补丁。训练数据102可以包括识别待由分类器110学习的分类的标签或注释。分类器110还可以被训练来分类图像是否包括异常区域。分类器110所使用的训练数据102可以由从输入图像计算的补丁和指示补丁是否包含异常区域的相应真值标签来定义。基于补丁的训练能够帮助分类器110通过聚焦于较小区域来学习异常区域的细粒度特征。在训练数据太小而不能训练模型的情况下,基于补丁的训练也可以避免过度拟合。

例如,训练数据102可以包括已知具有图像异常且如此注释的一组图像。可以基于图像中任何异常部分的存在为整个训练图像定义二进制标记,这可以容易地实时获得而无需大量的标记工作。训练图像中的异常区域不需要被定义、分割或勾画。适当的训练图像可以被定义为具有至少一个异常像素。在训练分类器110之前,可以将每个训练图像标记或注释并储存。例如,可以将具有异常区域的训练图像注释为“正”,并且可以将不具有异常区域的训练图像注释为“负”。因为训练数据102是基于图像级的(即,注释应用于整个图像)而不是基于像素级的,所以根据本发明的实施方式的分类器110的深度学习被认为是弱监督的。应用基于图像级的注释,大大简化了训练过程,以更少的工作量完成。

分类器110可以在没有先前数据或信息的益处的情况下(即,从头开始)经受训练,或者可以根据应用领域中的训练集的大小而进行微调。

分类器110的训练可以应用代价函数,该代价函数测量期望输出与给定训练样本比较的成功程度,其中每个隐藏层125是对一个或多个输入执行操作的加权和偏倚函数f。可以对权重和偏倚值进行调整,直到期望的输出值对于一系列前向传播是可接受的。

分类器110可以在两个阶段中训练。在初始化训练阶段,可以将具有各种对象的非常大的图像集合作为训练数据102馈送到分类器。例如,来自imagenet集合的图像可以用于初始化分类器110的参数。作为训练的细化阶段,可以将预期异常的专用图像作为训练数据102馈送到分类器。例如,在错放物体对特定设置造成潜在安全危险的情况下是在监控站处的常见异常(例如,在修理事件之后由移动机械附近的工人留下的工具),外来物体的各种图像可以在细化阶段期间用作训练数据102。作为除了异常检测之外的另一实例,可以选择训练数据102来训练分类器,以区分难忘和可忘的图像。

在分类器110已经被完全训练之后的正常操作期间,分类器110可以在前向传播120期间处理输入图像101,生成预测输出140的1d向量。例如,在分类对于图像异常的存在是正p或者对于异常的不存在是负n的情况下,可以存在具有在0和1之间的似然值的两个输出,诸如p=0.9和n=0.1。此处,由于p>n,决策145将被定义为指示“正”,即输入图像包含异常。在具有两个输出140的例子中,决策145是二进制的。在本实例中,1d预测向量包含两个类别的两个条目。然而,本发明可以实施两个以上类别,例如n个类别,其中n>2,在此情况下,1d预测向量含有n个值。

响应于分类决策145,分类器110可以按照前向传播120的相反顺序执行每个卷积层125的反向传播130。例如,可以将梯度函数应用于在给定层125的前向传播函数f期间获得的结果值。在一个实施方式中,可以在每个层125上单独地执行以下反向传播操作:

其中是函数f在输入x上的梯度,并且由偏导数确定。

在针对图像的每个像素反向传播130通过隐藏层125的最终操作之后,针对每个像素确定梯度值并将其转换为注意力图103。对于注意力图103中的每个像素,可以与梯度值成比例地分配灰度值。注意力图103可以由分类器110的前向传播和反向传播之间的相互映射来定义。注意力图103包括通过具有正信号和负信号的反向传播产生的注意力图。为了生成正注意力图和负注意力图,可以通过在分类器110中的完全连接层中设置正和节点来生成用于反向传播的正信号或负信号。例如,可以通过将正节点设置为值1并且将负节点设置为值0来生成用于反向传播的正信号。用于反向传播的负信号可以通过将正节点设置为值0并且将负节点设置为值1来生成。注意力图103可以由两个反向传播传导产生,一个具有正信号,第二个具有负信号。对应于正信号的正注意力图编码异常像素的位置。对应于负信号的负注意力图编码正常像素的位置。正和负注意力图都可以包括既不是异常编码的也不是正常编码的像素,并且被认为是不确定的。负注意力图可被用于通过减小不确定像素的面积来提高正注意力图的置信度。使用基于量值阈值比例的评分对注意力图像素进行编码。负注意力图可以通过确定对于每个像素,在正注意力图和负注意力图上都没有高分来重新确认异常像素的位置。

图2示出图1所示系统的增强训练数据的实例。在一个实施方式中,训练数据202可以包括具有图像级标签的数据,诸如上述训练数据102,结合使用边界框标签的图像数据203的较小样本集。训练数据的这种附加细化可以提供用于对图1的弱监督分类器系统进行改进的更稳健和可靠的数据集。图像数据203可被用于创建新类别以在训练时间期间引导分类器。该新类别可以包括排除分类器110的关键聚焦区域的图像补丁。这种特征可用作附加措施,以降低分类器110在图像级监控期间从图像中的背景检测不重要区域的可能性,特别是当场景中存在噪声和背景变化时。

图像级分类可以由n个类别组成。例如,在n=2的基本情况下,训练类别的选择在两种类型的图像之间,一种属于第一类别,另一种属于第二类。实例可以包括有形类,诸如具有人脸的图像和不具有人脸的图像。在概念类内,实例包括定义正常类和异常类,其中异常类包括异常区域。概念类的另一实例包括难忘类和可忘类,其中难忘类可以被定义为具有视觉上吸引人的区域或具有显著细节的图像。

在一个实施方式中,训练数据202可以由基于图像前景中的对象的旋转取向的两个类别组成,其中第一类别可以表示从表示参考基线取向的第二类中的相同对象的图像旋转一定程度的对象的图像。对于具有图像级标签的每一类,具有图像级标签102的训练数据可以包括大量样本,例如大约400个样本。针对具有边界框标签的训练数据203选择的图像可以由较少数量的样本组成,例如每个类别大约20个图像,其中边界框包围图像中有助于检测旋转的关键标记。图像补丁205可以从每个类别的样本图像中剪切,并且可以被标记为包括具有与从中剪切补丁的图像对应的相同图像级类别标签的标记。图像补丁207可以从不在边界框内的区域剪切,并且被标记为名为“模糊”的新类别。可以调整图像补丁205和207的大小以匹配原始图像的大小。一旦生成并调整了训练数据图像205和207的所有集合,则可以通过应用训练数据102、205和207来训练分类器110。训练数据102、205和207还可以作为在分类器110的初始训练(或“预训练”)之后由可用开源训练数据集之一(例如imagenet)进行的再训练来应用。

图3示出根据本公开的一个或多个实施方式的图像的异常区域的注意力图的实例。在一个实施方式中,经训练的分类器网络110可以生成异常类的注意力图。输入图像301可以是由分类器网络110视觉定位异常的若干测试图像之一。输入图像301包括正常区域302和异常区域303。对于该实例,正常区域302包括前景中的机器,并且图像的异常区域303是机器表面上的错放的工具,这可能存在干扰机器安全操作的危险。因此,异常区域303将由分类器网络110定位。可由输入图像301通过图1的分类器110的反向传播生成的注意力图311通过相对于图像的其余部分(例如,比其他区域相对更暗或更亮)的尖锐灰度级对比度或强度变化来显示高注意力区域313,作为异常区域的指示。其他变化是可能的,例如使用色彩渐变来强调注意力区域313。尽管示出并描述了用于视觉定位的错放的工具的实例,但是可以选择图像前景的其他特征用于正常和异常分类,包括但不限于对称对象的旋转取向。

图4示出根据本公开的一个或多个实施方式的使用弱监督网络的视觉定位过程的实例的流程图。如图所示,该过程是基于尺度的迭代操作集,尺度0到尺度n。在尺度0,诸如输入图像401的测试图像可以被馈送到分类器操作402,其可以包括分类器前向传播432、用于成功类别检测的测试442和分类器反转452。分类器反转452可以生成注意力图403。注意力提取器405可以从注意力图403中裁剪一个或多个子图像411。

图5示出了与图4所示的视觉定位过程相关的注意力图图像的实例。在尺度0处,输入图像501可由分类器操作402处理以产生注意力图502,其将区域512、522、532识别为由超过阈值的注意力值(例如具有高对比度和/或强度量值的像素)指示的分类的潜在局部化区域。然后,注意力提取器405可以通过方框513执行提取操作503,并且剪切由最强注意力指示的异常区域。方框513操作可以基于具有根据优化聚类区域而设置的参数的聚类算法,以具有最小数量的像素来提供有意义的分析,并且也可以具有箱体区域的最大限制来覆盖处理时间和资源。注意力提取器405可以将每个方框区域裁剪为提取图像,并且根据用于分类器操作的参数集以可变比例调整提取图像的大小(例如,调整大小为n×m像素大小,其中n和m是分类器网络的参数)。当经后续迭代处理时,经调整大小的提取图像有效地放大关注区域512、522、532以用于细化第一注意力图。尺寸调整后的提取图像变成子图像511、521、531,用于尺度1迭代的输入。如果执行了后续尺度迭代2至n,则可以在每个迭代处扩大注意力区域,以进一步细化注意力图,直到达到最佳注意力图为止。

返回到图4,子图像411可以被馈送到分类器操作412,用于尺度1迭代。尽管为了简化在图示中没有示出,分类器操作412包括与上述用于分类器操作402的操作相同的操作。注意力图413是在成功检测到所寻找的类的条件下(以类似于尺度0迭代的测试442的方式)分类器操作412的输出。限制测试414可以检查迭代注意力映射是否应该继续。举例来说,限制测试414可以确定注意力图413是否显著不同于注意力图403,以保证以增量缩放通过额外迭代来进一步细化。例如,整个注意力图403和整个注意力图413的灰度级的比较可以指示像素级灰度级强度的变化。在变化值小于阈值的情况下,处理可以停止,结论是已经获得了最佳注意力图。如果变化不小于阈值,则注意力提取器415可以开始对注意力图413的提取操作。作为另一实例,限制测试414可以包括检查是否已发生预设最大迭代计数的测试,其可基于设计者偏好来限制处理资源的支出。如图4所示,尺度1迭代可以通过裁剪和调整注意力区域的大小以产生对应于所提取的注意力区域的数目的一个或多个子图像421来结束。在极限测试不提示终止的条件下,尺度2到尺度n的进一步迭代可以以类似于上述尺度1迭代的方式进行。

返回到图5,示出针对实例性操作的尺度1迭代,在该实例性操作中,只有一个子图像从分类器412的前向传播中生成检测到的类。在子图像521和531未能生成检测到的分类的情况下,由于注意力区域512和532可能由于背景噪声而被误报,只有子图像511被分类器的反转处理以产生具有细化的注意力区域552的注意力图542。当构造注意力图542时,将注意力区域从尺度1重新缩放为尺度0,并且将其放置在图542中与其在原始注意力图502中的位置相对应的位置处,从而可以执行连续注意力图的一对一比较。注意力图542与先前注意力图502的比较指示显著的灰度级变化,因为区域512和532已被消除。作为对放大图像511进行分类器操作的结果,新的注意力图542还可以生成与先前的注意力图区域522相比更精细的注意力区域552。例如,注意力区域552可以包括较少的像素,其中先前注意力区域522的额外像素已被消除且可归因于尺度0迭代中存在的背景噪声。该注意力区域552可以在513处被提取工具剪切,并且被调整大小为子图像541。尺度2迭代可以使用子图像541作为分类器网络的前向传播的输入图像来进行。在类别的检测和分类器网络的反转之后,生成具有注意力区域572的注意力图562,该注意力区域572非常类似于先前注意力图542的注意力区域552。在注意力图542和562之间的灰度变化低于阈值的条件下,可以终止迭代过程。可以通过平均注意力图502、542和562来生成组合注意力图,以生成测试图像501中被寻找类别的视觉定位。或者,注意力图562可被用于测试图像501的所寻找类别的最佳视觉定位。

具有增量的尺度0到n的迭代的优点在于,可以通过分类器反转以比先前比例更精细的分辨率来分析经调整大小的子图像,使得所得到的注意力图可以将一个或多个先前注意力区域揭示为错误的,如在尺度1迭代中被消除的注意力图502的区域512和532的情况。

图6示出其中可实施本公开的实施方式的实例性计算环境700。诸如计算机系统710和计算环境700的计算机和计算环境是本领域技术人员已知的,因此在此简要描述。

如图6所示,计算机系统710可以包括诸如系统总线721的通信机制或用于在计算机系统710内传送信息的其他通信机制。计算机系统710还包括与系统总线721耦合的一个或多个处理器720,用于处理信息。

处理器720可以包括一个或多个中央处理单元(cpu)、图形处理单元(gpu)或本领域已知的任何其他处理器。更普遍地,本文描述的处理器是用于执行储存在计算机可读介质上的机器可读指令,用于执行任务的设备,并且可以包括硬件和固件中的任何一个或其组合。处理器还可以包括储存可执行用于执行任务的机器可读指令的存储器。处理器通过操纵、分析、修改、转换或传输由可执行程序或信息设备使用的信息,和/或通过将信息路由到输出设备来对信息起作用。处理器可以使用或包括例如计算机、控制器或微处理器的能力,并且可以使用可执行指令来调节以执行不是由通用计算机执行的专用功能。处理器可以包括任何类型的适当处理单元,包括但不限于中央处理单元、微处理器、精简指令集计算机(risc)微处理器、复杂指令集计算机(cisc)微处理器、微控制器、专用集成电路(asic)、现场可编程门阵列(fpga)、片上系统(soc)、数字信号处理器(dsp)等。此外,处理器720可以具有任何合适的微体系结构设计,其包括任何数量的组成部件,例如寄存器、多路复用器、算术逻辑单元、用于控制对高速缓冲存储器的读/写操作的高速缓存控制器、分支预测器等。处理器的微体系结构设计能够支持多种指令集中的任何一种。处理器可以与能够在其间进行交互和/或通信的任何其他处理器耦合(电耦合和/或包括可执行组件)。用户界面处理器或生成器是包括用于生成显示图像或其部分的电子电路或软件或两者的组合的已知元件。用户界面包括使用户能够与处理器或其他设备交互的一个或多个显示图像。

系统总线721可以包括系统总线、存储器总线、地址总线或消息总线中的至少一个,并且可以允许在计算机系统710的各个组件之间交换信息(例如,数据(包括计算机可执行代码)、信令等)。系统总线721可以包括但不限于存储器总线或存储器控制器、外围总线、加速图形端口等。系统总线721可以与任何合适的总线体系结构相关联,包括但不限于工业标准体系结构(isa)、微通道体系结构(mca)、增强型isa(eisa)、视频电子技术标准协会(vesa)体系结构、加速图形端口(agp)体系结构、外围组件互连(pci)体系结构、pci-express体系结构、pc机内存卡国际联合会(pcmcia)体系结构、通用串行总线(usb)体系结构等。

继续参考图6,计算机系统710还可以包括耦合到系统总线721的系统存储器730,用于储存待由处理器720执行的信息和指令。系统存储器730可以包括易失性和/或非易失性存储器形式的计算机可读储存介质,例如只读存储器(rom)731和/或随机存取存储器(ram)732。ram732可以包括其他动态储存装置(例如,动态ram、静态ram和同步dram)。rom731可以包括其他静态储存装置(例如,可编程rom、可擦除prom和电可擦除prom)。此外,系统存储器730可被用于在处理器720执行指令期间储存临时变量或其他中间信息。基本输入/输出系统733(bios)包含有助于诸如在启动期间在计算机系统710内的元件之间传递信息的基本例程,其可以储存在rom731中。ram732可包含处理器720可立即访问和/或当前正在其上操作的数据和/或程序模块。系统存储器730还可以包括例如操作系统734、应用程序735和其他程序模块736。

操作系统734可以被加载到存储器730中,并且可以提供在计算机系统710上执行的其他应用软件和计算机系统710的硬件资源之间的接口。更具体地,操作系统734可以包括一组计算机可执行指令,用于管理计算机系统710的硬件资源以及用于向其他应用程序提供公共服务(例如,管理各种应用程序之间的存储器分配)。在某些实例性实施方式中,操作系统734可以控制被描述为储存在数据储存器740中的一个或多个程序模块的执行。操作系统734可以包括现在已知的或将来可能开发的任何操作系统,包括但不限于任何服务器操作系统、任何主机操作系统,或任何其他专有或非专有操作系统。

应用程序735可以是用于执行根据本公开的实施方式的视觉定位过程的一组计算机可执行指令。

计算机系统710还可以包括耦合到系统总线721的盘/介质控制器743,以控制用于储存信息和指令的一个或多个储存装置,诸如硬磁盘741和/或可移动介质驱动器742(例如,软盘驱动器、光盘驱动器、磁带驱动器、闪存驱动器和/或固态驱动器)。储存装置740可以使用适当的设备接口(例如,小型计算机系统接口(scsi)、集成设备电子设备(ide)、通用串行总线(usb)或火线)添加到计算机系统710。储存装置741、742可在计算机系统710外部,且可用于储存根据本公开的实施方式的图像处理数据,例如输入图像数据101、训练数据102、注意力图103、输出140以及关于图1描述的决策数据145、关于图2示出和描述的训练数据202、如图4所示的注意力图403、413、423、输入图像401、子图像411、421和注意力图组合405。

计算机系统710还可以包括耦合到系统总线721的显示控制器765,以控制显示器或监视器766,例如阴极射线管(crt)或液晶显示器(lcd),用于向计算机用户显示信息。计算机系统包括用户输入接口760和一个或多个输入设备,诸如用户终端761,其可以包括键盘、触摸屏、平板和/或定点装置,用于与计算机用户交互并向处理器720提供信息。显示器766可以提供触摸屏接口,其允许输入来补充或替换用户终端设备761的方向信息和命令选择的通信。

计算机系统710可以响应于处理器720执行包含在诸如系统存储器730的存储器中的一个或多个指令的一个或多个序列,来执行本发明的实施方式的处理步骤的一部分或全部。这些指令可从另一计算机可读介质(例如,硬磁盘741或可移动介质驱动器742)读入系统存储器730。硬磁盘741可以包含由本发明的实施方式使用的一个或多个数据储存和数据文件。数据储存可包括但不限于数据库(例如,关系型、面向对象型等)、文件系统、平面文件,其中数据储存在计算机网络的一个以上节点上的分布式数据储存、对等网络数据储存等。数据储存器可以储存各种类型的数据,例如图1所示的分类器网络110的层125。数据储存内容和数据文件可以被加密以提高安全性。处理器720还可以用在多处理装置中以执行包含在系统存储器730中的一个或多个指令序列。在替代实施方式中,可以使用硬连线电路来代替软件指令或与软件指令组合。因此,实施方式不限于硬件电路和软件的任何特定组合。

如上所述,计算机系统710可包括至少一个计算机可读介质或存储器,用于保存根据本发明实施方式编程的指令,并用于包含数据结构、表、记录或本文所述的其他数据。这里使用的术语“计算机可读介质”是指参与向处理器720提供指令以供执行的任何介质。计算机可读介质可以采取多种形式,包括但不限于非瞬态、非易失性介质、易失性介质和传输介质。非易失性介质的非限制性实例包括光盘、固态驱动器、磁盘和磁光盘,诸如硬磁盘741或可移动介质驱动器742。易失性介质的非限制性实例包括动态存储器,诸如系统存储器730。传输介质的非限制性实例包括同轴电缆、铜线和光纤,包括构成系统总线721的导线。传输介质还可以采用声波或光波的形式,例如在无线电波和红外数据通信期间产生的声波或光波。

用于执行本发明的操作的计算机可读介质指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微码、固件指令、状态设置数据,或者以一种或多种编程语言的任意组合编写的源代码或目标代码,包括诸如smalltalk、c++等面向对象的编程语言,以及常规的过程编程语言,诸如“c”编程语言或类似的编程语言。计算机可读程序指令可以完全在用户的计算机上、部分在用户的计算机上、作为独立软件包、部分在用户的计算机上、部分在远程计算机上或完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(lan)或广域网(wan),或者可以连接到外部计算机(例如,通过使用因特网服务提供商的因特网)。在一些实施方式中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来个性化电子电路来执行计算机可读程序指令,以便执行本发明的各方面。

本文参考根据本公开的实施方式的方法、装置(系统)和计算机程序产品的流程图图示和/或框图来描述本公开的各方面。应当理解,流程图说明和/或框图的每个框,以及流程图说明和/或框图中的框的组合可以由计算机可读介质指令来实现。

计算环境700还可以包括在网络化环境中操作的计算机系统710,其使用到一个或多个远程计算机(诸如远程计算装置780)和一个或多个视觉检测装置781(诸如可以检测rgb、红外、深度(例如立体照相机)等中的一个的照相机)的逻辑连接来捕捉输入图像101、401、501。网络接口770可以实现例如经由网络771与其他远程设备780或系统和/或存储装置741、742的通信。远程计算设备780可以是个人计算机(笔记本电脑或台式机)、移动装置,服务器、路由器、网络pc、对等设备或其他常见网络节点,并且通常包括以上相对于计算机系统710描述的许多或全部元件。当在联网环境中使用时,计算机系统710可以包括调制解调器772,用于通过诸如因特网的网络771建立通信。调制解调器772可经由用户网络接口770或经由另一适当机制连接到系统总线721。

网络771可以是本领域公知的任何网络或系统,包括因特网、内联网、局域网(lan)、广域网(wan)、城域网(man)、直接连接或一系列连接、蜂窝电话网络,或能够促进计算机系统710与其他计算机(例如,远程计算装置780)之间的通信的任何其他网络或介质。网络771可以是有线的、无线的或其组合。有线连接可以使用以太网、通用串行总线(usb)、rj-6或本领域公知的任何其他有线连接来实现。无线连接可以使用wi-fi、wimax和蓝牙、红外、蜂窝网络、卫星或本领域公知的任何其他无线连接方法来实现。另外,若干网络可单独工作或彼此通信以促进网络771中的通信。

应了解,图6中所描绘的储存在系统存储器730中的程序模块、应用程序、计算机可执行指令、代码等仅是说明性的而非穷尽性的,且描述为由任何特定模块支持的处理可替代地分布在多个模块上或由不同模块执行。此外,各种程序模块、脚本、插件、应用编程接口(api)或本地托管在计算机系统710、远程设备780上和/或托管在可经由一个或多个网络771访问的其他计算设备上的任何其他合适的计算机可执行代码,可被提供来支持由图6中描绘的程序模块、应用程序或计算机可执行代码提供的功能和/或附加或替换功能。此外,功能可被不同地模块化,使得被描述为由图6中所描绘的程序模块集合共同支持的处理可由更少或更多数量的模块来执行,或者被描述为由任何特定模块支持的功能可至少部分地由另一模块来支持。此外,支持在此描述的功能的程序模块可以形成一个或多个应用程序的一部分,该一个或多个应用程序可根据任何合适的计算模型在任何数量的系统或设备上执行,该计算模型例如是客户机-服务器模型、对等模型等。另外,描述为由图6中所描绘的程序模块中的任一个所支持的功能中的任一个可以在任何数量的设备上至少部分地以硬件和/或固件来实现。

如本文所使用的,可执行应用程序包括代码或机器可读指令,用于例如响应于用户命令或输入来调节处理器以实现预定功能,诸如操作系统、上下文数据获取系统或其他信息处理系统的功能。可执行程序是用于执行一个或多个特定过程的一段代码或机器可读指令、子程序,或代码的其他不同部分或可执行应用程序的一部分。这些处理可以包括接收输入数据和/或参数;对接收到的输入数据执行操作和/或响应于接收到的输入参数执行功能;以及提供结果输出数据和/或参数。

本文使用的图形用户界面(gui)包括由显示处理器生成的一个或多个显示图像,并且使得用户能够与处理器或其他设备交互以及相关联的数据获取和处理功能。gui还包括可执行程序或可执行应用程序。可执行程序或可执行应用程序调节显示处理器以生成表示gui显示图像的信号。这些信号被提供给显示用户观看的图像的显示设备。处理器在可执行程序或可执行应用程序的控制下,响应于从输入设备接收的信号来操纵gui显示图像。这样,用户可以使用输入设备与显示图像交互,使得用户能够与处理器或其他设备交互。

本文所述的功能和处理步骤可以响应于用户命令自动地或全部地或部分地执行。响应于一个或多个可执行指令或设备操作来执行自动执行的活动(包括步骤),而无需用户直接启动该活动。

附图中的系统和过程不是排他性的。根据本发明的原理可以导出其他系统、过程和菜单以实现相同的目的。尽管已经参考特定实施方式描述了本发明,但是应当理解,本文示出和描述的实施方式和变型仅用于说明的目的。在不脱离本发明的范围的情况下,本领域技术人员可以实现对当前设计的修改。如本文所述,可以使用硬件组件、软件组件和/或其组合来实现各种系统、子系统、代理、管理器和过程。除非使用短语“用于...的装置”明确地陈述元件,否则本文中的权利要求元件不应根据35u.s.c.112第六款的规定来解释。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1