CN111417961B - 弱监督的图像分类器 - Google Patents

弱监督的图像分类器 Download PDF

Info

Publication number
CN111417961B
CN111417961B CN201880058747.9A CN201880058747A CN111417961B CN 111417961 B CN111417961 B CN 111417961B CN 201880058747 A CN201880058747 A CN 201880058747A CN 111417961 B CN111417961 B CN 111417961B
Authority
CN
China
Prior art keywords
points
image
subset
type
images
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201880058747.9A
Other languages
English (en)
Other versions
CN111417961A (zh
Inventor
T·福克斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Memorial Sloan Kettering Cancer Center
Original Assignee
Memorial Sloan Kettering Cancer Center
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Memorial Sloan Kettering Cancer Center filed Critical Memorial Sloan Kettering Cancer Center
Priority to CN202311868880.XA priority Critical patent/CN117975109A/zh
Publication of CN111417961A publication Critical patent/CN111417961A/zh
Application granted granted Critical
Publication of CN111417961B publication Critical patent/CN111417961B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/211Selection of the most significant subset of features
    • G06F18/2115Selection of the most significant subset of features by evaluating different subsets according to an optimisation criterion, e.g. class separability, forward selection or backward elimination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • G06F18/23213Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/0895Weakly supervised learning, e.g. semi-supervised or self-supervised learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/50Extraction of image or video features by performing operations within image blocks; by using histograms, e.g. histogram of oriented gradients [HoG]; by summing image-intensity values; Projection analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/757Matching configurations of points or features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/762Arrangements for image or video recognition or understanding using pattern recognition or machine learning using clustering, e.g. of similar faces in social networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/762Arrangements for image or video recognition or understanding using pattern recognition or machine learning using clustering, e.g. of similar faces in social networks
    • G06V10/763Non-hierarchical techniques, e.g. based on statistics of modelling distributions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/03Recognition of patterns in medical or anatomical images
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H30/00ICT specially adapted for the handling or processing of medical images
    • G16H30/40ICT specially adapted for the handling or processing of medical images for processing medical images, e.g. editing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Epidemiology (AREA)
  • Radiology & Medical Imaging (AREA)
  • Primary Health Care (AREA)
  • Public Health (AREA)
  • Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Measuring And Recording Apparatus For Diagnosis (AREA)
  • Combined Means For Separation Of Solids (AREA)
  • Image Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

提供了用于训练和使用图像分类器的系统和方法。可以从被注释为第一类型或第二类型的图像的相应块中生成多个点。可以将与所述第二类型的图像相对应的所述点聚类为两个聚类。可以将所述两个聚类中的第一聚类标识为更靠近与被注释为所述第一类型的图像相对应的点。可以将所述第一聚类中的点分配给正类,可以将所述第二聚类中的点分配给负类,并且可以将与被注释为所述第一类型的图像相对应的点分配给锚类。可以基于各种类中的点生成多个三元组。可以基于所述三元组的损失函数来调整图像分类器的参数。

Description

弱监督的图像分类器
相关申请的交叉引用
本申请是2018年7月13日提交的PCT/US2018/042178的继续申请,其要求于2017年7月14日提交的标题为“WEAKLY SUPERVISED IMAGE CLASSIFIER(弱监督的图像分类器)”的美国专利临时申请号62/532,795的权益和优先权,两者的全部内容通过引用合并于本文。
技术领域
本公开文本总体上涉及用于训练和使用图像分类器的系统和方法。更具体地,本公开文本涉及用于通过将机器学习技术应用于多个被注释的图像来训练和使用弱监督图像分类器的系统和方法。
背景技术
图像分类可能是一个昂贵且冗长的过程。对于一些图像分类应用,诸如与军事领域或医学领域有关的那些应用,对图像进行准确且可靠的分类可能是非常重要的,并且通常可以由经过专门培训的人来执行。很难以自动化方式准确且可靠地对某些类型的图像进行分类。
发明内容
提供了与训练图像分类器有关的方法、系统和装置。计算图像分类器模型可以具有极大减少用于自动图像分类的工作和资源的潜力。通常,术语“图像分类”可以包括确定未分类的输入图像是第一类型还是第二类型,其中所述第一类型和所述第二类型是已知的。在一些实施方式中,本公开文本的所述系统和方法可以接收具有可以在多维空间中表示的复杂特征集的未分类的输入图像。例如,图像可以具有大量的像素(例如,以106或以上的数量级),并且每个像素可以具有针对诸如红色、绿色和蓝色的多种颜色中的每一种颜色相关联的值。下面进一步描述的系统和方法可以从弱监督中学习输入图像的低维嵌入。在一些实施方式中,图像可以被划分为多个块,并且所述块可以被自动地划分为代表第一类型和第二类型的聚类。这种学习的嵌入允许使用简单的分类器来解决针对输入图像的整体分类任务,诸如关于组成所述输入图像的块的k个最近邻。一般地,弱监督可以指在仅已知整体切片类型(例如,所述第一类型或者所述第二类型)的数据集中的切片的情况。可能没有与针对图像的任意单个块的分类有关的信息。因此,本公开文本的所述技术与完全监督的学习相反,在所述完全监督的学习中,图像的每个块的标签是已知的并且被用于训练图像分类模型。
在一些实施方式中,可以基于类型(例如,分类)已知的一组图像来训练图像分类模型。可以将所述图像划分为块,并且可以生成块的库。例如,一个库可以包括与第一类型的图像相对应的块,并且第二库可以包括与第二类型的图像相对应的块。可以利用迭代训练过程来完成对图像分类模型的训练,并且可以从针对每个训练回合的每个库中采样块的子集。对于给定的训练回合,可以使用图像分类模型将每个块转换为低维嵌入空间中的点,所述图像分类模型可以是例如卷积神经网络。
在一些实施方式中,可以使用聚类算法将来自一个库的点聚类为两个聚类。在所述两个聚类中,与来自第二库中的点具有最小距离的聚类中所包括的点可被分配给正类,而另一个聚类所包括的点可被分配给负类。来自第二库的点可以被视为锚类。可以对来自锚类、正类和负类的点进行采样以生成三元组,其中每个三元组包括一个锚点、一个正点和一个负点。然后可以计算损失函数,诸如三元组边际损失。在一些实施方式中,梯度下降优化可被用于调整图像分类模型的参数以最小化所述损失函数。
一旦训练了分类器,新图像就可以被接收并且被并划分为多个块。分类器可以对所述块进行预测和分类。可以聚集对图像的所有块的预测(例如,分类)以将整个图像分类为第一类型或第二类型。另外地,下面进一步描述的系统和方法可以提供整个图像的按块分割以用于界定负责将所述图像分类为第一类型或第二类型的特征。
本公开文本中描述的技术可以具有多种有用的应用。在一些实施方式中,如本文所描述的图像分类系统可被用于医学诊断。例如,每个图像可以是代表从患者处获取的组织样品的病理切片的图像,并且每个切片可以被分类为良性的或肿瘤性的。所述切片可被用于训练图像分类模型,所述图像分类模型可以确定未分类的输入图像代表良性组织还是肿瘤组织。因为肿瘤通常仅代表被分类为肿瘤性切片的一小部分,所以即使对于受过训练的人也难以准确地对此类切片进行分类。本公开文本的所述系统和方法可以帮助自动化这样的分类,并且还可以分割与肿瘤切片相对应的图像,使得清楚地界定出被分类为肿瘤性的每个切片的肿瘤部分。在一些其他实施方式中,本公开文本的技术可被应用于其他类型的图像。例如,本文所述的系统和方法可被用于基于一组训练图像(例如,其可以是卫星图像)来自动确定输入图像中是否存在特定的对象或人。
本公开文本的一个方面涉及一种训练图像分类器的方法。所述方法可以包括:由包括一个或多个处理器的设备从相应的块中生成多个点,所述相应的块是从被注释为第一类型或第二类型的图像中生成的。所述方法可以包括由所述设备使用聚类算法的将与被注释为所述第二类型的图像相对应的点聚类为两个聚类。所述方法可以包括由所述设备标识所述两个聚类中的第一聚类,所述第一聚类比所述两个聚类中的第二聚类更靠近与被注释为所述第一类型的图像相对应的点。所述方法可以包括由所述设备将所述第一聚类中的点分配给正类、将所述第二聚类中的点分配给负类、并且将与被注释为所述第一类型的图像相对应的点分配给锚类。所述方法可以包括由所述设备生成多个三元组。每个三元组可以包括来自所述锚类的相应点、来自所述正类的相应点、和来自所述负类的相应点。所述方法可以包括由所述设备计算所述多个三元组的损失函数。所述方法可以包括由所述设备基于所述损失函数来调整图像分类器的参数。
在一些实施方式中,每个块可以由多维空间中的图像数据来表示。所述方法可以进一步包括由所述设备通过使用所述图像分类器将针对所述块中的每个块的图像数据转换为低维空间来生成所述多个点。在一些实施方式中,所述图像分类器可以被实施为卷积神经网络。
在一些实施方式中,每个图像可以对应于相应的病理切片,被注释为所述第一类型的图像被标识为良性的,被注释为所述第二类型的图像被标识为肿瘤性的。在一些其他实施方式中,每个图像可以对应于卫星照片。
在一些实施方式中,所述方法可以包括由所述设备接收与所述多个图像相对应的图像数据。可以仅针对所述多个图像的子集执行从所述图像的相应块中生成所述多个点的步骤。在一些实施方式中,计算所述多个三元组的所述损失函数可以包括由所述设备计算针对所述多个三元组的三元组边际误差。
在一些实施方式中,所述方法可以进一步包括由所述设备确定针对所述块中的每个块的模糊度度量或光水平度量中的至少一个。所述方法还可以包括在生成所述多个点之前,由所述设备丢弃块子集,所述丢弃是基于所述被丢弃的块子集中的每个块的所述模糊度度量或所述光水平度量中的至少一个。在一些实施方案中,所述方法可以进一步包括在生成所述多个点之前,由所述设备执行数据增强,所述数据增强包括对所述块中的至少一个块的旋转或颜色归一化中的至少一项。
在一些实施方式中,标识所述两个聚类中的、比所述两个聚类中的所述第二聚类更靠近与被注释为所述第一类型的图像相对应的点的所述第一聚类可以进一步包括:由所述设备确定第一平均欧几里得距离小于第二平均欧几里得距离,所述第一平均欧几里得距离是所述第一聚类中的点与同被注释为所述第一类型的图像相对应的点之间的距离,所述第二平均欧几里得距离是所述第二聚类中的点与同被注释为所述第一类型的图像相对应的点之间的距离。
在一些实施方式中,所述方法可以进一步包括:在调整所述图像分类器的所述参数之后,由所述设备接收未分类的输入图像。所述方法可以进一步包括由所述设备将所述输入图像划分为多个未分类的块。所述方法可以进一步包括由所述设备基于所述图像分类器确定针对每个未分类块的分类。
在一些实施方式中,所述方法可以进一步包括由所述设备聚集对每个未分类块的分类,以确定针对所述输入图像的整体分类。在一些实施方式中,所述方法可以进一步包括由所述设备提供输出,所述输出包括所述输入图像的按块分割。对于所述输入图像的每个块,所述输入图像的所述按块分割可以指示度对所述块的分类指示。
在一些实施方式中,从被注释为所述第一类型或所述第二类型的图像的相应块中生成所述多个点可以包括标识所述多个点中的第一组点。聚类、标识所述第一聚类、分配所述点、生成所述多个三元组、计算所述损失函数、以及调整所述图像分类器的所述参数的所述多个步骤可以是基于所述第一组点执行的。所述方法可以进一步包括:响应于基于所述第一组点调整所述图像分类器的所述参数,使用所述多个点中的第二组点来重复聚类、标识所述第一聚类、分配所述点、生成所述多个三元组、计算所述损失函数、和调整所述图像分类器的所述参数的所述多个步骤。
本公开文本的另一方面涉及一种用于对用于图像分类的模型进行训练的系统。所述系统可以包括具有一个或多个处理器的设备。所述设备可被配置用于从相应的块中生成多个点,所述相应的块是从被注释为第一类型或第二类型的图像中生成的。所述设备可被配置用于使用聚类算法将与被注释为所述第二类型的图像相对应的点聚类为两个聚类。所述设备可被配置用于标识所述两个聚类中的第一聚类,所述第一聚类比所述两个聚类中的第二聚类更靠近与被注释为所述第一类型的图像相对应的点。所述设备可被配置用于将所述第一聚类中的点分配给正类、将所述第二聚类中的点分配给负类、并且将与被注释为所述第一类型的图像相对应的点分配给锚类。所述设备可被配置用于生成多个三元组,每个三元组包括来自所述锚类的相应点、来自所述正类的相应点、和来自所述负类的相应点。所述设备可被配置用于计算所述多个三元组的损失函数。所述设备可被配置用于基于所述损失函数来调整图像分类器的参数。
在一些实施方式中,每个块可以由多维空间中的图像数据来表示。所述设备可以进一步被配置用于通过使用所述图像分类器将针对所述块中的每个块的图像数据转换为低维空间来生成所述多个点。在一些实施方式中,所述图像分类器可以被实施为卷积神经网络。
在一些实施方式中,每个图像可以对应于相应的病理切片。被注释为所述第一类型的图像可以被标识为良性的,而被注释为所述第二类型的图像可以被标识为肿瘤性的。
在一些实施方式中,所述设备可以进一步被配置用于接收与所述多个图像相对应的图像数据,并且仅针对所述多个图像的子集,从所述图像的相应块中生成所述多个点。在一些实施方式中,所述设备可以进一步被配置用于通过计算针对所述多个三元组的三元组边际误差来计算所述多个三元组的所述损失函数。
本公开文本的其他方面涉及用于使用本文描述的所述图像分类系统对图像进行分类的方法和系统。图像的分类可以是按图像分类。在一些实施方案中,图像的分类可以是按块分类或按块分割。在一些实施方案中,所述图像分类系统可以接收给定的图像。所述图像可能未被注释。所述图像分类系统可以从所述图像中划分或以其他方式导出块。所述图像分类系统可以至少将所述块的子集转换为较低的嵌入点。然后,所述图像分类系统可以使用所述较低的嵌入点和训练好的图像分类器来对所述块子集中的每个块进行分类。所述对块分类的聚集可被用于对所述图像进行分类。
附图说明
通过参考以下结合附图的描述,本公开文本的前述和其他目标、方面、特征和优点将变得更加明显和更好理解,在附图中:
图1A是描绘包括与服务器设备进行通信的客户端设备的网络环境的实施方案的框图;
图1B是描绘包括与云服务提供商进行通信的客户端设备的云计算环境的框图;
图1C和图1D是描绘结合本文描述的方法和系统有用的计算设备的实施方案的框图。
图2A是展示用于图像分类的系统中的数据流的框图。
图2B是展示用于针对病理切片的图像分类的系统中的数据流的框图。
图3描绘了图像分类系统的实施方式的架构的一部分。
图4是训练图像分类器的示例方法的流程图。
图5是用于对未分类的输入图像进行分类的示例方法的流程图。
具体实施方式
出于阅读下面各实施方案的描述的目的,以下对说明书的各部分及其相应内容的描述可能会有所帮助:
A部分描述了可用于实践本文描述的实施方案的网络环境和计算环境。
B部分描述了用于对图像进行分类的系统和方法的实施方案。
A.计算环境与网络环境
在讨论本解决方案的特定实施方案之前,结合本文描述的方法和系统描述操作环境以及相关联的系统组件(例如,硬件元件)的方面可能是有帮助的。参考图1A,描绘了网络环境的实施方案。简单地概述,网络环境包括经由一个或多个网络104与一个或多个服务器106a至106n(通常也称为(多个)服务器106、节点106或(多个)远程机器106)通信的一个或多个客户端102a至102n(通常也称为(多个)本地机器102、(多个)客户端102、(多个)客户端节点10、(多个)客户端机器102、(多个)客户端计算机102、(多个)客户端设备102、(多个)端点102或(多个)端点节点102)。在一些实施方案中,客户端102具有作为客户端节点和服务器两者的能力,所述客户端节点寻求访问由服务器提供的资源,所述服务器为其他客户端102a至102n提供对托管资源的访问。
尽管图1A示出了客户端102与服务器106之间的网络104,但是客户端102和服务器106可以在相同的网络104上。在一些实施方案中,在客户端102与服务器106之间存在多个网络104。在这些实施方案的一个实施方案中,网络104'(未示出)可以是私有网络,而网络104可以是公共网络。在这些实施方案的另一个实施方案中,网络104可以是私有网络,而网络104'可以是公共网络。在这些实施方案的又一个实施方案中,网络104和网络104’都可以是私有网络。
网络104可以经由有线链路或无线链路连接。有线链路可以包括数字用户线路(DSL)、同轴电缆线路或光纤线路。无线链路可以包括蓝牙、Wi-Fi、全球互联微波接入(WiMAX)、红外信道或卫星频段。无线链路还可以包括用于在移动设备之间进行通信的任何蜂窝网络标准,包括符合1G、2G、3G或4G的标准。通过满足诸如由国际电信联盟维护的规范或标准,网络标准可以符合移动电信标准的一代或多代。例如,3G标准可以对应于国际移动电信-2000(IMT-2000)规范,而4G标准可以对应于国际高级移动电信(IMT-Advanced)规范。蜂窝网络标准的例子包括AMPS、GSM、GPRS、UMTS、LTE、高级LTE、移动WiMAX和高级WiMAX(WiMAX-Advanced)。蜂窝网络标准可以使用各种信道访问方法,例如FDMA、TDMA、CDMA或SDMA。在一些实施方案中,可以经由不同的链路和标准来传输不同类型的数据。在其他实施方案中,可以经由不同的链路和标准来传输相同类型的数据。
网络104可以是任何类型和/或形式的网络。网络104的地理范围可以广泛地变化,并且网络104可以是体域网(BAN)、个人局域网(PAN)、局域网(LAN)(例如,内联网)、城域网(MAN)、广域网(WAN)或互联网。网络104的拓扑可以是任何形式并且可以包括例如以下任何一种:点对点、总线、星形、环形、网格或树形。网络104可以是虚拟的并且位于其他网络104'的一层或多层之上的重叠网络。网络104可以是本领域普通技术人员已知的能够支持本文描述的操作的任何这种网络拓扑。网络104可以利用不同的技术和协议层或协议栈,包括例如以太网协议、互联网协议组(TCP/IP)、ATM(异步传输模式)技术、SONET(同步光纤联网)协议或SDH(同步数字体系)协议。TCP/IP互联网协议组可以包括应用层、传输层、互联网层(包括,例如IPv6)或链路层。网络104可以是广播网络、电信网络、数据通信网络或计算机网络的类型。
在一些实施方案中,系统可以包括多个逻辑分组的服务器106。在这些实施方案的一个实施方案中,服务器的逻辑分组可以被称为服务器组38(未示出)或机器组38。在这些实施方案的另一个实施方案中,服务器106可以是在地理上分散的。在其他实施方案中,机器组38可以作为单个实体被管理。在另外其他实施方案中,机器组38包括多个机器组38。在每个机器组38内的服务器106可以是不同类的——服务器106或机器106中的一个或多个可以根据一种类型的操作系统平台(例如,由华盛顿州雷德蒙德市的微软公司生产的WINDOWSNT)进行操作,而其他服务器106中的一个或多个可以根据另一类型的操作系统平台(例如,Unix、Linux或Mac OS X)进行操作。
在一个实施方案中,机器组38中的服务器106可以连同相关联的存储系统一起被存储在高密度机架系统中,并且位于企业数据中心。在该实施方案中,通过将服务器106和高性能存储系统定位在本地化的高性能网络上,以这种方式合并服务器106可以改善系统易管理性、数据安全性、系统的物理安全性和系统性能。将服务器106和存储系统集中并将它们与高级系统管理工具耦接允许服务器资源的更高效使用。
每个机器组38中的服务器106不需要在物理上邻近同一机器组38中的另一个服务器106。因此,在逻辑上被分组为机器组38的服务器分组106可以使用广域网(WAN)连接或城域网(MAN)连接进行互连。例如,机器组38可以包括物理上位于不同的大陆或大陆的不同区域、国家、州、城市、校园或房间中的服务器106。如果使用局域网(LAN)连接或某种形式的直接连接来连接服务器106,则可以提高机器组38中服务器106之间的数据传输速度。另外,不同类的机器组38可以包括根据操作系统的类型进行操作的一个或多个服务器106,而一个或多个其他服务器106执行一种或多种类型的管理程序而不是操作系统。在这些实施方案中,管理程序可以用于仿真虚拟硬件、对物理硬件进行分区、虚拟化物理硬件以及执行提供对计算环境的访问的虚拟机器,从而允许在主机计算机上同时运行多个操作系统。本机管理程序可以直接在主机计算机上运行。管理程序可以包括:由加利福尼亚州帕洛阿尔托市的VMWare公司生产的VMware ESX/ESXi;Xen管理程序,其是一款开源产品,该产品的开发由Citrix Systems公司监督;由Microsoft或其他公司提供的HYPER-V管理程序。托管的管理程序可以在第二软件级别的操作系统内运行。托管的管理程序的例子可以包括VMware工作站和VIRTUALBOX。
对机器组38的管理可以是分散式的。例如,一个或多个服务器106可以包括用于支持针对机器组38的一个或多个管理服务的组件、子系统和模块。在这些实施方案的一个实施方案中,一个或多个服务器106提供用于管理动态数据的功能,包括用于处理故障切换、数据复制和增加机器组38的健壮性的技术。每个服务器106可以与永久性存储装置通信,并且在一些实施方案中,可以与动态存储装置通信。
服务器106可以是文件服务器、应用服务器、Web服务器、代理服务器、器具、网络器具、网关、网关服务器、虚拟化服务器、部署服务器、SSL VPN服务器或防火墙。在一个实施方案中,服务器106可以被称为远程机器或节点。在另一个实施方案中,多个节点290可以在任何两个通信的服务器之间的路径中。
参考图1B,描绘了云计算环境。云计算环境可以向客户端102提供由网络环境提供的一个或多个资源。云计算环境可以包括一个或多个客户端102a至102n,所述一个或多个客户端通过一个或多个网络104与云108通信。客户端102可以包括例如胖客户端、瘦客户端和零客户端。即使当与云108或服务器106断开连接时,胖客户端也可以提供至少一些功能。瘦客户端或零客户端可以取决于与云108或服务器106的连接以提供功能。零客户端可取决于云108或其他网络104或服务器106以检索针对客户端设备的操作系统数据。云108可以包括后端平台,例如服务器106、存储装置、服务器组或数据中心。
云108可以是公共的、私有的或混合的。公共云可以包括由客户端102的第三方或客户端的所有者维护的公共服务器106。服务器106可以不在现场、位于如上面所公开的远程地理位置或其他位置。公共云可以通过公共网络连接到服务器106。私有云可以包括由客户端102或客户端所有者物理地维护的私有服务器106。私有云可以通过私有网络104连接到服务器106。混合云108可以包括私有和公共网络104两者以及服务器106。
云108还可以包括基于云的递送,例如软件即服务(SaaS)110、平台即服务(PaaS)112和基础设施即服务(IaaS)114。IaaS可以指在指定时间段期间用户租用所需的基础设施资源的使用。IaaS提供商可以从大型池中提供存储、联网、服务器或虚拟化资源,从而允许用户通过根据需要访问更多资源以快速成比例增大。IaaS的例子包括由华盛顿州西雅图市的Amazon.com公司提供的AMAZON Web服务、由德克萨斯州圣安东尼奥市的Rackspace US公司提供的RACKSPACE CLOUD、由加利福尼亚州山景城的Google公司提供的Google ComputeEngine(谷歌计算引擎)、或由加利福尼亚州圣芭芭拉市的RightScale公司提供的RIGHTSCALE。PaaS提供商可以提供由IaaS提供的功能,包括例如存储、联网、服务器或虚拟化,以及诸如操作系统、中间软件或运行时资源等附加资源。PaaS的例子包括由华盛顿州雷德蒙德市的微软公司提供的WINDOWS AZURE、由Google公司提供的Google App Engine(谷歌应用引擎)和由加利福尼亚州旧金山市的Heroku公司提供的HEROKU。SaaS提供商可以提供PaaS提供的资源,包括存储、联网、服务器、虚拟化、操作系统、中间软件或运行时资源。在一些实施方案中,SaaS提供商可以提供附加资源,包括例如数据和应用资源。SaaS的例子包括由Google公司提供的GOOGLE APPS(谷歌应用)、由加利福尼亚州旧金山市的Salesforce.com公司提供的SALESFORCE、或由微软公司提供的OFFICE 365。SaaS的例子还可以包括数据存储装置提供商,例如由加利福尼亚州旧金山市的Dropbox公司提供的DROPBOX、由微软公司提供的Microsoft SKYDRIVE、由谷歌公司提供的Google Drive、或由加利福尼亚州库比蒂诺的Apple公司提供的Apple ICLOUD。
客户端102可以使用一种或多种IaaS标准(包括例如亚马逊弹性计算云(EC2)、开放云计算接口(OCCI)、云基础设施管理接口(CIMI)或OpenStack标准)来访问IaaS资源。某些IaaS标准可以允许客户端通过HTTP访问资源,并且可以使用代表性状态传输(REST)协议或简单对象访问协议(SOAP)。客户端102可以使用不同的PaaS接口来访问PaaS资源。某些PaaS接口使用HTTP包、标准Java API、JavaMail API、Java数据对象(JDO)、Java持久性API(JPA)、Python API、针对不同编程语言的Web集成API(包括例如,针对Ruby的Rack、针对Python的WSGI、或针对Perl的PSGI)或者可以基于REST、HTTP、XML或其他协议建立的其他API。客户端102可以通过使用由web浏览器(例如,由加利福尼亚州山景城的Mozilla基金会提供的GOOGLE CHROME、Microsoft INTERNET EXPLORER或Mozilla Firefox)提供的基于web的用户界面来访问SaaS资源。客户端102还可以通过智能手机应用或平板计算机应用(包括例如,Salesforce Sales Cloud(Salesforce销售云)或Google Drive应用)访问SaaS资源。客户端102还可以通过客户端操作系统(包括例如,用于DROPBOX的Windows文件系统)访问SaaS资源。
在一些实施方案中,可以认证对IaaS、PaaS或SaaS资源的访问。例如,服务器或认证服务器可以经由安全证书、HTTPS或API密钥对用户进行认证。API密钥可以包括各种加密标准,诸如高级加密标准(AES)。数据资源可以通过传输层安全性(TLS)或安全套接层(SSL)发送。
客户端102和服务器106可以被部署为任何类型和形式的计算设备和/或在任何类型和形式的计算设备上执行,例如能够在任何类型和形式的网络上通信并执行本文描述的操作的计算机、网络设备或器具。图1C和图1D描绘了可用于实践客户端102或服务器106的实施方案的计算设备100的框图。如图1C和图1D中示出的,每个计算设备100包括中央处理单元121和主存储器单元122。如图1C中示出的,计算设备100可以包括存储设备128、安装设备116、网络接口118、I/O控制器123、显示设备124a至124n、键盘126和定点设备127(例如鼠标)。存储设备128可以包括但不限于操作系统、软件、和图像分类系统120的软件。如图1D中示出的,每个计算设备100还可以包括附加的可选元件,例如存储器端口103、桥接器170、一个或多个输入/输出设备130a至130n(通常使用附图标记130指代)和与中央处理单元121通信中的高速缓存存储器140。
中央处理单元121是响应于从主存储单元122取出的指令并处理所述指令的任何逻辑电路。在许多实施方案中,中央处理单元121由微处理器单元(例如,由加利福尼亚州山景城的英特尔公司生产的那些微处理器单元;由伊利诺伊州绍姆堡的摩托罗拉公司生产的那些微处理器单元;加利福尼亚州圣克拉拉市的恩威迪亚公司生产的ARM处理器和TEGRA片上系统(SoC);由纽约州白原市的国际商业机器公司生产的POWER7处理器;或由加利福尼亚州桑尼维尔市的Advanced Micro Devices公司生产的那些处理器单元)提供。计算设备100可以是基于这些处理器、或者能够如本文所描述的进行操作的任何其他处理器中的任何一个。中央处理单元121可以利用指令级并行性、线程级并行性、不同级别的高速缓存和多核处理器。多核处理器可以在单个计算组件上包括两个或更多个处理单元。多核处理器的例子包括AMD PHENOM IIX2、INTEL CORE i5和INTEL CORE i7。
主存储器单元122可以包括能够存储数据并允许由微处理器121直接访问任何存储位置的一个或多个存储器芯片。主存储单元122可以是易失性的并且比存储设备128存储器更快。主存储器单元122可以是动态随机存取存储器(DRAM)或任何变体,包括静态随机存取存储器(SRAM)、突发式SRAM或同步突发式SRAM(BSRAM)、快速页面模式DRAM(FPM DRAM)、增强型DRAM(EDRAM)、扩展数据输出RAM(EDO RAM)、扩展数据输出DRAM(EDO DRAM)、突发式扩展数据输出DRAM(BEDO DRAM)、单数据速率同步DRAM(SDR SDRAM)、双数据速率SDRAM(DDRSDRAM)、直接Rambus DRAM(DRDRAM)或极速数据速率DRAM(XDR DRAM)。在一些实施方案中,主存储器122或存储装置128可以是非易失性的,例如非易失性读存取存储器(NVRAM)、闪存非易失性静态RAM(nvSRAM)、铁电RAM(FeRAM)、磁阻RAM(MRAM)、相变存储器(PRAM)、导体桥接RAM(CBRAM)、硅-氧化物-氮化物-氧化物-硅(SONOS)、电阻性RAM(RRAM)、Racetrack、纳米RAM(NRAM)或Millipede存储器。主存储器122可以是基于上面描述的任何存储器芯片,或者能够如本文所描述的进行操作的任何其他可用存储器芯片。在图1C中示出的实施方案中,处理器121经由系统总线150(在下面更详细地描述)与主存储器122通信。图1D描绘了计算设备100的实施方案,在所述实施方案中处理器经由存储器端口103直接与主存储器122通信。例如,在图1D中,主存储器122可以是DRDRAM。
图1D描绘了一个实施方案,其中主处理器121经由有时称为背侧总线的二级总线与高速缓存存储器140直接通信。在其他实施方案中,主处理器121使用系统总线150与高速缓存存储器140通信。高速缓存存储器140通常具有比主存储器122更快的响应时间,并且通常由SRAM、BSRAM或EDRAM提供。在图1D示出的实施方案中,处理器121经由本地系统总线150与各种I/O设备130通信。各种总线可被用于将中央处理单元121连接到任何I/O设备130,包括PCI总线、PCI-X总线或PCI-Express总线或NuBus。对于在其中I/O设备是视频显示器124的实施方案,处理器121可以使用高级图形端口(AGP)来与显示器124或用于显示器124的I/O控制器123进行通信。图1D描绘了计算机100的实施方案,在所述实施方案中,主处理器121经由超传输、RAPIDIO或无限带宽通信技术与I/O设备130b或其他处理器121'直接通信。图1D还描绘了在其中本地总线与直接通信混合的实施方案:处理器121使用本地互连总线与I/O设备130a通信,同时直接与I/O设备130b通信。
在计算设备100中可以存在各种各样的I/O设备130a至130n。输入设备可以包括键盘、鼠标、轨迹板、轨迹球、触摸板、触摸鼠标、多点触控触摸板和触摸鼠标、麦克风、多阵列麦克风、绘图平板计算机、相机、单镜头反光相机(SLR)、数字SLR(DSLR)、CMOS传感器、加速计、红外线光学传感器、压力传感器、磁力计传感器、角速率传感器、深度传感器、接近度传感器、环境光传感器、陀螺仪传感器或其他传感器。输出设备可以包括视频显示器、图形显示器、扬声器、耳机、喷墨打印机、激光打印机和3D打印机。
设备130a至130n可以包括多个输入或输出设备的组合,包括例如,微软KINECT、用于WII的Nintendo Wiimote、Nintendo WII U GAMEPAD或Apple IPHONE。一些设备130a至130n通过组合一些输入和输出来允许手势识别输入。一些设备130a至130n提供了面部识别,所述面部识别可被用作输入以用于不同目的,包括认证和其他命令。一些设备130a至130n提供语音识别和输入,包括例如Microsoft KINECT、Apple IPHONE的SIRI、Google Now或Google Voice Search(谷歌语音搜索)。
附加设备130a至130n具有输入和输出功能,包括例如触觉反馈设备、触摸屏显示器或多点触控显示器。触摸屏、多点触控显示器、触摸板、触摸鼠标或其他触摸感测设备可以使用不同的技术来感测触摸,包括例如,电容式、表面电容式、投射电容式触摸(PCT)、单元内电容式、电阻式、红外式、波导式、色散信号触摸(DST)、单元内光学、表面声波(SAW)、弯曲波触摸(BWT)、或基于力的感测技术。一些多点触控设备可以允许与表面的两个或更多个接触点,从而允许高级功能,包括例如,捏合、展开、旋转、滚动或其他手势。一些触摸屏设备(例如包括,Microsoft PIXELSENSE或Multi-Touch Collaboration Wall)可以具有较大的表面(诸如在桌面或墙壁上),并且还可以与其他电子设备进行交互。一些I/O设备130a至130n、显示设备124a至124n、或设备组可以是增强现实设备。可以由在图1C中所示出的I/O控制器123控制I/O设备。I/O控制器可以控制一个或多个I/O设备,诸如键盘126和定点设备127(例如,鼠标或光学笔)。此外,I/O设备还可以为计算设备100提供存储装置和/或安装介质116。在另外其他实施方案中,计算设备100可以提供USB连接(未示出)以接收手持式USB存储设备。在进一步实施方案中,I/O设备130可以是系统总线150与外部通信总线(例如,USB总线、SCSI总线、FireWire总线、以太网总线、千兆以太网总线、光纤信道总线或Thunderbolt总线)之间的桥接器。
在一些实施方案中,显示设备124a至124n可以连接到I/O控制器123。显示设备可以包括例如液晶显示器(LCD)、薄膜晶体管LCD(TFT-LCD)、蓝相LCD、电子纸(电子墨水)显示器、柔性显示器、发光二极管显示器(LED)、数字光处理(DLP)显示器、硅基液晶(LCOS)显示器、有机发光二极管(OLED)显示器、有源矩阵有机发光二极体(AMOLED)显示器、液晶激光显示器、时分复用光学快门(TMOS)显示器或3D显示器。3D显示器的例子可以使用例如立体镜、偏振滤光片、主动快门或自动立体镜。显示设备124a至124n也可以是头戴式显示器(HMD)。在一些实施方案中,显示设备124a至124n或相应的I/O控制器123可以通过OPENGL或DIRECTX API或其他图形库来控制或其具有针对OPENGL或DIRECTX API或其他图形库的硬件支持。
在一些实施方案中,计算设备100可以包括或连接到多个显示设备124a至124n,每个显示设备可以是相同或不同的类型和/或形式。如此,任何I/O设备130a至130n和/或I/O控制器123可包括任何类型和/或形式的合适的硬件、软件或硬件和软件的组合,以通过计算设备100支持、启用或提供对多个显示设备124a至124n的连接和使用。例如,计算设备100可以包括任何类型和/或形式的视频适配器、视频卡、驱动器和/或库,以接口连接、通信、连接或以其他方式使用显示设备124a至124n。在一个实施方案中,视频适配器可以包括多个连接器以与多个显示设备124a至124n接口连接。在其他实施方案中,计算设备100可以包括多个视频适配器,其中每个视频适配器与显示设备124a至124n中的一个或多个连接。在一些实施方案中,计算设备100的操作系统的任何部分可以被配置用于使用多个显示器124a至124n。在其他实施方案中,显示设备124a至124n中的一个或多个可以由经由网络104连接到计算设备100的一个或多个其他计算设备100a或100b提供。在一些实施方案中,软件可以被设计和构造用于将另一台计算机的显示设备用作用于计算设备100的第二显示设备124a。例如,在一个实施方案中,Apple iPad可以连接到计算设备100,并且将设备100的显示器用作附加显示屏,可以将所述附加显示屏用作扩展桌面。本领域普通技术人员将认识并理解计算设备100可以被配置用于具有多个显示设备124a至124n的各种方式和实施方案。
再次参考图1C,计算设备100可以包括存储设备128(例如,独立磁盘的冗余阵列或者一个或多个硬盘驱动器)以用于存储操作系统或其他相关软件,并且用于存储诸如与图像分类系统软件120有关的任何程序的应用软件程序。存储设备128的例子包括例如硬盘驱动器(HDD);包括CD驱动器、DVD驱动器或蓝光驱动器的光学驱动器;固态驱动器(SSD);USB闪存驱动器;或适合存储数据的任何其他设备。一些存储设备可以包括多个易失性和非易失性存储器,包括例如结合了硬盘和固态高速缓存的固态混合驱动器。一些存储设备128可以是非易失性的、可变的或只读的。一些存储设备128可以是内部的,并且经由总线150连接到计算设备100。一些存储设备128可以是外部的,并且可以经由提供外部总线的I/O设备130连接到计算设备100。一些存储设备128可以在网络104上经由网络接口118连接到计算设备100,所述一些存储设备包括例如Apple的用于MACBOOK AIR的远程磁盘。一些客户端设备100可以不需要非易失性存储设备128,并且可以是瘦客户端或零客户端102。一些存储设备128也可以被用作安装设备116,并且可以适用于安装软件和程序。另外,操作系统和软件可以从可启动介质(例如,可启动CD(例如,KNOPPIX)、用于可从knoppix.net作为GNU/Linux发行版获得的GNU/Linux的可启动CD)中运行。
客户端设备100还可以从应用分发平台安装软件或应用。应用分发平台的例子包括由Apple公司提供的用于iOS的App Store、由Apple公司提供的Mac App Store、由Google公司提供的用于Android OS的GOOGLE PLAY、由Google公司提供的用于CHROME OS的ChromeWebstore、以及由Amazon.com公司提供的用于Android OS和KINDLE FIRE的AmazonAppstore。应用分发平台可以促进在客户端设备102上安装软件。应用分发平台可以包括服务器106或云108上的应用存储库,客户端102a至102n可以通过网络104访问所述存储库。应用分发平台可以包括由各种开发人员开发和提供的应用。客户端设备102的用户可以经由应用分发平台来选择、购买和/或下载应用。
此外,计算设备100可以包括网络接口118以通过各种连接与网络104接口连接,所述各种连接包括但不限于标准电话线LAN或WAN链路(例如,802.11、T1、T3、千兆以太网、无限带宽)、宽带连接(例如,ISDN、帧中继、ATM、千兆以太网、SONET上以太网(Ethernet-over-SONET)、ADSL、VDSL、BPON、GPON、包括FiOS的光纤)、无线连接或上述任何一项或全部的一些组合。可以使用各种通信协议(例如,TCP/IP、以太网、ARCNET、SONET、SDH、光纤分布式数据接口(FDDI)、IEEE 802.11a/b/g/n/ac CDMA、GSM、WiMax和直接异步连接)建立连接。在一个实施方案中,计算设备100经由任何类型和/或形式的网关或隧道协议(例如,安全套接层(SSL)或传输层安全性(TLS)或由佛罗里达州劳德代尔堡的Citrix Systems公司生产的Citrix网关协议)与其他计算设备100’通信。网络接口118可以包括内置网络适配器、网络接口卡、PCMCIA网络卡、EXPRESSCARD网络卡、卡总线网络适配器、无线网络适配器、USB网络适配器、调制解调器或适合用于将计算设备100接口连接至能够通信并执行本文所描述的操作的任何类型的网络的任何其他设备。
在图1B和图1C中描绘的那种计算设备100可以在操作系统的控制下进行,所述操作系统控制对任务的调度和对系统资源的访问。计算设备100可以运行任何操作系统,诸如任何版本的MICROSOFT WINDOWS操作系统、Unix和Linux操作系统的不同发布、用于Macintosh计算机的任何版本的MAC OS、任何嵌入式操作系统、任何实时操作系统、任何开源操作系统、任何专有操作系统、用于移动计算设备的任何操作系统、或能够在计算设备上运行并执行本文描述的操作的任何其他操作系统。典型的操作系统还包括但不限于:由华盛顿州雷德蒙德市的Microsoft公司生产的WINDOWS 2000、WINDOWS Server 2012、WINDOWSCE、WINDOWS Phone、WINDOWS XP、WINDOWS VISTA和WINDOWS 7、WINDOWS RT和WINDOWS 8;由加利福尼亚州库比蒂诺市的Apple公司生产的MAC OS和iOS;由英国伦敦的Canonical有限责任公司发布的一个免费使用的操作系统Linux(例如,Linux Mint发布版(“distro”)或Ubuntu);或者Unix或其他类似Unix的派生操作系统;以及由加利福尼亚州山景城的Google设计的Android等等。一些操作系统(包括例如,Google的CHROME OS)可以在零客户端或瘦客户端(包括例如,CHROMEBOOKS)上使用。
计算机系统100可以是任何工作站、电话、桌上型计算机、膝上型计算机或笔记本计算机、上网本、ULTRABOOK、平板计算机、服务器、手持计算机、移动电话、智能手机或其他便携式电信设备、媒体播放设备、游戏系统、移动计算设备或能够通信的任何其他类型和/或形式的计算、电信或媒体设备。计算机系统100具有足够的处理器能力和存储器容量以执行本文描述的操作。在一些实施方案中,计算设备100可以具有不同的处理器、操作系统以及与所述设备一致的输入设备。例如,三星GALAXY智能手机在由Google公司开发的Android操作系统的控制下运行。GALAXY智能手机通过触摸界面接收输入。
在一些实施方案中,计算设备100是游戏系统。例如,计算机系统100可以包括由日本东京索尼公司生产的PLAYSTATION 3或便携式个人PLAYSTATION(PSP)或PLAYSTATIONVITA设备,由日本京都的Nintendo公司生产的NINTENDO DS、NINTENDO 3DS、NINTENDO WII或NINTENDO WII U设备,由华盛顿州雷德蒙德市的Microsoft公司生产的XBOX 360设备。
在一些实施方案中,计算设备100是数字音频播放器,诸如由加利福尼亚州库比蒂诺市的Apple计算机公司生产的Apple IPOD、IPOD Touch和IPOD NANO系列设备。一些数字音频播放器可以具有其他功能,包括例如游戏系统或由来自数字应用分发平台的应用可实现的任何功能。例如,IPOD Touch可以访问Apple App Store。在一些实施方案中,计算设备100是支持文件格式的便携式媒体播放器或数字音频播放器,所述文件格式包括但不限于MP3、WAV、M4A/AAC、受WMA保护的AAC、AIFF、Audible有声读物、Apple无损音频文件格式和.mov、.m4v和.mp4 MPEG-4(H.264/MPEG-4AVC)视频文件格式。
在一些实施方案中,计算设备100是平板计算机,例如Apple的IPAD系列设备、Samsung的GALAXY TAB系列设备、或华盛顿州西雅图市的Amazon.com有限公司的KINDLEFIRE。在其他实施方案中,计算设备100是电子书阅读器,例如Amazon.com的KINDLE系列设备或纽约州纽约市的Barnes&Noble有限公司的NOOK系列设备。
在一些实施方案中,通信设备102包括多个设备(例如,与数字音频播放器或便携式媒体播放器组合的智能手机)的组合。例如,这些实施方案中的一个实施方案是智能手机,例如由Apple有限公司生产的IPHONE系列智能手机、由三星有限公司生产的三星GALAXY系列智能手机或Motorola DROID系列智能手机。在又一个实施方案中,通信设备102是配备有web浏览器以及麦克风和扬声器系统(例如,电话耳机)的膝上型计算机或桌上型计算机。在这些实施方案中,通信设备102是web使能的,并且可以接收和发起电话呼叫。在一些实施方案中,膝上型计算机或桌上型计算机还配备有能够进行视频聊天和视频呼叫的网络摄像头或其他视频捕获设备。
在一些实施方案中,通常作为网络管理的一部分,监视网络104中的一个或多个机器102、106的状态。在这些实施方案的一个实施方案中,机器的状态可以包括负载信息(例如,机器上的进程数量、CPU和内存利用率)的标识、端口信息(例如,可用的通信端口的数量和端口地址)的标识、会话状态(例如,进程的持续时间和类型以及进程是活动的还是空闲的)的标识。在这些实施方案的另一个实施方案中,此信息可以由多个度量来标识,并且所述多个度量可以至少部分地应用于负载分配、网络流量管理和网络故障恢复以及本文描述的本解决方案的操作的任何方面的决策。在本文公开的系统和方法的上下文中,上面描述的操作环境和组件的各方面将变得显而易见。B.用于图像分类的系统和方法
提供了与训练图像分类器有关的方法、系统和装置。计算图像分类器模型具有极大减少用于自动图像分类所需的工作和资源的潜力。通常,术语“图像分类”可以包括确定未分类的输入图像是第一类型还是第二类型,其中所述第一类型和所述第二类型是已知的。在一些实施方式中,本公开文本的所述系统和方法可以接收具有可以在多维空间中表示的复杂特征集的未分类的输入图像。例如,图像可以具有大量的像素(例如,以106或以上的数量级),并且每个像素可以具有针对诸如红色、绿色和蓝色等多种颜色中的每一种颜色的相关联值。下面进一步描述的系统和方法可以从弱监督中学习输入图像的低维嵌入。在一些实施方式中,图像可以被划分为多个块,并且所述块可以被自动地划分为代表第一类型和第二类型的聚类。这种学习的嵌入允许使用简单的分类器来解决针对输入图像的整体分类任务,诸如关于组成所述输入图像的块的k个最近邻。一般地,弱监督可以指在仅已知整体切片类型(例如,第一类型或第二类型)的数据集中的切片的情况。可能没有与针对图像的任意单个块的分类有关的信息。因此,本公开文本的技术与完全监督的学习相反,在完全监督的学习中,图像的每个块的标签被用于训练图像分类模型。
在一些实施方式中,可以基于类型(例如,分类)已知的一组图像来训练图像分类模型。可以将图像划分为块,并且可以生成块的库。例如,一个库可以包括与所述第一类型的图像相对应的块,并且第二库可以包括与所述第二类型的图像相对应的块。可以利用迭代训练过程来完成对图像分类模型的训练,并且可以从针对每个训练回合的每个库中采样块的子集。对于给定的训练回合,可以使用图像分类模型将每个块转换为低维嵌入空间中的点,所述图像分类模型可以是例如卷积神经网络。
在一些实施方式中,可以使用聚类算法将来自一个库的点聚类为两个聚类。在这两个聚类中,与来自第二库中的点具有最小距离的一个聚类可被分配给正类,而另一个聚类可被分配给负类。来自第二库的点可以被视为锚类。可以对来自锚类、正类和负类的点进行采样以生成三元组,其中每个三元组由一个锚点、一个正点和一个负点组成。然后可以计算损失函数,诸如三元组边际损失。在一些实施方式中,梯度下降优化可被用于调整图像分类模型的参数以最小化所述损失函数。最后,可以聚集对图像上所有块的预测(例如,分类)以将整个图像分类为第一类型或第二类型。另外地,下面进一步描述的系统和方法可以提供整个图像的按块分割以用于界定负责将图像分类为第一类型或第二类型的特征。
本公开文本中描述的技术可以具有多种有用的应用。在一些实施方式中,如本文所描述的图像分类系统可被用于医学诊断。例如,每个图像可以是代表从患者处获取的组织样品的病理切片的图像,并且每个切片可以被分类为良性的或肿瘤性的。所述切片可被用于训练图像分类模型,所述图像分类模型可以确定未分类的输入图像代表良性组织还是肿瘤组织。因为肿瘤通常仅代表被分类为肿瘤性切片的一小部分,所以即使对于受过训练的人也难以准确地对此类切片进行分类。本公开文本的所述系统和方法可以帮助自动化这样的分类,并且还可以分割与肿瘤切片相对应的图像,使得清楚地界定出被分类为肿瘤性的每个切片的肿瘤部分。在一些其他实施方式中,本公开文本的技术可被应用于其他类型的图像。例如,本文所述的系统和方法可被用于基于一组训练图像(例如,其可以是卫星图像)来自动确定输入图像中是否存在特定的对象或人。
现在参考图2A,描绘了展示用于图像分类的系统200中的数据流的框图。系统200可以包括图像分类系统210,所述图像分类系统被配置用于接收各种被注释的和未分类的图像、训练图像分类模型、并且使用所述模型对未分类的图像进行分类和分割。更具体地,图像分类系统210接收被注释的图像205以及未分类的图像208。被注释的图像205可以包括其分类是已知的任何图像,并且被注释的图像205的注释可以指示其图像的相应分类。在一般性例子中,注释可以指示每个被注释的图像205被分类为第一类型或第二类型,但是应当理解的是,第一类型和第二类型实际上可以是任何数量的特定分类。例如,在一些实施方式中,被注释的图像205是病理切片,所述切片中的每一个均被注释以指示所述切片是被分类为良性的还是肿瘤性的。在一些实施方式中,图像分类系统210可以接收大量的被注释图像205(例如,以104或以上的量级)。例如,图像分类系统210可以接收数千或数百万个被注释的图像205。
图像分类系统210可以使用一组接收到的被注释图像205来训练图像分类模型。例如,图像分类系统210可以确定使图像具有特定分类的每个被注释图像205的特定特性或特征,并且可以将所述信息结合到图像分类模型中。在一些实施方式中,可以使用诸如卷积神经网络等机器学习算法来实施图像分类模型。在已经开发和细化了图像分类模型之后,图像分类系统210可以将所述图像分类模型应用于未分类图像208以自动地分类所述图像。在一些实施方式中,图像分类系统210还可以对未分类图像208进行分割以标识未分类图像208的特定部分,所述标识导致将未分类图像208分配给某个给定的分类。换言之,图像分类系统210可以将未分类的图像208划分为多个块,并且可以通过使用图像分类模型进一步确定针对每个块的分类。基于块的分类,图像分类系统210可以确定针对图像的整体分类,并且可以以按块的方式来分割图像以生成图像分类和分割信息220。下面结合图2B和图3描述了图2A的图像分类系统210的进一步实施方式细节。
现在参考图2B,描绘了展示系统225中用于对病理切片进行图像分类的数据流的框图。系统225可以包括与上文结合图2A描述的系统200相同的组件。在系统225中,图像分类系统210可以接收被注释的图像205以训练用于病理学的图像分类模型。被注释的图像205可以包括一组良性切片230A和一组肿瘤切片230B。所述一组良性切片230A可以包括被标记为具有良性组织的组织学切片的图像。所述一组肿瘤切片230B可以包括被标记为具有肿瘤组织的组织学切片的图像。通过接收到被注释的图像205,图像分类系统210可以选择或生成所述一组良性切片230A和所述一组肿瘤切片230B中的一组随机样本232。对所述一组良性切片230A和所述一组肿瘤切片230B的采样还可以是依据简单的随机采样、系统性随机采样和压缩感测等等。所述一组随机样本232可以包括来自所述一组良性切片230A的k个样本和来自所述一组肿瘤切片230B的另外k个样本。所述集合232可以包括所述两个集合230A与230B之间的总共2k个样本。
图像分类系统210可以将所述一组随机样本232应用于图像分类模型234。在一些实施方式(诸如所描绘的一个实施方式)中,图像分类模型234可以包括卷积神经网络(CNN)和范数函数(例如,欧几里得范数)。CNN可以包括一个或多个层(例如,卷积层、池化层、整流线性单元层和完全连接层等等)和在每一层处的滤波器。CNN的滤波器可以包含乘数因子以应用于输入(诸如一组随机样本232)中的元素。通过训练,图像分类系统210可以在CNN的每一层调整或设置滤波器。通过将所述一组随机样本232应用于CNN,并且然后应用于图像分类模型234的范数函数,图像分类系统210可以在特征图中生成输出。所述输出可以包括一组锚点236A和一组未知点236B。锚值集合236A可以对应于最初来自所述一组良性切片230A或所述一组肿瘤切片230B的数据。所述输出可以包括来自所述一组锚点236A的D×k个数据点以及来自所述一组未知点236B的另外D×k个数据点。所述输出可以包括这两个组236A与236B之间的D×2k个数据点。数量D可取决于图像分类模型234的CNN中的层数量和滤波器数量。
通过生成来自图像分类模型234的输出,图像分类系统210可以应用聚类算法(例如,k个最近邻聚类)以形成三元组238。三元组238可包括一组锚数据点、一组正数据点和一组负数据点。所述一组锚数据点的个数可以是D×k。所述一组正数据点的个数可以是D×m。所述一组负数据点的个数可以是D×n。可以通过应用聚类算法中来确定所述一组正数据点和负数据点。使用三元组238,图像分类系统210可以计算损失函数(例如,三元组损失边际)。基于损失函数的值,图像分类系统210可以调整图像分类模型234(例如,CNN的滤波器)以减小或最小化所述一组正数据点与所述一组锚数据点之间的损失函数,同时最大化所述一组正数据点与所述一组负数据点之间的差异。图像分类系统210可以迭代图像分类模型234的应用、聚类算法以及损失函数的计算,直到确定图像分类模型234已经收敛为止。一旦训练了图像分类模型234,就可以将未标记的病理切片输入到图像分类系统210中以生成图像分类和分割信息220。下面结合图3描述了图2B的图像分类系统210的进一步实施方式细节。
图3描绘了图2A中示出的图像分类系统210的实施方式的架构的一部分。如上面所描述的,系统210可以接收各种被注释的和未分类的图像、训练图像分类模型、并且使用所述模型对未分类的图像进行分类和分割。在一些实施方式中,图3中示出的系统210的组件可以包括上面结合图1A至图1D描述的系统和设备或使用其来实施。例如,图像分类系统210及其任何组件可以使用类似于图1C至图1D中示出的计算设备来实施,并且可以包括这些设备(诸如CPU 121、存储器122、I/O设备130a至130n、网络接口118等)的任何特征。
图像分类系统210可以包括块生成器305、低维嵌入引擎310、聚类引擎315、类分配引擎320、三元组生成器325、模型细化引擎330、图像分类模型335、分类请求管理器340、以及存储图像350和块355的数据库345等等。同时,图像分类系统210的组件可以被配置用于实现上面结合图2A简要提及的算法和其他功能。在一些实施方式中,块生成器305、低维嵌入引擎310、聚类引擎315、类分配引擎320、三元组生成器325、模型细化引擎330、图像分类模型335、分类请求管理器340和数据库345中的每一个可以被实施为执行如下面进一步描述的这些组件中的每个组件的功能的一组软件指令、计算机代码或逻辑。在一些实施方式中,这些组件可以代替地通过硬件来实施,例如使用一个或多个现场可编程门阵列(FPGA)和/或一个或多个专用集成电路(ASIC)。在一些实施方式中,这些组件可以被实施为硬件和软件的组合。
在一些实施方式中,图像分类系统210可以接收多个图像。所接收的图像可以包括被注释的图像,诸如图2A中示出的被注释的图像205,所述被注释的图像可以包括与每个图像的分类有关的信息。在一些实施方式中,图像可以是由像素数据表示的电子图像。每个图像的注释可以例如被包括为与针对每个图像的计算机文件相关联的元数据。图像分类系统210还可以接收一个或多个未分类的图像,诸如图2A中示出的未分类的图像208,针对所述未分类的图像需要分类信息。在一些实施方式中,图像分类系统210可以将接收到的图像中的每个图像作为图像350存储在数据库345中。
块生成器305可以将多个图像350划分为多个块。通常,块可以指图像的一部分。例如,每个图像350可以被划分为多个块。每个块可以具有一定的大小和形状(例如,正方形的50×50像素)。在一些实施方式中,块生成器305可以通过根据网格覆盖将图像350划分为多个块。例如,块生成器305可以将分辨率为1000像素×1000像素的图像350划分为多个块,每个块代表分辨率为10像素×10像素的相邻正方形图像部分,从而为图像350创建10,000个块。在其他实施方式中,块生成器305可以以不同的方式生成块。例如,块生成器305可以生成具有矩形形状或不规则形状的块。在一些实施方式中,所述块可以不全部具有统一的大小,并且在一些实施方式中,至少一些块可以与同一图像350的其他块的一部分重叠。换言之,图像350的一部分可以被包括在针对该图像350的一个以上的块内。在一些实施方式中,块生成器305还可以通过进一步处理所生成的块来提供数据增强和质量控制功能。例如,块生成器305可以丢弃被认为是低质量的块。在一些实施方式中,如果块太模糊或太暗而无法被有意义地处理,则块生成器305可以确定所述块的质量低。因此,块生成器305可以为每个块确定模糊度度量或光水平度量,并且可以基于相应的模糊度度量和光度度量来丢弃一些块。在一些实施方式中,块生成器305可以通过将一项或多项图像处理技术应用于部分或所有块来提供数据增强。例如,块生成器305可以对部分或所有块应用颜色归一化,或者可以在空间上旋转部分或所有块。块生成器305可以将所生成的块作为块355存储在数据库345中。在一些实施方式中,块生成器305可以选择所生成的块355的子集以用于存储在数据库345中并用于进一步处理。在一些实施方式中,块生成器305可以随机采样或选择所生成块355的子集。例如,块生成器305可以使用伪随机数生成器来计算要选择的块355的索引号。以这种方式,可以减少由图像分类系统210分析或处理的块355的数量。
低维嵌入引擎310可以从被注释的图像的块中生成多个点。如上面所描述的,每个图像可以由一组图像数据表示。针对每个图像的图像数据可能相对复杂。例如,单个图像可以由与数千或数百万个像素相对应的数据表示,并且每个像素可以由针对几种颜色(诸如红色、绿色和蓝色)的值表示。因此,图像可以被认为是在多维空间中定义的点,其中维度对应于各个像素位置、每个像素的颜色值等。低维嵌入引擎310可以生成针对每个块的点。在一些实施方式中,低维嵌入引擎310可以通过以与被用来表示整个图像的相同粒度水平来表示每个块而实现这一点。因此,可以将块表示为多维空间中的点,所述多维空间具有与块内的像素位置和针对块中每个像素的颜色数值相对应的维数。在一些其他实施方式中,低维嵌入引擎310可以例如通过将一项或多项图像变换技术应用于块来减小每个块的维度。
在已经生成块并将其表示为点之后,图像分类系统210可以选择块的第一子集以用于训练图像分类模型335。如上面所描述的,可以有数千个或数百万个图像350,并且每个图像可以被划分为数十个、数百个、数千个或数百万个块。由于下面描述的用于训练图像分类模型335的迭代步骤从计算方面来讲可能是密集的,因此在每次迭代中仅处理可用块的子集会更高效。在一些实施方式中,图像分类系统210可以为每次迭代选择预定数量的块,所述预定数量的块可以被表达为基于期望迭代次数的可用块的一部分。在一些实施方式中,图像分类系统210可以随机地选择预定数量的块(例如,使用简单随机采样技术或系统性随机采样技术)。例如,如果将要执行100次迭代训练过程,则图像分类系统210可以为每次迭代选择等于可用块总数的1%的块子集,使得所有块可以在已执行完所有迭代之后都被使用。
如上面所描述的,每个被注释的图像可以被分类为第一类型或第二类型。在已选择的块子集之中,聚类引擎315可以将对应于被标识为第二类型的图像的块的点聚类为两个聚类。在一些实施方式中,聚类引擎315可以使用任何类型的聚类算法(例如,k均值聚类算法、均值漂移聚类算法、期望最大化算法和分层聚类算法)来执行该聚类操作。在聚类引擎315将与被标识为第二类型的图像的块相对应的点聚类之后,聚类引擎315可以标识这两个聚类中的第一聚类,所述第一聚类比第二类型更靠近被注释为第一类型的图像的点。可以以各种方式来测量每个聚类到被注释为第一类型的图像的点的接近度。在一些实施方式中,聚类引擎315可以确定从每个聚类到被注释为第一类型的图像的点之间的距离(例如,直线性的、欧几里德、或Lp范数)。例如,聚类引擎315可以确定表示第一聚类中所有点的平均值的第一点、表示第二聚类中所有点的平均值的第二点、和表示被注释为第一类型的图像的所有点的平均值的第三点。聚类引擎315然后可以确定第一点与第三点之间的距离以及第二点与第三点之间的距离,并且最终可以确定第一点与第三点之间的距离小于第二点与第三点之间的距离。
类分配引擎320可以基于在其中存在每个点的聚类将点分配给不同类。例如,类分配引擎320可以将被注释为第一类型的图像的点分配给锚类。类分配引擎320还可以将第一聚类中的点分配给正类,因为它们与锚类的点(例如,被注释为第一类型的图像的点)或与锚类的形心接近。类似地,类分配引擎320还可以将第二聚类中的点分配给负类,因为预期所述第二聚类中的点(在平均值上)比正类中的点更远离锚类的点或更远离锚类的形心。
三元组生成器325可以生成各个点的多个三元组。通常,三元组可以表示为三个点的有序集合。在一些实施方式中,三元组生成器325可以生成三元组,使得每个三元组包括来自锚类的点、来自正类的点、和来自负类的点。在一些实施方式中,三元组生成器325被配置用于从每个类中随机采样以生成三元组。为了创建每个三元组,三元组生成器325可以从锚类中随机选择第一点、从正类中随机选择第二点并且从负类中随机选择第三点。在一些实施方式中,对每个三元组的点的随机选择可以是独立的。因此,三元组生成器325可以生成具有至少一个公共点的两个或更多个三元组。例如,来自所述类中的一个类的特定点可以出现在多个生成的三元组中。在一些其他实施方式中,三元组生成器325可以以确保在生成的三元组上不重复任何点的方式从类中采样。在一些实施方式中,三元组生成器325被配置用于使用任何合适的选择算法从每个类中选择点以生成三元组。
模型细化引擎330可以使用由三元组生成器325生成的三元组来计算损失函数(有时称为目标函数)。在一些实施方式中,损失函数还可以是三元组边际误差、均方误差、贝叶斯期望损失和二次损失函数等等。在一些其他实施方式中,模型细化引擎330可以基于三元组来计算不同类型的损失函数。在一些实施方式中,模型细化引擎330可以进一步被配置用于为图像分类模型335选择最小化或减少损失函数的参数。例如,在一些实施方式中,模型细化引擎330可以对计算出的损失函数执行梯度下降优化,以确定可以最小化或减少损失函数的一组参数。在一些其他实施方式中,模型细化引擎330可以使用不同的优化技术来选择参数以最小化或减少损失函数。然后,模型细化引擎330可以使用所选择的参数来更新图像分类模型335。
如上面所描述的,在一些实施方式中,训练图像分类模型335的过程可以是迭代的,并且可以在被注释的图像的多个块子集上执行。图像分类模型335还可以是人工神经网络(ANN)、卷积神经网络(CNN)(例如,如本文中根据图像分类模型234所详述的)、支持向量机(SVM)、回归模型(例如,逻辑的或线性的)、贝叶斯分类器和马尔可夫链等等。因此,在一些实施方式中,图像分类系统210可以确定是否所有块都已经被用于训练模型。如果有剩余未被使用的块,则图像分类系统210可以选择新的块子集,并且聚类引擎315、类分配引擎320、三元组生成器325和模型细化引擎330可以重复上面描述的步骤以进一步细化图像分类模型335。可以利用可用块的附加子集来重复这些步骤,直到所有可用块都已被用于细化图像分类模型335,使得图像分类模型335最终被确定下来。应当理解的是,随着越来越多的块被分析和处理,可以更新图像分类模型335。在一些实施方式中,可以细化图像分类模型335,直到由三元组生成的损失函数低于指示图像分类模型的准确度水平的预先确定的阈值为止。
在图像分类模型335已经完成(例如,达到收敛)之后,图像分类系统210可以被用于使用图像分类模型335来对未分类的输入图像进行分类,以确定未分类的图像是第一类型还是第二类型。在一些实施方式中,分类请求管理器340可以接收请求以对输入图像进行分类。所述请求可以包括与未分类的输入图像相对应的图像数据。在一些实施方式中,图像分类模型335可以将未分类的输入图像连同其他图像350一起存储在数据库345中。
如上面针对用于训练图像分类模型335的被注释的图像所描述的,块生成器305可以将输入图像划分为多个块。例如,输入图像可以被划分为多个块,所述多个块中的每个块可以是矩形、正方形或不规则形状。一些块可与输入图像的其他块的一部分重叠。在一些实施方式中,块生成器305还可以丢弃被认为是低质量的块,例如如果块太模糊或太暗而不能被有意义地处理的话。块生成器305可以使用模糊检测技术来确定块是否模糊。例如,块生成器305可以计算块的拉普拉斯算子的方差。如果方差大于某个阈值,则块生成器305可以确定所述块太模糊并且可以丢弃所述块。另一方面,如果方差低于阈值,则块生成器305可以确定所述块不是太模糊并且可以存储所述块以用于进一步使用。块生成器305可以通过计算亮度来确定块是否暗。块生成器305可以基于所述块上的红色、蓝色和绿色值的算术平均值来计算所述块的亮度。如果亮度大于某个阈值,则块生成器305可以确定所述块不是暗的并且可以存储所述块以用于进一步使用。相反地,如果亮度低于所述阈值,则块生成器305可以确定所述块太暗并且可以丢弃所述块。块生成器305还可以通过将一项或多项图像处理技术应用于输入图像的部分或所有块来增强所述输入图像,例如通过标准化所述块的颜色或旋转所述输入图像的部分块。
分类请求管理器340然后可以确定输入图像的每个块的分类。可以以与针对作为一个整体的图像的分类类似的方式格式化对每个块的分类。例如,基于每个块的特征或特性与分类为已知的被注释图像的特征或特性的相似性,可以将所述每个块分类为第一类型或第二类型。在一些实施方式中,分类请求管理器340可以将图像分类模型335应用于输入图像的每个块以确定对所述块的分类。因此,已经被用于训练图像分类模型335的与被注释的图像有关的所有信息都可以被用于通知对输入图像的块的分类。
然后,分类请求管理器340可以聚集对输入图像的每个块的分类,以确定所述输入图像的整体分类。在一些实施方式中,与图像分类模型335相关联的技术或参数可以被用于聚集对每个块的分类。例如,在一些实施方式中,仅在输入图像的至少块子集满足k个最近邻测试时,分类请求管理器340才可以确定应将输入图像分类为第二类型,在所述k个最近邻测试中,被分类为第二类型的块的邻居也被确定为被分类为第二类型。否则,输入图像可以被分类为第一类型。因此,在某些情况下,输入图像可以具有被单独地分类为第一类型的一个或多个块,而输入图像作为一个整体被分类为第二类型。类似地,在某些情况下,输入图像可以具有被单独地分类为第二类型的一个或多个块,而输入图像作为一个整体被分类为第一类型。
分类请求管理器340还可以提供包括对输入图像的分类以及对输入图像的按块分割的输出。按块分割可以包括指示第二类型的每个块和第一类型的每个块的位置的任何形式的信息。因此,观察者可以确定输入图像的主要负责输入图像的整体分类的部分。
在一个特定例子中,被注释的图像可以是被分类为良性的或肿瘤性的病理切片,并且输入图像可以是其分类将被确定以诊断受试者(例如,患者)的未分类的病理切片。使用上面描述的步骤,可以基于在被注释的输入图像中包括的信息来训练图像分类模型335以将图像分类为良性的或肿瘤性的。然后,分类请求管理器340可以将图像分类模型335应用于未分类的输入图像以确定输入图像代表良性组织还是肿瘤组织。此外,分类请求管理器340可以基于被单独确定为肿瘤性的块,提供输入图像的按块分割,以示出为肿瘤性的特定区域(例如,与块相对应的位置)。
图4是针对训练图像分类器的示例方法400的流程图。简单地概述,方法400包括:接收每一个被分类为第一类型或第二类型的多个被注释图像的图像数据(405);将多个图像划分为多个块(410);从被注释的图像的块中生成多个点(415);选择用于训练模型的块的新子集(420);将被注释为第二类型的图像的点聚类(425);标识比第二聚类更靠近被注释为第一类型的图像的点的第一聚类(430);将点分配给正类、负类和锚类(435);生成三元组,所述三元组中的每一个包括来自每个类的点(440);计算三元组的损失函数(445);以及基于损失函数调整图像分类器的参数(450)。在455处,如果已经选择了所有块来用于训练模型,则所述模型被最终确定下来(460)。否则,方法返回到420并且选择新的块子集以用于训练模型。
再次参照图4并且更详细地,方法400包括接收针对多个被注释图像的图像数据,所述图像中的每一个被分类为第一类型或第二类型(405)。在一些实施方式中,这可以由诸如图像分类系统210等图像分类系统执行。在一些实施方式中,图像可以是由像素数据表示的电子图像。每个图像的注释可以例如被包括为与针对每个图像的计算机文件相关联的元数据。在一些实施方式中,图像分类系统210可以将接收到的图像中的每个图像存储在数据库中。
方法400还包括将多个图像划分为多个块(410)。在一些实施方式中,这可以由诸如在图3中示出的块生成器305等块生成器执行。通常,块可以指图像的一部分。例如,每个图像可以被划分为多个块。在一些实施方式中,块生成器可以通过根据网格覆盖来将图像划分为多个块。例如,块生成器可以将分辨率为1000像素×1000像素的图像划分为多个块,每个块代表分辨率为10像素×10像素的相邻正方形图像部分,从而为图像创建10,000个块。在其他实施方式中,块生成器305可以以不同的方式生成块。例如,块生成器可以生成具有矩形形状或不规则形状的块。在一些实施方式中,所述块可以不全部具有统一的大小,并且在一些实施方式中,至少一些块可以与同一图像的其他块的一部分重叠。换言之,图像350的一部分可以被包括在针对该图像的一个以上的块内。
在一些实施方式中,块生成器还可以通过进一步处理所生成的块来提供数据增强和质量控制功能。例如,块生成器可以丢弃被认为是低质量的块。在一些实施方式中,如果块太模糊或太暗而无法被有意义地处理,则块生成器可以确定所述块的质量低。因此,块生成器可以为每个块确定模糊度度量或光水平度量,并且可以基于相应的模糊度度量和光度度量来丢弃一些块。在一些实施方式中,块生成器可以通过将一种或多种图像处理技术应用于部分或所有块来提供数据增强。例如,块生成器可以对部分或所有块应用颜色归一化,或者可以在空间上旋转部分或所有块。
方法400还包括从被注释的图像的块中生成多个点(415)。在一些实施方式中,这可以由诸如在图3中示出的低维度嵌入引擎310等低维嵌入引擎执行。如上面所描述的,每个图像可以由一组图像数据表示。例如,针对每个图像的图像数据可以由与数千或数百万个像素相对应的复杂数据表示,并且每个像素可以由针对几种颜色(诸如红色、绿色和蓝色)的值表示。因此,图像可以被表示为在多维空间中定义的点,其中维度对应于各个像素位置、每个像素的颜色值等。低维嵌入引擎可以生成针对每个块的点。在一些实施方式中,低维嵌入引擎可以通过以与被用来表示整个图像的相同粒度水平来表示每个块而实现这一点。因此,可以将块表示为多维空间中的点,所述多维空间具有与块内的像素位置和针对块中每个像素的颜色数值相对应的维数。在一些其他实施方式中,低维嵌入引擎可以例如通过将一项或多项图像变换技术应用于块来减小每个块的维度。
方法400还包括选择新的块子集用于训练模型(420)。图像分类系统可以选择被用来训练模型的新的块子集,所述模型可以对应于图3中示出的图像分类模型图像分类模型335。如上面所描述的,可以有数千个或数百万个图像,并且每个图像可以被划分为数十个、数百个、数千个或数百万个块。由于下面描述的用于训练图像分类模型的迭代步骤从计算方面来讲可能是密集的,因此在每次迭代中仅处理可用块的子集会更高效。在一些实施方式中,图像分类系统可以为每次迭代选择预定数量的块,所述预定数量的块可以被表达为基于期望迭代次数的可用块的一部分。
方法400还包括将从被注释为第二类型的图像中得到的点聚类(425)。在一些实施方式中,这可以由诸如在图3中示出的聚类引擎315等聚类引擎执行。聚类引擎可以使用任何类型的聚类算法来执行这种聚类操作。在聚类引擎将与被标识为第二类型的图像的块相对应的点聚类之后,聚类引擎可以标识两个聚类中的第一聚类,所述第一聚类比第二类型更靠近被注释为第一类型的图像的点(430)。可以以各种方式来测量每个聚类到被注释为第一类型的图像的点的接近度。在一些实施方式中,聚类引擎可以确定从每个聚类到被注释为第一类型的图像的点之间的距离。例如,聚类引擎可以确定表示第一聚类中所有点的平均值的第一点、表示第二聚类中所有点的平均值的第二点、和表示被注释为第一类型的图像的所有点的平均值的第三点。聚类引擎然后可以确定第一点与第三点之间的欧几里得距离以及第二点与第三点之间的欧几里得距离,并且可以确定第一点与第三点之间的距离小于第二点与第三点之间的距离。
方法400还包括将点分配为正类、负类和锚类(435)。在一些实施方式中,这可以由诸如在图3中示出的类分配引擎320等类分配引擎执行。类分配引擎可以基于在其中存在每个点的聚类将点分配给不同类。例如,类分配引擎可以将被注释为第一类型的图像的点分配给锚类。类分配引擎还可以将第一聚类的点分配给正类,因为它们与锚类的点(例如,被注释为第一类型的图像的点)接近。类似地,类分配引擎还可以将第二聚类中的点分配给负类,因为预期所述第二聚类中的点(在平均值上)比正类中的点更远离锚类的点。
方法400还包括生成三元组,所述三元组中的每一个都包括来自每一类的点(440)。在一些实施方式中,这可以由诸如在图3中示出的三元组生成器325等三元组生成器执行。通常,三元组可以表示为三个点的有序集合。在一些实施方式中,三元组生成器可以生成三元组,使得每个三元组包括来自锚类的点、来自正类的点、和来自负类的点。在一些实施方式中,三元组生成器被配置用于从每个类中随机采样以生成三元组。也就是说,为了创建每个三元组,三元组生成器可以从锚类中随机选择第一点、从正类中随机选择第二点并且从负类中随机选择第三点。在一些实施方式中,对每个三元组的点的随机选择可以是独立的。因此,三元组生成器可以生成具有至少一个公共点的两个或更多个三元组。例如,来自所述类中的一个类的特定点可以出现在多个生成的三元组中。在一些其他实施方式中,三元组生成器可以以确保在生成的三元组上不重复任何点的方式从类中采样。
方法400还包括计算三元组的损失函数(445)。在一些实施方式中,这可以由诸如在图3中示出的模型细化引擎330等模型细化引擎执行。在一些实施方式中,损失函数可以是三元组边际误差。在一些其他实施方式中,模型细化引擎可以基于三元组来计算不同类型的损失函数。在一些实施方式中,模型细化引擎可以进一步被配置用于为图像分类模型选择最小化或减少损失函数的参数。例如,在一些实施方式中,模型细化引擎可以对计算出的损失函数执行梯度下降优化,以确定可以最小化或减少损失函数的一组参数。在一些其他实施方式中,模型细化引擎可以使用不同的优化技术来选择参数以最小化或减少损失函数。模型细化引擎然后可以通过基于损失函数利用所选择的参数调整图像分类模型的参数来更新图像分类模型(450)。
在455处,如果已经选择了所有块来用于训练模型,则所述模型被最终确定下来(460)。否则,方法400返回到420并且选择块的新子集以用于训练模型。因此,迭代步骤420、425、430、435、440、445、450和455,直到所有块都已经被用于训练图像分类模型且所述模型已经被确定下来为止。
图5是用于对未分类的输入图像进行分类的示例方法500的流程图。简单地概述,方法500包括:接收与未分类输入图像相对应的图像数据(505);将输入图像划分为多个未分类的块(510);确定针对每个未分类块的分类(515);聚集对每个块的分类以确定对输入图像的整体分类(520);以及提供包括输入图像的按块分割的输出(525)。
再次参照图5并且更详细地,方法500包括接收与未分类的输入图像相对应的图像数据(505)。在一些实施方式中,这可以由诸如在图3中示出的分类请求管理器340等分类请求管理器执行。方法500还包括将输入图像划分为多个未分类的块(510)。例如,输入图像可以被划分为多个块,所述多个块中的每个块可以是矩形、正方形或不规则形状。可以由诸如在图3中示出的块生成器305等块生成器来生成块。一些块可与输入图像的其他块的一部分重叠。在一些实施方式中,块生成器还可以丢弃被认为是低质量的块,例如如果所述块太模糊或太暗而不能被有意义地处理的话。块生成器还可以通过将一项或多项图像处理技术应用于输入图像的部分或所有块来增强所述输入图像,例如通过标准化所述块的颜色或旋转所述输入图像的部分块。
方法500包括确定对每个未分类块的分类(515)。可以以与针对作为一个整体的图像的分类类似的方式格式化对每个块的分类。例如,基于每个块的特征或特性与分类为已知的被注释图像的特征或特性的相似性,可以将所述每个块分类为第一类型或第二类型。在一些实施方式中,分类请求管理器可以将图像分类模型应用于输入图像的每个块以确定对块的分类。因此,已经被用于训练图像分类模型的与被注释的图像有关的所有信息都可以被用于通知对输入图像的块的分类。
方法500包括聚集对每个块的分类,以确定针对输入图像的整体分类(520)。在一些实施方式中,与图像分类模型相关联的技术或参数可以被用于聚集对每个块的分类。例如,在一些实施方式中,仅在输入图像的至少块子集满足k个最近邻测试时,分类请求管理器才可以确定应将输入图像分类为第二类型,在所述k个最近邻测试中,被分类为第二类型的块的邻居也被确定为被分类为第二类型。否则,输入图像可以被分类为第一类型。因此,在某些情况下,输入图像可以具有被单独地分类为第一类型的一个或多个块,而输入图像作为一个整体被分类为第二类型。类似地,在某些情况下,输入图像可以具有被单独地分类为第二类型的一个或多个块,而输入图像作为一个整体被分类为第一类型。
方法500包括提供包括输入图像的按块分割的输出(525)。在一些实施方式中,这可以由分类请求管理器执行。按块分割可以包括指示第二类型的每个块和第一类型的每个块的位置的任何形式的信息。因此,观察者可以确定输入图像的主要负责输入图像的整体分类的部分。
应当理解的是,上面描述的系统可以提供这些组件中的任何一个或每一个的多个组件并且这些组件可以设置在独立式机器或者在一些实施方式中在分布式系统中的多个机器上。上面描述的系统和方法可以被实施为使用编程技术和/或工程技术来生产软件、固件、硬件或其任意组合的方法、装置或制品。另外地,上面描述的系统和方法可以被提供为在一个或多个制品之上或之中实施的一个或多个计算机可读程序。如本文使用的术语“制品”意在包含代码或逻辑(所述代码或逻辑可以从一个或多个计算机可读设备访问且被嵌入在其中)、固件、可编程逻辑、存储器设备(例如,EEPROM、ROM、PROM、RAM、SRAM等)、硬件(例如,集成电路芯片、现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)、电子器件、计算机可读非易失性存储单元(例如,CD-ROM、软盘、硬盘驱动器等)。可以从文件服务器访问制品,所述文件服务器经由网络传输线、无线传输介质、在空间中传播的信号、无线电波、红外信号等提供对计算机可读程序的访问。制品可以是闪存卡或磁带。制品包括硬件逻辑以及被嵌入在由处理器执行的计算机可读介质中的软件或可编程代码。通常,计算机可读程序可以以任何编程语言(诸如LISP、PERL、C、C++、C#、PROLOG)或以任何字节代码语言(诸如JAVA)实施。软件程序可以作为目标代码存储在一个或多个制品之上或之中。
尽管已经描述了方法和系统的各种实施方案,但是这些实施方案是示例性的并且绝不限制所描述的方法或系统的范围。相关领域的技术人员可以在不脱离所描述的方法和系统的最广泛范围的情况下实现对所描述方法和系统的形式和细节的改变。因此,本文描述的方法和系统的范围不应由任何示例性实施方案所限制并且应当根据所附权利要求书及其等同物予以限定。

Claims (20)

1.一种训练图像分类器的方法,所述方法包括:
由包括一个或多个处理器的设备从相应的块中生成多个点,所述相应的块是从多个图像中生成的,所述多个图像中的每个图像被注释为第一类型或第二类型之一,所述多个图像具有被注释为第一类型的第一图像子集和被注释为第二类型的第二图像子集,所述多个点包括对应于从所述第一图像子集生成的第一点子集,和从所述第二图像子集生成的第二点子集;
由所述设备从所述多个点中选择被注释为用于聚类的第二类型的从所述第二图像子集生成的第二点子集;
由所述设备使用聚类算法将选自所述多个点的所述第二点子集的每个点聚类为两个聚类;
由所述设备标识所述两个聚类中的第一聚类,所述第一聚类具有比所述两个聚类中的第二聚类的点更靠近与被注释为所述第一类型的第一图像子集相对应的第一点子集的点;
由所述设备将所述第一聚类中的点分配给正类、将所述第二聚类中的点分配给负类、并且将与被注释为所述第一类型的第一图像子集相对应的第一点子集分配给锚类;
由所述设备生成多个三元组,每个三元组包括来自所述锚类的所述第一点子集中的一个、来自所述正类的点中的一个、和来自所述负类的点中的一个;
由所述设备计算所述多个三元组的损失函数;以及
由所述设备基于所述损失函数来调整图像分类器的参数。
2.如权利要求1所述的方法,其中,每个块由多维空间中的图像数据表示,所述方法进一步包括由所述设备通过使用所述图像分类器将针对所述块中的每个块的所述图像数据转换为低维空间来生成所述多个点。
3.如权利要求2所述的方法,其中,所述图像分类器被实施为卷积神经网络。
4.如权利要求1所述的方法,其中:
每个图像对应于相应的病理切片;
被注释为所述第一类型的图像被标识为良性的;以及
被注释为所述第二类型的图像被标识为肿瘤性的。
5.如权利要求1所述的方法,其中,每个图像对应于卫星照片。
6.如权利要求1所述的方法,进一步包括由所述设备接收与所述多个图像相对应的图像数据,其中,仅针对所述多个图像的子集执行从所述图像的相应块中生成所述多个点的步骤。
7.如权利要求1所述的方法,其中,计算所述多个三元组的所述损失函数进一步包括由所述设备计算针对所述多个三元组的三元组边际误差。
8.如权利要求1所述的方法,进一步包括:
由所述设备确定针对所述块中的每个块的模糊度度量或光水平度量中的至少一个;以及
在生成所述多个点之前,由所述设备丢弃块子集,所述丢弃是基于所述被丢弃的块子集中的每个块的所述模糊度度量或所述光水平度量中的至少一个。
9.如权利要求1所述的方法,进一步包括在生成所述多个点之前,由所述设备执行数据增强,所述数据增强包括对所述块中的至少一个块的旋转或颜色归一化中的至少一项。
10.如权利要求1所述的方法,其中,标识所述两个聚类中的、具有比所述两个聚类中的所述第二聚类的点更靠近与被注释为所述第一类型的图像相对应的点的所述第一聚类进一步包括:
由所述设备确定第一平均欧几里得距离小于第二平均欧几里得距离,所述第一平均欧几里得距离是所述第一聚类中的点与同被注释为所述第一类型的第一图像子集相对应的点之间的距离,所述第二平均欧几里得距离是在所述第二聚类中的点与同被注释为所述第一类型的第一图像子集相对应的点之间的距离。
11.如权利要求1所述的方法,进一步包括:
在调整所述图像分类器的所述参数之后,由所述设备接收未分类的输入图像;
由所述设备将所述输入图像划分为多个未分类的块;以及
由所述设备基于所述图像分类器确定针对每个未分类块的分类。
12.如权利要求11所述的方法,进一步包括由所述设备聚集对每个未分类块的分类,以确定针对所述输入图像的整体分类。
13.如权利要求12所述的方法,进一步包括:
由所述设备提供输出,所述输出包括所述输入图像的按块分割,对于所述输入图像的每个块,所述输入图像的所述按块分割指示对所述块的分类指示。
14.如权利要求1所述的方法,其中,从被注释为所述第一类型或所述第二类型之一的多个图像的相应块中生成所述多个点包括标识所述多个点中的第三点子集,并且其中,聚类、标识所述第一聚类、分配所述点、生成所述多个三元组、计算所述损失函数、和调整所述图像分类器的所述参数的所述多个步骤是基于所述第三点子集执行的,所述方法进一步包括:
响应于基于所述第三点子集调整所述图像分类器的所述参数,使用所述多个点中的第四点子集来重复聚类、标识所述第一聚类、分配所述点、生成所述多个三元组、计算所述损失函数、和调整所述图像分类器的所述参数的所述多个步骤。
15.一种用于对用于图像分类的模型进行训练的系统,所述系统包括具有一个或多个处理器的设备,所述设备被配置用于:
从相应的块中生成多个点,所述相应的块是从多个图像中生成的,所述多个图像中的每个图像被注释为第一类型或第二类型之一,所述多个图像具有被注释为第一类型的第一图像子集和被注释为第二类型的第二图像子集,所述多个点包括对应于从所述第一图像子集生成的第一点子集,和从所述第二图像子集生成的第二点子集;
由从所述多个点中选择被注释为用于聚类的第二类型的从所述第二图像子集生成的第二点子集;
使用聚类算法将选自所述多个点的所述第二点子集的每个点聚类为两个聚类;
标识所述两个聚类中的第一聚类,所述第一聚类比所述两个聚类中的第二聚类的点更靠近与被注释为所述第一类型的第一图像子集相对应的第一点子集的点;
将所述第一聚类中的点分配给正类、将所述第二聚类中的点分配给负类、并且将与被注释为所述第一类型的第一图像子集相对应的第一点子集分配给锚类;
生成多个三元组,每个三元组包括来自所述锚类的所述第一点子集中的一个、来自所述正类的点中的一个、和来自所述负类的点中的一个;
计算所述多个三元组的损失函数;以及
基于所述损失函数来调整图像分类器的参数。
16.如权利要求15所述的系统,其中,每个块由多维空间中的图像数据表示,所述设备进一步被配置用于通过使用所述图像分类器将针对所述块中的每个块的所述图像数据转换为低维空间来生成所述多个点。
17.如权利要求15所述的系统,其中,所述图像分类器被实施为卷积神经网络。
18.如权利要求15所述的系统,其中:
每个图像对应于相应的病理切片;
被注释为所述第一类型的图像被标识为良性的;以及
被注释为所述第二类型的图像被标识为肿瘤性的。
19.如权利要求15所述的系统,其中,所述设备进一步被配置用于:
接收与所述多个图像相对应的图像数据;以及
仅针对所述多个图像的子集,从所述图像的相应块中生成所述多个点。
20.如权利要求15所述的系统,其中,所述设备进一步被配置用于通过计算所述多个三元组的三元组边际误差来计算所述多个三元组的所述损失函数。
CN201880058747.9A 2017-07-14 2018-07-13 弱监督的图像分类器 Active CN111417961B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311868880.XA CN117975109A (zh) 2017-07-14 2018-07-13 弱监督的图像分类器

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762532795P 2017-07-14 2017-07-14
US62/532,795 2017-07-14
PCT/US2018/042178 WO2019014649A1 (en) 2017-07-14 2018-07-13 LOW SUPERVISED IMAGE CLASSIFIER

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202311868880.XA Division CN117975109A (zh) 2017-07-14 2018-07-13 弱监督的图像分类器

Publications (2)

Publication Number Publication Date
CN111417961A CN111417961A (zh) 2020-07-14
CN111417961B true CN111417961B (zh) 2024-01-12

Family

ID=65001825

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201880058747.9A Active CN111417961B (zh) 2017-07-14 2018-07-13 弱监督的图像分类器
CN202311868880.XA Pending CN117975109A (zh) 2017-07-14 2018-07-13 弱监督的图像分类器

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202311868880.XA Pending CN117975109A (zh) 2017-07-14 2018-07-13 弱监督的图像分类器

Country Status (7)

Country Link
US (1) US10685255B2 (zh)
EP (1) EP3652675A4 (zh)
KR (2) KR20230112744A (zh)
CN (2) CN111417961B (zh)
AU (1) AU2018301706B2 (zh)
CA (1) CA3074107A1 (zh)
WO (1) WO2019014649A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3493120A1 (en) * 2017-12-01 2019-06-05 Koninklijke Philips N.V. Training a neural network model
US10789696B2 (en) * 2018-05-24 2020-09-29 Tfi Digital Media Limited Patch selection for neural network based no-reference image quality assessment
US10635979B2 (en) * 2018-07-20 2020-04-28 Google Llc Category learning neural networks
EP3660731B1 (en) * 2018-11-28 2024-05-22 Tata Consultancy Services Limited Digitization of industrial inspection sheets by inferring visual relations
US11689507B2 (en) * 2019-11-26 2023-06-27 Adobe Inc. Privacy preserving document analysis
US11482335B2 (en) * 2019-12-18 2022-10-25 Pathomiq Inc. Systems and methods for predicting patient outcome to cancer therapy
US11687778B2 (en) 2020-01-06 2023-06-27 The Research Foundation For The State University Of New York Fakecatcher: detection of synthetic portrait videos using biological signals
US11694810B2 (en) * 2020-02-12 2023-07-04 MDI Health Technologies Ltd Systems and methods for computing risk of predicted medical outcomes in patients treated with multiple medications
JP2021168436A (ja) * 2020-04-09 2021-10-21 キヤノン株式会社 撮像装置及びその制御方法、プログラム、記憶媒体
CN111563897B (zh) * 2020-04-13 2024-01-05 北京理工大学 基于弱监督学习的乳腺核磁影像肿瘤分割的方法及装置
CN111723229B (zh) * 2020-06-24 2023-05-30 重庆紫光华山智安科技有限公司 数据比对方法、装置、计算机可读存储介质和电子设备
US11603119B2 (en) * 2020-10-12 2023-03-14 Great Wall Motor Company Limited Method and apparatus for out-of-distribution detection
TWI821715B (zh) * 2021-07-20 2023-11-11 和碩聯合科技股份有限公司 生成器網路模型的訓練方法及其執行的電子裝置
US11922702B2 (en) * 2021-08-19 2024-03-05 Ford Global Technologies, Llc Enhanced object detection
CN114092489B (zh) * 2021-11-02 2023-08-29 清华大学 多孔介质渗流通道提取、模型训练方法、装置及设备
CN113743543B (zh) * 2021-11-05 2022-02-08 武汉大学 一种图像分类训练方法、装置、服务器及存储介质
CN115713501B (zh) * 2022-11-10 2023-06-16 深圳市探鸽智能科技有限公司 适用于摄像头模糊画面的检测处理方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8611617B1 (en) * 2010-08-09 2013-12-17 Google Inc. Similar image selection
CN103886315A (zh) * 2012-12-21 2014-06-25 本田技研工业株式会社 应用于行人姿势分类的3d人体模型
CN104751198A (zh) * 2013-12-27 2015-07-01 华为技术有限公司 图像中的目标物的识别方法及装置
CN106682233A (zh) * 2017-01-16 2017-05-17 华侨大学 一种基于深度学习与局部特征融合的哈希图像检索方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BRPI0602471A (pt) * 2006-05-15 2008-03-25 Marcos Thompson sistema e método para realização de busca em redes ativada por sinais digitais e/ou analógicos
US9495591B2 (en) * 2012-04-13 2016-11-15 Qualcomm Incorporated Object recognition using multi-modal matching scheme
US9836641B2 (en) * 2014-12-17 2017-12-05 Google Inc. Generating numeric embeddings of images
US10839510B2 (en) * 2015-08-19 2020-11-17 Colorado Seminary, Which Owns And Operates The University Of Denver Methods and systems for human tissue analysis using shearlet transforms

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8611617B1 (en) * 2010-08-09 2013-12-17 Google Inc. Similar image selection
CN103886315A (zh) * 2012-12-21 2014-06-25 本田技研工业株式会社 应用于行人姿势分类的3d人体模型
CN104751198A (zh) * 2013-12-27 2015-07-01 华为技术有限公司 图像中的目标物的识别方法及装置
CN106682233A (zh) * 2017-01-16 2017-05-17 华侨大学 一种基于深度学习与局部特征融合的哈希图像检索方法

Also Published As

Publication number Publication date
CA3074107A1 (en) 2019-01-17
CN111417961A (zh) 2020-07-14
CN117975109A (zh) 2024-05-03
KR102557985B1 (ko) 2023-07-21
KR20200040240A (ko) 2020-04-17
EP3652675A4 (en) 2021-03-24
KR20230112744A (ko) 2023-07-27
US10685255B2 (en) 2020-06-16
AU2018301706B2 (en) 2023-01-12
AU2018301706A1 (en) 2020-02-27
WO2019014649A1 (en) 2019-01-17
EP3652675A1 (en) 2020-05-20
US20190286936A1 (en) 2019-09-19

Similar Documents

Publication Publication Date Title
CN111417961B (zh) 弱监督的图像分类器
US20230222207A1 (en) Systems and methods for determining a likelihood of an existence of malware on an executable
US20190378016A1 (en) Distributed computing architecture for large model deep learning
WO2019046774A1 (en) SYSTEMS AND METHODS FOR GENERATING 3D MEDICAL IMAGES BY SCANNING A WHOLE TISSUE BLOCK
US20230410460A1 (en) System, method and computer-accessible medium for quantification of blur in digital images
US10528800B2 (en) Automated facial recognition detection
US11366683B2 (en) Images deployment system across multiple architectures
US9684705B1 (en) Systems and methods for clustering data
JP2023542469A (ja) キーポイント検出に基づくコンピュータによる自動化された相互作用活動認識
US11216659B2 (en) Converting table data into component parts
US9569138B2 (en) Copying virtual machine flat tires from a source to target computing device based on matching disk layout
US10909136B1 (en) Systems and methods for automatically linking data analytics to storage
US20220107876A1 (en) Systems and methods for assessing operational states of a computer environment
US20220107965A1 (en) Systems and methods for asset fingerprinting
US11132556B2 (en) Detecting application switches in video frames using min and max pooling
US11264119B2 (en) Generating configurable text strings based on raw genomic data
US20230118072A1 (en) Content based on-device image adjustment
WO2023055859A1 (en) Systems and methods for anonymization of image data
WO2023122198A1 (en) Systems and methods for data abstraction for transmission cross-reference to related applications

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant