CN111008640B - 图像识别模型训练及图像识别方法、装置、终端及介质 - Google Patents
图像识别模型训练及图像识别方法、装置、终端及介质 Download PDFInfo
- Publication number
- CN111008640B CN111008640B CN201910990388.7A CN201910990388A CN111008640B CN 111008640 B CN111008640 B CN 111008640B CN 201910990388 A CN201910990388 A CN 201910990388A CN 111008640 B CN111008640 B CN 111008640B
- Authority
- CN
- China
- Prior art keywords
- image recognition
- preset
- recognition model
- training
- layer
- 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
Links
- 238000012549 training Methods 0.000 title claims abstract description 139
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000012360 testing method Methods 0.000 claims abstract description 70
- 238000013528 artificial neural network Methods 0.000 claims abstract description 56
- 238000013138 pruning Methods 0.000 claims abstract description 49
- 239000013598 vector Substances 0.000 claims abstract description 28
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 claims description 56
- 238000012545 processing Methods 0.000 claims description 27
- 238000004422 calculation algorithm Methods 0.000 claims description 16
- 238000004364 calculation method Methods 0.000 claims description 10
- 238000001514 detection method Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 description 19
- 210000002569 neuron Anatomy 0.000 description 14
- 230000000694 effects Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 11
- 230000006835 compression Effects 0.000 description 9
- 238000007906 compression Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 230000004913 activation Effects 0.000 description 6
- 238000002372 labelling Methods 0.000 description 6
- 238000010606 normalization Methods 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000003062 neural network model Methods 0.000 description 3
- 238000004904 shortening Methods 0.000 description 3
- 239000003086 colorant Substances 0.000 description 2
- 230000009193 crawling Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 238000007599 discharging Methods 0.000 description 1
- 235000004280 healthy diet Nutrition 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 235000015097 nutrients Nutrition 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
Abstract
本发明提供一种图像识别模型训练方法,包括:采集多张原始图像及对应的类别作为原始数据集并划分为训练集和测试集;确定预设Resnet网络中待剪枝的层,对待剪枝的层进行剪枝;输入训练集至剪枝后的Resnet网络和其他预设的神经网络中进行训练;连接所述剪枝后的Resnet网络及其他预设的神经网络输出的特征为一维向量并输入softmax分类器中计算得到损失值,在损失值小于或等于预设损失阈值时,输出图像识别模型;使用测试集进行测试;当测试通过率大于预设通过率阈值时,输出训练得到的图像识别模型。本发明还提供一种图像识别模型训练方法、图像识别方法、图像识别模型训练装置、终端及介质。本发明能够缩短训练图像识别模型的时间,提高图像的识别率。
Description
技术领域
本发明涉及图像识别技术领域,具体涉及一种图像识别模型训练方法、图像识别方法、图像识别模型训练装置、终端及介质。
背景技术
近年来,随着人们生活质量的提高,人们对美食的追求越来越多样化。健康的饮食正逐渐成为人们追求生活品质的流行趋势之一。而这其中的关键在于食物信息的获取。如何通过简单的图片或者照片获取菜品信息,如热量,营养成分等是简化食物信息获取的重要手段之一,其中食物的自动识别是食物信息获取的重要一步。
传统的图像识别方法难以有效应对食物图像的自动分类,神经网络对食物图像的分类有一定的效果。但浅层神经网络因模型容量较小等原因容易欠拟合,深层神经网络虽然效果优于浅层神经网络,但是由于单一模型的性能和容量而限制其识别效果的进一步提升。
因此,有必要提供一种新的图像识别模型,以对图像既有很好的适应性又有较好的识别效果。
发明内容
鉴于以上内容,有必要提出一种图像识别模型训练方法、图像识别方法、图像识别模型训练装置、终端及介质,能够通过对Resnet网络进行剪枝,缩短了训练Resnet网络的时间;训练多模型的图像识别模型,提高了图像的识别率。
为实现上述目的,本发明的第一方面提供一种图像识别模型训练方法,所述方法包括:
采集原始数据集,其中,所述原始数据集包括多张原始图像及对应的类别;
将所述原始数据集划分为训练集和测试集;
确定预设Resnet网络中待剪枝的层,对待剪枝的层进行剪枝;
输入所述训练集至剪枝后的Resnet网络和其他预设的神经网络中进行训练;
连接所述剪枝后的Resnet网络及其他预设的神经网络输出的特征为一维向量;
将所述一维向量输入softmax分类器中计算得到损失值;
当所述损失值小于或等于预设损失阈值时,输出图像识别模型;
将所述测试集输入所述图像识别模型中得到测试通过率;
当所述测试通过率大于预设通过率阈值时,输出与所述测试通过率阈值对应的图像识别模型作为训练得到的图像识别模型。
在一个可选的实施例中,所述确定预设Resnet网络中待剪枝的层包括:
将所述训练集作为第一特征图输入至所述预设Resnet网络中的残差块并获取所述残差块的最后一层输出的第一结果;
对所述第一特征图进行降采样,将降采样后的第一特征图与所述残差块的第一层输出的第二特征图进行累加输入至最后一层,获取所述最后一层的第二结果;
计算所述第一结果与所述第二结果的最小二乘;
判断所述最小二乘是否小于预设阈值;
当所述最小二乘小于或等于所述预设阈值时,确定所述残差块为待剪枝的层;
当所述最小二乘大于所述预设阈值时,确定所述残差块不为待剪枝的层。
在一个可选的实施例中,所述对待剪枝的层进行剪枝包括:
预先定义一个二进制掩模,其中,所述二进制掩模中的值与最后一层残差块对应的权重相同;
对于每个所述待剪枝的层,将前向传播时每层的权重按绝对值大小排序,并将绝对值小于预设阈值的权重对应的掩模设为0;
将反向传播时每层对应前向传播掩模为0的位置的掩模设置为0。
在一个可选的实施例中,所述输入所述训练集至剪枝后的Resnet网络和其他预设的神经网络中进行训练包括:
输入所述训练集至剪枝后的Resnet网络和其他预设的神经网络中;
通过所述Resnet网络根据所述前向传播和所述后向传播时设置的掩模与所述训练集进行向量点乘,并对进行向量点乘后的训练集进行训练;
通过所述其他预设的神经网络对所述训练集进行训练。
在一个可选的实施例中,在所述采集原始数据集之后,所述方法还包括:
将所述多张原始图像中质量小于预设质量阈值的图像进行剔除得到剩余图像;
采用目标检测算法检测每张剩余图像中的目标区域;
分割出所述每张剩余图像中的所述目标区域得到多张目标图像;
对所述多张目标图像进行白平衡处理和均衡化处理。
在一个可选的实施例中,在对所述多张目标图像进行白平衡处理和均衡化处理之后,所述方法还包括:
计算每一类别的目标图像的数量;
判断所述数量是否小于预设数量阈值;
当所述数量小于所述预设数量阈值时,通过扰动法增加与所述数量对应的类别的目标图像的数量。
为实现上述目的,本发明的第二方面提供一种图像识别方法,所述方法包括:
将待识别的图像输入至预先训练好的图像识别模型中,其中,所述图像识别模型训练方法如上述实施例中任意一个实施例所述;
获取所述图像识别模型中每个模型输出的种类中每个类别的概率值;
根据投票算法计算同一类别对应的概率值的平均值;
选取平均值中的最高值所对应的类别作为所述待识别的图像的识别结果。
为实现上述目的,本发明的第三方面提供一种图像识别模型训练装置,所述装置包括:
采集模块,用于采集原始数据集,其中,所述原始数据集包括多张原始图像及对应的类别;
划分模块,用于将所述原始数据集划分为训练集和测试集;
剪枝模块,用于确定预设Resnet网络中待剪枝的层,对待剪枝的层进行剪枝;
输入模块,用于输入所述训练集至剪枝后的Resnet网络和其他预设的神经网络中进行训练;
连接模块,用于连接所述剪枝后的Resnet网络及其他预设的神经网络输出的特征为一维向量;
计算模块,用于将所述一维向量输入softmax分类器中计算得到损失值;
输出模块,用于当所述损失值小于或等于预设损失阈值时,输出图像识别模型;
测试模块,用于将所述测试集输入所述图像识别模型中得到测试通过率;
所述输出模块,还用于当所述测试通过率大于预设通过率阈值时,输出与所述测试通过率阈值对应的图像识别模型作为训练得到的图像识别模型。
为实现上述目的,本发明的第四方面提供一种终端,所述终端包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现所述的图像识别模型训练方法,或者实现所述的图像识别方法。
为实现上述目的,本发明的第五方面一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述的图像识别模型训练方法,或者实现所述的图像识别方法。
综上所述,本发明实施例所述的图像识别模型训练方法、图像识别方法、图像识别模型训练装置、终端及介质,通过对Resnet网络进行剪枝实现了对Resnet网络的压缩,从而缩短了训练Resnet网络的时间;此外,同时对多个神经网络进行训练,并将训练得到的多个神经网络模型进行融合得到基于多模型的图像识别模型,具有较强的适应性;使用训练得到的图像识别模型识别图像具有较高的识别率。
附图说明
图1是本发明实施例一提供的图像识别模型训练方法的流程图。
图2是本发明实施例二提供的图像识别方法的流程图。
图3是本发明实施例三提供的图像识别模型训练装置的流程图。
图4是本发明实施例四提供的图像识别装置的流程图。
图5是本发明实施例五提供的终端的结构示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
实施例一
图1是本发明实施例一提供的图像识别模型训练方法的流程图。
如图1所示,所述图像识别模型训练方法具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些可以省略。
S11,采集原始数据集。
在训练基于多模型的图像识别模型之前,需要采集原始数据集。所述原始数据集包括多张原始图像及对应的类别。所述原始数据集中包括N个类别,其中,N为大于或等于2的正整数。
在一个可选的实施例中,所述采集原始数据集包括:
1)使用网络爬虫技术爬取多张原始图像;
本实施例中,使用网络爬虫技术从主流图像搜索引擎和图像分享网站中随机或任意爬取多张图像。其中,所述主流图像搜索引擎可以是,例如百度、谷歌等,所述图像分享网站可以是,例如Flickr、Instagram等。所述网络爬虫技术为现有技术,本发明在此不再赘述。
2)对所述多张原始图像进行类别标注;
在本实施例中,经过类别标注之后,将所述多张图像及对应的类别作为原始数据集。
需要说明的是,由于图像分享网站Flickr、Instagram中的图像已标注有类别,此时可以确定所标注的类别是否正确,将不正确的类别进行修正或删除。
3)将所述多张原始图像及对应的类别作为所述原始数据集。
确定出原始数据集后即可开始训练图像识别模型,便于后续利用训练好的图像识别模型识别需要进行类别识别的图像。
在一个可选的实施例中,在所述采集原始数据集之后,所述方法还包括:
将所述多张原始图像中质量小于预设质量阈值的图像进行剔除得到剩余图像;
采用目标检测算法检测每张剩余图像中的目标区域;
分割出所述每张剩余图像中的所述目标区域得到多张目标图像;
对所述多张目标图像进行白平衡处理和均衡化处理。
在该可选的实施例中,可以计算每张原始图像的质量,例如均值,方差等,将均值小于预设均值阈值的原始图像剔除,或者将方差小于预设方差阈值的原始图像剔除。
在实际情景中,具有特征的区域在一张图像中占据的比例可能较小,例如,原始图像中的仅位于整幅图像中的中间位置有目标,原始图像中的其他位置可能为空白,将所述原始图像中的目标所在的区域分割出来,有利于加速图像识别模型在训练过程中的特征提取。
可以使用YOLO目标检测算法检测出所述图像中的目标区域,再将所述目标区域从所述图像中分割出来。
由于爬取到的多张原始图像质量层次不齐,图像亮度不一,导致分割出的图像无法反应目标的真实颜色,为了保持整体的稳定性,需要对多张目标图像进行白平衡和均衡化处理。
在该可选的实施例中,可以使用开源的白平衡工具对所述目标图像进行白平衡处理,使用开源的均衡化工具对所述目标图像进行均衡化处理。对经过白平衡处理和均衡化处理后的多张目标图像进行类别标注。
在一个可选的实施例中,在对所述多张目标图像进行白平衡处理和均衡化处理之后,所述方法还包括:
计算每一类别的目标图像的数量;
判断所述数量是否小于预设数量阈值;
当所述数量小于所述预设数量阈值时,通过扰动法增加与所述数量对应的类别的目标图像的数量。
若某一类别的目标图像的数量少于预设数量阈值,可以采用扰动法对该类别的目标图像进行扰动,以此来增加该类别的目标图像的数量,避免由于某一类别的目标图像的样本数量不足,导致训练得到的图像识别模型对该类别的图像的泛化能力较差。关于扰动法为现有技术,本发明在此不再赘述。当然,也可以再次采用网络爬虫技术爬取该类别的多张图像直至该类别的目标图像的数量大于或等于所述预设数量阈值即可。
S12,将所述原始数据集划分为训练集和测试集。
基于所述原始图像及对应的类别构建原始数据集,将原始数据集按照预设比例,例如3:1,划分为训练集、测试集。
所述训练集用于训练图像识别模型和确定图像识别模型参数,所述测试集用于测试所训练好的图像识别模型的推广能力。
S13,确定预设Resnet网络中待剪枝的层,对待剪枝的层进行剪枝。
其中,所述原始Resnet网络为Resnet-V2网络。残差网络Resnet是指由多个残差块构建的深度神经网络,其中每一个残差块包括三个网络层。
由于对原始的Resnet-V2网络进行训练时,会非常耗时,浪费CPU的处理资源,故需要对原始的Resnet-V2网络进行剪枝,以实现对原始的Resnet-V2网络的压缩,缩短训练原始的Resnet-V2网络的时间,减少CPU的计算量。
在一个可选的实施例中,所述确定预设Resnet网络中待剪枝的层包括:
将所述训练集作为第一特征图输入至所述预设Resnet网络中的残差块并获取所述残差块的最后一层输出的第一结果;
对所述第一特征图进行降采样,将降采样后的第一特征图与所述残差块的第一层输出的第二特征图进行累加输入至最后一层,获取所述最后一层的第二结果;
计算所述第一结果与所述第二结果的最小二乘;
判断所述最小二乘是否小于预设阈值;
当所述最小二乘小于或等于所述预设阈值时,确定所述残差块为待剪枝的层;
当所述最小二乘大于所述预设阈值时,确定所述残差块不为待剪枝的层。
现有技术中,每个神经元对输入的特征图进行降采样后直接输入至下一个神经元,然后根据对最终输出结果的贡献大小来对模型的所有神经元们进行排序并舍去贡献度低的神经元,而若一次性剪枝的神经元过多,会造成剪枝后的神经元对支路上的输出有影响。而本实施例中,将降采样后的第一特征图与所述残差块的第一层输出的第二特征图进行累加输入至最后一层,目的是为了shortcut支路输出仍是上一个残差块的输出,确保即使一次性剪枝的神经元过多时剪枝后的结果对Resnet中的shortcut支路也不会造成影响,从而确保被剪枝后的模型在性能上不会受到影响。
如果输入第一特征图至残差块中得到的第一结果,与对第一特征图进行降采样后输入至残差块中得到的第二结果差别非常小(第一结果与第二结果的最小二乘小于预设阈值),表明降采样后对该残差块无影响或影响较小忽略不计,该残差块对于剪枝的敏感程度变化不大,则该残差块可以作为剪枝层进行压缩。如果第一结果与第二结果差别较大(第一结果与第二结果的最小二乘大于预设阈值),表明降采样后对该残差块影响较大,该残差块对于剪枝较为敏感,则该残差块不可以作为剪枝层进行压缩,否则压缩后会减少第一特征图的有用特征,导致训练Resnet网络得到的网络模型的预测准确率较低。
在一个可选的实施例中,所述对待剪枝的层进行剪枝包括:
预先定义一个二进制掩模,其中,所述二进制掩模中的值与最后一层残差块对应的权重相同;
对于每个所述待剪枝的层,将前向传播时每层的权重按绝对值大小排序,并将绝对值小于预设阈值的权重对应的掩模设为0;
将反向传播时每层对应前向传播掩模为0的位置的掩模设置为0。
被确定为待剪枝的层越多,Resnet网络压缩越严重,但误差可能也会随之增加,此时可以在剪枝过程中定义一个二进制掩模(mask),所述二进制掩模为由0和1组成的二维矩阵,掩模中的值和最后一层残差块对应的权重相同。若某个层被去除,则对应的掩模为0,否则为1。因此,在前向传播的过程中,剪枝操作可以归结为权重与掩模的向量点乘。这样避免了常规的条件判断,可以充分发挥GPU的并行计算的能力。对于反向传播,只需要根据掩模,将对应位置为0的强行置0。相对于现有技术中,在反向传播时先计算梯度并将梯度较小的设置为0再反向传播而言,本可选的实施中,在反向传播时直接将对应前向传播时掩模为0的位置强置为0,减少了计算过程,提高了剪枝的效率,剪枝越快,越有利于提高训练多模型的图像识别模型的效率。
对Resnet网络中的残差块进行剪枝后,在输入所述训练集至剪枝后的Resnet网络中,根据前向传播和后向传播时设置的掩模与所述训练集进行向量点乘。
S14,输入所述训练集至剪枝后的Resnet网络和其他预设的神经网络中进行训练。
其中,所述其他预设的神经网络包括:基于inception-V4的图像识别模型、基于inception-Resnet-V2的图像识别模型及基于nasnet的图像识别模型。
选择Resnet-v2、inception-v4、inception-Resnet-v2及nasnet这四种网络的原因,在于这四种网络具有不同的网络结构且基于此训练得到的网络模型在图像数据集(例如,ImageNet)上具有较佳的识别效果。
在本实施例中,将所述训练集同时输入至剪枝后的Resnet网络和inception-v4、inception-Resnet-v2及nasnet这三个神经网络中,同步训练基于inception-V4的图像识别模型、基于inception-Resnet-V2的图像识别模型及基于nasnet的图像识别模型。
初始学习率为0.0001,每训练40个epoch学习率下降10倍,共对数据集训练120个epoch,激活方法optimizer选择rmsprop,训练环境为CentOS7.2,所用GPU为Nvidia P100×2,训练时对于不同的神经网络输入图片大小不一样,例如Resnet-v2为224×224,inception-v4为299×299。
S15,连接所述剪枝后的Resnet网络及其他预设的神经网络输出的特征为一维向量。
本实施例中,剪枝后的Resnet网络和inception-v4、inception-Resnet-v2及nasnet网络的全连接层均会输出一个特征,此时将这四种网络输出的特征进行连接形成一个一维向量。
S16,将所述一维向量输入softmax分类器中计算得到损失值。
其中,所述softmax分类器依次包括归一层、激活层和损失层。
所述归一层可以采用最大-最小归一方法对所述一维向量进行归一化处理。
所述激活层可以采用tanh函数、sigmoid函数。
所述损失层可以采用softmax函数计算激活层输出的一维向量的损失值。
S17,当所述损失值小于或等于预设损失阈值时,输出图像识别模型。
本实施例中,当计算得到的损失值小于或等于所述预设损失阈值时,表明剪枝后的Resnet网络及其他预设的神经网络已经达到了最佳收敛,此时可以结束剪枝后的Resnet网络及其他预设的神经网络的训练过程。
当计算得到的损失值大于所述预设损失阈值时,表明剪枝后的Resnet网络及其他预设的神经网络没有达到最佳收敛,此时需要重新划分新的训练集对剪枝后的Resnet网络及其他预设的神经网络进行训练,直到softmax分类器计算得到的损失值小于或等于所述预设损失阈值。
S18,将所述测试集输入所述图像识别模型中得到测试通过率。
当图像识别模型训练好之后,还需要通过测试集测试训练得到的图像识别模型的准确率。
S19,当所述测试通过率大于预设通过率阈值时,输出与所述测试通过率阈值对应的图像识别模型作为训练得到的图像识别模型。
测试通过率大于预设通过率阈值,表明使用训练得到的图像识别模型对测试集进行测试时测试效果较佳。测试通过率小于预设通过率阈值,表明使用训练得到的图像识别模型对测试集进行测试时测试效果较差。
若测试效果较差,则需要重新对原始数据集进行划分,并基于新划分得到的训练集训练多模型的图像识别模型,直到基于新划分得到的测试集的测试通过率大于预设通过率阈值。
综上,本发明实施例通过对Resnet网络进行剪枝,实现了对Resnet网络的压缩,从而缩短了训练Resnet网络的时间;此外,同时对多个神经网络进行训练,并将训练得到的多个神经网络模型进行融合得到基于多模型的图像识别模型,具有较强的适应性,使用训练得到的图像识别模型识别图像具有较高的识别率。再者,通过判断每一类别的图像的数量,确保某一类别的图像的数量足够多,基于足够多的数据集训练得到的图像识别模型有利于提高图像识别模型的泛化能力,使得所述图像识别模型能够识别任一类别的图像。
实施例二
图2是本发明实施例二提供的图像识别方法的流程图。
如图2所示,所述图像识别方法具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些可以省略。
S21,将待识别的图像输入至预先训练好的图像识别模型中。
本实施例中,所述图像识别模型为由多个网络模型同时进行训练得到的,所述图像识别模型训练方法如实施例一及其相关描述。所述多个网络模型包括:基于Resnet-V2的图像识别模型、基于inception-V4的图像识别模型、基于inception-Resnet-V2的图像识别模型及基于nasnet的图像识别模型。
S22,获取所述图像识别模型中每个模型输出的种类中每个类别的概率值。
本实施例中有N个类别,其中,N为大于或等于2的正整数。
可以先对所述待识别的图像进行白平衡和均衡化处理,然后将白平衡和均衡化处理后的图像分别输入至基于Resnet-V2的图像识别模型、基于inception-V4的图像识别模型、基于inception-Resnet-V2的图像识别模型及基于nasnet的图像识别模型中,对分类结果进行预测,分别输出N个类别对应的N个概率值。即,无论是基于Resnet-V2的图像识别模型,还是基于inception-V4的图像识别模型、基于inception-Resnet-V2的图像识别模型或者基于nasnet的图像识别模型,输出的概率值数量均与类别数量相等,且每一个类别都有一个概率值。
S23,根据投票算法计算同一类别对应的概率值的平均值。
由于所述图像识别模型中的每一个图像识别模型均输出了多个类别的概率值,因而需要采用投票算法计算同一个类别对应的平均概率值,基于所述平均概率值确定最终的识别结果。
在一个可选的实施例中,所述根据投票算法计算同一类别对应的概率值的平均值包括:
其中,i=1,…,N是类别,N是类别数量,Pnetm(i)是第m个图像识别模型输出的N个概率值中对应类别i的概率值,am是第m个图像识别模型的权重,Pave(i)是m个图像识别模型在类别i的概率值的平均值。
应当理解的是,同一个图像识别模型输出的所有类别的概率值之和为1。例如,基于Resnet-V2的图像识别模型输出了5个类别,其中,第1个类别的概率值为0.1,第2个类别的概率值为0.7,第3个类别的概率值为0.1,第4个类别的概率值为0.1,第5个类别的概率值为0。再如,基于inception-Resnet-V2的图像识别模型输出了5个类别,其中,第1个类别的概率值为0.05,第2个类别的概率值为0.85,第3个类别的概率值为0.1,第4个类别的概率值为0,第5个类别的概率值为0。
在一个可选的实施例中,由于不同的图像识别模型的性能有所差异,识别出同一类别的概率值也会有所不同,还可以为不同的图像识别模型赋予不同的权重,将性能好的图像识别模型赋予较大的权重,将性能差的图像识别模型赋予较小的权重,使得性能好的图像识别模型输出的类别的概率值进一步变大,性能差的图像识别模型输出的类别的概率值进一步减少,从而整体上增加识别概率,提高图像的识别准确度。
S24,选取平均值中的最高值所对应的类别作为所述待识别的图像的识别结果。
示例性的,假设N=5,即共有5个类别,第1类别的概率值的平均值为0.05,第2类别的概率值的平均值为0.8,第3类别的概率值的平均值为0.05,第4类别的概率值的平均值为0.1,第5类别的概率值的平均值为0。由于在这5个类别中第2类别的概率值的平均值最高,则第2类别作为所述待识别的图像的最终识别概率。
综上,本发明实施例提供的图像识别方法,采用由多个图像识别模型构成的图像识别模型对待识别的图像进行预测,并给出每一个类别的概率值,再基于投票算法综合不同图像识别模型的预测结果,得到了最终的类别,相比于传统采用单一的图像识别模型,本实施中所述的图像识别模型的识别准确度更高。
实施例三
图3是本发明实施例三提供的图像识别模型训练装置的结构图。
在一些实施例中,所述图像识别模型训练装置可以包括多个由程序代码段所组成的功能模块。所述图像识别模型训练装置中的各个程序段的程序代码可以存储于终端的存储器中,并由所述至少一个处理器所执行,以执行(详见图1描述)图像识别模型训练的功能。
本实施例中,所述图像识别模型训练装置根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:采集模块301、划分模块302、剪枝模块303、输入模块304、连接模块305、计算模块306、输出模块307及测试模块308。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。
采集模块301,用于采集原始数据集。
在训练基于多模型的图像识别模型之前,需要采集原始数据集。所述原始数据集包括多张原始图像及对应的类别。
所述原始数据集中包括N个类别,其中,N为大于或等于2的正整数。
在一个可选的实施例中,所述采集模块301采集原始数据集包括:
1)使用网络爬虫技术爬取多张原始图像;
本实施例中,使用网络爬虫技术从主流图像搜索引擎和图像分享网站中随机或任意爬取多张图像。其中,所述主流图像搜索引擎可以是,例如百度、谷歌等,所述图像分享网站可以是,例如Flickr、Instagram等。所述网络爬虫技术为现有技术,本发明在此不再赘述。
2)对所述多张原始图像进行类别标注;
在本实施例中,经过类别标注之后,将所述多张图像及对应的类别作为原始数据集。
需要说明的是,由于图像分享网站Flickr、Instagram中的图像已标注有类别,此时可以确定所标注的类别是否正确,将不正确的类别进行修正或删除。
3)将所述多张原始图像及对应的类别作为所述原始数据集。
确定出原始数据集后即可开始训练图像识别模型,便于后续利用训练好的图像识别模型识别需要进行类别识别的图像。
在一个可选的实施例中,在所述采集原始数据集之后,所述图像识别模型训练装置30还包括:
剔除模块,用于将所述多张原始图像中质量小于预设质量阈值的图像进行剔除得到剩余图像;
检测模块,用于采用目标检测算法检测每张剩余图像中的目标区域;
分割模块,用于分割出所述每张剩余图像中的所述目标区域得到多张目标图像;
处理模块,用于对所述多张目标图像进行白平衡处理和均衡化处理。
在该可选的实施例中,可以计算每张原始图像的质量,例如均值,方差等,将均值小于预设均值阈值的原始图像剔除,或者将方差小于预设方差阈值的原始图像剔除。
在实际情景中,具有特征的区域在一张图像中占据的比例可能较小,例如,原始图像中的仅位于整幅图像中的中间位置有目标,原始图像中的其他位置可能为空白,将所述原始图像中的目标所在的区域分割出来,有利于加速图像识别模型在训练过程中的特征提取。
可以使用YOLO目标检测算法检测出所述图像中的目标区域,再将所述目标区域从所述图像中分割出来。
由于爬取到的多张原始图像质量层次不齐,图像亮度不一,导致分割出的图像无法反应目标的真实颜色,为了保持整体的稳定性,需要对多张目标图像进行白平衡和均衡化处理。
在该可选的实施例中,可以使用开源的白平衡工具对所述目标图像进行白平衡处理,使用开源的均衡化工具对所述目标图像进行均衡化处理。对经过白平衡处理和均衡化处理后的多张目标图像进行类别标注。
在一个可选的实施例中,在对所述多张目标图像进行白平衡处理和均衡化处理之后,所述图像识别模型训练装置30还包括:判断模块,用于:
计算每一类别的目标图像的数量;
判断所述数量是否小于预设数量阈值;
当所述数量小于所述预设数量阈值时,通过扰动法增加与所述数量对应的类别的目标图像的数量。
若某一类别的目标图像的数量少于预设数量阈值,可以采用扰动法对该类别的目标图像进行扰动,以此来增加该类别的目标图像的数量,避免由于某一类别的目标图像的样本数量不足,导致训练得到的图像识别模型对该类别的图像的泛化能力较差。关于扰动法为现有技术,本发明在此不再赘述。当然,也可以再次采用网络爬虫技术爬取该类别的多张图像直至该类别的目标图像的数量大于或等于所述预设数量阈值即可。
划分模块302,用于将所述原始数据集划分为训练集和测试集。
基于所述原始图像及对应的类别构建原始数据集,将原始数据集按照预设比例,例如3:1,划分为训练集、测试集。
所述训练集用于训练图像识别模型和确定图像识别模型参数,所述测试集用于测试所训练好的图像识别模型的推广能力。
剪枝模块303,用于确定预设Resnet网络中待剪枝的层,对待剪枝的层进行剪枝。
其中,所述原始Resnet网络为Resnet-V2网络。残差网络Resnet是指由多个残差块构建的深度神经网络,其中每一个残差块包括三个网络层。
由于对原始的Resnet-V2网络进行训练时,会非常耗时,浪费CPU的处理资源,故需要对原始的Resnet-V2网络进行剪枝,以实现对原始的Resnet-V2网络的压缩,缩短训练原始的Resnet-V2网络的时间,减少CPU的计算量。
在一个可选的实施例中,所述剪枝模块303确定预设Resnet网络中待剪枝的层包括:
将所述训练集作为第一特征图输入至所述预设Resnet网络中的残差块并获取所述残差块的最后一层输出的第一结果;
对所述第一特征图进行降采样,将降采样后的第一特征图与所述残差块的第一层输出的第二特征图进行累加输入至最后一层,获取所述最后一层的第二结果;
计算所述第一结果与所述第二结果的最小二乘;
判断所述最小二乘是否小于预设阈值;
当所述最小二乘小于或等于所述预设阈值时,确定所述残差块为待剪枝的层;
当所述最小二乘大于所述预设阈值时,确定所述残差块不为待剪枝的层。
现有技术中,每个神经元对输入的特征图进行降采样后直接输入至下一个神经元,然后根据对最终输出结果的贡献大小来对模型的所有神经元们进行排序并舍去贡献度低的神经元,而若一次性剪枝的神经元过多,会造成剪枝后的神经元对支路上的输出有影响。而本实施例中,将降采样后的第一特征图与所述残差块的第一层输出的第二特征图进行累加输入至最后一层,目的是为了shortcut支路输出仍是上一个残差块的输出,确保即使一次性剪枝的神经元过多时剪枝后的结果对Resnet中的shortcut支路也不会造成影响,从而确保被剪枝后的模型在性能上不会受到影响。
如果输入第一特征图至残差块中得到的第一结果,与对第一特征图进行降采样后输入至残差块中得到的第二结果差别非常小(第一结果与第二结果的最小二乘小于预设阈值),表明降采样后对该残差块无影响或影响较小忽略不计,该残差块对于剪枝的敏感程度变化不大,则该残差块可以作为剪枝层进行压缩。如果第一结果与第二结果差别较大(第一结果与第二结果的最小二乘大于预设阈值),表明降采样后对该残差块影响较大,该残差块对于剪枝较为敏感,则该残差块不可以作为剪枝层进行压缩,否则压缩后会减少第一特征图的有用特征,导致训练Resnet网络得到的网络模型的预测准确率较低。
在一个可选的实施例中,所述剪枝模块303对待剪枝的层进行剪枝包括:
预先定义一个二进制掩模,其中,所述二进制掩模中的值与最后一层残差块对应的权重相同;
对于每个所述待剪枝的层,将前向传播时每层的权重按绝对值大小排序,并将绝对值小于预设阈值的权重对应的掩模设为0;
将反向传播时每层对应前向传播掩模为0的位置的掩模设置为0。
被确定为待剪枝的层越多,Resnet网络压缩越严重,但误差可能也会随之增加,此时可以在剪枝过程中定义一个二进制掩模(mask),所述二进制掩模为由0和1组成的二维矩阵,掩模中的值和最后一层残差块对应的权重相同。若某个层被去除,则对应的掩模为0,否则为1。因此,在前向传播的过程中,剪枝操作可以归结为权重与掩模的向量点乘。这样避免了常规的条件判断,可以充分发挥GPU的并行计算的能力。对于反向传播,只需要根据掩模,将对应位置为0的强行置0。相对于现有技术中,在反向传播时先计算梯度并将梯度较小的设置为0再反向传播而言,本可选的实施中,在反向传播时直接将对应前向传播时掩模为0的位置强置为0,减少了计算过程,提高了剪枝的效率,剪枝越快,越有利于提高训练多模型的图像识别模型的效率。
对Resnet网络中的残差块进行剪枝后,在输入所述训练集至剪枝后的Resnet网络中,根据前向传播和后向传播时设置的掩模与所述训练集进行向量点乘。
输入模块304,用于输入所述训练集至剪枝后的Resnet网络和其他预设的神经网络中进行训练。
其中,所述其他预设的神经网络包括:基于inception-V4的图像识别模型、基于inception-Resnet-V2的图像识别模型及基于nasnet的图像识别模型。
选择Resnet-v2、inception-v4、inception-Resnet-v2及nasnet这四种网络的原因,在于这四种网络具有不同的网络结构且基于此训练得到的网络模型在图像数据集(例如,ImageNet)上具有较佳的识别效果。
在本实施例中,将所述训练集同时输入至剪枝后的Resnet网络和inception-v4、inception-Resnet-v2及nasnet这三个神经网络中,同步训练基于inception-V4的图像识别模型、基于inception-Resnet-V2的图像识别模型及基于nasnet的图像识别模型。
初始学习率为0.0001,每训练40个epoch学习率下降10倍,共对数据集训练120个epoch,激活方法optimizer选择rmsprop,训练环境为CentOS7.2,所用GPU为Nvidia P100×2,训练时对于不同的神经网络输入图片大小不一样,例如Resnet-v2为224×224,inception-v4为299×299。
连接模块305,用于连接所述剪枝后的Resnet网络及其他预设的神经网络输出的特征为一维向量。
本实施例中,剪枝后的Resnet网络和inception-v4、inception-Resnet-v2及nasnet网络的全连接层均会输出一个特征,此时将这四种网络输出的特征进行连接形成一个一维向量。
计算模块306,用于将所述一维向量输入softmax分类器中计算得到损失值。
其中,所述softmax分类器依次包括归一层、激活层和损失层。
所述归一层可以采用最大-最小归一方法对所述一维向量进行归一化处理。
所述激活层可以采用tanh函数、sigmoid函数。
所述损失层可以采用softmax函数计算激活层输出的一维向量的损失值。
输出模块307,用于当所述损失值小于或等于预设损失阈值时,输出图像识别模型。
本实施例中,当计算得到的损失值小于或等于所述预设损失阈值时,表明剪枝后的Resnet网络及其他预设的神经网络已经达到了最佳收敛,此时可以结束剪枝后的Resnet网络及其他预设的神经网络的训练过程。
当计算得到的损失值大于所述预设损失阈值时,表明剪枝后的Resnet网络及其他预设的神经网络没有达到最佳收敛,此时需要重新划分新的训练集对剪枝后的Resnet网络及其他预设的神经网络进行训练,直到softmax分类器计算得到的损失值小于或等于所述预设损失阈值。
测试模块308,用于将所述测试集输入所述图像识别模型中得到测试通过率。
当图像识别模型训练好之后,还需要通过测试集测试训练得到的图像识别模型的准确率。
所述输入模块304,还用于当所述测试通过率大于预设通过率阈值时,输出与所述测试通过率阈值对应的图像识别模型作为训练得到的图像识别模型。
测试通过率大于预设通过率阈值,表明使用训练得到的图像识别模型对测试集进行测试时测试效果较佳。测试通过率小于预设通过率阈值,表明使用训练得到的图像识别模型对测试集进行测试时测试效果较差。
若测试效果较差,则需要重新对原始数据集进行划分,并基于新划分得到的训练集训练多模型的图像识别模型,直到基于新划分得到的测试集的测试通过率大于预设通过率阈值。
综上,本发明实施例通过对Resnet网络进行剪枝,实现了对Resnet网络的压缩,从而缩短了训练Resnet网络的时间;此外,同时对多个神经网络进行训练,并将训练得到的多个神经网络模型进行融合得到基于多模型的图像识别模型,具有较强的适应性,使用训练得到的图像识别模型识别图像具有较高的识别率。再者,通过判断每一类别的图像的数量,确保某一类别的图像的数量足够多,基于足够多的数据集训练得到的图像识别模型有利于提高图像识别模型的泛化能力,使得所述图像识别模型能够识别任一类别的图像。
实施例四
图4是本发明实施例四提供的图像识别装置的结构图。
在一些实施例中,所述图像识别装置40可以包括多个由程序代码段所组成的功能模块。所述图像识别装置40中的各个程序段的程序代码可以存储于终端的存储器中,并由所述至少一个处理器所执行,以执行(详见图2描述)图像识别的功能。
本实施例中,所述图像识别装置40根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:图像输入模块401、类别获取模块402、均值计算模块403及结果确定模块404。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。
图像输入模块401,用于将待识别的图像输入至预先训练好的图像识别模型中。
本实施例中,所述图像识别模型为由多个网络模型同时进行训练得到的,所述图像识别模型训练方法如实施例一及其相关描述。所述多个网络模型包括:基于Resnet-V2的图像识别模型、基于inception-V4的图像识别模型、基于inception-Resnet-V2的图像识别模型及基于nasnet的图像识别模型。
类别获取模块402,用于获取所述图像识别模型中每个模型输出的种类中每个类别的概率值。
本实施例中有N个类别,其中,N为大于或等于2的正整数。
可以先对所述待识别的图像进行白平衡和均衡化处理,然后将白平衡和均衡化处理后图像分别输入至基于Resnet-V2的图像识别模型、基于inception-V4的图像识别模型、基于inception-Resnet-V2的图像识别模型及基于nasnet的图像识别模型中,对分类结果进行预测,分别输出N个类别对应的N个概率值。即,无论是基于Resnet-V2的图像识别模型,还是基于inception-V4的图像识别模型、基于inception-Resnet-V2的图像识别模型或者基于nasnet的图像识别模型,输出的概率值数量均与类别数量相等,且每一个类别都有一个概率值。
均值计算模块403,用于根据投票算法计算同一类别对应的概率值的平均值。
由于所述图像识别模型中的每一个图像识别模型均输出了多个类别的概率值,因而需要采用投票算法计算同一个类别对应的平均概率值,基于所述平均概率值确定最终的识别结果。
在一个可选的实施例中,所述均值计算模块403根据投票算法计算同一类别对应的概率值的平均值包括:
其中,i=1,…,N是类别,N是类别数量,Pnetm(i)是第m个图像识别模型输出的N个概率值中对应类别i的概率值,am是第m个图像识别模型的权重,Pave(i)是m个图像识别模型在类别i的概率值的平均值。
应当理解的是,同一个图像识别模型输出的所有类别的概率值之和为1。例如,基于Resnet-V2的图像识别模型输出了5个类别,其中,第1个类别的概率值为0.1,第2个类别的概率值为0.7,第3个类别的概率值为0.1,第4个类别的概率值为0.1,第5个类别的概率值为0。再如,基于inception-Resnet-V2的图像识别模型输出了5个类别,其中,第1个类别的概率值为0.05,第2个类别的概率值为0.85,第3个类别的概率值为0.1,第4个类别的概率值为0,第5个类别的概率值为0。
在一个可选的实施例中,由于不同的图像识别模型的性能有所差异,识别出同一类别的概率值也会有所不同,还可以为不同的图像识别模型赋予不同的权重,将性能好的图像识别模型赋予较大的权重,将性能差的图像识别模型赋予较小的权重,使得性能好的图像识别模型输出的类别的概率值进一步变大,性能差的图像识别模型输出的类别的概率值进一步减少,从而整体上增加识别概率,提高图像的识别准确度。
结果确定模块404,用于选取平均值中的最高值所对应的类别作为所述待识别的图像的识别结果。
示例性的,假设N=5,即共有5个类别,第1类别的概率值的平均值为0.05,第2类别的概率值的平均值为0.8,第3类别的概率值的平均值为0.05,第4类别的概率值的平均值为0.1,第5类别的概率值的平均值为0。由于在这5个类别中第2类别的概率值的平均值最高,则第2类别作为所述待识别的图像的最终识别概率。
综上,本发明实施例提供的图像识别装置,采用由多个图像识别模型构成的图像识别模型对待识别的图像进行预测,并给出每一个类别的概率值,再基于投票算法综合不同图像识别模型的预测结果,得到了最终的类别,相比于传统采用单一的图像识别模型,本实施中所述的图像识别模型的识别准确度更高。
实施例五
参阅图5所示,为本发明实施例五提供的终端的结构示意图。在本发明较佳实施例中,所述终端5包括存储器51、至少一个处理器52、至少一条通信总线53及收发器54。
本领域技术人员应该了解,图5示出的终端的结构并不构成本发明实施例的限定,既可以是总线型结构,也可以是星形结构,所述终端5还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置。
在一些实施例中,所述终端5是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的终端,其硬件包括但不限于微处理器、专用集成电路、可编程门阵列、数字处理器及嵌入式设备等。所述终端5还可包括客户设备,所述客户设备包括但不限于任何一种可与客户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、数码相机等。
需要说明的是,所述终端5仅为举例,其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。
在一些实施例中,所述存储器51用于存储程序代码和各种数据,例如安装在所述终端5中的装置,并在终端5的运行过程中实现高速、自动地完成程序或数据的存取。所述存储器51包括只读存储器(Read-Only Memory,ROM)、可编程只读存储器(ProgrammableRead-Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-OnlyMemory,EPROM)、一次可编程只读存储器(One-time Programmable Read-Only Memory,OTPROM)、电子擦除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
在一些实施例中,所述至少一个处理器52可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述至少一个处理器52是所述终端5的控制核心(Control Unit),利用各种接口和线路连接整个终端5的各个部件,通过运行或执行存储在所述存储器51内的程序或者模块,以及调用存储在所述存储器51内的数据,以执行终端5的各种功能和处理数据。
在一些实施例中,所述至少一条通信总线53被设置为实现所述存储器51以及所述至少一个处理器52等之间的连接通信。
尽管未示出,所述终端5还可以包括给各个部件供电的电源(比如电池),优选的,电源可以通过电源管理装置与所述至少一个处理器52逻辑相连,从而通过电源管理装置实现管理充电、放电、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述终端5还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分。
在进一步的实施例中,结合图3或者图4,所述至少一个处理器52可执行所述终端5的操作装置以及安装的各类应用程序、程序代码等,例如,上述的各个模块。
所述存储器51中存储有程序代码,且所述至少一个处理器52可调用所述存储器51中存储的程序代码以执行相关的功能。例如,图3或者图4中所述的各个模块是存储在所述存储器51中的程序代码,并由所述至少一个处理器52所执行,从而实现所述各个模块的功能。
在本发明的一个实施例中,所述存储器51存储多个指令,所述多个指令被所述至少一个处理器52所执行以实现本发明所述的方法中的全部或者部分步骤。
具体地,所述至少一个处理器52对上述指令的具体实现方法可参考图1或者图2对应实施例中相关步骤的描述,在此不赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (8)
1.一种图像识别模型训练方法,其特征在于,所述方法包括:
采集原始数据集,其中,所述原始数据集包括多张原始图像及对应的类别;
将所述原始数据集划分为训练集和测试集;
确定预设Resnet网络中待剪枝的层,包括:将所述训练集作为第一特征图输入至所述预设Resnet网络中的残差块并获取所述残差块的最后一层输出的第一结果,对所述第一特征图进行降采样,将降采样后的第一特征图与所述残差块的第一层输出的第二特征图进行累加输入至最后一层,获取所述最后一层的第二结果,计算所述第一结果与所述第二结果的最小二乘,判断所述最小二乘是否小于预设阈值,当所述最小二乘小于或等于所述预设阈值时,确定所述残差块为待剪枝的层,当所述最小二乘大于所述预设阈值时,确定所述残差块不为待剪枝的层;
对所述待剪枝的层进行剪枝,包括:预先定义一个二进制掩模,其中,所述二进制掩模中的值与最后一层残差块对应的权重相同,对于每个所述待剪枝的层,将前向传播时每层的权重按绝对值大小排序,并将绝对值小于预设阈值的权重对应的掩模设为0,将后向传播时每层对应前向传播掩模为0的位置的掩模设置为0;
输入所述训练集至剪枝后的Resnet网络和其他预设的神经网络中进行训练;
连接所述剪枝后的Resnet网络及其他预设的神经网络输出的特征为一维向量;
将所述一维向量输入softmax分类器中计算得到损失值;
当所述损失值小于或等于预设损失阈值时,输出图像识别模型;
将所述测试集输入所述图像识别模型中得到测试通过率;
当所述测试通过率大于预设通过率阈值时,输出与所述测试通过率阈值对应的图像识别模型作为训练得到的图像识别模型。
2.如权利要求1所述的方法,其特征在于,所述输入所述训练集至剪枝后的Resnet网络和其他预设的神经网络中进行训练包括:
输入所述训练集至剪枝后的Resnet网络和其他预设的神经网络中;
通过所述Resnet网络根据所述前向传播和所述后向传播时设置的掩模与所述训练集进行向量点乘,并对进行向量点乘后的训练集进行训练;
通过所述其他预设的神经网络对所述训练集进行训练。
3.如权利要求1至2中任意一项所述的方法,其特征在于,在所述采集原始数据集之后,所述方法还包括:
将所述多张原始图像中质量小于预设质量阈值的图像进行剔除得到剩余图像;
采用目标检测算法检测每张剩余图像中的目标区域;
分割出所述每张剩余图像中的所述目标区域得到多张目标图像;
对所述多张目标图像进行白平衡处理和均衡化处理。
4.如权利要求3所述的方法,其特征在于,在对所述多张目标图像进行白平衡处理和均衡化处理之后,所述方法还包括:
计算每一类别的目标图像的数量;
判断所述数量是否小于预设数量阈值;
当所述数量小于所述预设数量阈值时,通过扰动法增加与所述数量对应的类别的目标图像的数量。
5.一种图像识别方法,其特征在于,所述方法包括:
将待识别的图像输入至预先训练好的图像识别模型中,其中,所述图像识别模型训练方法如权利要求1至4中任意一项所述;
获取所述图像识别模型中每个模型输出的种类中每个类别的概率值;
根据投票算法计算同一类别对应的概率值的平均值;
选取平均值中的最高值所对应的类别作为所述待识别的图像的识别结果。
6.一种图像识别模型训练装置,其特征在于,所述装置包括:
采集模块,用于采集原始数据集,其中,所述原始数据集包括多张原始图像及对应的类别;
划分模块,用于将所述原始数据集划分为训练集和测试集;
剪枝模块,用于确定预设Resnet网络中待剪枝的层,包括:将所述训练集作为第一特征图输入至所述预设Resnet网络中的残差块并获取所述残差块的最后一层输出的第一结果,对所述第一特征图进行降采样,将降采样后的第一特征图与所述残差块的第一层输出的第二特征图进行累加输入至最后一层,获取所述最后一层的第二结果,计算所述第一结果与所述第二结果的最小二乘,判断所述最小二乘是否小于预设阈值,当所述最小二乘小于或等于所述预设阈值时,确定所述残差块为待剪枝的层,当所述最小二乘大于所述预设阈值时,确定所述残差块不为待剪枝的层;
所述剪枝模块,还用于对所述待剪枝的层进行剪枝,包括:预先定义一个二进制掩模,其中,所述二进制掩模中的值与最后一层残差块对应的权重相同,对于每个所述待剪枝的层,将前向传播时每层的权重按绝对值大小排序,并将绝对值小于预设阈值的权重对应的掩模设为0,将后向传播时每层对应前向传播掩模为0的位置的掩模设置为0;
输入模块,用于输入所述训练集至剪枝后的Resnet网络和其他预设的神经网络中进行训练;
连接模块,用于连接所述剪枝后的Resnet网络及其他预设的神经网络输出的特征为一维向量;
计算模块,用于将所述一维向量输入softmax分类器中计算得到损失值;
输出模块,用于当所述损失值小于或等于预设损失阈值时,输出图像识别模型;
测试模块,用于将所述测试集输入所述图像识别模型中得到测试通过率;
所述输出模块,还用于当所述测试通过率大于预设通过率阈值时,输出与所述测试通过率阈值对应的图像识别模型作为训练得到的图像识别模型。
7.一种终端,其特征在于,所述终端包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1至4中任意一项所述的图像识别模型训练方法,或者实现如权利要求5所述的图像识别方法。
8.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4中任意一项所述的图像识别模型训练方法,或者实现如权利要求5所述的图像识别方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910990388.7A CN111008640B (zh) | 2019-10-17 | 2019-10-17 | 图像识别模型训练及图像识别方法、装置、终端及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910990388.7A CN111008640B (zh) | 2019-10-17 | 2019-10-17 | 图像识别模型训练及图像识别方法、装置、终端及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111008640A CN111008640A (zh) | 2020-04-14 |
CN111008640B true CN111008640B (zh) | 2024-03-19 |
Family
ID=70111244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910990388.7A Active CN111008640B (zh) | 2019-10-17 | 2019-10-17 | 图像识别模型训练及图像识别方法、装置、终端及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111008640B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111768372B (zh) * | 2020-06-12 | 2024-03-12 | 国网智能科技股份有限公司 | 一种gis设备腔体内部异物检测方法及系统 |
CN111738350A (zh) * | 2020-06-30 | 2020-10-02 | 山东超越数控电子股份有限公司 | 图像识别的方法及装置、电子设备、计算机可读介质 |
CN111582410B (zh) * | 2020-07-16 | 2023-06-02 | 平安国际智慧城市科技股份有限公司 | 图像识别模型训练方法、装置、计算机设备及存储介质 |
CN112733920A (zh) * | 2020-12-31 | 2021-04-30 | 中国地质调查局成都地质调查中心 | 一种基于深度学习的图像识别方法及系统 |
CN112836751A (zh) * | 2021-02-03 | 2021-05-25 | 歌尔股份有限公司 | 一种目标检测方法和装置 |
CN114970851A (zh) * | 2021-02-26 | 2022-08-30 | 中国科学院深圳先进技术研究院 | 神经网络的剪枝方法及其剪枝装置、存储介质、设备 |
CN113221642B (zh) * | 2021-04-02 | 2024-04-05 | 哈尔滨鹏博普华科技发展有限责任公司 | 一种违章抓拍图像ai识别系统 |
CN113361578B (zh) * | 2021-05-31 | 2023-08-04 | 北京百度网讯科技有限公司 | 图像处理模型的训练方法、装置、电子设备及存储介质 |
CN113505820B (zh) * | 2021-06-23 | 2024-02-06 | 北京阅视智能技术有限责任公司 | 图像识别模型训练方法、装置、设备及介质 |
CN113627389A (zh) * | 2021-08-30 | 2021-11-09 | 京东方科技集团股份有限公司 | 一种目标检测的优化方法及设备 |
CN114881227B (zh) * | 2022-05-13 | 2023-07-04 | 北京百度网讯科技有限公司 | 模型压缩方法、图像处理方法、装置和电子设备 |
CN115331062B (zh) * | 2022-08-29 | 2023-08-08 | 北京达佳互联信息技术有限公司 | 图像识别方法、装置、电子设备和计算机可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106600553A (zh) * | 2016-12-15 | 2017-04-26 | 华中科技大学 | 一种基于卷积神经网络的dem超分辨率方法 |
CN107451568A (zh) * | 2017-08-03 | 2017-12-08 | 重庆邮电大学 | 使用深度卷积神经网络的姿态检测方法及设备 |
CN108764471A (zh) * | 2018-05-17 | 2018-11-06 | 西安电子科技大学 | 基于特征冗余分析的神经网络跨层剪枝方法 |
CN109214353A (zh) * | 2018-09-27 | 2019-01-15 | 云南大学 | 一种基于剪枝模型的人脸图像快速检测训练方法和装置 |
CN109344921A (zh) * | 2019-01-03 | 2019-02-15 | 湖南极点智能科技有限公司 | 一种基于深度神经网络模型的图像识别方法、装置及设备 |
CN109978046A (zh) * | 2019-03-21 | 2019-07-05 | 南京邮电大学 | 一种发票分类方法 |
CN110222556A (zh) * | 2019-04-22 | 2019-09-10 | 北方工业大学 | 一种人体动作识别系统及方法 |
WO2019169942A1 (zh) * | 2018-03-09 | 2019-09-12 | 华南理工大学 | 抗角度与遮挡干扰的快速人脸识别方法 |
-
2019
- 2019-10-17 CN CN201910990388.7A patent/CN111008640B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106600553A (zh) * | 2016-12-15 | 2017-04-26 | 华中科技大学 | 一种基于卷积神经网络的dem超分辨率方法 |
CN107451568A (zh) * | 2017-08-03 | 2017-12-08 | 重庆邮电大学 | 使用深度卷积神经网络的姿态检测方法及设备 |
WO2019169942A1 (zh) * | 2018-03-09 | 2019-09-12 | 华南理工大学 | 抗角度与遮挡干扰的快速人脸识别方法 |
CN108764471A (zh) * | 2018-05-17 | 2018-11-06 | 西安电子科技大学 | 基于特征冗余分析的神经网络跨层剪枝方法 |
CN109214353A (zh) * | 2018-09-27 | 2019-01-15 | 云南大学 | 一种基于剪枝模型的人脸图像快速检测训练方法和装置 |
CN109344921A (zh) * | 2019-01-03 | 2019-02-15 | 湖南极点智能科技有限公司 | 一种基于深度神经网络模型的图像识别方法、装置及设备 |
CN109978046A (zh) * | 2019-03-21 | 2019-07-05 | 南京邮电大学 | 一种发票分类方法 |
CN110222556A (zh) * | 2019-04-22 | 2019-09-10 | 北方工业大学 | 一种人体动作识别系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111008640A (zh) | 2020-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111008640B (zh) | 图像识别模型训练及图像识别方法、装置、终端及介质 | |
CN111797893B (zh) | 一种神经网络的训练方法、图像分类系统及相关设备 | |
CN111079639B (zh) | 垃圾图像分类模型构建的方法、装置、设备及存储介质 | |
CN108595585B (zh) | 样本数据分类方法、模型训练方法、电子设备及存储介质 | |
Gamanayake et al. | Cluster pruning: An efficient filter pruning method for edge ai vision applications | |
US20170091619A1 (en) | Selective backpropagation | |
US20170032247A1 (en) | Media classification | |
WO2016175925A1 (en) | Incorporating top-down information in deep neural networks via the bias term | |
CN106682702A (zh) | 深度学习方法和系统 | |
CN104616002A (zh) | 用于年龄段判断的面部识别设备 | |
CN111695594A (zh) | 图像类别识别方法、装置、计算机设备及介质 | |
CN113095370A (zh) | 图像识别方法、装置、电子设备及存储介质 | |
CN113807399A (zh) | 一种神经网络训练方法、检测方法以及装置 | |
CN106778910A (zh) | 基于本地训练的深度学习系统和方法 | |
US20230137337A1 (en) | Enhanced machine learning model for joint detection and multi person pose estimation | |
Xiao et al. | Apple ripeness identification using deep learning | |
CN112308825A (zh) | 一种基于SqueezeNet的农作物叶片病害识别方法 | |
CN116385430A (zh) | 一种机器视觉瑕疵检测方法、装置、介质及设备 | |
CN111340213A (zh) | 神经网络的训练方法、电子设备、存储介质 | |
CN114783021A (zh) | 一种口罩佩戴智能检测方法、装置、设备及介质 | |
CN111352926A (zh) | 数据处理的方法、装置、设备及可读存储介质 | |
CN112308149A (zh) | 基于机器学习的图像信息识别的优化方法及装置 | |
CN111353577B (zh) | 基于多任务的级联组合模型的优化方法、装置及终端设备 | |
CN112699907A (zh) | 数据融合的方法、装置和设备 | |
CN115954019A (zh) | 一种融合自注意力和卷积操作的环境噪声识别方法及系统 |
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 |