使用变换以验证计算机视觉质量

文档序号:1243155 发布日期:2020-08-18 浏览:3次 >En<

阅读说明:本技术 使用变换以验证计算机视觉质量 (Using transformations to verify computer vision quality ) 是由 J.布罗伊达 于 2019-11-08 设计创作,主要内容包括:公开了用于使用图像数据集变换以验证计算机视觉系统的质量的技术。在一些示例实施例中,计算机实施的方法包括:访问数据库以获得参考图像;使用多个变换基于参考图像生成多个新图像,多个变换中的每一个被配置为改变参考图像的对应视觉属性;将多个新图像馈送到图像分类器中,以生成用于多个新图像中的每一个的对应分类结果;基于生成的用于多个新图像分类结果,确定图像分类器不满足一个或多个准确度标准;以及基于确定图像分类器不满足一个或多个准确度标准,选择性地执行功能。(Techniques for using image dataset transforms to verify the quality of a computer vision system are disclosed. In some example embodiments, a computer-implemented method includes: accessing a database to obtain a reference image; generating a plurality of new images based on the reference image using a plurality of transforms, each of the plurality of transforms configured to change a corresponding visual property of the reference image; feeding the plurality of new images into an image classifier to generate a corresponding classification result for each of the plurality of new images; determining, based on the generated results for the plurality of new image classifications, that the image classifier does not satisfy one or more accuracy criteria; and selectively performing a function based on determining that the image classifier does not satisfy the one or more accuracy criteria.)

使用变换以验证计算机视觉质量

技术领域

本申请一般地涉及神经网络的技术领域,并且在各种实施例中,涉及用于使用图像数据集变换以验证计算机视觉系统的质量的系统和方法。

背景技术

计算机视觉是计算机科学的领域,致力于使计算机能够以与人类视觉相同的方式查看、识别和处理图像,并且然后提供适当的输出。然而,在将计算机视觉系统作为服务提供之前,难以正式地或通过实验确定计算机视觉系统是否提供了可接受的质量等级(例如,准确度),因为可以用于质量验证过程的标记数据集是有限的,而可能的真实世界输入数据的多样性非常高。用于计算机视觉系统的当前标记数据集未能解决图像发生的可能影响计算机视觉系统的性能质量的真实世界失真。在计算机视觉系统的训练中使用的训练数据中也发现了未能解决图像中的真实世界失真的这种情况。

发明内容

提供了用于使用图像数据集变换以验证计算机视觉系统的质量的计算机实施的方法,方法包括:访问数据库以获得参考图像;由至少一个硬件处理器使用多个变换基于参考图像生成多个新图像,多个变换中的每一个被配置为改变参考图像的对应视觉属性;由至少一个硬件处理器将多个新图像馈送到图像分类器中,以生成用于多个新图像中的每一个的对应分类结果;由至少一个硬件处理器基于生成的用于多个新图像的分类结果确定图像分类器不满足一个或多个准确度标准;以及基于确定图像分类器不满足一个或多个准确度标准,由至少一个硬件处理器选择性地执行功能。

提供了用于使用图像数据集变换以验证计算机视觉系统的质量的系统,系统包括:至少一个处理器;和存储可运行指令的非暂时性计算机可读介质,可运行指令当被运行时使至少一个处理器执行包括以下的操作:访问数据库以获得参考图像;使用多个变换基于参考图像生成多个新图像,多个变换中的每一个被配置为改变参考图像的对应视觉属性;将多个新图像馈送到图像分类器中,以生成用于多个新图像中的每一个的对应分类结果;基于生成的用于多个新图像的分类结果,确定图像分类器不满足一个或多个准确度标准;以及基于确定图像分类器不满足一个或多个准确度标准,选择性地执行功能。

提供了非暂时性机器可读存储介质,介质有形地体现指令的集合,指令的集合当由至少一个处理器运行时使至少一个处理器执行包括以下的操作:访问数据库以获得参考图像;使用多个变换基于参考图像生成多个新图像,多个变换中的每一个被配置为改变参考图像的对应视觉属性;将多个新图像馈送到图像分类器中,以生成用于多个新图像中的每一个的对应分类结果;基于生成的用于多个新图像的分类结果,确定图像分类器不满足一个或多个准确度标准;以及基于确定图像分类器不满足一个或多个准确度标准,选择性地执行功能。

附图说明

在附图的图中通过示例并且非限制的方式示出了本公开的一些示例实施例,其中相同的参考标号指示相似的元素。

图1是示出根据一些示例实施例的客户端-服务器系统的网络图。

图2是示出根据一些示例实施例的企业应用平台中的企业应用和服务的框图。

图3是示出根据一些示例实施例的计算机视觉系统的框图。

图4A-图4C示出了根据一些示例实施例的在生成新图像中将变换的不同类型应用于参考图像。

图5示出了根据一些示例实施例的在生成新图像中将多个变换应用于参考图像。

图6示出了根据一些示例实施例的被配置为接收变换参数的图形用户界面(Graphical User Interface,GUI)。

图7是示出根据一些示例实施例的使用图像数据集变换以验证计算机视觉系统的质量的方法的流程图。

图8是根据一些示例实施例的可以在其上运行本文描述的方法论的示例计算机系统的框图。

具体实施方式

公开了用于使用图像数据集变换以验证计算机视觉系统的质量的示例方法和系统。在以下描述中,出于解释的目的,阐述了许多具体细节以便提供对示例实施例的透彻理解。然而,对于本领域技术人员将明显的是,可以在没有这些具体细节的情况下实践目前的实施例。

在一些示例实施例中,计算机视觉系统被配置为将模拟真实世界失真的变换应用于图像的参考数据集,并产生更加多样化且更接近真实世界数据的新图像数据集。此新图像数据集的生成和应用使得计算机视觉系统能够在可能的真实世界使用情况中更好地评估(例如,估计)计算机视觉系统的质量等级,从而改善计算机视觉系统的功能。

本文公开的特征的实施方式涉及非通用的、非传统的和非常规的操作或操作的组合。通过应用本文公开的解决方案中的一个或多个,本公开的系统和方法的一些技术效果是改善计算机视觉系统的质量(例如,准确度)。作为结果,改善了计算机视觉系统的功能。其它技术效果也将从本公开显而易见。

本文公开的方法或实施例可以实施为具有一个或多个模块(例如,硬件模块或软件模块)的计算机系统。这些模块可以由计算机系统的一个或多个硬件处理器运行。在一些示例实施例中,非暂时性机器可读存储设备可以存储指令的集合,当由至少一个处理器运行时,指令的集合使得至少一个处理器执行本公开内讨论的操作和方法步骤。

在附图和以下描述中阐述了本文描述的主题的一个或多个变化的细节。本文描述的主题的其它特征和益处将从描述和附图以及从权利要求显而易见。

图1是示出根据一些示例实施例的客户端-服务器系统100的网络图。在企业应用平台112的示例形式中,平台(例如,机器和软件)经由网络114(例如,互联网)向一个或多个客户端提供服务器端功能性。图1示出了例如具有程序化客户端118(例如,浏览器)的客户端机器116、具有小型设备web客户端120(例如,没有脚本引擎的浏览器)的小型设备客户端机器122、以及具有程序化客户端119的客户端/服务器机器117。

具体地转向示例企业应用平台112,web服务器124和应用程序接口(ApplicationProgram Interface,API)服务器125可以耦合到应用服务器126,并向应用服务器126提供web和编程接口。应用服务器126可以反过来耦合到便于访问一个或多个数据库130的一个或多个数据库服务器128。跨功能(cross-functional)服务132可以包括关系型数据库模块,以提供对(多个)数据库130的访问的支持服务,(多个)数据库130包括用户界面库136。Web服务器124、API服务器125、应用服务器126和数据库服务器128可以托管跨功能服务132。应用服务器126可以进一步托管域应用134。

跨功能服务132向利用企业应用平台112的用户和进程提供服务。例如,跨功能服务132可以为操作客户端机器116、客户端/服务器机器117和小型设备客户端机器122的用户提供门户服务(例如,web服务)、数据库服务和到域应用134的连接性。此外,跨功能服务132可以提供用于递送对现有应用的增强以及用于将第三方和遗留应用与现有跨功能服务132和域应用134集成的环境。此外,虽然图1中所示的系统100采用客户端-服务器架构,但是本公开的实施例当然不限于这样的架构,并且在分布式或对等式架构系统中同样可以很好地找到应用。

企业应用平台112可以改善(例如,增加)跨计算机系统架构的不同环境的数据的可访问性。例如,企业应用平台112可以有效且高效地使用户能够当在开发环境中测试软件解决方案的实例时使用从由开发环境中的软件解决方案的部署的实例的一个或多个最终用户的使用创建的真实数据。下面结合图2-图8更详细地描述企业应用平台112。

图2是示出根据示例实施例的企业应用平台112中的企业应用和服务的框图。企业应用平台112可以包括跨功能服务132和域应用134。跨功能服务132可以包括门户模块140、关系型数据库模块142、连接器和消息传递模块144、API模块146和开发模块148。

门户模块140可以为客户端机器116、小型设备客户端机器122和客户端/服务器机器117启用对其它跨功能服务132和域应用134的单点访问。门户模块140可用于处理、创作和维护向用户呈现内容(例如,用户界面元素和导航控件)的网页。此外,门户模块140可以启用用户角色,即将角色与由用户用来运行任务、利用服务以及与定义的范围内的其它用户交换信息的专用环境相关联的构造。例如,角色可以确定用户可用的内容以及用户可以执行的活动。门户模块140包括生成模块、通信模块、接收模块和再生模块。此外,门户模块140可以符合web服务标准和/或利用各种互联网技术,包括J2EE、SAP的高级业务应用编程语言和Web Dynpro、XML、JCA、JAAS,X.509、LDAP、WSDL、WSRR、SOAP、UDDI和

关系型数据库模块142可以提供用于对(多个)数据库130的访问的支持服务,(多个)数据库130包括用户界面库136。关系型数据库模块142可以提供对对象关系型映射、数据库独立性和分布式计算的支持。关系型数据库模块142可用于添加、删除、更新和管理数据库元素。此外,关系型数据库模块142可以符合数据库标准和/或利用各种数据库技术,包括SQL、SQLDBC、Oracle、MySQL、Unicode、JDBC等。

连接器和消息传递模块144可以通过提供公共消息传递应用处理接口来启用跨越跨功能服务132和域应用134利用的消息传递系统的不同类型的通信。连接器和消息传递模块144可以在企业应用平台112上启用异步通信。

API模块146可以通过将接口暴露给现有和新应用作为服务来启用基于服务的应用的开发。存储库可以作为当构建应用时用于查找可用服务的中心位置而被包括在平台中。

开发模块148可以提供用于在企业应用平台112上添加、集成、更新和扩展软件组件的开发环境,而不会影响现有的跨功能服务132和域应用134。

转向域应用134,客户关系管理应用150可以启用对多个数据源和业务流程的访问,并且可以促进从多个数据源和业务流程收集和存储相关的个性化信息。负责将买方发展为长期客户的企业人员可以利用客户关系管理应用150在整个客户参与周期中向买方提供帮助。

企业人员可以利用财务应用152和业务流程来跟踪和控制企业应用平台112内的金融交易。财务应用152可以促进与财务管理相关联的操作、分析和协作任务的运行。具体地,财务应用152可以启用与财务责任、计划、预测和管理财务成本相关的任务的性能。

人力资源应用154可以由企业人员和业务流程用来管理、部署和跟踪企业人员。具体地,人力资源应用154可以启用人力资源问题的分析并且基于实时信息促进人力资源决定。

产品生命周期管理应用156可以贯穿产品的生命周期启用产品的管理。例如,产品生命周期管理应用156可以启用业务伙伴当中的协作工程、定制产品开发、项目管理、资产管理和质量管理。

供应链管理应用158可以启用对供应链中观察到的性能的监控。供应链管理应用158可以促进对于生产计划的遵守以及产品和服务的准时交付。

第三方应用160以及遗留应用162可以与域应用134集成并且利用企业应用平台112上的跨功能服务132。

图3是示出根据一些示例实施例的计算机视觉系统300的框图。在一些示例实施例中,计算机视觉系统300被配置为将模拟真实世界失真的变换应用于图像的参考数据集,并产生用于验证计算机视觉系统300的质量的新图像数据集。在一些实施例中,计算机视觉系统300包括变换模块310、分类模块320、验证模块330、功能模块340和一个或多个数据库350中的一个或多个的任何组合。模块310、320、330和340以及(多个)数据库350可以驻留在具有存储器和至少一个处理器(未示出)的计算机系统或其它机器上。在一些实施例中,模块310、320、330和340以及(多个)数据库350可以合并到图1中的(多个)应用服务器126中。然而,预期模块310、320、330和340以及(多个)数据库350的其它配置也在本公开的范围内。

在一些示例实施例中,模块310、320、330和340中的一个或多个被配置为提供各种用户界面功能性,诸如生成用户界面、交互地向用户呈现用户界面、从用户接收信息(例如,与用户界面的交互)等。向用户呈现信息可以包括使得向用户呈现信息(例如,用向用户呈现信息的指令来向设备通信信息)。可以使用各种手段来呈现信息,包括可视地显示信息和使用其它设备输出(例如,音频、触觉等)。类似地,可以经由各种手段接收信息,包括字母数字输入或其它设备输入(例如,一个或多个触摸屏、相机、触觉传感器、光传感器、红外传感器、生物传感器、麦克风、陀螺仪、加速度计、其它传感器等)。在一些示例实施例中,模块310、320、330和340中的一个或多个被配置为接收用户输入。例如,模块310、320、330和340中的一个或多个可以呈现用户可以用来提交输入的一个或多个GUI元素(例如,下拉菜单、可选按钮、文本字段)。在一些示例实施例中,模块310、320、330和340中的一个或多个被配置为执行各种通信功能以促进本文描述的功能性,诸如通过使用有线或无线连接经由网络114与计算设备305通信。

在一些示例实施例中,变换模块310访问数据库350以获得参考图像。例如,多个参考图像可以存储在(多个)数据库350中,并且变换模块310可以访问和检索存储在(多个)数据库350中的参考图像。每个参考图像可以包括在参考图像中捕获的一个或多个对象。

在一些示例实施例中,变换模块310被配置为使用多个变换基于参考图像生成多个新图像。多个变换中的每一个可以被配置为改变参考图像的对应视觉属性以便模拟图像的真实世界失真。图4A-图4C分别示出了根据一些示例实施例的在生成新图像420A、420B和420C中将变换410A、410B和410C的不同类型分别应用于参考图像400。尽管图4A-图4C中所示的示例示出了包括单个对象405的图像400,但是预期图像400可以包括多个对象。

在图4A中,应用于参考图像400的变换410A包括旋转参考图像400。通过应用变换410A,变换模块310生成新图像420A,在新图像420A中对象405已经从其在参考图像400中的原始方向旋转。尽管图4A示出了关于单个特定轴的旋转,但是预期变换410A也可以包括关于不同轴或多个轴的旋转。

在图4B中,应用于参考图像400的变换410B包括缩放(例如,大小调整(resize))参考图像400的视觉大小。通过应用变换410B,变换模块310生成新图像420B,在新图像420B中对象405已经从其在参考图像400中的原始视觉大小进行了大小调整。尽管图4B示出了包括具有对对象405进行放大的视觉效果的参考图像400的大小调整的变换410B,但是预期变换410B还可以包括具有对对象405进行缩小的视觉效果的参考图像400的大小调整。

在图4C中,应用于参考图像400的变换410C包括改变参考图像400的压缩质量等级。图像压缩包括减小图形文件的字节中的大小,这将降低图形文件的分辨率。通过应用变换410C,变换模块310生成新图像420C,在新图像420C中对象405的压缩质量等级已经从其在参考图像400中的原始压缩质量等级改变。图4C示出了包括降低参考图像400的压缩质量等级的变换410C,这导致分辨率的降低,从而使得对象405在新图像420C中看起来更模糊或像素化。

尽管图4A-图4C示出了单个变换410A、410B和410C分别应用于参考图像400,但是在一些示例实施例中,变换模块310在生成新图像中将多个变换应用于参考图像400。图5示出了根据一些示例实施例的在生成新图像520中将多个变换510应用于参考图像400。在图5中所示的示例中,多个变换510包括旋转参考图像400、缩放(例如,大小调整)参考图像400的视觉大小、以及改变参考图像400的压缩质量等级。预期在生成新图像520中,变换模块310可以将变换的其它类型和变换类型的其它组合应用于参考图像400。

在一些示例实施例中,变换模块310被配置为基于变换参数生成要应用于参考图像的多个变换。例如,变换模块310可以接收用于多个变换类型(例如,旋转、缩放、降低压缩质量等级)中的每一个的对应变换参数,并且然后基于接收的变换参数生成多个变换。在一些示例实施例中,每个变换参数包括或以其它方式指示在生成新图像中如何将对应变换应用于参考图像的度量或某个其它细节。例如,一个变换参数可以指示关于参考图像的x轴的10度的旋转,而另一变换参数可以指示参考图像的视觉大小的10%的放大,并且又一变换参数可以指示参考图像的压缩质量等级15%的降低。在一些示例实施例中,每个变换参数包括或以其它方式指示用于在生成新图像时如何将对应变换应用于参考图像的度量的范围。例如,一个变换参数可以指示关于参考图像的x轴的±15度的旋转范围,而另一变换参数可以指示参考图像的视觉大小的缩放中的参考图像的视觉大小的50%至150%的范围,并且又一变换参数可以指示0%至40%的参考图像的压缩质量等级中的降低的范围。

在一些示例实施例中,变换模块310被配置为经由用户界面接收指示变换参数的用户输入。图6示出了根据一些示例实施例的被配置为接收变换参数的GUI 600。在图6中,GUI 600显示多个用户界面元素610,每个用户界面元素610被配置为使用户能够输入对应变换参数的配置。例如,在图6中,用户界面元素610A、610B、610C和610D每个包括控制元素,诸如滑动条,用户可以操纵控制元素以配置对应变换参数(例如,围绕x栅格的旋转、围绕y栅格的旋转、围绕z栅格的旋转、沿x轴的平移)。多个用户界面元素610可以对应于特定类别,其可以由用户从变换类别或类型620的列表选择,使得从列表620选择特定变换类别或类型引起用于选择的变换类别或类型的变换参数的对应用户界面元素610的显示。在一些示例实施例中,响应于用户配置变换参数,可以生成用于变换参数的对应代码并在GUI 600的部分640中显示。代码可以用于在生成新图像中参考图像的配置的变换的实施。

在一些示例实施例中,由变换模块310使用以生成用于参考图像的一个或多个新图像的多个变换包括变换类型的不同组合和用于变换类型的不同组合中的每一个的、对应于变换类型的变换值的不同组合。例如,变换模块310可以采用变换的三种类型,诸如旋转、缩放和压缩质量等级的降低,并且生成变换的这三种类型的一个或多个的不同集合。在一些示例实施例中,变换模块310生成变换的这三种类型的一个或多个的所有可能集合:

1)旋转

2)旋转+缩放

3)旋转+缩放+压缩质量等级中的降低

4)旋转+压缩质量等级中的降低

5)缩放

6)缩放+压缩质量等级中的降低

7)压缩质量等级中的降低

对于这些集合中的每一个,变换模块310可以基于对应变换参数生成不同的变换值。不同的变换值可以基于由变换参数指示的范围。在一个示例中,对于由旋转和缩放组成的以上第二集合,变换模块310可以生成用于旋转和缩放的变换值的不同组合,诸如:

1)旋转:-15%;缩放:减少50%

2)旋转:-14%;缩放:减少50%

3)旋转:-13%;缩放:减少50%

.

.

.

29)旋转:+14%:缩放:减少50%

30)旋转:+15%;缩放:减少50%

31)旋转:-15%;缩放:减少49%

32)旋转:-15%;缩放:减少48%

.

.

.

在一些示例实施例中,变换模块310被配置为通过选择由变换参数(例如,值范围)的笛卡尔积创建的多维变换空间中的点来选择变换的集合,并且然后通过将来自选择的变换的集合的每个变换应用于多个参考图像中的每个参考图像来生成新图像测试集。在一些示例实施例中,变换模块310被配置为将变换类型划分为联合(union),并且然后为每个联合构建变换空间。然后,变换模块310可以从每个变换空间选择点,每个点表示某个变换,从而产生变换的不同集合,其中每个集合对应于其变换的联合。

在一些示例实施例中,分类模块320被配置为将多个新图像馈送到图像分类器中,以生成用于多个新图像中的每一个的对应分类结果。每个分类结果可以包括用于对应新图像中的一个或多个对象的对应预测类。例如,新图像包括两只狗的图片,图像分类器可以处理新图像并生成分类结果,分类结果指示新图像包括两只狗、狗的具体品种的指示、或者对应于两只狗的分类的某个其它类型的指示。在一些示例实施例中,图像分类器包括神经网络模型,诸如卷积神经网络。然而,图像分类器的其它类型也在本公开的范围内。

在一些示例实施例中,验证模块330被配置为基于生成的用于多个新图像的分类结果来确定图像分类器不满足一个或多个准确度标准。准确度标准可以包括生成的分类结果的至少某个部分表示对应新图像的准确预测的要求。例如,准确度标准可以包括所生成的分类结果的至少特定部分(例如,至少75%)与表示正确预测的比较结果或值匹配的要求,诸如基础事实(ground truth)值或参考图像的分类结果。在一些示例实施例中,验证模块330被配置为通过接收用于多个新图像的对应基础事实值(例如,新图像的实际真实分类),并且然后将所生成的分类结果与对应基础事实值比较以确定生成的分类结果是否表示对应新图像的准确预测,来确定图像分类器不满足一个或多个准确度标准。在一些示例实施例中,验证模块330被配置为通过将参考图像馈送到图像分类器中来生成用于参考图像的对应分类结果,并且然后将多个新图像的分类结果与参考图像的分类结果比较以确定生成的分类结果是否表示对应新图像的准确预测,来确定图像分类器不满足一个或多个准确度标准。

在一些示例实施例中,图像分类器是否满足一个或多个准确度标准的确定包括计算生成的用于多个新图像的分类结果的一个或多个准确度值,并且准确度标准包括针对一个或多个准确度值的一个或多个要求(例如,要满足的最小阈值)。这样的准确度值可以包括但不限于平均召回(recall)值、精度值、平均精度值和准确度值中的一个或多个的任何组合。这些准确度值可以基于在生成用于多个新图像的分类结果中找到的真正(truepositives,TP)的数量、真负(true negatives,TN)的数量、假正(false positives,FP)的数量和假负(false negatives,FN)的数量中的一个或多个。术语真正、真负、假正和假负将测试下的图像分类器的生成的分类结果与可信外部判断(例如,基础事实值或参考图像的分类结果)比较。术语正和负是指图像分类器的预测(例如,将对象分类为特定事物为正,将对象分类为不是特定事物为负),并且术语真和假是指该预测是否对应于外部判断(例如,分类是正确的为真,分类是不正确的为假)。

平均召回值或真正率是图像分类器在多个新图像当中找到实际正的所有的程度的度量,并且可以使用下面的公式计算:

精度值或正预测值是预测有多准确的度量(例如,正确的预测的百分比),并且可以使用下面的公式计算:

平均精度值是不同召回值处的最大精度的平均。准确度值是图像分类器正确识别或排除条件的程度的度量,并且可以基于检查的情况的总数当中的真结果(真正和真负两者)的比例来计算:

在一些示例实施例中,使用以下伪代码来实施图像分类器是否满足一个或多个准确度标准的确定:

1.所有图像处的所有假正检测(FP)的总和。

2.所有图像处的所有真正检测(TP)的总和。

3.所有图像处的所有假负检测(FN)的总和。

4.所有图像处的所有真负检测(TN)的总和。

5.基于步骤1-4的结果(FP、TP、FN和TN)计算召回。

6.基于步骤1-4的结果(FP、TP、FN和TN)计算精度。

7.检查召回是否高于最小阈值。

8.检查精度是否高于最小阈值。

9.如果步骤7和8返回真(例如,召回和精度满足相应阈值),则然后确定图像分类器满足一个或多个准确度标准;如果步骤7和8返回假(例如,召回或精度不满足对应阈值),则然后确定图像分类器不满足一个或多个准确度标准。

在一些示例实施例中,功能模块340被配置为响应于或以其它方式基于图像分类器不满足一个或多个准确度标准的确定来执行功能。在一些示例实施例中,功能包括在计算设备的用户界面上显示图像分类器不满足一个或多个准确度标准的通知。在一些示例实施例中,功能包括使用多个新图像作为一个或多个机器学习操作中的训练数据来训练图像分类器。功能的其它类型也在本公开的范围内。

图7是示出根据一些示例实施例的使用图像数据集变换来验证计算机视觉系统的质量的方法700的流程图。方法700可以由处理逻辑执行,处理逻辑可以包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)、软件(例如,在处理设备上运行的指令)或其组合。在一个示例实施例中,方法700由图3的计算机视觉系统或如上所述的它的模块310、320、330和340的一个或多个的任何组合执行。

在操作710处,计算机视觉系统300访问数据库以获得参考图像。在操作720处,计算机视觉系统300使用多个变换基于参考图像生成多个新图像。多个变换中的每一个可以被配置为改变参考图像的对应视觉属性。在一些示例实施例中,多个变换包括旋转参考图像、缩放参考图像的视觉大小和改变参考图像的压缩质量等级中的一个或多个的任何组合。多个新图像的生成可以包括:接收用于多个变换类型中的每一个的对应变换参数,并基于变换参数生成多个变换。在一些示例实施例中,多个变换包括变换类型的不同组合和用于变换类型的不同组合中的每一个的、对应于变换类型的变换值的不同组合。用于多个变换类型中的每一个的对应变换参数的接收可以包括经由用户界面接收用户输入。在一些示例实施例中,用户输入经由用户界面指示用于多个变换类型中的每一个的变换值。

在操作730处,计算机视觉系统300将多个新图像馈送到图像分类器中,以生成用于多个新图像中的每一个的对应分类结果。在一些示例实施例中,图像分类器包括神经网络模型。例如,神经网络模型可以包括卷积神经网络模型。然而,神经网络模型的其它类型和图像分类器的其它类型也在本公开的范围内。

在操作740处,计算机视觉系统300基于所生成的用于多个新图像的分类结果确定图像分类器不满足一个或多个准确度标准。在一些示例实施例中,确定图像分类器不满足一个或多个准确度标准包括接收用于多个新图像的对应基础事实值并将所生成的分类结果与对应基础事实值比较。在一些示例实施例中,确定图像分类器不满足一个或多个准确度标准包括将参考图像馈送到图像分类器中以生成参考图像的对应分类结果并将多个新图像的分类结果与参考图像的分类结果比较。

在操作750处,计算机视觉系统300响应于或以其它方式基于图像分类器不满足一个或多个准确度标准的确定,选择性地执行功能。在一些示例实施例中,功能包括在计算设备的用户界面上显示图像分类器不满足一个或多个准确度标准的通知。在一些示例实施例中,功能包括使用多个新图像作为一个或多个机器学习操作中的训练数据来训练图像分类器。功能的其它类型也在本公开的范围内。

预期在本公开内描述的其它特征的任何可以合并到方法700中。

本文将某些实施例描述为包括逻辑或多个组件、模块或机制。模块可以构成软件模块(例如,在机器可读介质上或在传输信号中体现的代码)或硬件模块任一。硬件模块是能够执行某些操作的有形单元,并且可以以某种方式配置或布置。在示例实施例中,一个或多个计算机系统(例如,独立的客户端或服务器计算机系统)或计算机系统的一个或多个硬件模块(例如,处理器或处理器组)可以由软件(例如,应用或应用部分)配置作为操作以执行如本文所述的某些操作的硬件模块。

在各种实施例中,硬件模块可以机械地或电子地实施。例如,硬件模块可以包括被永久配置(例如,作为专用处理器,诸如现场可编程门阵列(Field Programmable GateArray,FPGA)或专用集成电路(Application-Specific Integrated Circuit,ASIC))以执行某些操作的专用电路或逻辑。硬件模块也可以包括可编程逻辑或电路(例如,包含在通用处理器或其它可编程处理器内),其由软件临时配置以执行某些操作。应当理解,可以通过成本和时间考虑来驱动机械地在专用和永久配置的电路中或在临时配置的电路中(例如,由软件配置)实施硬件模块的决定。

因此,术语“硬件模块”应该被理解为包含有形实体,即物理构造、永久配置(例如,硬连线)或临时配置(例如,编程)的实体以便以某种方式操作和/或执行本文所述的某些操作。考虑临时配置(例如,编程)硬件模块的实施例,不需要在任何一个时刻配置或实例化每个硬件模块。例如,在其中硬件模块包括使用软件配置的通用处理器的情况下,通用处理器可以在不同时间被配置为对应的不同硬件模块。软件可以因此配置处理器,例如,在一个时刻构成特定硬件模块,并在不同时刻构成不同的硬件模块。

硬件模块可以向其它硬件模块提供信息并从其接收信息。因此,所描述的硬件模块可以被视为通信地耦合。在多个这样的硬件模块同时存在的情况下,可以通过信号传输(例如,在连接硬件模块的适当电路和总线之上)来实现通信。在其中在不同时间处配置或实例化多个硬件模块的实施例中,可以例如通过存储和检索多个硬件模块可访问的存储器结构中的信息来实现这些硬件模块之间的通信。例如,一个硬件模块可以执行操作并将该操作的输出存储在与其通信地耦合的存储器设备中。然后,进一步的硬件模块可以然后访问存储器设备以检索和处理存储的输出。硬件模块也可以发起与输入或输出设备的通信,并且可以在资源(例如,信息的收集)上操作。

本文描述的示例方法的各种操作可以至少部分地由临时配置(例如,通过软件)或永久配置为执行相关操作的一个或多个处理器来执行。无论是临时还是永久配置,这种处理器都可以构成处理器实施的模块,模块操作以执行一个或多个操作或功能。在一些示例实施例中,本文涉及的模块可以包括处理器实施的模块。

类似地,本文描述的方法可以至少部分地被处理实施。例如,方法的操作的至少一些可以由一个或多个处理器或处理器实施的模块执行。操作的某些的性能可以在一个或多个处理器当中分布,一个或多个处理器不仅存在于单个机器内,而且跨越多个机器部署。在一些示例实施例中,一个或多个处理器可以位于单个位置中(例如,在家庭环境、办公室环境内或作为服务器群),而在其它实施例中,处理器可以分布跨越多个位置。

一个或多个处理器也可以操作以支持“云计算”环境中的或作为“软件即服务”(software as a service,SaaS)的相关操作的性能。例如,操作中的至少一些可以由计算机组(作为包括处理器的机器的示例)执行,这些操作经由网络(例如,图1的网络114)并且经由一个或多个适当的接口(例如,API)可访问。

示例实施例可以在数字电子电路中实施,或者在计算机硬件、固件、软件中实施,或在它们的组合中实施。示例实施例可以使用计算机程序产品来实施,例如,有形地体现在信息载体中(例如,在机器可读介质中)的计算机程序,用于由数据处理装置(例如,可编程处理器、计算机或多个计算机)运行或控制数据处理装置的操作。

计算机程序可以用编程语言的任何形式编写,包括编译或解释语言,并且其可以以任何形式部署,包括作为独立程序或作为模块、子程序或适合用于在计算环境中使用的其它单元。可以部署计算机程序以在一个计算机上或在多个计算机上运行,多个计算机在一个站点处或者跨越多个站点分布并通过通信网络互连。

在示例实施例中,操作可以由运行计算机程序的一个或多个可编程处理器执行,以通过操作输入数据并生成输出来执行功能。方法操作也可以由专用逻辑电路(例如,FPGA或ASIC)执行,并且示例实施例的装置可以实施为专用逻辑电路。

计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且典型地通过通信网络交互。客户端和服务器的关系凭借在各自的计算机上运行的并且对于彼此具有客户端-服务器关系的计算机程序发生。在部署可编程计算系统的实施例中,应当理解,硬件和软件架构两者都值得考虑。具体地,应当理解,是在永久配置的硬件(例如,ASIC)中,还是在临时配置的硬件(例如,软件和可编程处理器的组合)中,还是在永久和临时配置的硬件的组合中实施某些功能的选择可以是设计选择。在各种示例实施例中,下面列出了可以部署的硬件(例如,机器)和软件架构。

图8是计算机系统800的示例形式的机器的框图,其中可以运行用于使机器执行本文所讨论的任何一种或多种方法的指令824。在可替代实施例中,机器作为独立设备操作或者可以连接(例如,联网)到其它机器。在联网部署中,机器可以在服务器-客户端网络环境中以服务器或客户端机器的身份运行,或者作为对等(或分布式)网络环境中的对等机器运行。机器可以是个人计算机(Personal Computer,PC)、平板电脑、机顶盒(Set-Top Box,STB)、个人数字助理(Personal Digital Assistant,PDA)、蜂窝电话、网络设备、网络路由器、交换机或网桥、或能够(顺序或以其它方式)运行指定机器要采取的动作的指令的任何机器。此外,虽然仅示出了单个机器,但是术语“机器”还应被视为包括单独或联合运行指令的集合(或多个集合)以执行本文所讨论的任何一种或多种方法的机器的任何集合。

示例计算机系统800包括处理器802(例如,中央处理单元(Central ProcessingUnit,CPU)、图形处理单元(Graphics Processing Unit,GPU)或两者)、主存储器804和静态存储器806,它们经由总线808彼此通信。计算机系统800还可以包括图形或视频显示单元810(例如,液晶显示器(Liquid Crystal Display,LCD)或阴极射线管(Cathode Ray Tube,CRT))。计算机系统800还包括字母数字输入设备812(例如,键盘)、用户界面(userinterface,UI)导航(或光标控制)设备814(例如,鼠标)、存储单元(例如,磁盘驱动器单元)816、音频或信号生成设备818(例如,扬声器)和网络接口设备820。

存储单元816包括机器可读介质822,其上存储数据结构和指令824的一个或多个集合(例如,软件),其体现本文所述的任何一个或多个方法或功能或者由本文所述的任何一个或多个方法或功能使用。指令824在其由计算机系统800运行期间也可以完全或至少部分地驻留在主存储器804内和/或处理器802内,主存储器804和处理器202也构成机器可读介质。指令824也可以完全或至少部分地驻留在静态存储器806内。

虽然机器可读介质822在示例实施例中被示为单个介质,但是术语“机器可读介质”可以包括存储一个或多个指令824或数据结构的单个介质或多个介质(例如,集中式或分布式数据库、和/或相关联的高速缓存和服务器)。术语“机器可读介质”也应被视为包括能够存储、编码或携带用于由机器运行并且使机器执行本实施例的方法论的任何一个或多个的指令的任何有形介质,或者能够存储、编码或携带由这些指令利用或与这些指令相关联的数据结构的任何有形介质。因此,术语“机器可读介质”应被视为包括但不限于固态存储器、以及光学和磁性介质。机器可读介质的具体示例包括非易失性存储器,包括例如半导体存储器设备(例如,可擦除可编程只读存储器(Erasable Programmable Read-OnlyMemory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable ProgrammableRead-Only Memory,EEPROM)和闪存设备);磁盘,诸如内部硬盘和可移动磁盘;磁光盘;和光盘只读存储器(Compact Disc-Read-Only Memory,CD-ROM)和数字通用光盘(或数字视频光盘)只读存储器(Digital Versatile Disc(or Digital Video Disc)Read-Only Memory,DVD-ROM)盘。

可以进一步使用传输介质在通信网络826之上发送或接收指令824。可以使用网络接口设备820和多个众所周知的传输协议(例如,HTTP)中的任何一个来发送指令824。通信网络的示例包括LAN、WAN、互联网、移动电话网络、POTS网络和无线数据网络(例如,WiFi和WiMax网络)。术语“传输介质”应被视为包括能够存储、编码或携带用于由机器运行的指令的任何无形介质,并且包括数字或模拟通信信号或其它无形介质以促进这种软件的通信。

本文公开的每个特征和教导可以单独利用或与其它特征和教导结合使用,以提供用于神经网络中的盲点实现的系统和方法。参考附图进一步详细描述了单独和组合地利用这些附加的特征和教导中的许多的表示性示例。该具体实施方式仅旨在向本领域技术人员教导用于实践本教导的某些方面的进一步细节,而不旨在限制权利要求的范围。因此,在以上具体实施方式中公开的特征的组合对于在最广泛意义上实践本教导可能不是必需的,而是仅仅教导以描述本教导的特定表示性示例。

本文的具体实施方式的一些部分是根据对计算机存储器内的数据位的操作的算法和符号表示来呈现的。这些算法描述和表示是数据处理领域的技术人员用来最有效地将他们工作的实质传达给本领域其它技术人员的手段。这里的算法通常被认为是引起期望结果的自相一致的步骤序列。这些步骤是需要物理操纵物理量的步骤。通常,尽管不是必须的,这些量采用能够被存储、传输、组合、比较和以其它方式操纵的电信号或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为比特、值、元素、符号、字符、术语、数字等是方便的。

然而,应该记住,所有这些和类似术语都与适当的物理量相关联,并且仅仅是应用于这些量的方便标记。除非从以下讨论中明确地表面上地另外说明,否则应当理解,在整个说明书中,利用诸如“处理”或“计算(computing)”或“计算(calculating)”或“确定”或“显示”等术语的讨论是指计算机系统或类似电子计算设备的动作和过程,其将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操纵和变换为类似地表示为计算机系统存储器或寄存器或其它这样的信息存储、传输或显示设备内的物理量。

本公开还涉及用于执行本文操作的装置。该装置可以为所需目的而专门构造,或者它可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这样的计算机程序可以存储在计算机可读存储介质中,诸如但不限于任何类型的磁盘,包括软盘、光盘、CD-ROM和磁光盘,只读存储器(Read-Only Memory,ROM),随机存取存储器(Random Access Memory,RAM),EPROM,EEPROM,磁卡或光卡,或适用于存储电子指令并且各自耦合到计算机系统总线的任何类型的介质。

本文给出的示例方法或算法并非固有地与任何特定计算机或其它装置相关。各种通用系统、计算机服务器或个人计算机可以与根据本文的教导的程序一起使用,或者构造更专用的装置以执行本文公开的方法步骤可能是方便的。用于各种这些系统的结构将从本文的描述中显现。应当理解,可以使用各种编程语言来实施如本文所述的本公开的教导。

此外,为了提供本教导的附加的有用的实施例,可以以未具体和明确列举的方式组合表示性示例和从属权利要求的各种特征。还明确指出,为了原始公开的目的,以及为了限制所要求保护的主题,实体组的所有价值范围或指示都公开了每个可能的中间值或中间实体。还明确指出,图中所示的组件的尺寸和形状被设计成有助于理解如何实施本教导,但不旨在限制示例中所示的尺寸和形状。

尽管已经参考具体示例实施例描述了实施例,但是明显的是,在不脱离本公开的更广泛的精神和范围的情况下,可以对这些实施例进行各种修改和改变。因此,说明书和附图应被视为说明性的而非限制性的。形成其一部分的附图通过说明而非限制的方式示出了可以实践主题的具体实施例。所描述的实施例以足够的细节描述,以使本领域技术人员能够实践本文公开的教导。可以利用其它实施例并从中导出其它实施例,使得可以在不脱离本公开的范围的情况下进行结构和逻辑替换和改变。因此,该具体实施方式不应被视为具有限制意义,并且各种实施例的范围仅由所附权利要求以及这些权利要求所赋予的等同物的全部范围来限定。

本发明主题的这些实施例在本文中可以单独地和/或共同地由术语“发明”来引用,仅仅是为了方便而不意图将本申请的范围自愿地限制于任何单个发明或发明构思(如果实际上公开了不止一个发明或发明构思)。因此,尽管本文已说明和描述了具体实施例,但是应当理解,计算来实现相同目的的任何布置可替代所示的具体实施例。本公开旨在涵盖各种实施例的任何和所有改编或变化。在阅读以上描述后,上述实施例的组合以及本文未具体描述的其它实施例对于本领域技术人员而言将是显而易见的。

示例

1.一种计算机实施的方法,包括:

访问数据库以获得参考图像;

由至少一个硬件处理器使用多个变换基于参考图像生成多个新图像,多个变换中的每一个被配置为改变参考图像的对应视觉属性;

由至少一个硬件处理器将多个新图像馈送到图像分类器中,以生成用于多个新图像中的每一个的对应分类结果;

由至少一个硬件处理器基于生成的用于多个新图像的分类结果确定图像分类器不满足一个或多个准确度标准;以及

响应于或以其它方式基于确定图像分类器不满足一个或多个准确度标准,由至少一个硬件处理器选择性地执行功能。

2.如示例1所述的计算机实施的方法,其中多个变换包括旋转参考图像。

3.如示例1或示例2所述的计算机实施的方法,其中多个变换包括缩放参考图像的视觉大小。

4.如示例1至3中任一项所述的计算机实施的方法,其中多个变换包括改变参考图像的压缩质量等级。

5.如示例1至4中任一项所述的计算机实施的方法,其中生成多个新图像包括:

接收用于多个变换类型中的每一个的对应变换参数;以及

基于变换参数生成多个变换,多个变换包括变换类型的不同组合和用于变换类型的不同组合中的每一个的、对应于变换类型的变换值的不同组合。

6.如示例5所述的计算机实施的方法,其中接收用于多个变换类型中的每一个的对应变换参数包括经由用户界面接收用户输入,用户输入经由用户界面指示用于多个变换类型中的每一个的变换值。

7.如示例1至6中任一项所述的计算机实施的方法,其中图像分类器包括神经网络模型。

8.如示例7所述的计算机实施的方法,其中神经网络模型包括卷积神经网络模型。

9.如示例1至8中任一项所述的计算机实施的方法,其中一个或多个准确度标准包括生成的分类结果的至少特定部分与表示正确预测的比较值匹配的要求。

10.如示例1至9中任一项所述的计算机实施的方法,其中确定图像分类器不满足一个或多个准确度标准包括:

接收用于多个新图像的对应基础事实值;以及

将生成的分类结果与对应基础事实值比较。

11.如示例1至10中任一项所述的计算机实施的方法,其中确定图像分类器不满足一个或多个准确度标准包括:

将参考图像馈送到图像分类器中以生成用于参考图像的对应分类结果;以及

将多个新图像的分类结果与参考图像的分类结果进行比较。

12.如示例1至11中任一项所述的计算机实施的方法,其中功能包括在计算设备的用户界面上显示图像分类器不满足一个或多个准确度标准的通知。

13.如示例1至12中任一项所述的计算机实施的方法,其中功能包括使用多个新图像作为一个或多个机器学习操作中的训练数据来训练图像分类器。

14.一种系统包括:

至少一个处理器;和

存储可运行指令的非暂时性计算机可读介质,可运行指令当被运行时使至少一个处理器执行示例1至13中任一项所述的方法。

15.一种非暂时性机器可读存储介质,有形地体现指令的集合,指令的集合当由至少一个处理器运行时使至少一个处理器执行示例1至13中任一项所述的方法。

16.一种携带指令的集合的机器可读介质,指令的集合当由至少一个处理器运行时使至少一个处理器实行示例1至13中任一项所述的方法。

提供本公开的摘要以允许读者快速确定技术公开的本质。提交时的理解是,它不会用于解释或限制权利要求的范围或含义。另外,在前面的具体实施方式中,可以看出,为了简化本公开,各种特征在单个实施例中被组合在一起。该公开方法不应被解释为反映所要求保护的实施例需要比每个权利要求中明确记载的特征多的特征意图。而是,如以下权利要求所反映的,发明主题在于少于单个公开实施例的所有特征。因此,以下权利要求在此并入具体实施方式中,每个权利要求自己作为单独的实施例。

26页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种文物轮廓监测方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!