CN110892414A - 用于基于分类器的卷积神经网络的视觉分析系统 - Google Patents

用于基于分类器的卷积神经网络的视觉分析系统 Download PDF

Info

Publication number
CN110892414A
CN110892414A CN201880049725.6A CN201880049725A CN110892414A CN 110892414 A CN110892414 A CN 110892414A CN 201880049725 A CN201880049725 A CN 201880049725A CN 110892414 A CN110892414 A CN 110892414A
Authority
CN
China
Prior art keywords
classes
cells
image
response
sample
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.)
Granted
Application number
CN201880049725.6A
Other languages
English (en)
Other versions
CN110892414B (zh
Inventor
B.阿尔萨拉克
A.尧拉布奥
叶茂
刘小明
任骝
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of CN110892414A publication Critical patent/CN110892414A/zh
Application granted granted Critical
Publication of CN110892414B publication Critical patent/CN110892414B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F16/5838Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/904Browsing; Visualisation therefor
    • 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/217Validation; Performance evaluation; Active pattern learning techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24133Distances to prototypes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/2431Multiple classes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • 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/045Combinations of 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/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/046Forward inferencing; Production systems
    • 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/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • 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
    • 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/776Validation; Performance evaluation
    • 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/048Activation functions

Abstract

公开了视觉分析方法和系统,用于可视化具有至少一个卷积神经网络层的图像分类模型的操作。图像分类模型将样本图像分类为预定义集合的可能类之一。视觉分析方法基于相似性层级确定预定义集合的可能类的统一排序,使得彼此相似的类以统一排序聚类在一起。视觉分析方法显示各种图形描绘,包括类层级查看器、混淆矩阵和响应图。在每种情况下,图形描绘的元素根据统一排序而被布置。通过使用所述方法,用户能够更好地理解模型的训练过程,诊断模型的不同特征检测器的分离能力,并改进模型的架构。

Description

用于基于分类器的卷积神经网络的视觉分析系统
本申请要求于2017年7月27日提交的序列号为62/537,613的美国临时申请的优先权的权益,所述美国临时申请的公开内容通过引用在其整体上并入本文。
技术领域
本文档中公开的设备和方法涉及卷积神经网络,并且更具体地,涉及用于卷积神经网络的视觉分析。
背景技术
除非本文另有指示,否则本节中描述的材料不是本申请中权利要求的现有技术,并且不由于包括在本节中而被承认为现有技术。
对象识别是计算机视觉中的基本问题,其牵涉将图像分类到预定义数量的类中。卷积神经网络(CNN)在该问题上已经实现了现有技术水平的结果,这归功于大的且经标注的数据集和强大的计算基础设施的可用性。CNN从训练图像自动提取有区别的分类特征,并组合地使用它们来识别复杂对象。这使得CNN在大规模数据集(诸如图像网)上显著地优于传统的计算机视觉方法,因为后者通常依赖于启发式特征。
为了使CNN适用于关键领域,评估它们学习的特征的可靠性并理解分类误差背后的可能原因是重要的。已经提出了多种技术来可视化图像空间中的这些特征。然而,对分类误差本身的可视化并相应地细化CNN给予了很少关注。
发明内容
公开了一种用于可视化图像分类模型的操作的方法,所述图像分类模型具有包括至少一个卷积层的多个神经网络层。所述方法包括:利用处理器接收多个实际类标注,每个实际类标注与多个样本图像中的相应样本图像相关联,每个实际类标注对应于预定义的多个类之一;利用处理器接收图像分类模型的多个输出,每个输出由图像分类模型响应于多个样本图像中的相应样本图像而提供;利用处理器基于预定义的多个类中类的相似性层级来确定预定义的多个类的依次排序,相似性层级定义在预定义的多个类中的多个相似类组;以及利用显示设备显示多个输出的图形描绘,图形描绘包括对多个输出进行编码的图形元素,所述图形元素在视觉上根据预定义的多个类的所确定依次排序而被布置。
公开了一种用于可视化图像分类模型的操作的视觉分析系统,所述图像分类模型具有包括至少一个卷积层的多个神经网络层。所述视觉分析系统包括:显示设备;存储器,被配置为存储多个样本图像和多个实际类标注,每个实际类标注与多个样本图像中的相应样本图像相关联,每个实际类标注对应于预定义的多个类之一;以及操作性地连接到显示设备和存储器的处理器。处理器被配置为:从存储器接收多个实际类标注;接收图像分类模型的多个输出,每个输出由图像分类模型响应于多个样本图像中的相应样本图像而提供;基于预定义的多个类中类的相似性层级来确定预定义的多个类的依次排序,相似性层级定义在预定义的多个类中的多个相似类组;以及操作显示设备来显示多个输出的图形描绘,图形描绘包括对多个输出进行编码的图形元素,所述图形元素在视觉上根据预定义的多个类的所确定依次排序而被布置。
附图说明
结合附图,在以下描述中解释了所述方法和系统的前述方面和其他特征。
图1示出了视觉分析系统的示例性实施例的框图。
图2示出了具有至少一个卷积神经网络(CNN)的示例性图像分类模型。
图3示出了视觉分析程序的示例性主用户接口的概览。
图4示出了用于可视化具有至少一个卷积层的图像分类模型的操作的方法的逻辑流程图。
图5示出了主用户接口的类层级查看器的详细视图。
图6示出了主用户接口的混淆矩阵的详细视图。
图7示出了主用户接口的响应图的详细视图。
图8示出了图像分类模型的所选神经网络层中神经元的线性化响应轮廓的形成。
图9示出了具有类级相关矩阵、响应图和样本查看器的辅助视图。
图10示出了主用户接口的样本查看器的详细视图。
图11示出了针对示例性神经元的示例性显著性图,所述示例性神经元对具有斑点的对象的样本图像进行响应。
图12示出了对图2的图像分类模型的示例性改进。
具体实施方式
出于促进对本公开原理的理解的目的,现在将参考附图中图示并在以下书面说明书中描述的实施例。应理解,没有因此对本公开的范围进行限制的意图。应进一步理解,如本公开所属领域的技术人员通常将想到的,本公开包括对所图示的实施例的任何更改和修改并且包括本公开原理的另外应用。
视觉分析系统
图1示出了视觉分析系统10的示例性实施例的框图,视觉分析系统10用于可视化基于卷积神经网络(CNN)的图像分类模型的性能、操作和输出。视觉分析系统10典型地被提供在以用于计算设备的典型方式配置的外壳、机柜等12中。在图示的实施例中,视觉分析系统10包括处理器14、存储器16、显示器18、用户接口20和网络通信模块22。然而,将领会,视觉分析系统10的图示实施例仅仅是视觉分析系统10的一个示例性实施例,并且仅仅代表视觉分析系统、个人计算机、膝上型计算机、服务器或以本文阐述的方式操作的任何其他数据处理系统的各种方式或配置中的任何一种。
处理器14被配置为执行指令来操作视觉分析系统10,以使能实现如本文描述的特征、功能性、特性等等。为此,处理器14可操作地连接到存储器16、显示器18、用户接口20和网络通信模块22。处理器14一般包括一个或多个处理器,所述一个或多个处理器可以并行或以其他方式彼此协同操作。本领域普通技术人员将认识到,“处理器”包括处理数据、信号或其他信息的任何硬件系统、硬件机构或硬件组件。因此,处理器14可以包括具有中央处理单元、多个处理单元或用于实现特定功能性的专用电路的系统。
存储器16可以具有能够存储处理器14可访问的信息的任何设备类型,诸如存储器卡、ROM、RAM、可写存储器、只读存储器、硬驱动、盘、闪速存储器或如本领域普通技术人员将认识到的用作数据存储设备的各种其他计算机可读介质中的任何一种。存储器16被配置为存储供处理器14执行的程序指令24、以及数据26。
程序指令24至少包括视觉分析程序28。在一个实施例中,程序指令24进一步包括基于卷积神经网络(CNN)的图像分类模型30。在至少一个实施例中,数据26包括具有多个图像的图像数据集32,每个图像具有来自定义数量(例如,1000)的可能类的相应类标注。图像数据集32可由图像分类模型30分析,以预测每个相应图像的类。在至少一个实施例中,数据26包括图像分类模型30相对于图像数据集32的分类输出34,诸如预测类标注、不同卷积层的个体神经元的响应等。视觉分析程序28被配置为使得用户能够可视化图像分类模型30的性能、操作和输出。
视觉分析系统10的网络通信模块22提供允许使用各种手段与各种设备中任何一个通信的接口。特别地,网络通信模块22可以包括局域网端口,所述局域网端口允许与容纳在相同或附近设施中的各种本地计算机中任何一个通信。在一些实施例中,网络通信模块22进一步包括广域网端口,所述广域网端口允许通过因特网与远程计算机通信。可替换地,视觉分析系统10经由局域网的单独调制解调器和/或路由器与因特网通信。在一个实施例中,网络通信模块配备有Wi-Fi收发器或其他无线通信设备。因此,将领会,与视觉分析系统10的通信可以经由有线通信或经由无线通信而发生。通信可以使用各种已知的通信协议中的任何一种来完成。
视觉分析系统10可以由用户本地或远程操作。为了促进本地操作,视觉分析系统10可以包括显示器18和用户接口20。经由用户接口20,用户可以访问包括视觉分析程序28的指令,并且可以从存储器16收集数据和将数据存储到存储器16。在至少一个实施例中,显示器18可以包括LCD显示屏等。在至少一个实施例中,如本领域普通技术人员将认识到的,用户接口20可以合适地包括鼠标或其他定点设备、键盘或其他小键盘、扬声器和麦克风。将领会,显示器18和用户接口20可以集成在外壳12上或外壳12内,或者可以是经由布置在外壳12上的连接器(未示出)可操作地连接的外部设备。可替换地,在一些实施例中,用户可以远离另一计算设备地操作视觉分析系统10,所述另一计算设备经由网络通信模块22与其通信,并且具有类似的显示器和用户接口。
视觉分析程序
下面描述了用于操作视觉分析系统10的方法。特别地,描述了操作处理器14和/或显示器18以提供视觉分析程序的方法。在所述方法的描述中,方法正在执行某个任务或功能的陈述指代控制器或通用处理器(例如,处理器14)执行存储在非暂时性计算机可读存储介质(例如,存储器16)中的编程指令(例如,视觉分析程序28和/或图像分类模型30),以操控数据或操作视觉分析系统10中的一个或多个组件来执行所述任务或功能,所述非暂时性计算机可读存储介质操作性地连接到控制器或处理器。将领会,所述方法的一些或所有操作也可以由远程服务器或云处理基础设施来执行。附加地,所述方法的步骤可以以任何可行的时间顺序来执行,而不管图中示出的顺序或描述步骤的顺序。
附加地,描述了各种图形元素和视觉接口。对图形元素的特定特征或布置的描述指代处理器12和/或显示器18以所描述的方式显示所述图形元素的操作。附加地,还描述了各种用户交互,诸如选择或点击各种选项、按钮或其他图形元素,其指代以任何常规方式对用户接口20的一个或多个组件(诸如鼠标或键盘)的使用以使能实现与图形元素的用户交互,并且指代处理器12从用户接口20接收指示所述用户交互的信号并响应于此执行所描述的操作。
如上面讨论的,视觉分析系统10包括存储在存储器16中的视觉分析程序28。视觉分析程序28被配置为使得视觉分析系统10能够允许用户可视化图像分类模型30的性能、操作、训练、中间输出、最终输出等。如下面将进一步详细讨论的,视觉分析程序28通过使得用户能够研究定义的或隐含的类层级,并分析其对在图像分类模型30的卷积神经网络中每一层处开发的类混淆图案和特征检测器的影响,来改进常规的视觉分析方法。
图2示出了具有至少一个卷积神经网络(CNN)的示例性图像分类模型30。CNN是一种特殊类型的前馈神经网络,其包含多个卷积层。卷积层充当可学习过滤器,其在与2D输入卷积时对某些特征进行响应,从而产生经过滤的2D输出。在图示的实施例中,图像分类模型30被配置为接收二维(2D)输入图像100,诸如来自图像数据集32的图像。第一卷积层102被应用于输入图像100,并且后续的卷积层104、106、108和110被应用于相应的先前层的输出。在第一、第二和第五卷积层102、104和110之后应用最大池化,以减小相应输出的维数。然而,第三和第四卷积层106和108在没有任何最大池化的情况下连接。第五卷积层110的输出被提供给完全连接层112。修正线性单元(ReLU)非线性激活被应用于每个卷积层102、104、106、108和110以及每个完全连接层112的输出。最后的完全连接层的输出被馈送到1000路软性最大输出层114,软性最大输出层114在1000个不同的可能类标注之上产生概率分布。在训练期间,利用1000个不同类标注之一标注的多个图像(诸如图像数据集32的那些图像)被提供给图像分类模型30。通过最小化损失函数116,来在一个或多个时期内学习和/或优化卷积过滤器的核值。将领会,图示的图像分类模型30仅仅是示例性的,并且视觉分析程序28可与任何基于CNN的图像分类器一起操作,所述基于CNN的图像分类器具有包括至少一个卷积层的多个神经网络层。
在训练图像分类模型30之后,卷积层102、104、106、108和110成为相对于输入图像100的特征检测器。适当的可视化技术可以从这些经学习的过滤器响应的输入图像揭示特征。
当检查图像分类模型30时,视觉分析程序28有利地集成分类数据(即,图像数据集32和分类输出34)的三个方面:输入样本、内部表示和分类结果。视觉分析程序28使得能够对分类数据的这三个方面进行可伸缩的检查,以便:标识分类误差的各种源;利用类的分层级结构来改进模型架构、训练过程和准确性;以及分析模型对数据变化的敏感性,并且管理改进其鲁棒性的平衡训练数据。
作为分类的目标,类信息是沿着分类管线的最显著的信息。它既存在于标注的输入中又存在于输出中,并且它主要地确定由图像分类模型30的卷积层学习的特征。类具有变化程度的可区别性。一些类具有独特的特征(诸如草莓和斑马),而其他类可能共享相似的特征并因此更难以彼此区分。数据中的这类相似性结构是可以潜在地导致改进分类器的非常有价值的信息。
随着类数量的增长,它们之间的相似性结构变得复杂。关于这些相似性结构的关键观察是,它们在本质上通常是分层级的,并且层级的相同分支内的类与其他类相比越来越彼此更加相似。视觉分析程序28使得用户能够容易地揭示和分析各类间的分层级相似性结构,并分析它如何影响分类结果和卷积层学习识别的特定图像特征两者。
图3示出了视觉分析程序28的示例性主用户接口200的概览。主用户接口200由示出数据不同方面的四个主要图形组件组成。首先,主用户接口200包括类层级查看器210,类层级查看器210被配置为图示可以分配给图像数据集32的图像的多个可能类标注的层级。主用户接口200进一步包括提供混淆矩阵230(如所示出的)或响应图235(仅在图7中示出)的主窗口220。在主用户接口200中提供选项240,选项240使得用户能够在主窗口220中显示混淆矩阵230(如所示出的)和显示响应图235之间选择性地切换。混淆矩阵30将图像数据集32中每个样本图像的实际类标注与预测类标注进行比较(即模型30的最终输出)。相比之下,图7中示出的响应图235示出了图像分类模型30的所选神经网络层的不同神经元对来自图像数据集32的每个图像类的平均响应(即模型30的中间输出)。类层级查看器210、混淆矩阵230和响应图235每个示出了在类级处聚合的输出,并且根据由类层级规定的统一类排序而在视觉上布置所述输出。最后,主用户接口200进一步包括样本查看器250,样本查看器250示出了来自图像数据集32的对应于类层级查看器210、混淆矩阵230或响应图235中的用户选择的示例性样本图像。在一个实施例中,主用户接口200进一步包括设置菜单260,设置菜单260具有用于调整类层级查看器210、混淆矩阵230、响应图或样本查看器250的特征的多个选项。图示的选项仅仅是示例性的,并且本文讨论的任何设置、按钮、选项和参数可以是经由设置菜单260中的图形元素可调整的。主用户接口200的四个主要图形组件中的每一个对上面讨论的高级分析任务有不同程度的贡献,包括:标识分类误差的各种源;利用类的分层级结构来改进模型架构、训练过程和准确性;以及分析模型对数据变化的敏感性,并且管理改进其鲁棒性的平衡训练数据。
图4示出了用于可视化图像分类模型的操作的方法300的逻辑流程图,所述图像分类模型具有包括至少一个卷积层的多个神经网络层。方法300通过有利地提供图像分类模型30的输出的图形描绘,来改进视觉分析系统10的运作、并且更具体地视觉分析系统10的处理器14的运作,在图像分类模型30中,根据类标注的相似性来在视觉上布置表示输出的图形元素。以该方式,针对相似图像类的输出数据被聚类在一起,这使得更容易标识分类误差的源。
方法300以接收多个实际类标注的步骤开始,每个实际类标注与多个样本图像中的相应样本图像相关联,每个实际类标注对应于预定义的多个类之一(块310)。特别地,关于本文详细描述的实施例,视觉分析系统10的处理器14被配置为执行视觉分析程序28的程序指令,以从存储器16接收和/或读取与来自图像数据集32的对应多个样本图像相关联的多个实际类标注。在至少一个实施例中,每个类标注与来自图像数据集32的对应图像相关联地存储在存储器16中。在至少一个实施例中,每个类标注是可能类标注的预定义的且封闭的集合(例如,1000个可能类)中的一个类标注。在一些情况下,处理器14从图像数据集32接收针对所有图像的类标注。在其他情况下,处理器14仅从图像数据集32接收针对图像的特定所选子集的类标注。针对其接收类标注的多个图像在本文可以被称为来自图像数据集32的样本图像,对于所述样本图像,将由视觉分析程序28处理并图形地描绘数据。
方法300以接收图像分类模型的多个输出的步骤继续,每个输出由图像分类模型响应于多个样本图像中的相应样本图像而提供(块320)。特别地,关于本文详细描述的实施例,处理器14被配置为执行视觉分析程序28的程序指令,以响应于来自图像数据集32的针对其接收类标注的每个样本图像,从存储器16接收和/或读取来自图像分类模型30的至少一个神经网络层的多个输出。在至少一个实施例中,对于每个样本图像,所接收的输出包括图像分类模型的输出层114的最终输出,所述最终输出包括跨每个可能类标注的概率分布。在至少一个实施例中,对于每个样本图像,所接收的输出包括针对相应图像的预测类标注,所述预测类标注对应于根据输出层114的最终输出的最可能的类标注。
在至少一个实施例中,对于每个样本图像,所接收的输出包括图像分类模型30的某个中间层的中间输出。在至少一个实施例中,对于每个样本图像,所接收的输出包括一个或多个所选卷积层102、104、106、108或110的一个或多个神经元的响应和/或激活。在至少一个实施例中,对于每个样本图像,所接收的输出包括一个或多个特定卷积层102、104、106、108或110的个体过滤器和/或核的神经元的响应和/或激活。在至少一个实施例中,对于每个样本图像,所接收的输出包括一个或多个特定神经网络层102、104、106、108、110或112的个体神经元的响应和/或激活。
在至少一个实施例中,处理器14被配置为执行图像分类模型30的指令,以生成相对于每个样本图像的上述输出。在一个实施例中,处理器14被配置为将输出(即,分类输出34)存储在存储器16中,以供视觉分析程序28之后使用。然而,在一些实施例中,上述输出可以由某个外部计算设备生成,并且处理器14被配置为操作网络通信模块22以从外部计算设备接收输出。
方法300以如下步骤继续:基于预定义的多个类中类的相似性层级来确定预定义的多个类的依次排序,相似性层级定义在预定义的多个类中的多个相似类组(块330)。特别地,关于本文详细描述的实施例,处理器14被配置为执行视觉分析程序28的程序指令,以确定预定义集合的可能类标注的依次排序。处理器14被配置为基于可能类标注的相似性层级来确定可能类标注的依次排序。如本文所使用的“相似性层级”指代一个或多个相似类组和/或分配给相似类标注组的组标注。例如,组标注“蜂”可以被分配给包括类标注“蜜蜂”和“大黄蜂”的类标注组。附加地,相似性层级可以包括相似组的组和/或分配给相似组标注组的组标注。例如,组标注“脊椎动物”可以被分配给包括组标注“鱼类”、“爬行动物”、“鸟类”和“哺乳动物”的组标注组。在一些实施例中,预定义的类层级可以可用于图像数据集32和可能类标注的集合。然而,在一些实施例中,处理器14被配置为使用系列化算法来确定层级。在一些实施例中,如下面进一步讨论的,用户可以使用主用户接口200交互式地定义层级。
基于相似性层级,处理器14被配置为确定可能类标注的依次排序。在至少一个实施例中,处理器14被配置为包括与彼此相邻和/或以依次排序聚类在一起的共同组标注相关联的类标注。在至少一个实施例中,处理器14被配置为包括与彼此相邻和/或以依次排序聚类在一起的共同组标注组相关联的类标注组。例如,考虑可能类标注的集合,其包括“鹰”、“猫”、“青蛙”、“狗”、“鳄鱼”和“蜂鸟”。相似性层级的组标注定义“猫”和“狗”是“哺乳动物”,“青蛙”和“鳄鱼”是“爬行动物”,“鹰”和“蜂鸟”是“鸟类”,并且“哺乳动物”、“爬行动物”和“鸟类”是“动物”。给定可能类标注的示例性集合和示例性相似性层级,处理器14可以将依次排序确定为:(1)“鹰”、(2)“蜂鸟”、(3)“猫”、(4)“狗”、(5)“鳄鱼”和(6)“青蛙”。如可以看到的,每组“哺乳动物”、“爬行动物”和“鸟类”的类聚类在一起,并且更宽的组“动物”中的所有类聚类在一起。
方法300以显示多个输出的图形描绘的步骤继续,图形描绘包括表示多个输出的图形元素,所述图形元素在视觉上根据预定义的多个类的所确定依次排序而被布置(块340)。特别地,关于本文详细描述的实施例,处理器14被配置为执行视觉分析程序28的程序指令,以操作显示器18显示相对于样本图像接收的多个输出的图形描绘。图形描绘包括表示输出的多个图形元素。处理器14被配置为根据图形描绘中类标注的所确定依次排序来布置输出和/或表示输出的图形元素。至少上面引入的类层级查看器210、混淆矩阵230和响应图235是这类图形描绘的示例性实施例。在每种情况下,输出和/或表示输出的图形元素在类级处聚合,并根据所确定依次排序被布置。下面使用示例性图像数据集更详细地描述类层级查看器210、混淆矩阵230和响应图235,每个图像利用一千个可能类标注之一来标注。
类层级查看器
图5示出了主用户接口200的类层级查看器210的详细视图。类层级查看器210与主用户接口200的主窗口220相邻地显示(如所示出的在左边),并指示沿着混淆矩阵230和/或响应图235的垂直维度的类排序。在所示出的实施例中,类层级查看器210包括水平冰柱绘图。类层级查看器210包括多个矩形402,每个矩形表示一组类和/或一组类组。矩形402根据所确定依次排序而被垂直地组织,并且根据相似性层级而被水平地组织。特别地,矩形402布置在多个垂直列中,每个列包括至少一个矩形402。如所示出的,最左的列包括指示最宽的一个组或多个组的一个或多个矩形402,所述最宽的一个组或多个组涵盖所有可能类(例如,如所示出的,表示“物理实体”组的单个矩形)。从左向右移动,列包括越来越多的矩形402,其表示越来越更加窄定义的类组和/或类组的组(例如,如所示出的,表示“物质”和“对象”组的矩形在从左起的第二列中)。矩形402具有与落入组内的类的总数成比例的垂直高度。具有至少预定垂直高度的矩形402利用组名404标注。
在至少一个实施例中,矩形402被画阴影和/或着色,以对关于对应组的组级信息进行编码,所述组级信息是基于图像分类模型30针对来自图像数据集32的每个样本图像的所接收输出来确定的。在至少一个实施例中,组级信息包括组级分类性能量度。特别地,在所接收的输出包括针对来自图像数据集32的每个样本图像的预测类标注的情况下,处理器14被配置为计算针对每个相应组和/或矩形402的组级分类性能量度。如果图像的实际类和预测类两者在组中,则该图像相对于组被正确分类。这使得能够定义以下可能的量度:(1)组级精度,其测量被分类在一组中的样本中有多少实际上属于该组,(2)组级召回,其测量实际上属于一组的样本中有多少被分类到该组中,以及(3)组级F-度量,其根据以下等式基于组级精度和召回:
Figure DEST_PATH_IMAGE001
在一个实施例中,层级中父矩形402的子矩形402可以通过用户选择的准则(诸如大小或性能量度)来分拣。在一个实施例中,仅具有一个孩子的矩形402被收缩以压缩层级并消除以其他方式由显著的线性分支引起的视觉伪像。在一个实施例中,将鼠标悬停在矩形之上示出关于相应组的信息406,信息406包括其组标注和组级分类性能量度(例如,“鸟类(94%)”)。在一个实施例中,点击矩形402选择对应的类并更新其他图形描绘以聚焦于这些类,所述图形描绘诸如有混淆矩阵230、响应图235和样本查看器250。
混淆矩阵
图6示出了主用户接口200的混淆矩阵230的详细视图。混淆矩阵230有利地提供样本图像的分类和误分类的详细可视化,所述详细可视化使得用户能够容易地标识某些类之间的频繁混淆。当配备有适当的排序、视觉编码和用户交互时,混淆矩阵230进一步揭示关于误差结构和分类器行为的信息。
混淆矩阵230包括布置在二维(2D)网格中的多个单元。每个单元408对应于特定实际类标注和特定预测类标注的组合。每个单元408包括图形元素(例如,单元的着色或画阴影和/或单元位置处的点或圆点),所述图形元素相对于实际类标注和预测类标注的特定组合来编码模型的输出。在至少一个实施例中,单元408的着色或画阴影对应于已经由图像分类模型30分类的多个图像。在所示出的实施例中,二维网格的垂直维度和/或行指示(一个或多个)样本图像的实际类,并且二维网格的水平维度和/或行指示(一个或多个)样本图像的预测类。在至少一个实施例中,预测类对应于如图像分类模型30的输出层114的输出所指示的最可能的类标注。
垂直维度上的实际类对应预定义的可能类的集合(例如,1000个可能类),并且根据依次排序沿着垂直维度排序,如上面所讨论的,所述依次排序是基于相似性层级而确定的。相似地,预测类也对应于预定义的可能类的集合(例如,1000个可能类),并且也根据所确定依次排序沿着水平维度排序。在所图示的实施例中,实际类从顶向下被排序为1至1000,并且预测类从左到右被排序为1至1000。
正确的分类由沿着混淆矩阵对角线的单元编码。附加地,归因于类基于相似性层级的依次排序,相似的类在混淆矩阵中彼此聚类。作为结果,可以观察到对应于误分类的大部分单元408发生在对角线附近。排序将各类间的相似性组揭示为单元簇,单元簇在本文被称为块图案410。典型地,大部分混淆发生在沿着对角线的多个块410内,多个块410中的每个块对应于一组相似的类。
附加于适当的类排序,单元的视觉编码可以在揭示块图案410及其离群部方面发挥主要作用。特别地,在至少一个实施例中,处理器14被配置为对于混淆矩阵230上的每个单元,确定每个单元的值为分类或误分类发生的次数。处理器14被配置为使用依次色标来显示混淆矩阵230的单元,所述依次色标将值1映射到浅阴影,并且将最大值映射到深阴影。在一个实施例中,具有值0的单元保持白色,这促进标识和选择表示实际混淆的非零单元。
在一个实施例中,默认地,处理器14被配置为从视觉映射排除矩阵对角线,并将那些单元着色为白色,这是因为正确的分类通常占矩阵中值总和的大部分。这消除以其他方式的干扰细粒度的块图案的显著对角线。使用类层级或在示例查看器中可以更适当地显示每类的准确性。
在预定义的类层级可用的情况下,处理器14被配置为在类层级查看器210中显示类层级,并相应地对矩阵排序。然而,如果这类层级不可用或未能揭示块图案410,则可以使用视觉分析程序28来定义或重新定义层级。特别地,用户可以通过交互式地应用一个或多个系列化算法来探索这类图案是否存在。在至少一个实施例中,处理器14被配置为应用至少一个系列化算法来揭示混淆矩阵中的块图案,并相应地对类层级查看器210和混淆矩阵230排序。在至少一个实施例中,主用户接口200的设置菜单260包括用于选择不同系列化算法(例如谱聚类)的选项,使得用户可以查看混淆矩阵230的不同排序。
在一些实施例中,用户可以点击并拖动类层级查看器210的矩形402来对混淆矩阵重新排序。在一个实施例中,层级可以递归地细化。特别地,用户可以选择类层级查看器210的高级矩形402(即,对应于更宽的组的矩形),并点击设置菜单260中的选项以仅将系列化算法应用于所选组内的类。在每个步骤处,混淆矩阵230被更新,以允许检查所计算的子块的合理性并引导算法选择。如果合理,则层级查看器210被更新以反映所构造的分层级结构。
在建立类层级和对应的块图案410之后,基于非对角矩阵单元在矩阵中的位置来在它们之间进行区分是可能的。特别地,密集块图案410内的单元表示高度相似类之间的混淆。相比之下,不属于块410的单元表示似乎不太相关的类之间的意外混淆,并且因此对进一步探索尤其感兴趣。我们称这些单元块为离群部。
在一个实施例中,处理器14被配置为显示块图案410周围的框。在一个实施例中,处理器14被配置为使用分区算法自动标识绘图中定义数量的块图案410。在一个实施例中,主用户接口200的设置菜单260包括用于指定要由分区算法标识的块数量b的选项。处理器14选择最大化其块410的单元值密度的分区。在过滤期间保留所显示的框,这帮助跟踪块成员身份。在一个实施例中,处理器14基于块410将混淆矩阵230划分成
Figure 980282DEST_PATH_IMAGE002
个可点击区,这易于对块离群部的标识和选择。
视觉分析程序28使得能够与混淆矩阵进行各种交互。这些交互对于标识分类误差的各种源——尤其是与数据质量问题相关的那些——而言是必要的。
在一个实施例中,存在经由混淆矩阵230选择样本图像的两种方式。第一,用户可以使用鼠标指针在某些单元408周围画框。第二,在一个实施例中,用户可以选择类层级查看器210的矩形402来选择特定类组。响应于该选择,处理器14被配置为显示叠加在混淆矩阵230上的垂直和水平带412,垂直和水平带412突出混淆矩阵230的对应于所选类组的单元408。带412突出相对于所选类组的假肯定(FP)和假否定(FN)。这些带412的交点是属于所选组的类之间的混淆,并因此表示组级真肯定(TP)。在一个实施例中,带412内的单元408可以被不同地画阴影或着色。在一些实施例中,使用某种其他方法来突出对应的单元408。如下面进一步详细讨论的,样本查看器250被更新以示出所选样本,并允许个体地探索组级TP、FP和FN。
在一个实施例中,设置菜单260包括选项,用户可以经由所述选项选择单元值到颜色的对数映射。特别地,即使在非对角单元间,典型地在值中也存在大的变化。虽然大部分非零单元典型地具有小值,但是非常少量的单元408可能具有大值,并且指示针对彼此非常频繁地混淆的类。响应于对应选项的选择,处理器14被配置为将单元值对数地映射到颜色,这帮助强调形成块图案的不太频繁的混淆。
在一个实施例中,设置菜单260包括选项,用户可以经由所述选项通过启用晕圈效果来选择强调非零单元。即使标准显示器供应足够的空间来将
Figure DEST_PATH_IMAGE003
矩阵映射到像素而没有重叠,将一个像素分配给一个单元也使其几乎不可见,这可能使块离群部被忽视。响应于对应选项的选择,处理器14被配置为通过启用晕圈效果来强调非零单元,所述晕圈效果将1像素单元扩展成
Figure 163002DEST_PATH_IMAGE004
像素,并且为
Figure DEST_PATH_IMAGE005
着色像素周围的外围晕圈区域分配30%的不透明度。该效果不仅强调块离群部,它进一步改进块和块内的子块的感知。晕圈是视觉伪像,其可能以其他方式向空单元添加阴影。
在一个实施例中,设置菜单260包括选项,用户可以经由所述选项根据多个准则来过滤矩阵单元中编码的误分类样本图像。矩阵被更新以示出经过滤的样本间的混淆图案。
在一个实施例中,设置菜单260包括选项,用户可以经由所述选项过滤和/或隐藏混淆矩阵230的具有小于用户选择的特定阈值的值的单元。这保留表示重复混淆的单元,并隐藏表示不频繁混淆的单元。这些单元通常指示重叠的类语义。
在一个实施例中,设置菜单260包括选项,用户可以经由所述选项过滤和/或隐藏混淆矩阵230的如下单元:所述单元的实际类在由图像分类模型30计算的前k预测类间。其余样本表示分类器的前k误差——常用的误差度量,其旨在计及其中样本实际上适应在多个类中的情况。
在一个实施例中,设置菜单260包括选项,用户可以经由所述选项根据图像分类模型30的输出层114的输出,过滤和/或隐藏混淆矩阵230的具有在所选范围之外的分类概率的单元。这保留如下样本:针对所述样本,以一定范围中的概率计算了分类器预测。例如,用户可以过滤以仅看到对应于具有相对低确定性的预测的单元(例如,最可能的类具有小于50%的概率)。相似地,在一个实施例中,设置菜单260包括选项,用户可以经由所述选项过滤和/或隐藏混淆矩阵230的如下单元:在所述单元中,实际类的预测概率在所选范围内。例如,用户可以过滤以仅看到与具有针对实际类的低概率的预测对应的单元。将领会,这类过滤使得用户能够聚焦于特定类型的分类误差,从而增强诊断模型30或训练数据的问题的能力。
响应图
图7示出了响应图235的详细视图,响应图235响应于用户经由选项240对其的选择而显示在主用户接口200的主窗口220中。响应图235提供在图像分类模型30的所选神经网络层处对数据集中所有样本图像的神经元响应的概览。响应图235有利地使得用户能够标识相同组中的类是否激活模型卷积层的特征检测器和/或神经元的相似集合,以及特征的哪些组合表征一类或一组类。这使得能够理解图像分类模型30中的不同卷积层可以有多么好地在类层级的不同级中的组之间进行区别,以及所开发的特征检测器对数据变化有多敏感。响应图235揭示跨组、类和神经元而不是跨样本在这些响应中的变化。响应图235进一步使得能够对从大量样本计算的响应进行紧凑的视觉编码。
很像混淆矩阵230,响应图235包括布置在二维(2D)网格中的多个单元。每个单元414对应于特定实际类标注和模型30的所选神经网络层的特定神经元的组合。每个单元414包括图形元素(例如,单元的着色或画阴影),所述图形元素相对于实际类标注和所选层中的特定神经元的特定组合来编码模型的输出。在所示出的实施例中,每个单元414的图形元素编码对应神经元对于对应实际类中的样本图像的平均响应。响应图235的垂直维度和/或行对应于预定义的可能类标注集合(例如,1000个可能类),并且根据依次排序沿着垂直维度排序,如上面所讨论的,所述依次排序是基于相似性层级而确定的。响应图235的水平维度和/或列对应于图像分类模型30的所选神经网络层的神经元,并且根据用户选择更新它们的顺序。
如在卷积层中的过滤器以及相关联的池化单元和修正线性单元(ReLU)的情况下那样,神经元通常具有多个输出通道和/或值。在至少一个实施例中,每个单元414的图形元素包括线性化的1像素高的热图,所述热图表示神经元对于对应类中的图像的平均响应轮廓。图8图示了如何基于神经元响应生成线性化的1像素高的热图。特别地,处理器14被配置为确定神经元对类(例如,“无轨电车”)中的样本图像418的平均响应416(如所示出的
Figure 349263DEST_PATH_IMAGE006
矩阵)。在一些层中,卷积过滤器可以大至
Figure DEST_PATH_IMAGE007
,尤其是在图像分类模型30的早期层中。为了在一个视图中得到该大小的多个过滤器的概览,在一个实施例中,处理器14被配置为对平均响应416进行下采样,以生成下采样响应420(例如,如所示出的4×4矩阵)。接下来,处理器14对该响应进行线性化,以生成线性化的1像素高的热图422。这允许并排比较多个响应轮廓。此外,这合并这些轮廓之间的主要变化,因为这些变化原本将跨许多通道而分散。作为结果,神经元的输出的2维结构丢失,这有利于强调其响应如何跨多个类而变化,我们将其标示为神经元的响应轮廓。
在神经元响应416、420中和在线性化热图422中的每个像素或单元的颜色表示特定类的样本图像间的神经元通道的平均响应值。在一个实施例中,设置菜单260包括选项,用户可以经由所述选项为该响应指定阈值T。在一个实施例中,小于T的值被线性映射到从黑色到浅蓝色或任何第一颜色的色标。在一个实施例中,等于或大于T的值以黄色或不同于第一颜色的任何第二颜色示出。这强调表示高响应的单元和/或像素。通过调整阈值T使得能够标识具体地对某些类进行响应的神经元,并探索不同响应轮廓之间的细微差异。
返回到图7,在响应图325和类层级视图210中对统一的类排序的使用使得能够分析神经元的响应轮廓与类层级之间的关系。某些响应轮廓主要针对类层级中特定类组内的样本示出高响应。这意味着对应神经元学习了在这些类的样本图像间的共享特征,诸如形状、姿势或背景。
在一个实施例中,为了选择特定的类组,用户可以选择类层级查看器210的矩形402,点击和/或拖动响应图235,或者执行某种其他交互。响应于该选择,处理器14被配置为通过相应神经元对所选组中的样本图像如何响应来对响应图235的水平维度和/或列进行分拣。为了该目的,处理器14被配置为基于神经元对组样本G和对非组样本G的响应,计算针对每个神经元N的相关性度量RG(N),相关性度量RG(N)指示神经元对所选类组的响应性:
Figure 275631DEST_PATH_IMAGE008
其中
Figure 762107DEST_PATH_IMAGE009
是神经元对样本x的集体响应,计算为其所有输出通道的总和,并且
Figure 318991DEST_PATH_IMAGE011
是第iq-分位数。该相关性度量指示神经元的响应轮廓的统计显著度,并且当响应在组类间始终高并在非组类间始终低时,该相关性度量取高值。处理器14被配置为基于针对每个神经元的所计算相关性度量来对列进行分拣。在所示出的实施例中,神经元从左到右从最大相关性度量值到最小相关性度量值被分拣。
在一个实施例中,响应图235的每列具有列头部424。在所示出的实施例中,列头部424被示出为具有神经元ID的矩形,但是可以采取其他形式。在一个实施例中,头部424的颜色和/或画阴影可以传达所计算相关性度量。特别地,处理器14被配置为取决于针对相应神经元的所计算相关性度量来给每个相应的头部424着色和/或画阴影。
视觉检查使得能够标识神经元是否对所选组的子组或超组进行响应,还是也可能对其他组进行响应。特别地,组级特征通常基于形状、姿势和背景。例如,在自然对象内,形状和姿势特征的组合可以区分高级组,诸如鸟类、哺乳动物和昆虫。背景特征被牵涉在某些组中,诸如鱼类和地质构造。
另一方面,颜色特征以及某些纹理特征通常跨不落在特定组中的各种类而共享。为了促进分析这类情况,用户可以通过点击响应图235的单元或对应的头部424来选择特定的神经元。在一个实施例中,类层级查看器410的矩形412的颜色和/或画阴影也可以传达所计算相关性度量。特别地,处理器14被配置为取决于所选神经元的平均响应来给每个相应的矩形412着色和/或画阴影。
对于一些类组(诸如设备),没有神经元在组类和非组类之间展现出显著的响应差异是可能的。组级特征的这类缺乏指示组类间的高变化,并且取而代之,神经元典型地开发类特定的特征。
除了响应轮廓之外,响应图235以概要或详细的形式提供关于神经元的附加信息。如上面讨论的,响应图235的头部424可以借助于颜色传达关于神经元的概要信息。在一些实施例中,处理器14被配置为取决于所选类的样本内的平均激活、所选组的相关性度量或对图像变换的敏感性来给每个相应的头部424着色和/或画阴影。
在一个实施例中,点击轮廓头部424更新样本查看器250,以示出高度激活对应神经元的样本。这帮助用户跨这些样本而找到共同的图像特征,以便标识神经元所响应的图像特征。样本查看器250提供若干可能性来探索样本连同其图像特征的显著性图。理解神经元所响应的图像特征对于理解图像分类模型30的卷积层如何检测每个类以及为什么来自类的某些样本图像被误分类是很重要的。典型地,网络通过由不同神经元检测到的特征的集合来表征每个类。
辅助响应图视图
在至少一个实施例中,可以按需要在辅助视图中探索对特定类的个体样本的神经元响应。在一个实施例中,响应于用户点击响应图235的单元414之一或经由某种其他交互而示出辅助视图。
图9示出了具有类级相关矩阵265、响应图270和样本查看器275的辅助视图260。与响应图235——其聚合每类的神经元响应以示出跨不同类的变化——形成对比,辅助视图260使得能够探索所选类的样本内的可能的潜在子类。在许多情况下,归因于潜在子类(例如,切开的苹果对比完整的苹果),响应在相同类内变化。
很像混淆矩阵230,响应图235包括布置在二维(2D)网格中的多个单元。每个单元414对应于特定实际类标注和模型30的所选神经网络层的特定神经元的组合。每个单元414包括图形元素(例如,单元的着色或画阴影),所述图形元素相对于实际类标注和所选层中的特定神经元的特定组合来编码模型的输出。在所示出的实施例中,每个单元414的图形元素编码对应神经元对于对应实际类中的样本图像的平均响应。
很像混淆矩阵230,相关矩阵265包括布置在二维(2D)网格中的多个单元。每个单元对应于来自所选类的第一样本图像和来自所选类的第二样本图像的组合。每个单元包括图形元素(例如单元的着色或画阴影),所述图形元素编码针对第一和第二样本图像的相应组合的神经元响应之间的相关性,所述相关性指示图像的相似性。相关矩阵265的水平和垂直维度两者对应于所选类的样本图像。在一个实施例中,使用谱聚类对相关矩阵265进行分拣,使得相关样本被聚类在一起。
响应图270相似于响应图235,并且具有布置在网格中的多个单元。响应图270的垂直维度和/或行对应于所选类中的每个个体样本。响应图270的水平维度和/或列对应于图像分类模型30的所选层的每个个体神经元。各行以与在相关矩阵265中相同的顺序布置,使得相关样本聚类在一起。根据特定神经元对所选类中特定样本图像的响应,对每个单元进行着色。
相关矩阵265中的多个块图案1-4的存在指示所选类中的潜在子类的存在。如所示出的,相关矩阵265包括四个不同的块图案1-4,指示针对蘑菇的样本图像的四个潜在子类。样本查看器275示出所选类中每个样本的缩略图,缩略图以与相关矩阵相同的顺序被分拣。选择相关矩阵265中的块图案在样本查看器275中突出对应样本,并根据这些样本内的神经元响应对响应图270中的神经元进行重新排序。
通过在图像分类模型30的接续层处检查相关矩阵265,用户可以观察潜在子类如何出现在图像分类模型30中。尽管激活图像分类模型30中的不同特征检测器,但是这些子类仍然可以激活相同的输出单元。这是由于图像分类模型30中的最终层是完全连接的,这使得类的输出单元能够组合来自多个特征的响应。标识潜在子类并分析它们的属性给出优化模型30的分类过程的机会。
样本查看器
图10示出了主用户接口200的样本查看器250的详细视图。样本查看器250使得用户能够检查分类误差。样本查看器250示出所选样本的缩略图图像426,并供应各种操控和探索它们的可能性。样本查看器250顶部处的标注428描述当前选择表示什么(例如,“所选择的52个类(218 - 269,根:鸟类)仅示出组方面正确”)。样本可以通过它们的实际类或通过它们在相似性层级中相应的组进行分组。每个组的代表性样本示出为缩略图图像426连同指示其余样本计数的数字430。这给出选择中包括的所有类的概览,并帮助推断它们间的共同特征。
如上面提到的,用户可以以各种方式与类层级查看器210、混淆矩阵230和响应图235交互,以选择样本图像的特定类组或特定类。样本查看器250示出已经选择的样本图像。
当示出个体样本时,用户可以在缩略图顶部上或工具提示中获得关于它们的细节。例如,在一个实施例中,边框颜色指示针对样本的预测类标注是前1正确、前5正确还是其他。
在一个实施例中,如果用户经由响应图选择特定神经元,则样本查看器250示出样本图像的显著性图,所述显著性图突出所选神经元所响应的图像特征和/或图像部分,以便分析所选神经元在图像分类模型30中的作用。图11示出了针对示例性神经元的示例性显著性图432,所述示例性神经元对具有斑点的对象的样本图像434进行响应。
在一些实施例中,用户可以从设置菜单260或响应于点击选项429而示出的单独菜单选择各种选项,以对样本视图250中示出的缩略图426进行分拣和/或过滤。查看器250中的样本可以通过各种准则来过滤,诸如所选类组的成员身份、所选神经元的激活以及类级或组级分类结果。在一个实施例中,用户可以基于分类性能将缩略图426分拣为真肯定、假肯定和假否定。
附加地,视觉分析程序28允许加载由不同分类器或者在应用不同的数据变换(诸如旋转样本图像)之后计算的多个分类结果集合。例如,用户可以加载和比较针对灰度版本样本的分类输出,以研究颜色对模型性能的效果。相似地,用户可以加载和比较针对旋转版本样本的分类输出,以研究旋转图像对模型性能的效果。用户可以基于这些结果过滤样本,例如以示出在所有旋转下正确分类的样本或者仅由所选分类器正确分类的样本。这使得能够标识具有某些属性(诸如旋转不变性和易于区别)的样本和类,或者只有所选的分类器擅长的样本和类。
视觉分析程序28改进用于CNN分类器的常规分析方法,因为它使得用户能够更好地理解训练过程,诊断不同特征检测器的分离能力,并相应地改进图像分类模型30的架构以产出准确性方面的显著增益。
视觉分析程序28对于理解和适配训练过程而言是有用的。通过使用视觉分析程序28,用户可以使用设置菜单260中的选项在每个训练时期之后查看图像分类模型30的性能。以该方式,用户可以查看每个时期内的性能改变,以更好地理解模型30的收敛。理解CNN的训练行为帮助向大类CNN分类器引入有针对性的设计改进。检查不同条件下的组级性能揭示分层级结构对CNN性能的影响及其对数据变化的敏感性。视觉分析程序28允许分析在模型30的哪个卷积层处,特征检测器能够分离某些类组。
该信息可以用于将CNN的训练过程适配为有层级意识的,从而显著地改进准确性并加速训练收敛。图12示出了对图像分类模型30的架构的示例性改进。特别地,图像分类模型30被修改为在训练期间包括附加分类目标130。附加分类目标130仅在训练过程期间被包括作为在第一卷积层102之后、第二卷积层104之后、第三卷积层106之后和第四卷积层108之后的单独分支。每个附加分类目标130包括相应的完全连接层、输出层和损失函数,它们相似于完全连接层112、输出层114和损失函数116。附加分支将组级上的误差反向传播到主分支。主分支计算从不同分支反向传播的误差的加权总和,并相应地更新卷积过滤器。
在图示的示例中,第一卷积层102之后的附加分类目标130被配置为训练该层,以将图像分类成三个宽的高级组132(例如,生物体、伪像和食物)之一。相似地,第二卷积层104之后的附加分类目标130被配置为训练该层,以将图像分类成七个高级子组134之一。第三卷积层106之后的附加分类目标130被配置为训练该层,以将图像分类成十三个窄子组136之一。最后,第四卷积层108之后的附加分类目标130被配置为训练该层,以将图像分类成三十八个更窄子组138之一。
如使用视觉分析程序28研究和说明的,对这些附加分类目标130的使用通过利用类层级和观察到的不同组的可分离性,改进模型30的训练速度和准确性。在每个特定层处用作分类目标的特定组可以基于在该层处实现的组分离来确定。特别地,如果层对来自一组类(例如,“哺乳动物”)的多个图像的响应是相似的并且同时不同于它对来自其他类的图像的响应,则选择该组作为高级分类目标。换言之,针对每个附加分类目标130选择的组是在模型中相应卷积层处最高度可分离的组。
视觉分析程序28对于标识训练数据和/或类定义中的问题而言也是有用的。视觉分析程序28通过理解CNN分类器的敏感性属性和诊断训练数据中的各种质量问题,帮助改进训练数据集的管理。特别地,视觉分析程序28有助于标识出:两个类之间的冗余是相同的但是属于层级的分支,诸如导弹和炮弹,摇篮和摇床,或者太阳镜和太阳眼镜、墨镜。附加地,视觉分析程序28有助于标识子类关系,在所述子类关系中一个类是另一个类的特殊类型,诸如牛肝菌和蘑菇,或者咖啡杯和杯子。视觉分析程序28有助于标识部分关系,在所述部分关系中一个类表示另一个类的部分,诸如机翼和飞机,或者监视器和台式计算机。此外,视觉分析程序28有助于标识具有相似语义的两个类之间的语义歧义,诸如书店和图书馆,或者防毒面具和氧气面具。视觉分析程序28有助于标识抽象类,在所述抽象类中一个类(诸如整饰)采取多种形式,所述多种形式通常与物理类(诸如套装)相混淆。附加地,视觉分析程序28还通过检查具有非常高的预测概率和分配给地面真值的非常低的概率的误分类样本,来帮助检测误标注样本,诸如被标注为猴子的狮子图像。隔离这类情况对于鲁棒地比较不同架构而言是有用的。最后,视觉分析程序28帮助重构预定义的类层级,以更好地反映它们的视觉相似性结构。
虽然已经在附图和前述的描述中详细图示和描述了本公开,但是其在性质上应当被认为是说明性的而非限制性的。应理解,仅已呈现了优选实施例,并且期望保护落入本公开精神内的所有改变、修改和另外的应用。

Claims (20)

1.一种用于可视化图像分类模型的操作的方法,所述图像分类模型具有包括至少一个卷积层的多个神经网络层,所述方法包括:
利用处理器接收多个实际类标注,每个实际类标注与多个样本图像中的相应样本图像相关联,每个实际类标注对应于预定义的多个类之一;
利用处理器接收图像分类模型的多个输出,每个输出由图像分类模型响应于多个样本图像中的相应样本图像而提供;
利用处理器基于预定义的多个类中类的相似性层级来确定预定义的多个类的依次排序,相似性层级定义在预定义的多个类中的多个相似类组;以及
利用显示设备显示多个输出的图形描绘,图形描绘包括对多个输出进行编码的图形元素,所述图形元素在视觉上根据预定义的多个类的所确定依次排序而被布置。
2.根据权利要求1所述的方法,确定依次排序进一步包括:
确定依次排序,使得在由相似性层级所定义相同组中的预定义的多个类标注中的类标注以依次排序被分组在一起。
3.根据权利要求1所述的方法,显示图形描绘进一步包括:
显示布置在二维网格中的多个单元,网格的第一维对应于多个实际类标注,并且根据预定义的多个类的所确定依次排序进行排序,每个单元具有相应的图形元素,所述相应的图形元素对多个输出中的至少一个输出进行编码,所述至少一个输出由图像分类模型响应于具有对应于相应单元的实际类标注的样本图像而提供。
4.根据权利要求3所述的方法,其中:
多个输出包括由图像分类模型响应于多个样本图像分配的多个预测类标注,每个预测类标注对应于预定义的多个类之一;
网格的第二维对应于多个预测类标注,并且根据预定义的多个类的所确定依次排序进行排序;并且
多个单元中每个单元的图形元素对来自多个样本图像的相应第一数量的样本图像进行编码,所述相应第一数量的样本图像(i)与对应于相应单元的实际类标注相关联并且(ii)被分配对应于相应单元的预测类标注。
5.根据权利要求4所述的方法,对布置在二维网格中的多个单元的显示进一步包括:
响应于针对相应单元的相应第一数量等于零,以第一颜色显示多个单元中相应单元的图形元素;以及
响应于针对相应单元的相应第一数量大于零,以不同于第一颜色的第二颜色显示多个单元中相应单元的图形元素,第二颜色的阴影取决于相应第一数量。
6.根据权利要求3所述的方法,进一步包括:
响应于过滤器选项的用户选择,取决于对应于所选过滤器选项的至少一个过滤准则,利用显示设备隐藏多个单元的图形元素的子集。
7.根据权利要求3所述的方法,进一步包括:
响应于用户选择多个单元中的单元组,利用显示设备显示多个样本图像中的样本图像的缩略图,所述样本图像与对应于所选单元组中的一个单元的实际类标注相关联。
8.根据权利要求3所述的方法,其中:
多个输出包括图像分类模型的所选神经网络层的个体神经元对多个样本图像的多个响应;
网格的第二维对应于所选神经网络层的个体神经元;并且
多个单元中每个单元的图形元素编码对应于相应单元的神经元对来自多个样本图像的样本图像的响应平均,所述样本图像与对应于相应单元的实际类标注相关联。
9.根据权利要求8所述的方法,其中,多个单元中每个单元的图形元素是具有布置在网格中的多个像素的热图,多个像素中的每个像素具有颜色,所述颜色取决于对应于相应单元的神经元对来自多个样本图像的样本图像的响应平均,所述样本图像与对应于相应单元的实际类标注相关联。
10.根据权利要求9所述的方法,进一步包括:
对多个单元中每个单元的热图的多个像素进行下采样和线性化。
11.根据权利要求8所述的方法,进一步包括:
响应于用户选择由相似性层级定义的多个组中的第一组,根据所选神经网络层的每个神经元对来自多个样本图像的样本图像的响应性,来相对于第二维对多个单元进行重新排序,所述样本图像与所选第一组中的实际类标注相关联。
12.根据权利要求3所述的方法,进一步包括:
利用显示设备显示第一多个图形元素,第一多个图形元素中的每个图形元素对应于由相似性层级定义的多个相似类组中的相应组。
13.根据权利要求12所述的方法,其中,第一多个图形元素与网格相邻地布置,并且根据预定义的多个类的所确定依次排序相对于网格的第一维进行排序。
14.根据权利要求12所述的方法,其中,第一多个图形元素包括布置在多个列中的多个矩形,多个矩形基于相似性层级分布在多个列内。
15.根据权利要求12所述的方法,进一步包括:
响应于用户选择第一多个图形元素中的图形元素,在网格中突出多个单元中对应于实际类标注的单元,所述实际类标注是对应于所选图形元素的相应组的部分。
16.根据权利要求12所述的方法,进一步包括:
响应于用户选择第一多个图形元素中的图形元素,利用显示设备显示多个样本图像中与实际类标注相关联的样本图像的缩略图,所述实际类标注是对应于所选图形元素的相应组的部分。
17.根据权利要求1所述的方法,进一步包括:
响应于用户选择多个实际类标注的第一实际类标注,利用显示设备显示具有布置在二维网格中的多个单元的另外的图形描绘,网格的第一维对应于多个样本图像中与所选第一实际类标注相关联的样本图像,每个单元具有对多个输出中的至少一个输出进行编码的相应图形元素,所述至少一个输出由图像分类模型响应于多个样本图像中与所选第一实际类标注相关联的样本图像而提供。
18.根据权利要求17所述的方法,其中:
多个输出包括图像分类模型的所选神经网络层的个体神经元对多个样本图像的多个响应;
另外的图形描绘的网格的第二维对应于多个样本图像中与所选第一实际类标注相关联的样本图像;并且
另外的图形描绘的多个单元中每个单元的图形元素编码如下内容:所选神经网络层的神经元对来自多个样本图像的对应于相应单元的样本图像的响应之间的相关性。
19.根据权利要求17所述的方法,其中:
多个输出包括图像分类模型的所选神经网络层的个体神经元对多个样本图像的多个响应;
另外的图形描绘的网格的第二维对应于所选神经网络层的个体神经元;并且
另外的图形描绘的多个单元中每个单元的图形元素编码如下内容:对应于相应单元的神经元对来自多个样本图像的对应于相应单元的样本图像的响应。
20.一种用于可视化图像分类模型的操作的视觉分析系统,所述图像分类模型具有包括至少一个卷积层的多个神经网络层,所述系统包括:
显示设备;
存储器,被配置为存储多个样本图像和多个实际类标注,每个实际类标注与多个样本图像中的相应样本图像相关联,每个实际类标注对应于预定义的多个类之一;以及
操作性地连接到显示设备和存储器的处理器,处理器被配置为:
从存储器接收多个实际类标注;
接收图像分类模型的多个输出,每个输出由图像分类模型响应于多个样本图像中的相应样本图像而提供;
基于预定义的多个类中类的相似性层级来确定预定义的多个类的依次排序,相似性层级定义在预定义的多个类中的多个相似类组;以及
操作显示设备来显示多个输出的图形描绘,图形描绘包括对多个输出进行编码的图形元素,所述图形元素在视觉上根据预定义的多个类的所确定依次排序而被布置。
CN201880049725.6A 2017-07-27 2018-07-24 用于基于分类器的卷积神经网络的视觉分析系统 Active CN110892414B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762537613P 2017-07-27 2017-07-27
US62/537613 2017-07-27
PCT/EP2018/070016 WO2019020614A1 (en) 2017-07-27 2018-07-24 VISUAL ANALYSIS SYSTEM FOR CLASSIFICATORS BASED ON CONVOLUTIONAL NEURAL NETWORK

Publications (2)

Publication Number Publication Date
CN110892414A true CN110892414A (zh) 2020-03-17
CN110892414B CN110892414B (zh) 2023-08-08

Family

ID=63036044

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880049725.6A Active CN110892414B (zh) 2017-07-27 2018-07-24 用于基于分类器的卷积神经网络的视觉分析系统

Country Status (4)

Country Link
US (1) US10984054B2 (zh)
CN (1) CN110892414B (zh)
DE (1) DE112018000349T5 (zh)
WO (1) WO2019020614A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6528723B2 (ja) * 2016-05-25 2019-06-12 トヨタ自動車株式会社 物体認識装置、物体認識方法及びプログラム
US10354122B1 (en) * 2018-03-02 2019-07-16 Hong Kong Applied Science and Technology Research Institute Company Limited Using masks to improve classification performance of convolutional neural networks with applications to cancer-cell screening
US11163707B2 (en) * 2018-04-23 2021-11-02 International Business Machines Corporation Virtualization in hierarchical cortical emulation frameworks
US10635979B2 (en) * 2018-07-20 2020-04-28 Google Llc Category learning neural networks
US10824916B2 (en) * 2018-09-10 2020-11-03 Sri International Weakly supervised learning for classifying images
US11087170B2 (en) * 2018-12-03 2021-08-10 Advanced Micro Devices, Inc. Deliberate conditional poison training for generative models
CN109816098B (zh) * 2019-01-25 2021-09-07 京东方科技集团股份有限公司 神经网络的处理方法及评估方法、数据分析方法及装置
US20200342361A1 (en) * 2019-04-29 2020-10-29 International Business Machines Corporation Wasserstein barycenter model ensembling
CN112446392A (zh) * 2019-08-28 2021-03-05 银河水滴科技(北京)有限公司 密封圈分类模型的训练、密封圈的分类方法及装置
CN110738267B (zh) * 2019-10-18 2023-08-22 北京达佳互联信息技术有限公司 图像分类方法、装置、电子设备及存储介质
CN110751112B (zh) * 2019-10-24 2023-10-03 复旦大学 一种基于计算机视觉的小鼠脑图谱绘制辅助系统及方法
US20210174204A1 (en) * 2019-12-09 2021-06-10 Salesforce.Com, Inc. System and method for natural language processing using neural network
CN115104131A (zh) * 2020-06-16 2022-09-23 华为技术有限公司 用于小样本分类的混合学习代理
CN111931626B (zh) * 2020-08-03 2023-12-26 深圳市爱博医疗机器人有限公司 一种基于深度学习的血管介入机器人自动手术方法
US11462033B2 (en) * 2020-09-30 2022-10-04 Wipro Limited Method and system for performing classification of real-time input sample using compressed classification model
WO2022141258A1 (zh) * 2020-12-30 2022-07-07 深圳市优必选科技股份有限公司 一种图像分类方法、计算机设备和存储介质
CN112860808A (zh) * 2020-12-30 2021-05-28 深圳市华傲数据技术有限公司 基于数据标签的用户画像分析方法、装置、介质和设备
WO2022141511A1 (zh) * 2020-12-31 2022-07-07 深圳市优必选科技股份有限公司 图像分类方法、计算机设备及存储介质
EP4250204A3 (en) * 2021-07-19 2023-12-06 ALE International Method and system for calculating and sharing a user occupancy status relative to use of multimedia applications
CN114170233B (zh) * 2021-12-09 2024-02-09 北京字跳网络技术有限公司 图像分割标签的生成方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060224533A1 (en) * 2005-03-14 2006-10-05 Thaler Stephen L Neural network development and data analysis tool
US20170109037A1 (en) * 2015-10-20 2017-04-20 Samsung Electronics Co., Ltd. Screen outputting method and electronic device supporting the same
CN106682730A (zh) * 2017-01-10 2017-05-17 西安电子科技大学 基于vgg16图像反卷积的网络性能评估方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6862729B1 (en) * 2000-04-04 2005-03-01 Microsoft Corporation Profile-driven data layout optimization
US7546602B2 (en) * 2001-07-10 2009-06-09 Microsoft Corporation Application program interface for network software platform
US7461077B1 (en) * 2001-07-31 2008-12-02 Nicholas Greenwood Representation of data records
US7167587B2 (en) * 2002-08-30 2007-01-23 Lockheed Martin Corporation Sequential classifier for use in pattern recognition system
WO2011007569A1 (ja) * 2009-07-15 2011-01-20 国立大学法人筑波大学 分類推定システムおよび分類推定プログラム
CN102549579B (zh) * 2010-08-04 2016-06-08 松下电器(美国)知识产权公司 图像分类装置、方法以及集成电路
US9984199B2 (en) * 2015-05-21 2018-05-29 Ge Healthcare Bio-Sciences Corp. Method and system for classification and quantitative analysis of cell types in microscopy images
US10642881B2 (en) * 2016-06-30 2020-05-05 Intel Corporation System architecture for universal emotive autography
US10614379B2 (en) * 2016-09-27 2020-04-07 Disney Enterprises, Inc. Robust classification by pre-conditioned lasso and transductive diffusion component analysis
US10187344B2 (en) * 2016-10-03 2019-01-22 HYP3R Inc Social media influence of geographic locations

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060224533A1 (en) * 2005-03-14 2006-10-05 Thaler Stephen L Neural network development and data analysis tool
US20170109037A1 (en) * 2015-10-20 2017-04-20 Samsung Electronics Co., Ltd. Screen outputting method and electronic device supporting the same
CN106682730A (zh) * 2017-01-10 2017-05-17 西安电子科技大学 基于vgg16图像反卷积的网络性能评估方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JIA DENG 等: "What Does Classifying More Than 10,000 Image Categories Tell Us?", 《COMPUTER VISION - ECCV 2010, SPRINGER BERLIN HEIDELBERG》 *
MENGCHEN LIU 等: "Towards Better Analysis of Deep Convolutional Neural Networks", 《IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS》 *

Also Published As

Publication number Publication date
US20190034557A1 (en) 2019-01-31
US10984054B2 (en) 2021-04-20
WO2019020614A1 (en) 2019-01-31
DE112018000349T5 (de) 2019-09-26
CN110892414B (zh) 2023-08-08

Similar Documents

Publication Publication Date Title
CN110892414B (zh) 用于基于分类器的卷积神经网络的视觉分析系统
US10719301B1 (en) Development environment for machine learning media models
Bilal et al. Do convolutional neural networks learn class hierarchy?
US20230195845A1 (en) Fast annotation of samples for machine learning model development
Sedlmair et al. Data‐driven evaluation of visual quality measures
CN109598231B (zh) 一种视频水印的识别方法、装置、设备及存储介质
US11537506B1 (en) System for visually diagnosing machine learning models
Villon et al. A new method to control error rates in automated species identification with deep learning algorithms
Belharbi et al. Deep interpretable classification and weakly-supervised segmentation of histology images via max-min uncertainty
Marques et al. Ant genera identification using an ensemble of convolutional neural networks
WO2005006249A1 (en) Method and system of data analysis using neural networks
US20210081822A1 (en) Using machine learning algorithms to prepare training datasets
US20220277192A1 (en) Visual Analytics System to Assess, Understand, and Improve Deep Neural Networks
Cui et al. CHIP: Channel-wise disentangled interpretation of deep convolutional neural networks
Venegas et al. Automatic ladybird beetle detection using deep-learning models
Siddalingappa et al. Anomaly detection on medical images using autoencoder and convolutional neural network
JP7225731B2 (ja) 多変数データシーケンスの画像化
Lyu et al. Deer survey from drone thermal imagery using enhanced faster R-CNN based on ResNets and FPN
Conradt et al. Automated plankton classification with a dynamic optimization and adaptation cycle
Grimm et al. Modeling latent attention within neural networks
Yu et al. Accurate and fast implementation of soybean pod counting and localization from high-resolution image
US20230085927A1 (en) Visualization system and method for interpretation and diagnosis of deep neural networks
Kao A Deep Learning Architecture For Histology Image Classification
US20230154064A1 (en) Transforming non-realistic to realistic virtual environments
KR20240052913A (ko) 슬라이스 기반 기계 학습 모델들을 효율적으로 분석하고 비교하기 위한 시스템 및 방법

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