用于图像分类的方法和系统与流程

文档序号:11635504阅读:356来源:国知局
用于图像分类的方法和系统与流程

本申请涉及用于图像分类的方法及系统。



背景技术:

逐像素分类的目标是将图像中的所有像素分类成不同的类别。逐像素分类任务包括图像分割和对象检测,这需要将图像分块输入到分类器中并且输出中心像素的类别标签。

卷积神经网络(cnn)是可训练的多级前馈神经网络,已经被广泛地研究,以提取用于图像分类任务的良好多层级特征表示。每一层的输入和输出被称为特征图。cnn一般包括卷积层、池化层和非线性层。卷积层利用3d滤波器组对输入特征图进行卷积操作,以生成输出特征图。每个滤波器在输入特征图的所有位置提取相同类型的局部特征。池化层降低特征图的分辨率,以使输出特征图对输入偏移和失真不太敏感。最常用的是最大池化和平均池化。非线性层是应用于特征图的每个元素的逐点非线性函数。

在利用多层卷积网络提取特征之后,增加具有最终分类器的全连接层从而输出类别预测。在给定训练样本和它们的标签的情况下,以端对端监督方式通过将训练数据上的损失函数最小化来学习cnn的参数。使用前向和反向传播对输入样本进行类别预测并且分别基于预测误差来更新cnn参数。

然而,前向和反向传播最初是为整个图像分类设计的。以逐个分块扫描的方式直接将它应用于逐像素分类效率极低,因为像素的周围分块具有较大重叠,从而导致很多冗余的计算。



技术实现要素:

目前已经有研究针对如何消除基于cnn的逐像素分类中的前向和反向传播的所有冗余计算,并且取得了显著进展。

在本申请的一方面,公开用于图像分类的设备。该设备可以包括:转换器,其被用于转换卷积神经网络,该卷积神经网络具有多个卷积层和连接到卷积层的多个池化层。该转换器可以包括:第一转换单元,其被配置成将全零行和列插入到卷积层中的每个的卷积核,使得卷积核中的每两个邻近元素彼此分开;以及第二转换单元,其被配置成将无掩蔽的行和列插入到每个池化层的池化核,使得池化核中的每两个邻近元素彼此分开。该设备还可以包括:前向传播器,其被配置成将图像馈送到转换后的卷积神经网络中,以预测图像中的所有像素的类别。

在一个实施例中,该设备还可以包括反向传播器。反向传播器可被配置成更新转换后的卷积神经网络中的卷积核的参数。

在一个实施例中,该设备还可以包括选择器。选择器可被配置成选择感兴趣像素的误差,所述误差反向传播通过转换后的卷积神经网络,以更新卷积核的参数。

本申请的另一方面公开了用于图像分类的方法。该方法可包括:转换卷积神经网络,该卷积神经网络具有多个卷积层和连接到卷积层的多个池化层;以及将图像馈送到转换后的卷积神经网络中,以预测图像中的所有像素的类别。转换的步骤可包括:将全零行和列插入到每个卷积层的卷积核,使得卷积核中的每两个邻近元素彼此分开;以及将无掩蔽的行和列插入到每个池化层的池化核,使得池化核中的每两个邻近元素彼此分开。

在一个实施例中,该方法还可以包括更新转换后的卷积神经网络中的卷积核的参数的步骤。

在一个实施例中,该方法还可以包括选择感兴趣像素的误差,并且将误差反向传播通过转换后的卷积神经网络,以更新卷积核的参数的步骤。

附图说明

下文参考附图描述本发明的示例性非限制实施例。附图是说明性的,并且一般不按确切比例。不同图上的相同或类似元件引用相同的附图标号。

图1是示出根据本申请的一个实施例的示例性设备的示意图。

图2是示出根据本申请的一个实施例的示例性前向传播器的示意图。

图3是示出根据本申请的一个实施例的另一示例性前向传播器的示意图。

图4是示出根据本申请的一个实施例的示例性选择器的示意图。

图5是示出根据本申请的一个实施例的示例性反向传播器的示意图。

图6是示出根据本申请的一个实施例的另一示例性反向传播器的示意图。

图7是示出根据本申请的一个实施例的又一示例性反向传播器的示意图。

图8是示出根据本申请的一个实施例的用于图像分类的示例性方法的示意流程图。

图9是示出根据本申请的一个实施例的用于将原始cnn转换成转换后的cnn的步骤的示意流程图。

图10是示出将全零行和列分别插入到卷积核wk和池化核pk的示意图,其中d=2和d=3。

图11是示出根据本申请的一个实施例的用于前向传播的步骤的示意流程图。

图12是示出利用转换后的卷积核将卷积作为矩阵乘法执行的示意图。

图13是示出根据本申请的一个实施例的选择步骤的示意流程图。

图14是示出根据本申请的一个实施例的用于反向传播的步骤的示意流程图。

图15是用于基于cnn的逐像素分类的逐个分块扫描与本申请中公开的先进方法的比较。

具体实施方式

现在将详细地解释本发明的一些具体实施例,包括发明人预期的用于实施本发明的最佳模式。附图中示出这些具体实施例的示例。尽管结合这些具体实施例描述本发明,但应理解,并不意图将本发明限于所述实施例。相反,意图涵盖可以包括在如所附权利要求书限定的本发明的精神和范围内的替代方案、修改和等效物。以下描述中列出了许多具体细节,以便提供对本申请的全面理解。可以在没有这些具体细节中的一些或全部的情况下实践本发明。在其他情况下,没有详细地描述众所周知的过程操作,以免不必要地使本发明变得模糊。

本文中使用的术语仅仅是出于描述特定实施例的目的,而不意图限制本发明。除非上下文另有明确指出,否则本文中使用的单数形式“一”、“一个”和“所述”也意图包括复数形式。还应理解,本说明书中使用的术语“包括”和/或“包括”用于说明存在所述特征、整数、步骤、操作、元件和/或部件,但并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件和/或它们的组合。

如本领域的技术人员将了解,本发明可以体现为系统、方法或计算机程序产品。因此,本发明可以采用以下形式:全硬件实施例、全软件实施例(包括固件、常驻软件、微码等),或者将在本文中通常都可称为“电路”、“装置”、“模块”或“系统”的软件和硬件方面组合起来的实施例。此外,本发明可以采用计算机程序产品的形式,所述计算机程序产品体现在任何有形的表达介质中,所述介质具有体现在介质中的计算机可用程序代码。

还应理解,诸如第一和第二等等相关术语(若有的话)单独使用,以将一个实体、项目或动作与另一个区分开来,而未必要求或暗示这些实体、项目或动作之间的任何实际关系或顺序。

本发明功能中的很多功能和本发明原理中的很多原理在实施时由软件或集成电路(ic)最好地支持,诸如,数字信号处理器和软件或者专用ic。尽管存在可能大量的努力和由例如可用时间、当前技术和经济考虑因素激励的很多设计选择,但预期本领域的技术人员在由本文中公开的概念和原理引导时将容易能够利用最少的实验生成此类软件指令或ic。因此,为了简洁并且最小化模糊根据本发明的原理和概念的任何风险,此类软件和ic的进一步论述(若有的话)将限于优选实施例所使用的必要原理和概念。

图1是示出符合一些公开实施例的用于图像分类的示例性设备100的示意图。如图所示,设备100可包括转换器10和前向传播器20。转换器10被配置成获取卷积神经网络,该卷积神经网络具有多个卷积层和连接到卷积层的多个池化层。前向传播器可被配置成将图像馈送到转换后的卷积神经网络,以生成用于图像分类的预测的标签图。在本申请的一个实施例中,转换器10可包括第一转换单元11和第二转换单元12。第一转换单元11可被配置成将全零行和列插入到每个卷积层的卷积核,使得卷积核中的每两个邻近元素(entry)彼此分开。第二转换单元12可以被配置成将无掩蔽的行和列插入到每个池化层中的池化核,使得池化核中的每两个邻近元素彼此分开。在一些实施例中,两个邻近元素被若干个像素彼此分开。

参考图1,为了使卷积神经网络能够有效地工作,设备100还包括反向传播器30,该反向传播器用于计算更改后的cnn的参数的梯度。在本实施例中,反向传播器30可被配置成更新转换后的卷积神经网络中的卷积核的参数。在一些实施例中,设备100还包括选择器40,该选择器计算预测的标签图的误差并且只选择感兴趣像素的误差以用于训练cnn参数。在本实施例中,选择器40可被配置成选择感兴趣像素的误差,所述误差反向传播通过转换后的卷积神经网络,以更新卷积核的参数。

图2是示出示例性前向传播器20的示意图。如图所示,前向传播器20可包括第一提取单元21、第一向量化单元22和第一卷积单元23。其中,第一提取单元21被配置成从将被分类的图像的输入特征中的每个邻域提取由转换后的卷积核中的非零元素指定的特征值。第一向量化单元22被配置成将转换后的卷积核的非零元素向量化。第一卷积单元23被配置成对第一提取单元提取的特征值和第一向量化单元向量化的非零元素执行卷积操作以生成输出特征图,所述输出特征图可在cnn中用作中间结果。

图3是示出另一示例性前向传播器20’的示意图。如图3所示,前向传播器20’可包括第二提取单元24和计算单元25,其中第二提取单元24被配置成从将被分类的图像的输入特征中的每个邻域提取由转换后的池化核中的掩蔽元素指定的特征值,并且计算单元25被配置成从在第二提取单元中提取的特征值来计算多个池化层中的平均池化层的平均值、或者多个池化层中的最大池化层的最大值,以生成输出特征图。如本领域中已知,池化层可是卷积神经网络中的层并且可处于cnn的任何层处,并且平均池化层根据从输入特征图的每个邻域中提取的特征值来计算平均值。至于最大池化层,可根据从输入特征图的每个邻域中提取的特征值来计算最大值。

应理解,在一些实施例中,前向传播器20可包括第一提取单元21、第一向量化单元22、第一卷积单元23、第二提取单元24和计算单元25。应理解,尽管图2和图3中示出一个前向传播器20/20’,但在其他实施例中,可存在不止一个前向传播器20/20’。

图4是示出示例性选择器40的示意图。如图4所示,选择器40可包括比较器41,所述比较器被配置成将在前向传播器20中生成的预测标签图与基本真实标签图进行比较,以获取标签图的逐像素误差。

在一些实施例中,选择器40还可包括乘法器42,所述乘法器被配置成将逐像素误差中的每个与感兴趣像素的掩模相乘,以生成误差的掩蔽图(maskedmap)。

图5是示出示例性反向传播器30的示意图。如图5所示,反向传播器30可包括第三提取单元31、第二向量化单元32和第二卷积单元33。第三提取单元31被配置成从将被分类的图像的输入特征中的每个邻域中提取由转换后的卷积核中的非零元素指定的特征值。第二向量化单元32被配置成将从选择器40接收的误差图或下一层的误差图向量化。第二卷积单元33被配置成对第三提取单元提取的特征图和第二向量化单元32向量化的误差图执行卷积操作,以计算卷积核的梯度,用于更新卷积核。

在一些实施例中,反向传播器30还包括第三向量化单元321、第四提取单元311和第三卷积单元331。第三向量化单元321可被配置成使转换后的卷积核的非零元素旋转一定角度并且将旋转后的非零元素向量化。第四提取单元311可被配置成提取由旋转后的非零元素指定的特征值。第三卷积单元331被配置成对第四提取单元311提取的特征值和第三向量化单元321向量化的非零元素执行卷积操作,以生成误差图,所述误差图逐个层地反向传播通过网络,以更新先前卷积层的卷积核。

图6是示出另一示例性反向传播器30’的示意图。如图6所示,反向传播器30’可包括第一转移单元34和第一累积单元35。第一转移单元34可被配置成将从选择器40接收的误差图或下一层的误差图的误差值转移到当前层的误差图上的对应元素,该误差图的索引记录在前向传播器10中。第一累积单元35可被配置成累积当前层的误差图的每个元素的转移误差值。

图7是示出又一示例性反向传播器30”的示意图。如图7所示,反向传播器30”可包括平均(dividing)单元36、第二转移单元37和第二累积单元38。平均单元36可被配置成根据池化核中的掩蔽元素的数量,将从选择器40接收的误差图或下一层的误差图上的每个误差值平均。第二转移单元37可被配置成将平均的误差值转移回到当前层的误差图上的邻域,所述误差图的索引记录在前向传播器10中。第二累积单元38可被配置成累积当前层的误差图的每个元素的转移误差值,其中第一转移单元34被配置成将下一层的误差图的误差值转移到当前层的误差图上的对应元素,所述误差图的索引记录在前向传播器10中。

图8是示出用于图像分类的示例性方法200的示意图。如图所示,方法200可包括下列步骤。在步骤210处,获取卷积神经网络,该卷积神经网络具有多个卷积层和连接到卷积层的多个池化层。在步骤220处,将图像馈送到卷积神经网络,以预测图像中的所有像素的类别。在步骤260处,选择感兴趣像素的误差,并且将所述误差反向传播通过转换后的卷积神经网络,以更新卷积核。在步骤240处,更新转换后的卷积神经网络中的卷积核。

在本实施例中,通过将图像分块作为输入的原始cnn转换成能够将整个图像作为输入的转换后的cnn来获取或取得卷积神经网络。具体而言,由图9所示的步骤来转换一些参数,诸如,卷积层的卷积核wk、池化层的池化核pk和层的跨距dk。在步骤211中,最初将d和k设置为1。在步骤212中,确定层k的类型。如果层既不是卷积层也不是池化层,那么卷积过程前进到步骤214。如果在步骤212中,层是卷积层,那么方法前进到步骤213,通过将全零行和列插入到卷积核wk来转换卷积核wk,使得每两个邻近元素彼此远离d个像素。如果在步骤212处,层是池化层,那么在步骤213处,通过将无掩蔽的行和列插入到池化核pk来转换核pk,使得每两个邻近元素彼此远离d个像素。随后,过程前进到步骤214中确定当前层是不是最后一层。如果是的话,过程前进到步骤215,该过程结束。如果不是的话,则使k加1(即,k=k+1),并且过程返回到步骤212,以处理下一层。

图10是示出将全零行和列分别插入到卷积核wk和池化核pk的视图,其中d=2和d=3。

图11是示出根据本申请的一个实施例的前向传播的示意流程图,该前向传播可由上述前向传播器20实施。如图11所示,前向传播从步骤221开始,在该步骤处,将图像设置为输入特征图并且将k设置为1。随后,过程前进到步骤222,确定当前层(即,层k)的类型。如果当前层既不是卷积层也不是池化层,例如,该层是非线性层,那么方法前进到步骤223,以原始方式执行操作。如果当前层是具有转换后的卷积核wk和偏置向量bk的卷积层,那么过程前进到步骤224,将层的跨距设置为1,随后前进到步骤225,从图像xk的输入特征中的每个邻域中提取由核中的非零元素指定的特征值,以创建矩阵。随后,过程前进到步骤226,将卷积核wk的非零元素向量化,以创建向量。随后,过程前进到步骤227,由在先前步骤中创建的矩阵与向量之间的矩阵乘法执行卷积。随后,过程前进到步骤228,将结果存储在输出特征图中。

在步骤222处,如果当前层是具有转换后的池化核pk的池化层,那么过程前进到步骤229,将层的跨距设置为1,随后前进到步骤230,从将被分类的图像xk的输入特征中的每个邻域中提取由池化核中的掩蔽元素指定的特征值。随后,过程前进到步骤231,从在第二提取单元中提取的特征值来计算平均池化层的平均值或最大池化层的最大值,以生成标签图,用于将图像中的所有像素分类。类似于步骤228,在步骤232处,将计算结果存储在输出特征图中。随后,过程前进到步骤233,确定当前层是不是最后一层。如果是的话,过程前进到步骤234,输出最后一层的输出特征图,以生成预测的标签图,并且过程结束。如果不是的话,则过程返回到步骤222,以处理下一层。

在一些实施例中,可通过重新组织乘法结果来创建输出特征图xk+1。在一些实施例中,将偏置值bk(i)添加到输出特征图xk+1的第i个通道的所有值。

图12是示出利用转换后的卷积核将卷积作为矩阵乘法执行的示意图。

图13是示出根据本申请的一个实施例的选择步骤的示意流程图,该选择步骤可由上述选择器40实施。如图13所示,在步骤261中,将基于输出特征图在前向传播器中生成的预测的标签图与基本真实标签图进行比较,以计算标签图的逐像素误差,随后在步骤262处,将逐像素误差中的每个乘以感兴趣像素的掩模,以生成误差的掩蔽图。最后,在步骤263处,输出掩蔽的误差图。

图14是示出根据本申请的一个实施例的用于反向传播的步骤的示意流程图,该反向传播可由上述反向传播器30实施。

如图14所示,前向传播从步骤241开始,在该步骤处,将当前误差图设置为输入误差图并且将k设置为k。随后,过程前进到步骤242中确定当前层(即,层k)的类型。如果当前层既不是卷积层也不是池化层,例如,该层是非线性层,那么方法前进到步骤243,以原始方式执行操作。

在步骤242处,如果层k是具有转换后的卷积核wk和偏置向量bk的卷积层,那么过程前进到步骤244,从将被分类的图像xk的输入特征中的每个邻域中提取由转换后的卷积核中的非零元素指定的特征值,以创建矩阵。随后,在步骤245处,将误差图δk+1旋转一定角度,例如,180度,并且进行向量化,以创建向量。之后,在步骤246处,利用创建的矩阵和向量将卷积作为矩阵乘法来执行,以计算核wk的梯度。随后,过程前进到步骤247,将结果作为核的梯度存储。针对误差图δk+1中的第i个通道,将每个误差通道中的所有误差值合计起来,作为偏置bk(i)的梯度。

在步骤244的同时,在步骤248处,可将核旋转一定角度,诸如,180度,以创建向量。随后,针对误差图δk+1中的每个邻域,在步骤250处,从误差图中提取由核中的非零元素指定的误差值,以创建矩阵。随后,过程前进到步骤251处,利用创建的矩阵和向量将卷积作为矩阵乘法来执行,以计算该层的误差图。最后,将结果存储在前一层(即,层k-1)的误差图δk中。

在步骤242处,如果层k是具有更改的池化核pk的最大池化层,那么过程前进到步骤249,针对误差图δk+1的每个误差值,将误差值转移到误差图δk上的对应元素,所述误差图的索引在前向传播期间记录。随后,对δk的每个元素的转移误差值进行累积。如果层k是具有更改后的池化核pk的平均池化层,那么在步骤249处,按照池化核pk中的掩蔽元素的数量将δk+1上的每个误差值平均。随后,将平均的值转移回到误差图δk上的邻域,所述误差图的索引在前向传播期间记录。最后,对δk的每个元素的转移误差值进行累积。

在上述步骤之后,过程前进到步骤253,确定当前层是不是第一层。如果是的话,过程前进到步骤254,该过程结束。如果不是的话,则使k减1(即,k=k-1),并且过程返回到步骤242以继续。

在过程结束时,输出所有卷积核及其偏置向量的梯度。

图15是用于基于cnn的逐像素分类的逐个分块扫描与本申请中公开的先进方法的比较。与传统分类方案相比,本发明的解决方案具有消除基于cnn的逐像素分类中的前向和反向传播的冗余计算的优点,并且取得显著进展。

所附权利要求书中的所有构件或步骤加功能元件的对应结构、材料、动作和等效物意图包括用于与特别要求保护的其他要求元件结合执行功能的任何结构、材料或动作。出于说明和描述的目的呈现了本发明的描述,但并不意图详细列举或者将本发明限于所公开的形式。在不脱离本发明的范围和精神的情况下,本领域的技术人员将清楚许多更改和变化。实施例经过选择和描述以便最好地阐释本发明的原理和实际应用,并且使本领域的技术人员能够以适于预期的特定用途的各种实施例和各种更改来理解本发明。

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