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

图像分类系统的制作方法

2022-02-20 20:12:10 来源:中国专利 TAG:

图像分类系统


背景技术:

1.计算装置经常用于查看图像并与图像交互。例如,计算装置可以接收图像并且使用标签或标识符来自动对图像进行分类。一些计算装置可以训练用于对图像进行分类的机器学习模型,使得模型可能正确地识别标签或将标签与任何接收到的图像相关联。在操作期间,计算装置可以使用各种机器学习模型来将图像与特定标签、标识符或其他分类相关联。然后用户可以确认计算机生成的分类,或者选择不同的分类。
附图说明
2.在所有附图中,附图标记可以被重复使用以指示所参考的元件之间的对应关系。附图被提供以说明本文描述的示例实施例,并且不旨在限制本公开的范围。
3.图1是根据一些实施例的包括图像分类系统的说明性计算环境的框图。
4.图2是根据一些实施例的用于使用基本模型和多个工作模型的图像分类的说明性处理的流程图。
5.图3是根据一些实施例的由图像分类系统利用的示例模型架构的视觉表示。
6.图4是根据一些实施例的用于使用图像分类层次结构的图像分类的说明性处理的流程图。
7.图5是根据一些实施例的用于使用图像分类层次结构的图像分类的另一说明性处理的流程图。
8.图6a是根据一些实施例的示出用于上传和分类图像的各种交互式工具的图像分类界面的用户界面图。
9.图6b是根据一些实施例的示出评估所上传的图像的图像分类界面的用户界面图。
10.图6c是根据一些实施例的示出图像分类层次结构的图。
11.图7是根据一些实施例的被配置为实现本公开的特征的说明性计算系统的框图。
具体实施方式
12.本公开涉及一种用于使用共享基本机器学习模型的多个机器学习模型来确定图像的可能分类的图像分类系统。图像分类系统可以是在用户计算装置上的基于浏览器的系统,其通过网络从远程系统一次获得多个机器学习模型,将模型本地存储在用户计算装置上,并且多次使用模型而随后不会再次从远程系统请求模型。因此,通过在用户计算装置上对任何数量的图像运行机器学习模型任何次数,图像分类系统可以确定与图像相关联的可能分类,而无需对远程系统进行远程应用编程接口(api)调用。
13.用于图像识别的传统系统与许多成本和低效率相关联。图像通常被上传到计算装置,然后被手动分类。例如,在用户上传酒店房间的照片之后,用户可以手动滚动菜单以从可能类别的列表中选择预定类别。如果用户希望将图像与多个类别相关联、上传多个照片等,则用户可能需要多次重复该处理。在利用传统机器学习系统预测与图像相关联的类别时可能存在问题。例如,一些常规系统依赖于一个模型来确定与图像相关联的多个可能的
标签,这可能导致模型训练不佳和预测不准确。作为另一示例,一些常规系统依赖于多个完整模型来确定不同分类,并且多个模型的执行可能导致某些操作的冗余执行或计算资源的总体低效使用。作为又一示例,因为可能在每次用户执行图像分类处理时可能执行远程api调用,或者在每个图像分类会话之前或在每个图像分类会话期间可能发生(一个或多个)机器学习模型的检索,所以使用机器学习的一些传统图像分类系统可能会将负担置于用户的计算资源上,或者导致不可接受的用户可感知的延迟。
14.本公开的各方面尤其解决了诸如以上讨论的图像分类的问题。更具体地,图像分类系统从远程系统获得多个机器学习模型,并将这些模型存储在本地持久数据存储部中。然后,图像分类系统可以快速地访问模型,而不需要对远程系统的附加请求。该组模型可以包括基本机器学习模型(也被称为“基本模型”)以及多个附加机器学习模型(也被称为“工作模型”)。工作模型各自被配置为接受并分析基本模型的输出。因此,可以针对特定图像执行基本模型一次,并且可以通过多个工作模型分析基本模型的输出以执行分类任务。为特定图像一次生成基本模型输出并高速缓存基本模型输出允许它可用于由任何数量的工作模型串行、并行或异步地进行处理,而无需为每个工作模型重新生成基本模型输出。此外,通过分离出由基本模型执行的操作并且针对任何特定图像一次执行操作,如果每个工作模型包括基本模型的操作—或其某种类似物,则每个工作模型可以更小,包括更少的操作,训练更有效,并且执行起来需要更少的时间和计算资源。
15.在一些实施例中,工作模型被配置为确定图像分类层次结构的一个或多个级中的图像的分类。作为示例,用户可以指示特定图像与“池/游泳池”类别分类标签相关联。图像分类系统然后可以使用在游泳池图像上专门训练的工作模型来确定指示游泳池的类型的可能的项目特定分类标签,以确定图像中描绘的游泳池的类型。在以下意义上,项目特定分类可以是“可能的”:基于(一个或多个)工作模型的输出,分类满足一个或多个分类标准(例如,分类与满足最小阈值的分数相关联,分类与比与第二最高评级分类相关联的分数大至少阈值量的分数相关联等)。
16.尽管出于说明的目的,本公开中描述的一些实施例的方面将集中于分类、标签、装置、框架、机器学习模型、算法等的特定示例,但是示例仅是说明性的,并且不旨在是限制性的。在一些实施例中,本文描述的技术可以应用于附加的或替代的分类、标签、装置、框架、机器学习模型和算法。现在将关于某些示例和实施例描述本公开的各个方面,这些示例和实施例旨在说明而非限制本公开。
17.图像分类环境
18.参考说明性实施例,图1示出了可以实现本公开的各方面的示例网络环境。如图所示,网络环境可以包括远程系统106和图像分类系统118。图像分类系统118和远程系统106可以经由一个或多个通信网络114彼此通信。通信网络114(也简称为“网络”)可以是链接网络的公共可访问网络,可能由诸如因特网等各不同方操作。在一些实施例中,通信网络114可以是或可以包括个人局域网(“pan”)、局域网(“lan”)、广域网(“wan”)、全球网(“gan”)或其某种组合,它们的任何一个或全部可以具有或不具有到因特网和/或来自因特网的接入。
19.一般而言,远程系统106可以是由实体(例如,企业或用户)操作的计算系统。例如,远程系统106可以被配置为管理项目的列表和图像,诸如提供用于销售或租赁的不动产。远程系统106可以托管并提供网络资源,诸如网页、移动装置应用、脚本、程序等。网络资源可
以包括关于项目的信息,其包括基于用户指定的或自动确定的对象的分类、位置和/或图像内描绘的主题而与项目相关联的图像。
20.在一些实施例中,远程系统106可以包括数据存储部110。在一些实施例中,数据存储部110可以被配置为存储可以被传输到图像分类系统118的机器学习模型。在一些实施例中,图像分类系统118可以将每个上传的图像和相关联的分类数据传输到远程系统106以便存储在数据存储部110中。
21.在一些实施例中,如图1所示,图像分类系统118可以包括用户接口单元122、模型选择单元126、基本模型单元130、工作模型单元134、模型数据存储部138和基本模型输出数据存储部140。在一些实施例中,用户接口单元122可以生成允许用户交互的用户接口。例如,用户接口单元122可以从诸如远程系统106的服务器接收网络资源。用户接口单元122可以生成网络资源的显示,其包括交互式控制以允许用户发起向远程系统106上传一个或多个图像以及使用图像分类系统118对图像进行分类。在一些实施例中,模型选择单元126可以访问模型数据存储部138并且选择机器学习模型以对要上传到远程系统106的图像进行分类。例如,模型选择单元126可选择基本模型以及一个或多个工作模型。在一些实施例中,存储在模型数据存储部138中的机器学习模型是卷积神经网络模型。
22.虽然图1的示例显示了图像分类系统组件的有限集合,但是应当理解,在其他实施例中可以存在其他布置。
23.使用基本模型和多个工作模型的图像分类
24.图2示出了可以由图像分类系统118执行以使用基本模型和处理同一基本模型输出的多个工作模型来对图像进行分类的示例处理200。例如,处理200可以使用图3所示的基本模型网络300和工作模型网络302。
25.当处理200开始时,存储在一个或多个非暂时性计算机可读介质(例如,硬盘驱动器、闪存、可移动介质等)上的一组可执行程序指令可以被加载到计算装置的存储器(例如,随机存取存储器或“ram”)中,所述计算装置诸如图7中所示的图像分类系统计算装置700。在一些实施例中,处理200或其一部分可以在多个处理器上(在同一计算装置或在单独的计算装置)串行或并行实现。
26.在框202,图像分类系统118可以获得要分类的图像。例如,图像分类系统118可以接收由用户选择的图像。
27.在判定框204,图像分类系统118可确定图像的基本模型输出是否已被高速缓存。图像分类系统118可以检查基本模型输出数据存储部140以确定是否存在图像的基本模型输出。例如,基本模型输出数据存储部140可以包括最近图像的基本模型输出,由基本模型单元130生成最近图像的基本模型输出。作为另一示例,基本模型输出数据存储部140可包括由图像分类系统118分类的每个图像的基本模型输出。作为进一步的示例,基本模型输出数据存储部140可以包括仅表示由图像分类系统118分类的图像的子集的基本模型输出(例如,仅最近x个图像(x是数量),仅可以适配在数据存储部140的最大尺寸内的基本模型输出等)。在一些实施例中,存储在基本模型输出数据存储部140中的基本模型输出可以与标识符(如图像的散列、图像的名称或一些其他唯一的标识符)相关联。
28.如果在基本模型输出数据存储部140中可获得当前图像的基本模型输出,则处理200可以前进到框210。否则,如果没有当前图像的基本模型输出可用,则处理200可前进到
框206。
29.在框206,基本模型单元130可以使用基本模型,诸如存储在模型数据存储部138中的基本模型,来分析图像。在一些实施例中,基本模型单元130可以首先生成表示图像的基本模型输入,诸如以从图像导出的数据的特征向量的形式的基本模型输入。在一些实施例中,基本模型输入可以是图像本身、图像的缩放版本、或图像的一些其它标准化或以其它方式预处理的形式以用于由基本模型的分析。基本模型单元130可以使用基本模型处理基本模型输入以生成基本模型输出。在一些实施例中,基本模型输出可以是特征向量。特征向量可以是数据的多维向量(例如,1280维向量),其以能够被输入到一个或多个工作模型中并由所述一个或多个工作模型处理的形式表示图像。这种特征向量可以被称为基本模型输出向量。
30.在框208,基本模型单元130可以将基本模型输出存储在基本模型输出数据存储部140中。为特定图像一次生成基本模型输出并将其存储在基本模型输出数据存储部140中允许基本模型输出可用于由任何数量的工作模型(串行地、并行地或异步地)处理,而无需为每个工作模型重新生成基本模型输出。
31.在框210,图像分类系统118的模型选择单元216或某个其它组件可以选择一个或多个工作模型以用于处理当前图像的基本模型输出。例如,图像可以与多级层次结构的顶级、中间级和/或底级相关联。模型选择单元126可以选择被配置为确定可能的顶级分类的工作模型、被配置为确定可能的中间级分类的工作模型和/或被配置为确定可能的底级分类的工作模型。
32.在框212,工作模型单元134可以使用(一个或多个)所选择的工作模型处理当前图像的基本模型输出。每个工作模型可以使用基本模型输出作为输入,并且每个工作模型可以输出分类,或者输出可根据其确定可能分类的数据。在一些实施例中,工作模型单元134可以同时执行多个工作模型,其中每个工作模型是针对特定任务训练的。例如,图像分类系统可以被配置为相对于多级层次结构来分析图像,其中一级对应于类别组,第二级对应于较高级类别组内的各个类别,并且第三级对应于较高级类别内的子类别。子类别也可以称为项目。工作模型单元134可以执行以下模型:被配置为“预测”或以其他方式确定与图像相关联的可能的类别组标签(例如,属性特征)的工作模型、被配置为确定与图像相关联的可能的类别(例如,游泳池)的工作模型、和/或被配置为确定与图像相关联的可能的项目标签(例如,室外游泳池)的工作模型。将了解,在一些实施例中,工作模型单元134可串行地(例如,一次一个)或异步地而非同时地执行工作模型。说明性地,可专门训练工作模型来预测窄范围的类别、标签或其它标识符。因此,与基本模型相比,每个工作模型可有利地需要较少的计算资源来存储和执行。例如,示例基本模型的大小可以是100mb,并且可能花费1秒来执行,而工作模型的大小可以是基本模型大小的1%,并且仅花费0.01秒来执行。
33.模型架构
34.图3是根据一些实施例的由图像分类系统118利用的示例模型架构的视觉表示。与传统机器学习系统(针对系统可以将图像分类到其中的任何和所有类别或者针对每个可能的项目标签,所述传统机器学习系统依赖于单个的机器学习模型来处理可能的分类确定)相比,图像分类系统118可以替代地经由多个机器学习模型来处理图像,其中一些机器学习模型处理一个或多个其他模型的输出,产生其他模型的分类确定的子集或超集等。避免了
使用单个大的机器学习模型,使得图像分类系统118可以在必要时通过仅执行小的、训练良好的工作模型来维持高精度预测,同时有利地降低计算资源的负担。
35.图像分类系统118所使用的模型可以被实现为神经网络。一般而言,神经网络具有多层节点。说明性地,神经网络可以包括输入层、输出层以及输入层和输出层之间的任何数量的中间层或“隐藏”层。各个层可以包括任意数量的单独节点。相邻层的节点可以彼此连接,并且相邻层的各个节点之间的每个连接可以与相应的可训练参数或“权重”相关联。概念上,节点可以被认为是计算单元,该计算单元计算作为多个不同输入值的函数的输出值。输入值可以包括先前层中的节点的输出,乘以与先前层中的节点与当前节点之间的连接相关联的权重。当神经网络处理输入向量或输入向量矩阵形式的输入数据时,神经网络可以执行“正向传递”以生成输出向量的矩阵。输入向量分别可以包括与神经网络输入层的n个节点相对应的n个单独的数据元素或“维度”(其中n是某个正整数)。每个数据元素可以是一个值,例如浮点数或整数。正向传递包括:将输入向量的矩阵乘以表示与输入层的节点和下一层节点之间的连接相关联的权重的矩阵,并将激活函数应用于结果。然后,对每个后续神经网络层重复该处理,直到生成输出为止。
36.在一些实施例中,诸如nasnet大模型、inception_v3模型、inception_v4模型、mobilenet_v2_1.0_224和mobilenet_v2_1.0_224_quant模型的卷积神经网络可以用作基本模型以应用于图像。可以基于诸如文件大小和准确性的考虑来选择基本模型。例如,mobilenet_v2_1.0_224_quant模型可因其较小的文件大小(例如,3.4mb)而被选中,而nasnet大模型可因增强的准确性而被选中,代价是文件大小增加(例如,355.3mb)。
37.如图3所示,图像分类系统118可以使用一组神经网络,包括基本模型网络300和多个工作模型网络302a、302b、302c和302d。通过基本模型网络300(被示为一组对角阴影节点)处理图像以生成基本模型输出310。基本模型输出310作为输入(输入的子集)被传递到一个或多个工作模型网络302a、302b、302c和/或302d,统称为“302a至302d”或“302”(示为无阴影节点的集合)。工作模型网络302生成表示图像的一个或多个分类确定的工作模型输出318。
38.基本模型网络300包括与由用户选择或上传的图像相对应的输入层304。基本模型网络302还包括一个或多个隐藏层306。虽然基本模型隐藏层306被示为具有5个节点,但是将理解,在其他实施例中可以使用不同数量的节点(例如,数打、数百或更多节点)。另外,虽然基本模型隐藏层306被示为单层,但是将理解,基本模型网络300可被实现为具有多个隐藏层的深度神经网络,每个隐藏层可以具有或可以不具有与基本模型网络300的任何其他隐藏层相同数量的节点。例如,基本模型网络300可具有20、40或更多个基本模型隐藏层306。
39.在一些实施例中,基本模型输出310可以包括多维向量(被示为包括多个项的矩形)。例如,基本模型输出310可以是1280维的输出向量,其是输入图像的编码表示。编码表示包括关于输入图像的信息,该信息被各种工作模型网络302用来确定图像的可能分类。基本模型网络300可以针对每个图像仅运行一次,并且基本模型输出310可以被高速缓存和/或提供给任何数量的工作模型网络302,而无需重新运行基本模型网络300。有利地,图像分类系统118可以依赖于客户端执行来运行基本模型网络300。例如,图像分类系统118通过利用客户端图形处理单元和webgl、在浏览器或其他客户端应用内运行基本模型网络300。
40.基本模型网络300的输出310被输入到一个或多个工作模型网络302。在一个示例中,多维向量可通过工作模型302a的一个或多个工作模型隐藏层314传递。工作模型302a可生成工作模型输出318(被示为稀疏阴影正方形)。在一些实施例中,工作模型隐藏层314可以是利用整流线性单元(relu)或整流器作为激活函数的256维的神经网络层。虽然每个工作模型网络302被示为3层神经网络,但是应当理解,在一些实施例中,工作模型网络可以包括附加的工作模型隐藏层(例如,用于潜在地提高分类确定的准确性),或者可以不包括工作模型隐藏层(例如,用于最小化工作模型网络的总体大小和复杂性,以减少训练、传输、存储和使用工作模型网络302所需的计算资源量等)。此外,虽然每个工作模型网络302被示为具有相同的结构,但是在一些实施例中,工作模型网络可以具有不同的结构(例如,与其他工作模型网络相比,一些工作模型网络可以具有不同数量的工作模型隐藏层和/或每层具有不同数量的节点)。
41.来自任何特定工作模型网络302的工作模型输出318可以包括一组元素,例如向量或阵列,并且每个元素可以对应于特定分类,工作模型网络302被配置为确定上述特定分类。各个元素的值可以表示图像被正确分类为对应元素的分类的可能性。因此,工作模型输出318可以包括图像对应于每个分类的可能性,工作模型被配置为确定上述每个分类。在一些实施例中,可以使用softmax函数作为激活函数来生成工作模型输出318。
42.在一些实施例中,图像分类系统118可以包括置信度分数阈值,使得仅向最终用户显示准确的或自信的建议。利用softmax函数的工作模型可以在输出层中自动计算图像被正确分类在每个可能分类的可能性,工作模型被配置为确定上述每个可能分类。例如,工作模型可以为每个可能的分类生成范围在每个分类的最小值和最大值之间(例如,在0.0和1.0之间)的浮点数。每个分类的浮点数可以相加得到预定值(例如,1.0)。如果由softmax函数计算的对应可能性满足特定阈值,则图像分类系统118可以仅向终端用户呈现特定分类或结果的推荐(例如,仅在概率大于0.5时显示)。在一些实施例中,图像分类系统118可以仅基于附加的或替代的标准来呈现特定分类的推荐,诸如仅当对应的可能性比针对可能的分类的集合确定的第二高可能性大至少阈值量时。应当理解,在一些实施例中,可以使用其他算法或函数。
43.在每个工作模型被配置和训练成根据层次结构的特定级来确定可能的分类(例如,用于确定可能的顶级类别组的工作模型网络、针对每个类别组确定该类别组内的可能类别的工作模型网络、针对每个类别确定该类别内的可能项目的工作模型网络等)的实施例中,每个工作模型网络可以针对其特定任务被良好地训练,并且与被配置为在数百个可能的选项中(例如,在所有可能的项目中)作出分类确定的一个普通模型相比,产生更高的准确性。利用多个工作模型网络而不是依赖于一个更大的模型,还可以允许系统在不与子类别重叠的情况下、对子类别进行详细的分类确定。
44.在一些实施例中,可以有利地仅使用一行代码来调用每个工作模型网络302,并且与基本模型网络300相比,每个工作模型网络302可以需要少得多的计算资源。例如,假设用户上传游泳池的照片,图像分类系统118可以将计算资源专用于仅执行被专门训练来预测游泳池类型的那些工作模型网络302。
45.可以使用训练数据来训练基本模型网络300和每个工作模型网络302。例如,可以在作为真实世界照片(例如,png格式化的文件,其包括依比例的宽度和高度的至少650个像
素,并且使用24位颜色)的图像上训练基本模型网络300和/或各个工作模型网络302。用户可提供任何数量的标记图像用于训练(例如,每个项目2000张照片),并且然后(一个或多个)模型可以学习适当地标记图像。
46.有利地,图像分类系统118可以在考虑用户的交互选择的同时使用一个或多个工作模型网络。例如,如果用户以指示图像与类别标签“游泳池”相关联的方式(例如,通过从下拉菜单中选择类别标签)与用户界面交互,则可选择并执行工作模型网络,其被训练成确定与类别“游泳池”(例如,室内游泳池、室外游泳池或儿童游泳池)相关联的可能项目标签。
47.层次图像分类
48.图4是根据一些实施例的用于层次图像分类的说明性处理400的流程图。当处理400开始时,存储在一个或多个非暂时性计算机可读介质(例如,硬盘驱动器、闪存、可移动介质等)上的一组可执行程序指令可以被加载到计算装置的存储器(例如,随机存取存储器或“ram”)中,所述计算装置诸如图7中所示的图像分类系统计算装置700。在一些实施例中,处理400或其一部分可以在多个处理器上(在同一个计算装置或单独的计算装置)串行或并行实现。
49.在框402,图像分类系统118可以接收图像。例如,用户可以选择要分类并上传到远程系统106的图像。说明性地,图像可以是将由图像分类系统118分类的酒店房间的图像。
50.在框404,图像分类系统118可以生成或以其他方式获得基本模型输出。如以上参考图2所讨论的,图像分类系统118可以确定是否已经为当前图像缓存了基本模型输出。在一些实施例中,基本模型输出可被存储在基本模型输出数据存储部140中或被高速缓存在浏览器中。如果没有与图像相关联的基本模型输出,则图像分类系统118可以通过使用基本模型处理图像来生成基本模型输出。然后图像分类系统可以高速缓存基本模型输出。基本模型输出可被高速缓存在浏览器中或存储在基本模型输出数据存储部140中。
51.在框406,图像分类系统118可以至少部分基于多级层次结构使用一个或多个工作模型来处理基本模型输出。在一些实施例中,模型数据存储部138可以存储多个工作模型(例如,数打或数百个工作模型),并且各个模型可以与多级层次结构的各个级相关联以用于图像分类。当到达框406时,在框406,图像分类系统可以仅利用与层次结构的各级中的特定级或子集相关联的模型。例如,对于特定图像第一次到达框406时,图像分类系统118可以使用与层次结构的最低级和/或最高级相关联的(一个或多个)工作模型。当对于同一图像再次到达框406时,图像处理系统可以使用与比先前使用的更高级和/或更低级的层次结构相关联的(一个或多个)工作模型。层次结构的(一个或多个)特定级可以取决于针对特定图像到达框406的次数、表示与先前分类的用户交互的交互数据、或其他上下文信息。
52.在框408,图像分类系统118可以基于上面生成的(一个或多个)工作模型的输出来确定与图像相关联的分类。在一些实施例中,第一分类可以和与图像有关的宽泛的、高级标签相关联。例如,图6c示出了示例图像分类层次结构。根据示例图像分类层次结构,图像可以与来自类别组标签650、类别标签652和子类别标签654的列表的各标签相关联(子类别标签也可以被称为项目标签)。在该实施例中,标签650、652和654的列表彼此保持层次关系。类别组标签650是顶级标签,因此是最宽泛的,并且可以包括有限数量(例如3个)的可能选项。类别标签652可以包括中间标签,其进一步扩展类别组标签650中的特定选项。例如,类别标签652可以包括可以与宽泛的“属性特征”类别组(例如,游泳池、进餐、停车等)相关联
的多个“属性特征”标签。子类别标签654可包含较低级标签,其进一步扩展类别标签652中的选项且对应于待应用于图像的最终标签。例如,子类别标签654可以包括与“游泳池”类别标签(例如,无边游泳池、儿童游泳池、室内游泳池、室外游泳池等)相关联的多个标签。应当理解,在其他实施例中可以使用标签和标识符的其他布置。
53.如果用户上传酒店房间的图片,则第一分类可以是来自类别组标签650的宽泛标签,诸如“属性特征”。图像分类系统118还可以确定与图像相关联的第二分类,例如在上述框406中是否使用了第二工作模型或处于层次结构的不同级的工作模型。例如,第二分类可以是子类别标签654中的更具体的较低级标签,诸如“室外游泳池”。
54.回到图4,在判定框410,图像分类系统118可以确定是否使用在分类层次结构中的附加级处的工作模型来处理图像。该确定可以是静态的(例如,使用层次结构中的每个级)或动态的(例如,取决于用户交互或其他上下文信息)。如果要使用层次结构中的附加级,则处理400返回到框406;否则,处理前进到框412。
55.在框412,图像分类系统118可以确定或以其他方式生成图像的最终分类输出(例如,项目标签)。最终分类输出可以基于一个或多个分类标准。例如,最终分类可以基于各个输出的比较(例如,具有最高可能性的分类)。作为另一示例,最终分类可以基于用户交互(例如,用户对可能分类的选择)。在一些实施例中,最终分类可以基于分类标准的附加、替代和/或组合。
56.虽然上述实施例包括以顺序次序确定第一分类和第二分类,但是将理解,在其它实施例中,其它布置是可能的。例如,在一些实施例中,图像分类系统可以同时确定可能的第一分类和可能的第二分类。在其他实施例中,图像分类系统可以在确定可能的第一分类之前确定可能的第二分类。此外,本公开不限于仅两个标识符。在一些实施例中,图像分类系统可以确定与图像相关联的多于两个类别或标签。
57.具有用户交互的分层图像分类
58.图5是用于使用三级图像分类层次结构(例如,如图6c所示)和用户与可能分类的交互的分层图像分类的说明性处理500的流程图。将参考图6a和6b中所示的示例用户界面来描述处理500。当处理500开始时,存储在一个或多个非暂时性计算机可读介质(例如,硬盘驱动器、闪存、可移动介质等)上的一组可执行程序指令可以被加载到计算装置的存储器(例如,随机存取存储器或“ram”)中,所述计算装置诸如图7中所示的图像分类系统计算装置700。在一些实施例中,处理500或其一部分可以在多个处理器上(在同一个计算装置或单独的计算装置)串行或并行实现。
59.在框502,图像分类系统118可以接收图像。例如,用户可以上传被本地存储在用户计算装置上的酒店的图像,其中所述用户计算装置被配置为执行图像分类系统118。然后,图像分类系统118可以在框504建议子类别标签,并在框506建议类别组标签。
60.如上所述,在一些实施例中,图像分类系统118可以首先使用基本模型来处理所接收的图像并生成输出,例如多维向量(例如,1280维向量),其可以由多个工作模型用来确定可能的分类。然后图像分类系统118可以高速缓存基本模型输出以供工作模型将来使用。图像分类系统118选择一个或多个工作模型来确定与图像相关联的可能分类(例如,类别或标签)。在一些实施例中,最初使用至少两个工作模型来提供图像的初始分类确定。一个工作模型可用于根据正使用的多级图像层次结构来确定图像的可能的顶级分类,而另一工作模
型可用于确定图像的可能的低级分类。
61.图6a示出了用户通过其上传图像602(例如,游泳池的照片)的界面600。图像分类系统118可以使用一个工作模型来处理图像602的基本模型输出,并且最初确定图像602可能属于来自图6c所示的类别组列表650的特定“类别组”,例如“属性特征”类别组。图像分类系统118也可以使用第二工作模型来处理图像602的相同基本模型输出,并确定图像602可能属于“海滩”子类别。所确定的分类可以在用户界面600中示出,诸如在自动识别部分604中示出。如图所示,自动识别部分604可以提供针对一个或多个可能的分类的推荐:顶级推荐(类别组)和最低级推荐(子类别或项目“标签”)。用户可以接受为图像602推荐的标签并完成分类处理,选择顶级推荐以查看不同的可能性选择,或浏览标签或类别组。还可以允许用户完全绕过自动识别部分604,并使用手动输入部分606来提供标签或分类。在一些实施例中,由图像分类系统118确定的(一个或多个)推荐分类可以仅在该分类与超过阈值的分数(例如,可能性或置信度分数)相关联时才向用户显示。例如,如果工作模型被训练成在超过200个子类别之间进行区分,则最高分数类别可能仍然具有低于阈值的分数,从而指示确定的准确性较低。可以从自动识别部分604中的显示中不强调基于工作模型的输出的推荐,或者可以从自动识别部分604中的显示抑制基于工作模型的输出的推荐。
62.在判定框508,图像分类系统118可以确定来自框504的最低级分类(例如,子类别标签建议)是否被确认。在一些实施例中,图像分类系统118可以通过等待用户输入来确认其预测的准确性。例如,图像分类系统118可以示出一个或多个推荐分类,诸如如上所述的顶级类别组标签和最低级子类别标签。用户可以选择610所推荐的分类之一、浏览其他分类、或者手动输入分类。如果用户选择最低级的推荐子类别标签,则处理500可以前进到框526,在那里处理该选择。否则,如果用户没有选择最低级的推荐(例如,如果用户选择顶级推荐或选择控件来浏览顶级标签),则处理500可前进到判定框510。作为另一示例,可以经由用户界面向用户呈现显示“是”或“否”的两个可选按钮。用户可以点击“是”按钮来确认显示在用户界面上的推荐,或者点击“否”按钮来指示显示在用户界面上的推荐是不准确的。
63.在判定框510,图像分类系统118确定用户是否选择或以其他方式确认了顶级(例如,类别组)推荐。如果用户没有确认类别组标签建议,则在框512,用户可以手动选择类别组标签。例如,在看到图像分类系统118建议了上传的图像602(游泳池的图片)的类别组标签“活动”时,用户可以通过从链接的可浏览列表、列出类别组标签的下拉菜单、或某个其他控件或界面中手动选择不同的类别组(例如,属性特征)来拒绝该建议。在一些实施例中,用户可以诸如在手动输入部分606中手动键入类别组标签以与图像相关联。在一些实施例中,子类别标签和类别组标签的初始确定可能受到用户的初始动作的影响。例如,在一些实施例中,用户可以从本地装置将用户想要提交的图像上传至远程系统106,并且用户开始浏览预定标签(例如,从自动识别部分604中显示的可浏览列表链接)。当用户浏览标签时,图像分类系统118可以从可能的类别组中推荐一个类别组以显示给用户。在其他实施例中,用户可以上传图像,然后主动选择顶级分类,例如类别组标签。鉴于用户自己手动选择类别组标签,然后图像分类系统118可以放弃执行被配置为生成类别组标签推荐的工作模型。图像分类系统118可以执行工作模型来确定与图像602相关联的推荐的中间级分类,诸如类别标签,其中该图像602被给予了所选择的类别组标签。
64.在框514,一旦用户选择了顶级标签,或者如果初始顶级标签推荐被确认,则图像
分类系统118可以建议中间级标签。如上所述,图像分类系统118可以执行被专门训练的工作模型,以便在选择了诸如类别组标签的顶级标签时确定诸如类别标签的中间级标签。例如,如果图像与“属性特征”类别组标签相关联,则图像分类系统118可以执行工作模型,该工作模型被具体配置为在所选类别组中的超过40个可能的类别选项中确定推荐类别(例如,健身、温泉、游泳池、进餐、停车、厨房等)。在一些实施例中,图像分类系统118可以执行被专门训练的工作模型,以在用户先前选择了类别组的情况下确定类别。例如,假设用户选择“属性特征”类别组标签,图像分类系统118可以使用被训练用来确定与属性特征相关联的类别(例如,游泳池、进餐、停车等)的工作模型,而不是预测可能属于不同类别组的类别(例如,活动或房间特征)。然后图像分类系统118可以等待用户确认类别标签建议,或者等待用户选择不同的类别标签。
65.在判定框516,图像分类系统118可以确定用户是否已经选择了中间级标签推荐,或者做出了不同的中间级标签选择。在一些实施例中,用户可以激活确认类别推荐的链接或按钮。
66.在框518,如果用户尚未确认中间级标签推荐,则用户可以选择中间级标签。例如,用户可以从类别标签选项的列表中选择类别标签,或者在手动输入部分606中手动键入类别标签以与图像相关联。
67.在框520,图像分类系统118可以推荐较低级标签,如子类别标签。推荐可以至少部分地基于用户的先前选择,诸如,选择已经与图像相关联的顶级标签或中间级标签(例如,类别组标签或类别标签)。例如,如果用户已经手动选择了类别组标签(例如,属性特征)和类别标签(例如,游泳池),则图像分类系统可以使用以下工作模型,该工作模型被训练来在所选择的类别组标签和类别标签的情况下,确定可能的子类别(例如,游泳池的类型)。在一些实施例中,工作模型可以计算每个子类别的分数(例如,可能性),但是仅呈现具有最高分数的子类别选项。在一些实施例中,图像分类系统118可以同时呈现多个子类别推荐。此外,图像分类系统118可以基于分数阈值呈现子类别推荐。例如,工作模型可确定图像是室内游泳池的可能性是0.3,图像是室外游泳池的可能性是0.6,并且图像是儿童游泳池的可能性是0.1。然而,图像分类系统118可仅向用户显示室外游泳池推荐,因为这是分数超过0.5的唯一子类别选项。应当理解,可以调整或改变阈值以适合用户的偏好。例如,用户可能对检查所有子类别推荐感兴趣,而不管所计算的分数。一旦推荐了子类别标签,图像分类系统118就可以等待用户确认。
68.在判定框522,图像分类系统118可确定用户是否选择了所推荐的低级标签。例如,用户可以通过用户输入(例如,激活链接或点击“是”按钮)确认子类别建议。在用户没有确认低级标签推荐的情况下,在框524,图像分类系统118可以接收用户对低级标签(如,子类别)的手动选择。
69.虽然处理500被描述为推荐以特定顺序显示或推荐的子类别标签、类别组标签和类别标签,但是将理解,在其他实施例中可以使用其他顺序或布置。例如,图像分类系统118可以最初同时确定与图像相关联的可能或以其他方式推荐的子类别标签、类别组标签和类别标签。另外,虽然图5中所示的示例利用各标签的分层组织(例如,子类别标签比类别标签窄,类别标签又比类别组标签窄),但是其它实施例不一定需要各标签之间的这种有序关系。
70.示例装置组件
71.图7描绘了包括可以用于实现本公开的各方面的计算机硬件和软件的布置的计算装置700的一般架构。说明性地,计算装置700可以是用户装置,诸如个人计算机、膝上型计算机、平板计算机、移动电话等。计算装置700的硬件组件可以在物理电子装置上实现,如以下更详细讨论的。计算装置700可以包括比图7所示的那些更多、更少和/或替代的元件。然而,没有必要为了提供能够实现的公开内容而示出所有这些通常常规的元件。另外,图7中所示的一般架构可用于实现图1中所示的一个或多个其它组件。
72.如图所示,计算装置700包括处理单元702、网络接口704、计算机可读介质驱动706和输入/输出装置接口708,所有这些都可以通过通信总线彼此通信。网络接口704可以提供到一个或多个网络或计算系统(例如远程系统106)的连接。因此,处理单元702可经由网络114从其它计算系统或服务接收信息和指令。处理单元702还可以与存储器710通信,并且还经由输入/输出装置接口708为可选显示器(未示出)提供输出信息。输入/输出装置接口708也可以接受来自可选输入装置(未示出)的输入。
73.存储器710可以包含处理单元702执行以便实现本公开的一个或多个方面的计算机程序指令(在一些实施例中被分组为单元)。存储器710对应于存储器装置的一个或多个层,包括(但不限于)ram、3d xpoint存储器、闪存、磁存储等。
74.存储器710可以存储操作系统712,操作系统712提供计算机程序指令以供处理单元702在计算装置700的一般管理和操作中使用。存储器710还可以包括用于实现本公开的方面的计算机程序指令和其他信息。例如,在一个实施例中,存储器710包括用于用户接口单元122的用户接口单元指令714,用户接口单元122生成用户接口(和/或用于其的指令)以例如经由导航和/或浏览接口(诸如安装在计算装置700上的浏览器或应用)在计算装置700上显示。
75.除了用户接口单元指令714之外和/或与用户接口单元指令714组合,存储器710可以包括用于模型选择单元126的模型选择单元指令716,该模型选择单元被配置为选择和生成机器学习模型以应用于接收到的图像。存储器710还可以包括用于被配置为执行和训练基本模型(例如,神经网络)的基本模型单元130的基本模型单元指令718。存储器710还可包括用于被配置为执行一个或多个工作模型(例如,神经网络)的工作模型单元134的工作模型单元指令720。
76.示例实施例
77.可以鉴于以下条款来描述本公开的实施例:
78.条款1:一种用于对图像进行分类的系统,所述系统包括:
79.数据存储部,其包括多个机器学习模型,所述多个机器学习模型包括基本模型和多个工作模型;以及
80.一个或多个处理器,其由计算机可执行指令配置为至少:
81.接收由用户选择的图像,以分类为多个项目标签中的一个;
82.使用基本模型和所述图像来生成基本模型输出向量,其中,所述基本模型输出向量表示所述图像的多个特征;
83.使用基本模型输出向量和多个工作模型中的第一工作模型来确定与图像相关联的第一项目标签;
84.使用基本模型输出向量和多个工作模型中的第二工作模型来确定与图像相关联的类别组标签;
85.接收指示对类别组标签的选择的第一用户输入;
86.使用基本模型输出向量和多个工作模型中的第三工作模型来确定与图像相关联的类别标签,其中,第三工作模型与类别组标签相关联;
87.接收指示对类别标签的选择的第二用户输入;
88.使用基本模型输出和多个工作模型中的第四工作模型来确定与图像相关联的第二项目标签,其中,第四工作模型与类别标签相关联;
89.接收指示对第二项目标签的选择的第三用户输入;以及
90.传输图像和与图像相关联的分类数据,其中,所述分类数据表示第二项目标签。
91.条款2:根据权利要求1的系统,其中,基本模型仅使用一次,以使用所述图像来生成输出。
92.条款3:根据权利要求1的系统,其中,基本模型和多个工作模型均为基于神经网络的模型。
93.条款4:根据权利要求1的系统,其中,第一工作模型生成与第一项目标签相关联的第一置信度值,且其中,至少部分基于第一置信度值超过阈值显示第一项目标签。
94.条款5:一种计算机实现方法,包括:
95.如由包括一个或多个计算机处理器的计算系统实现的,一个或多个计算机处理器被配置为执行特定指令:
96.接收待分类的图像;
97.使用基本模型网络和图像来生成与图像相关联的基本模型输出;
98.使用多个工作模型网络和基本模型输出来生成多个工作模型输出;
99.显示图像分类界面,图像分类界面被配置为接受关于图像的分类的用户输入;
100.接收表示对图像分类界面的用户输入的用户交互数据;以及
101.确定与图像相关联的标签,其中,至少部分基于多个工作模型输出和用户输入来确定所述标签。
102.条款6:根据条款5的计算机实现方法,其中,使用同一基本模型输出来生成多个工作模型输出中的每个。
103.条款7:根据条款5的计算机实现方法,还包括将基本模型输出存储在高速缓存中。
104.条款8:根据条款7的计算机实现方法,还包括从高速缓存加载基本模型输出,其中,在从高速缓存加载基本模型输出之后,生成多个工作模型输出中的至少一个。
105.条款9:根据条款5的计算机实现方法,还包括:
106.经由网络从远程系统接收基本模型网络和多个工作模型网络;以及
107.将基本模型网络和多个工作模型网络存储在计算系统的本地数据存储部中。
108.条款10:根据条款9的计算机实现方法,还包括从本地数据存储部加载基本模型网络和多个工作模型网络,其中,所述本地数据存储部包括基于浏览器的数据存储部。
109.条款11:根据条款5的计算机实现方法,其中,生成多个工作模型输出包括:使用第一工作模型网络生成第一工作模型输出,同时使用第二工作模型网络生成第二工作模型输出。
110.条款12:根据条款5的计算机实现方法,其中,生成多个工作模型输出包括:在使用第二工作模型网络生成第二工作模型输出之前,使用第一工作模型网络生成第一工作模型输出。
111.条款13:根据条款5的计算机实施的方法,其中,第一工作模型输出包括与标签相关联的第一置信度分数和与第二标签相关联的第二置信度分数。
112.条款14:根据条款13的计算机实现方法,还包括基于第一置信度分数满足阈值来确定显示标签。
113.条款15:根据条款13的计算机实现方法,还包括基于第一置信度分数和第二置信度分数之间的差来确定显示标签。
114.条款16:根据条款5的计算机实现方法,还包括:
115.接收由用户选择的第二图像以用于分类;
116.使用基本模型网络和第二图像,生成与第二图像相关联的第二基本模型输出;
117.使用多个工作模型网络和基本模型输出,生成多个第二工作模型输出;以及
118.确定与第二图像相关联的第二标签,其中,至少部分基于多个第二工作模型输出确定第二标签,且其中,第二标签不同于所述标签。
119.条款17:一种包括计算机可读存储器和一个或多个处理器的系统,一个或多个处理器由计算机可执行指令配置为至少:
120.从用户计算装置接收对网络资源的请求,网络资源被配置为:
121.使用基本模型,生成与图像相关联的基本模型输出;
122.使用一个或多个工作模型,至少部分地基于基本模型输出,来生成一个或多个工作模型输出;以及
123.确定与图像相关联的标签,其中,所述标签至少部分基于所述一个或多个工作模型输出;
124.响应于所述请求,向用户计算装置传输所述网络资源;以及
125.从所述用户计算装置接收图像和表示与图像相关联的标签的图像分类数据。
126.条款18:根据条款17的系统,其中,一个或多个处理器还由计算机可执行指令配置为:将基本模型和所述一个或多个工作模型传输至用户计算装置。
127.条款19:根据条款17的系统,其中,所述标签与置信度分数相关联,并且其中,至少部分地基于置信度分数满足阈值来显示标签。
128.条款20:根据条款17的系统,其中,基本模型和一个或多个工作模型包括在用户计算装置上执行的基于神经网络的模型。
129.术语
130.取决于实施例,本文描述的任何处理或算法的某些动作、事件或功能可以以不同的顺序执行,可以被添加、合并或完全省略(例如,并非所有描述的操作或事件都是实践算法所必需的)。此外,在某些实施例中,操作或事件可以并发地执行,例如通过多线程处理、中断处理或多个处理器或处理器核或在其他并行架构上执行,而不是顺序地执行。
131.结合本文所揭示的实施例描述的各种说明性逻辑块、模块、例程和算法步骤可实施为电子硬件或电子硬件与计算机软件的组合。为了清楚地说明这种可互换性,上文已经大体上在其功能性方面描述了各种说明性组件、块、模块和步骤。将此功能性实施为硬件还
是实施为在硬件上运行的软件取决于特定应用和强加于整个系统的设计约束。所描述的功能性可针对每一特定应用以不同方式实施,但此类实施决定不应被解释为导致脱离本公开的范围。
132.此外,结合本文所揭示的实施例描述的各种说明性逻辑块和模块可由机器(如为经设计以执行本文所描述的功能的计算处理器装置、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合)实施或执行。计算机处理器装置可以是微处理器,但是在替代方案中,处理器装置可以是控制器、微控制器或状态机、其组合等。处理器装置可包括经配置以处理计算机可执行指令的电路系统。在另一实施例中,处理器装置包括fpga或其它可编程装置,其执行逻辑操作而不处理计算机可执行指令。处理器装置还可实施为计算装置的组合,例如,dsp与微处理器的组合、多个微处理器、结合dsp核的一个或多个微处理器,或任何其它此类配置。尽管本文主要关于数字技术进行描述,但处理器装置还可主要包含模拟组件。例如,本文描述的一些或所有算法可以在模拟电路系统或混合的模拟和数字电路系统中实现。计算环境可以包括任何类型的计算机系统,包括但不限于基于微处理器的计算机系统、大型计算机、数字信号处理器、便携式计算装置、装置控制器或电器内的计算引擎等。
133.结合本文所揭示的实施例而描述的方法、处理、例程或算法的元件可直接以硬件、以由处理器装置执行的软件模块或以所述两者的组合来体现。软件模块可以驻留在ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可移动磁盘、cd-rom、或任何其他形式的非瞬态计算机可读存储介质中。示例性存储介质可耦接到处理器装置,使得处理器装置可从存储介质读取信息并向存储介质写入信息。在替代方案中,存储介质可与处理器装置成一体。处理器装置和存储介质可驻留在asic中。asic可以驻留在用户终端中。在替代方案中,处理器装置和存储介质可作为离散组件驻留在用户终端中。
134.这里使用的条件语言,例如,其中,“能够(can)”、“可能(could)”、“可以(might、may)”、“如(e.g.)”等,除非另外特别说明,或者在所使用的上下文中另外理解,通常旨在表示某些实施例包括某些特征、元件和/或步骤,而其它实施例不包括这些特征、元件和/或步骤。因此,这种条件语言通常不是要暗示特征、元件和/或步骤以任何方式对于一个或多个实施例是必需的,或者一个或多个实施例必须包括以下逻辑,该逻辑用于在有或没有其它输入或提示的情况下决定这些特征、元件和/或步骤是否被包括或者是否将在任何特定实施例中执行。术语“包括(comprising、including)”、“具有(having)”等是同义词,并且以开放式的方式包含性地使用,并且不排除附加的元件、特征、动作、操作等。此外,术语“或”以其包含的意义(而不是其排他的意义)使用,使得当例如用于连接一列元件时,术语“或”表示该列表中的一个、一些或所有元件。
135.除非另外具体说明,否则诸如短语“x、y、z中的至少一个”的分离性语言在上下文中以其他方式被理解,如一般用于呈现,项、术语等可以是x、y或z或其任何组合(例如,x、y和/或z)。因此,这种分离性语言通常不旨在并且不应当暗示某些实施例需要x中的至少一个、y中的至少一个或z中的至少一个各自存在。
136.除非另有明确说明,否则诸如“一个(a、an)”的冠词通常应被解释为包括一个或多个所描述的项。因此,诸如“被配置为
……
的装置”的短语旨在包括一个或多个所叙述的装置。这样的一个或多个所叙述的装置还可以被共同地配置为执行所陈述的限定。例如,“被
配置为执行限定a、b和c的处理器”可以包括第一处理器,其被配置为与第二处理器协同工作来执行限定a,第二处理器被配置为执行限定b和c。
137.虽然以上详细描述已示出、描述并指出应用于各种实施例的新颖特征,但可理解,可在不脱离本公开的精神的情况下,对所说明的装置或算法的形式和细节作出各种省略、替代和改变。如可认识到,本文中描述的某些实施例可在不提供本文中陈述的所有特征和益处的形式内体现,因为一些特征可与其它特征分开使用或实践。本文公开的某些实施例的范围由所附权利要求而不是由前面的描述来指示。在权利要求的等效含义和范围内的所有改变都将包含在其范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献