图像分类方法、装置、计算机设备及存储介质
技术领域
本发明涉及图像处理技术,特别涉及一种图像分类方法、装置、计算机设备及存储介质。
背景技术
如今零售业正处于巨大的变革当中,新技术已经把零售业推到了风口浪尖。目前市面上广泛成熟使用的自动售货机,虽然近年来在支付手段上有所突破,但其在成本、效率、体验上都已跟不上时代的需求。最近市面上出现了一种新型无人售货柜,能够让顾客打开柜门后如同在超市一样自助选取商品,无人售货柜通过重力推算、图像识别等技术手段推算顾客购买商品,顾客关门后智能结算。毫无疑问,这种顾客体验更佳、占地面积更小、更具科技感的购物方式,会是未来零售行业的一个主流发展方向。
图像识别是这种新型无人售货柜的核心技术:售货柜通过摄像头采集顾客购买过程的视频,对于视频的每一帧图像,采用图像识别技术识别顾客购买商品,进而推算出顾客的购买清单。随着机器学习方法的不断完善和发展,深度学习算法越来越受到重视,卷积神经网络就是深度学习中一种重要的算法,目前已成为图像识别领域的研究热点。基于卷积神经网络的图像分类技术能够自动从图像中提取特征信息,通过提取的特征进行图像表达。
然而,针对不同具体领域或者不同类别的图像,基于卷积神经网络进行分类时,往往需要分别建立与该领域或者类别对应的网络模型,每个网络模型包含的层级与整体架构通过训练的方式进行确定,而为了获取更好的特征表达能力以取得更好的分类精度,尤其是针对分类精度要求更高的领域,往往需要针对同一领域或类别的图像分别获得更多相同或者同类的原始图像数据作为训练数据。在实际使用中,由于时间和成本的限制,往往只能采集到少数的样本进行标注,以无人售货柜为例,出于时间和成本的限制,能够采集到顾客购买商品的图像并标注的数据量有限,虽然能够识别出顾客购买的商品,但也很容易把顾客身上的服饰识别为某一个商品,从而影响购物清单的推算。
发明内容
本发明实施例提供一种图像分类方法、装置、计算机设备及存储介质,能够降低误检率。
本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供一种图像分类方法,获取待识别图像输入训练后的检测神经网络模型,通过所述检测神经网络模型确定所述待识别图像中所包括的对象对应的图像数据;截取所述对象对应的图像数据作为待分类图像数据,通过训练后的分类神经网络模型判断所述对象的类别。
第二方面,本发明实施例提供一种图像分类装置,包括检测模块,用于获取待识别图像输入训练后的检测神经网络模型,通过所述检测神经网络模型确定所述待识别图像中所包括的对象对应的图像数据;分类模块,用于截取所述对象对应的图像数据作为待分类图像数据,通过训练后的分类神经网络模型判断所述对象的类别。
第三方面,本发明实施例提供一种计算机设备,包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,所述处理器用于运行所述计算机程序时,执行本发明实施例所提供的图像分类方法。
第四方面,本发明实施例提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明实施例所提供的图像分类方法。
本发明实施例具有以下有益效果:采用检测神经网络模型加分类神经网络模型组成的架构,通过检测神经网络模型确定待识别图像中包括的对象对应的图像数据,以及分类神经网络模型判断对象的类别,可以把降低误检率的任务主要放在分类神经网络模型解决,可以以较小的代价引入包含对对象的类别的识别精度有干扰影响的待区分对象的图像集对分类神经网络模型进行训练,从而有效降低误检率。
附图说明
图1为本发明一实施例提供的图像分类方法的应用场景示意图;
图2为本发明一实施例提供的图像分类方法的流程示意图。
图3为本发明一实施例提供的生成对抗神经网络的网络架构图;
图4为本发明一实施例提供的卷积神经网络的卷积层操作示意图;
图5为本发明一实施例提供的卷积神经网络的池化层示意图;
图6为本发明另一实施例提供的图像分类方法的流程图;
图7为本发明一实施例提供的计算机设备的硬件结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
对本发明进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)对象,本文中指用于进行分类的对象,如人和物体等。
2)样本图像,即包括有对象的成像的图像,例如JPEG等各种数字格式的图像。
3)图像增强,通过各种手段提升样本图像中对象的成像特性,扩大样本图像中对象的成像区域与其他区域的区别度。
4)损失函数(loss function)也叫代价函数(cost function),是神经网络优化的目标函数。
5)神经网络(Neural Networks,NN),是由大量的、简单的处理单元(称为神经元)广泛地互相连接而形成的复杂网络系统,它反映了人脑功能的许多基本特征,是一个高度复杂的非线性动力学习系统。
本发明实施例提供图像分类方法、实施图像分类方法的图像分类装置和计算机设备、以及存储用于实现图像分类方法的可执行程序的存储介质。就图像分类方法的实施而言,本发明实施例提供终端侧和服务器侧实施的方案,将对图像分类的示例性实施场景进行说明。
如图1所示,为实现本发明实施例提供的图像分类方法的图像分类应用对待识别图像在服务器进行类别判断的一个可选的应用场景示意图。用户通过在无人售货柜安装图像分类应用客户端,当买家打开无人售货柜取出商品时,无人售货柜通过摄像头自动拍摄生成待识别图像,通过服务器将该待识别图像输入检测神经网络模型进行特征提取,再通过分类神经网络模型进行类别判断后得到商品类别的判断结果。其中,图像分类应用可以是针对不同图像所包含的对象,通过神经网络训练确定神经网络模型,从而得到的分别针对不同图像所包含的对象进行识别以确定类别的图像分类应用。以待识别图像为无人售货柜拍摄的买家取出商品的图像为例,图像所包含的对象主要为无人售货柜可销售的商品,图像分类应用是指针对待识别图像中所包含的商品所在位置进行识别以确定类别的图像分类应用。类别是指针对对应的对象进行分类的维度,如不同的商品名称。
上述应用场景的描述是以待识别图像为无人售货柜拍摄的买家取出商品的图像为例,然而并不局限于此,其它领域或者类别的图像,如无人超市中拍摄的买家拿去商品的图像也可以采用本发明实施例的图像分类方法,实现训练神经网络模型和准确预测图像所包括的对象的类别。
请参阅图2,为本发明实施例提供的图像分类方法的一个可选的流程示意图,将分类对各个步骤进行说明。
步骤101,获取待识别图像输入训练后的检测神经网络模型,通过所述检测神经网络模型确定所述待识别图像中所包括的对象对应的图像数据。
待识别图像是指针对需要确定类别的目标物体所拍摄或者绘制的图片。对象是指需要确定类别的目标物体。对象的类别是指需要对目标物体进行分类的维度。检测神经网络模型确定所述待识别图像中所包括的对象对应的图像数据是指,检测神经网络模型确定待识别图像中的目标物体所在图像区域,如通过包围盒标定所述目标物体所在图像区域并输出包围盒对应的位置参数、或者直接标定所述目标物体所在图像区域的位置参数。
步骤103,截取所述对象对应的图像数据作为待分类图像数据,通过训练后的分类神经网络模型判断所述对象的类别。
其中,截取所述对象对应的图像数据作为待分类图像数据可以是指,分类神经网络模型获取检测神经网络模型输出的所述对象对应的图像数据的确定结果,根据所述确定结果提取所述待识别图像中对象对应的图像数据作为待分类图像数据。对象包括需要被真实区分类别的目标物体以及对所述目标物体的识别会造成干扰而导致误检的背景物体。本申请实施例中,以待识别图像为无人售货柜拍摄的买家取出商品的图像为例,对象包括商品和对这些商品的类别确定具有较大干扰的背景物体,如人身上的服饰图案,也即,对象的类别可以是商品名或背景,对象的类别数为商品的类别数再加1。
上述实施例中,图像分类方法采用分离的检测神经网络模型加分类神经网络模型组成的架构,相对于一体化的识别网络而言,从而对检测神经网络模型的训练样本和对分类神经网络模型的训练样本无需保持一致,通过将包含对目标物体造成识别干扰的背景物体的图像形成单独的数据集对分类神经网络模型进行训练,可以在减小样本采集、对背景物体进行标注的前提下提升分类神经网络模型对背景物体的识别准确率,通过检测神经网络模型确定待识别图像中包括的对象对应的图像数据,以及分类神经网络模型判断对象的类别,可以把降低误检率的任务主要放在分类神经网络模型解决,可以以较小的代价引入包含对对象的类别的识别精度有干扰影响的待区分对象的图像集对分类神经网络模型进行训练,从而有效降低误检率。
在一些实施例中,所述通过训练后的分类神经网络模型判断所述对象的类别之前,还包括:
基于第一图像中包括的待分类对象的图像数据以及所述待分类对象的类别形成第一训练样本,所述第一图像为基于待识别场景获得的图像;
基于第二图像中包括的待区分对象的图像数据以及所述待区分对象的类别形成第二训练样本,所述第二图像为基于公开数据集获得图像;
将所述第二训练样本和所述第一训练样本输入生成对抗神经网络,通过所述对抗神经网络对所述第二训练样本中的所述待区分对象的图像数据进行风格转换,得到第三训练样本;
将所述第一训练样本和所述第三训练样本输入初始的分类神经网络模型进行训练,直至所述分类神经网络模型的损失函数满足收敛条件,得到训练后的所述分类神经网络模型。
这里,待识别图像中的对象包括需要被真实区分类别的目标物体以及对所述目标物体的识别会造成干扰而导致误检的背景物体,为了便于表述,本申请实施例中,将目标物体称为待分类对象,将背景物体称为待区分对象。需要说明的是,待分类对象通常具有多个类别,待区分对象的类别可以统一为背景或者其它。通过将包括待分类对象的图像数据的第一图像和包括待区分对象的图像数据的第二图像共同形成对分类神经网络模型的训练样本,可以提升分类神经网络模型对待分类对象的识别精度,减小待区分对象对待分类对象的识别结果的干扰。
损失函数(loss function)也叫代价函数(cost function),是神经网络优化的目标函数,神经网络训练或者优化的过程就是最小化损失函数的过程,损失函数值越小,对应预测的结果和真实结果的值就越接近。初始的分类神经网络模型可以采用目前成熟的基于卷积神经网络的算法,比如Inception网络、ResNet、DenseNet网络等,主要包括卷积层、池化层、全连接层和指数归一化层,其中全连接层主要是用于学习,将学到的训练集中分布式特征表示映射到样本标记空间,以得到神经网络模型的权重。指数归一化层可以统一样本数据的评价标准,使得网络快速的收敛。
将所述第一训练样本和所述第三训练样本输入初始的分类神经网络模型后进行训练之前,还可以包括:通过分类神经网络模型将第一训练样本中待分类对象的图像数据的尺寸与所述第三训练样本中待区分对象的图像数据的尺寸缩放到一致。
上述实施例中,由于图像分类方法是采用检测神经网络模型加分类神经网络模型组成的架构,从而对分类神经网络模型的训练可以包括除检测神经网络模型的输出结果之外的图像作为训练样本,通过引入公开的图像数据集中的图像来参与对分类神经网络的训练,将降低误检率的任务主要放在分类神经网络模型来解决,以更小的样本采集、样本标注的成本有效地降低误检率。
其中,所述生成对抗神经网络(Cycle-Consistent Adversarial Networks,CycleGAN)是指能够在源域和目标域之间,无须建立训练数据间一对一的映射,实现图像风格转换。CycleGAN主要包括生成器(generator)和鉴别器(discriminator),请参阅图3,在一个配对数据集中,第一图像到第二图像的特征可用于其相对应的映射过程中,即从第二图像到第一图像的特征,配对即是为了使输入和输出共享一些共同的特征。当一张图像从一个域到另一个域时,该映射定义了一种有意义的变换。在配对数据集中,生成器必须从域DA中获得一个输入,例如inputA,并将该图像映射到输出图像,即generatedB,原始图像必须与其映射对象相近。在不配对数据集中,生成器将输入图像(inputA)从域DA映射到目标域DB中,转换成对应图像。为了确保这些图像之间存在有意义的关系,它们必须共享一些特征,这些特征可用于将此输出图像映射回输入图像,因此通过另一个生成器能将此输出图像映射回原始域。CycleGAN通过从域DA获取输入图像,该输入图像被传递到第一个生成器GeneratorA→B,其任务是将来自域DA的给定图像转换到目标域DB中的图像。然后这个新生成的图像被传递到另一个生成器GeneratorB→A,其任务是在原始域DA转换回图像CyclicA/CyclicB,这个输出图像必须与原始输入图像相似,用来定义非配对数据集中原来不存在的有意义映射。两个输入被传递到对应的鉴别器(一个是对应于该域的原始图像inputA,另一个是通过生成器产生的图像inputB),并且鉴别器的任务是区分它们,识别出生成器输出的生成图像,并拒绝此生成图像。生成器想要确保这些图像被鉴别器接受,所以它将尝试生成与DB类中原始图像非常接近的新图像。在生成器分布与所需分布相同时,生成器和鉴别器之间实现了纳什均衡(Nash equilibrium)。
通过CycleGAN将第二图像中待区分对象的图像数据进行风格转换,得到与第一图像的风格相同的图像,从而实现将基于公开数据集获得的包括待区分对象的第二图像、可以与包括待分类对象的第一图像共同作为训练分类神经网络模型的样本数据,如此大大增加对分类神经网络模型进行训练的适合样本数量,提升分类神经网络模型对对待分类对象和待区分对象的识别精度。
在一些实施例中,所述基于第一图像中包括的待分类对象的图像数据以及所述待分类对象的类别形成第一训练样本包括:
将所述第一图像、所述第一图像中包括的待分类对象的图像数据的位置信息以及所述待分类对象的类别形成第一训练样本;和/或
所述基于第二图像中包括的待区分对象的图像数据以及所述待区分对象的类别形成第二训练样本,包括:
将所述第二图像、所述第二图像中包括的待区分对象的图像数据的位置信息以及所述待区分对象的类别形成第二训练样本。
这里,通过标定第一图像中包括的待分类对象的图像数据的位置信息,可以将第一图像中待分类对象的成像区域与非成像区域有效区别,标定第二图像中包括的待区分对象的图像数据的位置信息,可以将第二图像中待区分对象的成像区域与非成像区域有效区别,将第一训练训练样本和第二训练样本输入CycleGAN后,便于CycleGAN基于第一训练样本和第二训练样本进行风格转换时,提升转换效率。相应的,将第一训练样本和第三训练样本输入分类神经网络模型后,便于分类神经网络模型基于第一训练样本和第三训练样本对待分类对象和待区分对象高效识别,避免非成像区域的图像数据对与识别精度的干扰。
在一些实施例中,所述基于第一图像中包括的待分类对象的图像数据以及所述待分类对象的类别形成第一训练样本,包括:
将所述第一图像输入训练后的检测神经网络模型;
通过所述检测神经网络模型对所述待分类对象进行识别,得到所述待分类对象的图像数据的包围盒,根据所述包围盒以及所述待分类对象的类别形成第一训练样本。
这里,第一训练样本是通过检测神经网络模型对待分类对象进行识别标定得到的。通过检测神经网络模型提取第一图像中的关键区域,如待分类对象的成像区域,且检测神经网络模型和分类神经网络模型分离,可以将检测神经网络模型的输出作为训练分类神经网络模型识别待分类对象的训练样本数据,而训练分类神经网络模型识别待区分对象的训练样本数据则可以从公开数据集中获取,如此,针对待区分对象的类型复杂多变,训练样本的数据量不够的情况下,即使检测神经网络模型对关键区域的提取可能包括待分类对象和待区分对象,也可以提升分类神经网络模型的准确率。
在一些实施例中,所述将所述第一图像以及所述第一图像中包括的待分类对象的类别输入训练后的检测神经网络模型之前,包括:
将第一训练集输入初始的检测神经网络模型进行训练,所述第一训练集包括基于待识别场景获得的第一图像以及所述第一图像中包含的待分类对象的类别;
直至所述检测神经网络模型的损失函数满足收敛条件时,得到训练后的所述检测神经网络模型。
需要说明的是,第一训练集中包括第一图像以及第一图像中包含的待分类对象的类别,以确保训练后的检测神经网络模型的权重系数是根据能够将第一图像中的待分类对象作为一个类别输出的准确率所确定的。本申请实施例中,初始的检测神经网络模型可以使用目前已经成熟的基于卷积神经网络的算法,比如Faster RCNN、SSD、YOLO网络等,检测神经网络模型用于提取第一图像中的关键区域,即待分类对象的成像区域,并将该待分类对象的成像区域作为一个类别输出。
作为一个示意性的实施例,检测神经网络模型主要包括卷积层和池化层。卷积层是指完成图像卷积操作的层,卷积操作是指用一个卷积核与图像对应区域进行卷积得到一个值,然后不断的移动卷积核和求卷积,以完成对整个图像的卷积。卷积神经网络中,卷积层的计算通常涉及卷积操作概念之外,还包括深度和步长概念,其中深度决定同一区域的神经元个数,即几个卷积核对同一区域进行卷积操作,步长是指卷积核移动像素的个数,如图4所示,为以输入层的高度和宽度是7*7,深度是3,两个过滤器Filter,每个Filter的高度和宽度分别是3*3,深度是3,卷积核大小为3*3为例,说明卷积层的卷积操作示意图,最左边的输入层(Input Volume)和第一个过滤器(Filter W0)进行计算,输入层的第一层和Filter W0的第一层进行运算,输入层的第二层和Filter W0的第二层进行运算,输入层的第三层和Filter W0的第三层进行运算,最后三层结果累加起来,获得了输出层(OutputVolume)的第一个结果矩阵;依次类推,最左边的Input Volume和第二个过滤器(FilterW1)进行计算,获得了Output Volume的第二个结果矩阵。池化层位于卷积层之间,用于将上一层输入数据的预设块区域压缩成一个值,从而逐步压缩减少数据和卷积参数的数量,减少过拟合现象。如图5所示,为池化层操作示意图,其中池化层采用2*2区域中最大值来代表整个区域。
损失函数是神经网络优化的目标函数,神经网络训练或者优化的过程就是最小化损失函数的过程,损失函数值越小,对应预测的结果和真实结果的值就越接近。
在一些实施例中,所述基于第二图像中包括的待区分对象的图像数据以及所述待区分对象的类别形成第二训练样本包括:
获取待区分对象位于图像中指定位置的第二图像,根据所述第二图像以及所述待区分对象的类别形成第二训练样本。
这里,待区分对象统一是指对待分类对象的识别精度具有干扰影响的背景物体。通过获取待区分对象位于图像中指定位置的第二图像,如待区分对象统一位于图像的中心位置的第二图像,可以更加便利的获取待区分对象在第二图像中的位置信息,将第二图像作为网络的输入时,可以根据统一的位置信息对待区分对象的成像区域进行提取。
在一些实施例中,所述将所述第一训练样本和所述第三训练样本输入初始的分类神经网络模型进行训练,包括:
将所述第一训练样本和所述第三训练样本合并,并进行图像增强得到增强图像集;
通过所述增强图像集对所述初始的分类神经网络模型进行训练。
图像增强是指增强图像中的有用信息以改善图像的视觉效果。图像增强的手段可以包括但不限于如下几种方式:第一、翻转变换,通过将原图上的所有的点都绕一个固定点往同一方向,转动同一个角度;第二、色彩抖动,是指用已有颜色在一定范围内进行组合;第三、平移变换,将原图形中所有的点都向同一个方向运动,且运动相等的距离以得到另一个图像;第四、对比度变换,通过改变图像像元的亮度值来改变图像像元的对比度,以改善图像质量;第五、噪声扰动,通过给图像添加噪声。通过图像增强,可以让训练的分类神经网络模型更加鲁棒性、防止过拟合。
在一些实施例中,所述通过所述检测神经网络模型确定所述待识别图像中所包括的对象对应的图像数据,包括:
通过所述检测神经网络模型得到所述待识别图像中包括的对象对应的包围盒坐标;
所述截取所述对象对应的图像数据作为待分类图像数据,通过训练后的分类神经网络模型判断所述对象的类别,包括:
通过训练后的分类神经网络模型提取所述包围盒包括的图像数据,相应于所述包围盒对应的最大分类概率低于阈值时,则所述包围盒对应的对象的类别为待区分对象的分类标签;相应于所述包围盒对应的最大分类概率高于阈值时,则所述包围盒对应的对象的类别为所述最大分类概率对应的待分类对象的分类标签。
这里,检测神经网络模型对输入的待识别图像进行识别,将该待识别图像中所包括的对象的成像区域通过包围盒进行框定并输出包围盒坐标。分类神经网络模型根据包围盒坐标提取所述对象对应的图像数据,由于检测神经网络模型对待识别图像进行识别的过程中,可能会受到待区分对象的干扰而将待区分对象也通过包围盒进行了框定并输出相应坐标,如此,通过分类神经网络模型提取包围盒的对应的图像数据后进行识别,所述包围盒对应的最大分类概率低于阈值时,表示对象为背景物体,则所述包围盒对应的对象的类别为待区分对象的分类标签;所述包围盒对应的最大分类概率高于阈值时,表示对象为待确定类别的目标物体,则所述包围盒对应的对象的类别为所述最大分类概率对应的待分类对象的分类标签。
为了能够对本申请实施例所提供的图像分类方法的应用有更好的理解,请参阅图6,下面具体以待识别图像为无人售货柜拍摄的买家取出商品的图像为例,为本发明实施例提供的图像分类方法进行说明如下:
S11,采集与待识别场景对应的图像作为第一图像对初始的检测神经网络进行训练,得到训练后的检测神经网络模型,记为DetectionNet;
该检测神经网络模型用于提取框定目标物体的包围盒内的图像数据。具体的,待识别场景对应的图像是指无人售货柜拍摄的买家取出商品的图像(以下称真实数据集),目标物体是指商品。检测神经网络模型可以采用已知的基于卷积神经网络的算法,比如Faster RCNN、SSD、YOLO网络等。这里,检测神经网络将所有需要检测商品作为同一类。
S12,将真实数据集的包围盒包括的区域裁剪出来,记为Cropped-真实数据集;
S13,从公开数据集中选取包括待区分对象的图像作为第二图像,并将待区分对象的区域裁剪出来,记为Cropped-背景数据集;具体的,该待区分对象是指对第一图像中目标物体的识别的准确性会造成干扰的背景物体,主要是指买家的服饰。
S14,采用Cropped-真实数据集和Cropped-背景数据集对生成对抗神经网络CycleGAN进行训练,得到能够将Cropped-背景数据集转换为真实数据集风格的CycleGAN。其中,CycleGAN是一种用于对图像风格进行转换的卷积神经网络,可以完成没有一一对应关系的两类图像数据集之间的风格转换。
S15,通过CycleGAN将Cropped-背景数据集转换为具有真实数据集风格的背景数据集,记为Transformed-背景数据集;
S16,将Transformed-背景数据集和Cropped-真实数据集合并成一个数据集并进行数据增强,记为Augmented-数据集;
S17,通过Augmented-数据集对初始的分类神经网络模型进行训练,得到训练后的分类神经网络模型,记为ClassficationNet;ClassficationNet用于对Transformed-背景数据集和Cropped-真实数据集所包含的对象进行识别,确定是否为背景物体、以及确定为目标物体和目标物体的类别。该分类神经网络模型可以采用已知的基于卷积神经网络的算法,如Inception网络、ResNet、DenseNet网络等。
S18,采集与待识别场景对应的图像作为待识别图像,DetectionNet检测所述待识别图像中包含的对象的成像区域,输出包围盒坐标;如,采集无人售货柜拍摄的买家取出商品的图像作为待识别图像,DetectionNet检测到的对象主要包括目标物体(即商品)以及背景物体(即对商品类别的确定造成干扰的买家的服饰)。
S19,ClassficationNet根据检测神经网络模型的输出提取包围盒对应的图像数据,对所述包围盒包括的对象的内容进行识别,识别是否为背景物体、或识别为目标物体时确定目标物体的类别;假设无人售货柜一共有N类商品,加上服饰类,ClassficationNet将输出N+1组分类标签及分类概率,若最大分类概率低于阈值,则判断对象对应的图像数据为背景;否则,输出最大分类概率对应的分类标签以及包围盒坐标作为分类结果。
在上述实施例中,由于检测神经网络模型和分类神经网络模型是相互独立的两个网络,可以将对检测神经网络模型进行训练的样本数据与对分类神经网络模型进行训练的样本数据分离出来,通过引入包括对目标物体的识别造成干扰的背景物体的图像集对分类神经网络模型进行训练,可以大大提升分类神经网络模型对背景物体的识别准确率,从而无法获得足够的真实图像作为训练样本的前提下,检测神经网络模型对待识别图像中的对象进行识别并输出对应包围盒包括目标物体,还可能包括背景物体,而通过提升分类神经网络对背景物体的识别准确率,可以将降低误检率的任务主要放在分类神经网络来解决。
比如,对于检测神经网络模型,可以检测出训练样本中标注的商品,然而对于训练样本中不包括的物体,比如服饰,由于衣服的款式、颜色是多种多样的,在采集真实的样本数据的时,由于时间和成本的限制,样本数据仅会包括一小部分衣服,对于训练样本中没有类似的衣服的物体,则检测神经网络容易把衣服误认为某一个颜色接近的商品,从而影响购物清单的推算。通过将检测神经网络模型和分类神经网络模型形成为相互独立的两个网络,可以改变训练数据的一致性要求,采用公开数据集中包含服饰的图像作为对分类神经网络模型的训练样本,并采用CycleGAN对公开数据集中的图像的风格转换为与真实的样本数据的风格一致,大大减少训练样本的采集、标注成本,且CycleGAN仅需对图像的局部区域进行风格转换,有利于CycleGAN的训练收敛和性能提升。
本发明实施例提供的图像分类方法可以采用终端侧或服务器侧实施,请参阅图7,为本发明实施例提供的计算机设备的一个可选的硬件结构示意图,用于实现本申请实施例的图像分类方法的各种终端或服务器均可以是广义理解上的计算机设备,包括:处理器101、存储器102和网络接口104,各个组件通过总线系统105耦合在一起。可以理解的,总线系统105用于实现这些组件之间的连接通信。总线系统105除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线。
存储器102用于存储能够在处理器101上运行的计算机程序,可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-OnlyMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)。本发明实施例描述的存储器旨在包括但不限于这些和任意其它适合类别的存储器。
本发明实施例中的存储器102用于存储各种类别的数据以支持图像分类装置的操作。这些数据的示例包括:用于在图像分类装置上操作的任何可执行程序,如操作系统和应用程序;待识别图像;其中,操作系统包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。实现本发明实施例提供的图像分类方法的图像分类装置可以包含在应用程序中。
上述本发明实施例揭示的图像分类方法可以由处理器101运行计算机程序而实现。处理器101可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器101可以是通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器101可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器101可以是微处理器或者任何常规的处理器等。结合本发明实施例所提供的图像分类方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,图像分类装置可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,ProgrammableLogic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device),用于执行前述方法。
在示例性实施例中,是本发明一实施例提供的图像分类装置的结构示意图,该图像分类装置包括:检测模块12,用于获取待识别图像输入训练后的检测神经网络模型,通过所述检测神经网络模型确定所述待识别图像中所包括的对象对应的图像数据;分类模块13,用于截取所述对象对应的图像数据作为待分类图像数据,通过训练后的分类神经网络模型判断所述对象的类别。
在一些实施例中,所述图像分类装置还包括训练模块11,所述训练模块11包括:第一样本单元113,用于基于第一图像中包括的待分类对象的图像数据以及所述待分类对象的类别形成第一训练样本,所述第一图像为基于待识别场景获得的图像;第二样本单元115,用于基于第二图像中包括的待区分对象的图像数据以及所述待区分对象的类别形成第二训练样本,所述第二图像为基于公开数据集获得图像;第三样本单元117,用于将所述第二训练样本和所述第一训练样本输入生成对抗神经网络,通过所述对抗神经网络对所述第二训练样本中的所述待区分对象的图像数据进行风格转换,得到第三训练样本;分类训练单元119,用于将所述第一训练样本和所述第三训练样本输入初始的分类神经网络模型进行训练,直至所述分类神经网络模型的损失函数满足收敛条件,得到训练后的所述分类神经网络模型。
在一些实施例中,所述第一样本单元113,具体用于将所述第一图像、所述第一图像中包括的待分类对象的图像数据的位置信息以及所述待分类对象的类别形成第一训练样本;和/或,所述第二样本单元115,具体用于将所述第二图像、所述第二图像中包括的待区分对象的图像数据的位置信息以及所述待区分对象的类别形成第二训练样本。
在一些实施例中,所述第一样本单元113,具体用于将所述第一图像以及所述第一图像中包括的待分类对象的类别输入训练后的检测神经网络模型;通过所述检测神经网络模型对所述待分类对象进行识别,得到所述待分类对象的图像数据的包围盒,根据所述包围盒以及所述待分类对象的类别形成第一训练样本。
在一些实施例中,所述训练模块11还包括检测训练单元118,所述检测训练单元118用于将第一训练集输入初始的检测神经网络模型进行训练,所述第一训练集包括基于待识别场景获得的第一图像以及所述第一图像中包含的待分类对象的类别;直至所述检测神经网络模型的损失函数满足收敛条件时,得到训练后的所述检测神经网络模型。
在一些实施例中,所述第二样本单元115,具体用于获取待区分对象位于图像中指定位置的第二图像,根据所述第二图像以及所述待区分对象的类别形成第二训练样本。
在一些实施例中,所述分类训练单元119,具体用于将所述第一训练样本和所述第三训练样本合并,并进行图像增强得到增强图像集;通过所述增强图像集对所述初始的分类神经网络模型进行训练。
在一些实施例中,所述检测模块12,具体用于通过所述检测神经网络模型得到所述待识别图像中包括的对象对应的包围盒坐标;所述分类模块13,具体用于通过训练后的分类神经网络模型提取所述包围盒包括的图像内容,相应于所述包围盒对应的最大分类概率低于阈值时,则所述包围盒对应的对象的类别为待区分对象的分类标签;相应于所述包围盒对应的最大分类概率高于阈值时,则所述包围盒对应的对象的类别为所述最大分类概率对应的待分类对象的分类标签。
在示例性实施例中,本发明实施例还提供了一种可读存储介质,例如包括可执行程序的存储器,上述可执行程序可由处理器执行,以完成前述方法的步骤。可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备,如移动电话、计算机设备、平板设备、个人数字助理、医疗设备等。
以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。