一种基于迁移学习的改进VGG16网络猪的身份识别方法
技术领域
本发明涉及人工智能技术,尤其涉及迁移学习、深度学习和神经网络的技术领域。
背景技术
随着大数据时代的兴起,神经网络也发展起来了。最初的神经网络只是单单的单层感知器,也就是基础神经网络,基础神经网络还有Hopfield神经网络、线性神经网络和BP神经网络。经过阶段性的发展,玻尔兹曼机,受限玻尔兹曼机,递归神经网络等出现了。现在,神经网络有了阶段性的成果,到了深度神经网络阶段了,主要有深度置信网络,卷积神经网络,深度残差网络,LSTM网络等。深度神经网络有着强大的表征能力,但是参数很多计算量大,近期研究主要是朝着降低参数量,学习更加丰富的特征和加快训练速度迈进。神经网络应用也非常广泛,如人脸识别、身份识别、无人驾驶等,可见神经网络的灵活性非常之高,可以适应多种任务。对于身份识别方面,好多网络模型都能用,比如VGG16、VGG19、Alexnet、Googlenet,Resnet等,但是模型的选用要根据实际情况,就像对猪的身份识别,VGG16的深度以及计算量就够了,用更深层次的模型就显得没有必要了。实际实验仿真的时候,我们会遇到数据集不充足、模型需要反复利用的情况,这时迁移学习就应运而生了,迁移学习可以简化计算量,提高运行效率,应用在猪的身份识别上有着很好的效果。
发明内容
本发明所解决的技术问题在于提供了一种基于迁移学习的改进VGG16网络猪的身份识别方法。
神经网络发展到现在,经过不断的改进以及模型的优化,已经到深度神经网络阶段了,典型网络模型的应用也比较广泛了,针对现有的深度神经网络在猪的身份识别上面的研究方法,本发明通过提出一种基于迁移学习的改进VGG16网络的方法对猪进行身份识别。2014年,ImageNet Large Scale Visual Recognition Challenge比赛上,牛津大学计算机视觉实验室提出了VGG卷积神经网络的结构, 比赛最终结果是定位是第一名,分类得了第二名。由此可见,VGG系列模型在身份识别和特征提取上的优势很大。
下面我介绍下传统的VGG16模型:
传统的VGG16模型如图4所示,有2个包含64个卷积核的卷积层,2个包含128个卷积核的卷积层,3个包含256个卷积核的卷积层,6个包含512个卷积核的卷积层,2个包含4096个神经元的全连接层,1个包含1000个神经元的全连接层,输入图像的维度控制在224*224*3。
卷积层:模仿人的局部感知,人的大脑在识别图片时,是对一幅图片中的某一个特征进行感知,然后再更进一步进行综合操作,从而得到全局信息。具体来说,传统神经网络的每个神经元都需要连接每个像素,这样的结果就是权重数量巨大,训练难度大,现在卷积层的每个神经元的权重个数都是卷积核的大小,这样也就是说没有神经元只和相对应的部分像素相连接,从而减少权重的数量,提高训练效率,同时我们也可以根据需要设定卷积核的大小与步长,是的效率最大化。本发明中用的是3*3的卷积核,两个3*3的卷积核相当于一个5*5的卷积核,假设图片是224*224的,步长为1,无填充,根据卷积计算公式(n+2*p‐f)/q+1,其中n是图片尺度,p为填充值,f为卷积核大小,q为步长,5*5的卷积结果为224‐5+1=220,两次3*3卷积结果也为220,两次结果一样,但是一个5*5卷积的计算量为5*5*通道数=25*通道数,而两个3*3卷积的计算量为3*3*通道数*2=18*通道数,也就是说计算量5*5的卷积明显大很多。同理,我们可以用三个3*3的卷积核来替代一个7*7的卷积核。总的来说,3*3的卷积核相对于5*5和7*7的来说有以下优势:(1)计算速度快,效率高。(2)取得的感受野是一样的。(3)3*3的卷积核相对于一个大尺寸的卷积核来说有更多的非线性效果。
池化层:池化层一般在卷积层之后,主要起到降维的作用。因为经过卷积后,网络提取和很多的特征信息,不乏有一些相似的可以互相替代的信息,如果都保留的话就大大提高了信息的冗余程度,也会让计算的难度增加,池化层正好能解决这个问题。池化主要有两个方法,一个是最大池化,另一个是均值池化,最大池化层可以更好地保留图像的纹理信息,平均池化层可以让图像的局部空间信息得以保留,本发明中就用到了最大池化层和均值池化层相结合的策略,把最大池化层换成最大池化层和平均池化层的结合可以提高特征提取的精度,从而提高身 份识别的精度。
全连接层:全连接层常常放在最后一层中,主要起到特征加权的作用。本发明中把最后的全连接层由卷积层来替代,替换规则是卷积核大小设置为输入空间的大小,这样就可以接受任意大小的图片输入,同时CNN共享了大量计算,提高了整个网络的运行效率。
本发明还在每个最大池化层后面加上了BN层。BN层有以下优势:(1)训练速度得到加快,这样我们就可以使用较大的学习率来训练网络。(2)网络的泛化能力得到提高。(3)BN层从本质上说就是一个归一化网络层,所以可局部响应归一化层可由它来替代。
随着深度学习的应用越来越广泛,我们对精度的要求也越来越高,但是高精度依赖大量的标注数据或者是图像,标注过程是十分耗时耗力的,迁移学习就能很好的解决这个问题,所以迁移学习受到越来越多的关注。我们用的只要是基于特征的迁移,这个方法主要关注的是如何找出源领域与目标领域之间共同的特征表示,然后利用这些特征进行知识迁移。
权利要求1、一种基于迁移学习的改进VGG16网络猪的身份识别方法,其特征在于,包括以下步骤:
(1)根据视频进行逐帧提取,再进行翻转、裁剪、对比度增强等操作得到扩充后的数据集,然后进行测试集和训练集的划分;
(2)将每个池化层后添加BN层构建改进网络层后的BN‐VGG16模型,使得对粗降维后的结果再进行精细化降维,提高整个网络的精度;另一方面,便于我们使用较大的学习率来训练网络,也不用担心梯度消失问题的发生,提高网络的训练速度。采用改进后的BN‐VGG16模型自动提取猪的深度特征,即猪的颜色、纹理、形状等特征,为最后猪的身份识别做好准备。
(3)本专利将现有的粒子群算法改进为高斯‐改良因子粒子群算法(Gaussian‐Improvement factor particle swarm optimization,简称G‐IFPSO)。第一点改进之处是在最优粒子中添加了高斯扰动,使得接下来的粒子都向着最优粒子的邻域进行学习,避免陷入局部最优,提高了猪的身份识别的精度。第二点改进之处是对速度权重根据迭代次数实时优化,提高了算法的全局搜索能力;并添加偏移量,使得权重不会消失,提高了猪的身份识别的效率。第三点改进之处是对 自身学习因子和种群学习因子进行优化,即让学习因子随迭代次数进行最优化,再次提高了算法的全局搜索能力,提高了猪的身份识别的速度。
(4)利用步骤1处理好的训练集进行训练,采用G‐IFPSO算法对加权融合的损失函数中的交叉熵损失函数和均方误差损失函数的权重进行优化,并保存预训练的特征提取网络Pre‐VGG16。这步可以进一步提高猪的身份识别的精度。
(5)将现有的LDP算法改进为多分块改进的绝对值差分局部方向模式算法(Multi Block Improve Absolute Difference Local Direction Pattern,简称MB‐IADLDP)。用于猪的传统特征提取,为特征融合和猪的身份识别提供特征信息。
(6)把Pre‐VGG16特征提取网络分别迁移到两个不同的神经网络中进行训练,并对网络参数进行微调,然后将数据集调整为224*224*3,并对调整后的数据集进行多分块改进的绝对值差分局部方向模式(Multi Block Improve Absolute Difference Local Direction Pattern,简称MB‐IADLDP)特征提取,再把这两个神经网络提取的特征以及MB‐IADLDP特征进行串行融合,即向量融合,最后进行猪的身份识别。利用BN‐VGG16模型结合迁移学习以及特征融合方法对猪进行身份识别,并针对模型的实验结果进行分析,得出实验结论。
权利要求2.根据权利要求1所述的步骤(1)具体包括:先对视频进行逐帧提取得到图片;然后对得到的图片进行预处理,即对图像进行水平翻转和随机方向翻转、伽马变换、直方图均衡化、对数变换、去噪和添加噪声点扩充数据集,最终得到处理后的数据集,由一开始的500张扩充到4900张;最后对处理后的数据集进行划分,以6:1的比例划分为训练集和测试集。
权利要求3.根据权利要求1所述的步骤(2)对VGG16的改进具体包括:在每个最大池化层后加个BN(Batch Normalization)层。整个网络的结构就是有2个包含64个卷积核的卷积层,后接一个最大池化层和BN层,2个包含128个卷积核的卷积层,后接一个最大池化层和BN层,3个包含256个卷积核的卷积层,后接一个最大池化层和BN层,3个包含512个卷积核的卷积层,后接一个最大池化层和BN层,3个包含512个卷积核的卷积层,后接一个最大池化层和BN层,2个包含4096个神经元的全连接层,1个包含1000个神经元的全连接层,最后是一个softmax层。通常情况下,BN层会加在卷积层后面防止梯度消失等 问题,同时BN层因为归一化的原因还有一定的降维作用,而池化层就是降维的作用,放在池化层后对粗降维后的结果再进行精细化降维,使得整个网络的精度得到提高。在神经网络中,一般来说每层的数据分布是不一样的,从而导致网络收敛和训练困难,但是BN层可以把每层的数据转换为方差是1、均值为0的状态下,这样每层就容易收敛,整个网络的收敛和训练速度就加快了。在神经网络中,如果网络的激活输出很大,其对应的梯度就会很小,这样导致网络的学习速率就会很慢,进而就会梯度消失,无法继续训练,而BN层可以看作是一个正则化约束(就是给平面不可约代数曲线以某种形式的全纯参数表示),从而解决梯度消失。神经网络各个层可能都会朝着一个方向进行训练学习,这样可能会导致过拟合,而BN层的mini‐batch会把所有的样本都被关联在了一起,同样一个样本的输出不再仅仅取决于样本本身,也取决于跟这个样本同属于一个batch的其他样本,并且每个网络都是随机取batch,这样整个网络就不会朝一个方向去训练学习,也就防止过拟合现象的发生,如附图6所示加了BN层比没加BN层的识别精度高。BN层可以让整个网络的训练速度得到加快,同时网络的泛化能力也得到了提高,这样我们就可以使用较大的学习率来训练网络,也不用担心梯度消失问题的发生。
所述的步骤(3)对粒子群算法的改进在于对最优粒子添加高斯扰动,使得接下来的粒子都向着最优粒子的邻域进行学习,而不是向着该最优粒子学习,从而解决的传统粒子群算法容易陷入局部最优的问题。
所述的步骤(3)对粒子群算法的改进在于对权重根据迭代次数实时优化,提高了算法的全局搜索能力;并添加偏移量,使得权重不会消失。
所述的步骤(3)对粒子群算法的改进在于对自身学习因子和种群学习因子进行优化,即让学习因子随迭代次数进行最优化,再次提高了算法的全局搜索能力。
所述的步骤(4)训练过程具体包括:在训练过程中的dropout的值设置为0.65,其目的是防止过拟合现象的发生;把训练好的数据集的维度调整为224*224*3;其中损失函数选择交叉熵损失函数和均方误差损失函数,并对这两种函数进行加权融合。
交叉熵损失函数可以适应多类别的情况,而猪的特征都是多种多样的,交叉 熵损失函数十分适合,而且交叉熵损失函数是对数形式的函数,在接近上边界的时候,高梯度的状态仍能保持,不会影响收敛速度,但是它的运算过程很复杂,计算速度不快,而均方误差损失函数可以弥补这个缺陷,两者结合优势互补,提高整个模型的运行速度;最后进行迭代训练,当迭代损失值小于一定的阈值后,训练停止,得出模型并保存预训练的特征提取网络。
所述步骤(5)中的MB-IADLDP特征提取具体过程如下:对处理好的图像进行尺寸变换,变换成222*222,然后对它进行分块,每个分块的尺寸为3*3,共有74个分块,得到3*3的分块的编码G
i后进行Kirsch掩膜算子计算得到E
i,再分别进行差值编码和绝对编码,对差值编码得到的结果取结果最大的3个,即把取得结果最大的3个方向置1,其他方向置0,把绝对编码最大值的方向置1,其他置0。对得到的这两个结果进行加权融合得到最终的MB-IADLDP特征提取结果,最后得到74*8维度的矩阵,整个提取过程如图2所示。差值编码是为了让中心像素g
c周围的8个领域像素各自和周围联系更紧密,从而丰富提取信息;因为绝对值的大的那个方向说明该方向纹理效果是最好的,让绝对值编码和差值编码的结果进行加权融合,这样既保留了主要纹理,又减少了信息冗余。
所述步骤(6)在神经网络特征融合中运用迁移学习的具体描述如下:将BN‐VGG16的特征提取网络应用到猪的身份识别网络Pig‐VGG16上去,把Pre‐VGG16网络迁移学习分别运用在两个神经网络模型中,两个网络的区别就是最后一个池化层的不同,一个是均值池化层,一个是最大池化层,最大池化层可以更好地保留图像的纹理信息,平均池化层可以让图像的局部空间信息得以保留,两者结合可以提高特征提取的精度,从而提高身份识别的精度,再把这两个神经网络提取的特征以及MB-IADLDP提取的特征进行串行融合,最后把融合的结果在输入全连接层和softmax层进行最后的身份识别。融合策略具体是将待融合的特征进行展开,分别归一化后,相互连接形成一个新的特征向量,其中生成的新特征向量的长度等于待连接的特征向量的长度的总和,然后送入神经网络中得到最终识别结果。把PIG‐VGG16的全连接层改成卷积层,这样对输入图片的维度就没有限制了,可以对不同尺度的图片进行处理,把Pre‐VGG16网络迁移到猪的身份识别网络Pig‐VGG16上,就不用一直对特征提取网络进行训练,单次训练完成后就能一直用下去,提高了效率;接着初始化猪的身份识别网络的训练后的参 数,并将参数调整为自定义值,即调整为身份识别网络在历史训练时刻时的参数,即dropout设置为0.6,Epoch设置为25,卷积核使用3*3大小,损失函数使用交叉熵损失函数和均方误差损失函数;把这个训练过程至少分为两段周期,并在相邻的两个周期之间,进行参数调整。整个过程的TensorFlow2.0上完成。先分别根据BN‐VGG16的各个模块,分别写出卷积层、池化层、全连接层模块并调试保存;再在池化层后面添加BN层的程序代码并调试;然后用主程序输入数据集并调用各模块进行模型训练;达到迭代次数后保存特征提取部分模型;接着,迁移到两个不同的网络中,因为特征提取部分是一样的,所以能直接调用,只需修改最后一个池化层即可;把两个神经网络以及MB-IADLDP提取的特征进行融合,融合结果输入全连接层和softmax层进行最后的身份识别。观察本方法和传统VGG16以及BN‐VGG16在猪身份识别精度上的差别,得出最后的对比结果。与现有的方法相比,本发明具有以下明显优势:
(1)在每个最大池化层添加了BN层,使得整个网络的训练速度得到加快,这样我们就可以使用较大的学习率来训练网络,同时网络的泛化能力也得到提高。
(2)损失函数是交叉熵损失函数和均方误差损失函数加权融合,加权值进过了G‐IFPSO算法的优化,可以通过迭代得出最优权值。粒子群算法的改进之处是在速度权值和精英粒子的改进,并且添加了高斯扰动,这样使得权重一直在变化且不会消失,从而提高全局搜索的能力,并且解决了容易陷入局部最优的问题。
(3)把两个神经网络进行融合,这两个神经网络主要是池化层的不同。最大池化层可以更好地保留图像的纹理信息,平均池化层可以让图像的局部空间信息得以保留,两者结合可以提高特征提取的精度,从而提高身份识别的精度。
(4)采用迁移学习策略,把VGG16的特征提取模块迁移到猪的身份识别网络Pig‐Vgg16上去,提高整个网络的效率,同时也不需要反复训练模块,节省了时间。
(5)最后的全连接层由卷积层来替代,使得整个网络能够不同尺度的图片,实现整个网络的尺度自由。
附图说明
为了能够更清楚的说明本发明的具体实施步骤以及实验原理,下面我简单说明一下本发明中需要的附图:
图1为实验方法的流程图;
图2为MB‐IADLDP特征提取过程;
图3为Kirsch掩膜算子;
图4为传统的VGG16模型;
图5为改进的VGG16模型BN‐VGG16;
图6为基于迁移学习方法的VGG16模型;
图7为添加BN层后的实验对比图;
图8为实验结果的对比图。
具体实施方式
以下内容结合以上附图以及具体的实例进行详细说明。
权利要求1、一种基于迁移学习的改进VGG16网络猪的身份识别方法,其特征在于,包括以下步骤:
(1)根据视频进行逐帧提取,再进行翻转、裁剪、对比度增强等操作得到扩充后的数据集,然后进行测试集和训练集的划分;
(2)将每个池化层后添加BN层构建改进网络层后的BN‐VGG16模型,使得对粗降维后的结果再进行精细化降维,提高整个网络的精度;另一方面,便于我们使用较大的学习率来训练网络,也不用担心梯度消失问题的发生,提高网络的训练速度。采用改进后的BN‐VGG16模型自动提取猪的深度特征,即猪的颜色、纹理、形状等特征,为最后猪的身份识别做好准备。
(3)本专利将现有的粒子群算法改进为高斯‐改良因子粒子群算法(Gaussian‐Improvement factor particle swarm optimization,简称G‐IFPSO)。第一点改进之处是在最优粒子中添加了高斯扰动,使得接下来的粒子都向着最优粒子的邻域进行学习,避免陷入局部最优,提高了猪的身份识别的精度。第二点改进之处是对速度权重根据迭代次数实时优化,提高了算法的全局搜索能力;并添加偏移量,使得权重不会消失,提高了猪的身份识别的效率。第三点改进之处是对自身学习因子和种群学习因子进行优化,即让学习因子随迭代次数进行最优化, 再次提高了算法的全局搜索能力,提高了猪的身份识别的速度。
(4)利用步骤1处理好的训练集进行训练,采用G‐IFPSO算法对加权融合的损失函数中的交叉熵损失函数和均方误差损失函数的权重进行优化,并保存预训练的特征提取网络Pre‐VGG16。这步可以进一步提高猪的身份识别的精度。
(5)将现有的LDP算法改进为多分块改进的绝对值差分局部方向模式算法(Multi Block Improve Absolute Difference Local Direction Pattern,简称MB‐IADLDP)。用于猪的传统特征提取,为特征融合和猪的身份识别提供特征信息。
(6)把Pre‐VGG16特征提取网络分别迁移到两个不同的神经网络中进行训练,并对网络参数进行微调,然后将数据集调整为224*224*3,并对调整后的数据集进行多分块改进的绝对值差分局部方向模式(Multi Block Improve Absolute Difference Local Direction Pattern,简称MB‐IADLDP)特征提取,再把这两个神经网络提取的特征以及MB‐IADLDP特征进行串行融合,即向量融合,最后进行猪的身份识别。利用BN‐VGG16模型结合迁移学习以及特征融合方法对猪进行身份识别,并针对模型的实验结果进行分析,得出实验结论。
权利要求2.根据权利要求1所述的步骤(1)具体包括:先对视频进行逐帧提取得到图片;然后对得到的图片进行预处理,即对图像进行水平翻转和随机方向翻转、伽马变换、直方图均衡化、对数变换、去噪和添加噪声点扩充数据集,最终得到处理后的数据集,由一开始的500张扩充到4900张;最后对处理后的数据集进行划分,以6:1的比例划分为训练集和测试集。
权利要求3.根据权利要求1所述的步骤(2)对VGG16的改进具体包括:在每个最大池化层后加个BN(Batch Normalization)层。整个网络的结构就是有2个包含64个卷积核的卷积层,后接一个最大池化层和BN层,2个包含128个卷积核的卷积层,后接一个最大池化层和BN层,3个包含256个卷积核的卷积层,后接一个最大池化层和BN层,3个包含512个卷积核的卷积层,后接一个最大池化层和BN层,3个包含512个卷积核的卷积层,后接一个最大池化层和BN层,2个包含4096个神经元的全连接层,1个包含1000个神经元的全连接层,最后是一个softmax层。通常情况下,BN层会加在卷积层后面防止梯度消失等问题,同时BN层因为归一化的原因还有一定的降维作用,而池化层就是降维的 作用,放在池化层后对粗降维后的结果再进行精细化降维,使得整个网络的精度得到提高。在神经网络中,一般来说每层的数据分布是不一样的,从而导致网络收敛和训练困难,但是BN层可以把每层的数据转换为方差是1、均值为0的状态下,这样每层就容易收敛,整个网络的收敛和训练速度就加快了。在神经网络中,如果网络的激活输出很大,其对应的梯度就会很小,这样导致网络的学习速率就会很慢,进而就会梯度消失,无法继续训练,而BN层可以看作是一个正则化约束(就是给平面不可约代数曲线以某种形式的全纯参数表示),从而解决梯度消失。神经网络各个层可能都会朝着一个方向进行训练学习,这样可能会导致过拟合,而BN层的mini‐batch会把所有的样本都被关联在了一起,同样一个样本的输出不再仅仅取决于样本本身,也取决于跟这个样本同属于一个batch的其他样本,并且每个网络都是随机取batch,这样整个网络就不会朝一个方向去训练学习,也就防止过拟合现象的发生,如附图6所示加了BN层比没加BN层的识别精度高。BN层可以让整个网络的训练速度得到加快,同时网络的泛化能力也得到了提高,这样我们就可以使用较大的学习率来训练网络,也不用担心梯度消失问题的发生。
权利要求4.根据权利要求1所述的步骤(3)对粒子群算法的改进在于对最优粒子添加高斯扰动,使得接下来的粒子都向着最优粒子的邻域进行学习,而不是向着该最优粒子学习,从而解决的传统粒子群算法容易陷入局部最优的问题,改进的粒子群算法的公式如下:
P
gm——粒子群的最优值;
P'
gm——扰动后的粒子群的最优值;
P
im——个体最优值;
N(μ,σ)——高斯函数,其中μ是平均值,σ为方差;
v
im——速度分量;
x
im——位置分量;
w——惯性权重;
c
1——自身学习因子;
c
2——种群学习因子;
r
1r
2——0到1之间的随机值;
适应度函数:
F(x)=aQ+b (2)
其中a为标量系数,b为偏移量,Q为加权融合后的损失函数,具体如式(3)所示。
权利要求5.根据权利要求1所述的步骤(3)对粒子群算法的改进在于对速度权重根据迭代次数实时优化,提高了算法的全局搜索能力;并添加偏移量,使得权重不会消失。改进的速度权重公式如下:
i
max——最大迭代次数;
i——当前迭代次数;
d——偏移量。
权利要求6.根据权利要求1所述的步骤(3)对粒子群算法的改进在于对自身学习因子和种群学习因子进行优化,即让学习因子随迭代次数进行最优化,再次提高了算法的全局搜索能力。改进的学习因子公式如下:
i
max——最大迭代次数;
i——当前迭代次数。
权利要求7.根据权利要求1所述的步骤(4)训练过程具体包括:在训练过程中的dropout的值设置为0.65,其目的是防止过拟合现象的发生;把训练好的数据集的维度调整为224*224*3;其中损失函数选择交叉熵损失函数和均方误差 损失函数,并对这两种函数进行加权融合,加权公式如式(5)所示。
α——交叉熵损失函数最后趋于稳定的损失值;
β——均方误差损失函数最后趋于稳定的损失值;
L——交叉熵损失函数,如式(4)所示;
MSE——均方误差损失函数,如式(5)所示。
交叉熵损失函数如式(6)所示
M——类别的数量;
d——表示第d个类别;
L
d——第d个类别的损失函数值;
y
dc——指示变量(0或1),如果该类别和样本i的类别相同就是1,否则是0;
p
dc——对于观测样本i属于本类别的预测概率。
均方误差损失函数如式(7)所示
y
c——表示第i个输入的值;
y′
c——表示其预测值。
接下来用G‐IFPSO算法对权值进行优化,优化算法过程如下:
(8)初始化参数,即粒子的位置、速度、个体最优位置、种群最优位置、学习因子;
(9)根据式(2)随着迭代次数不断更新粒子群算法的权重;
(10)根据式(3)随着迭代次数使得学习因子取得当前最优值;
(11)根据式(1)(3)(4)更新粒子的位置以及速度分量;
(12)根据式(2)计算出适应度的值;
(13)比较粒子的个体极值以及全局极值,不断进行优值替换;
(14)如果已经达到最大的迭代次数,输出最优解(η,γ),否则就返回第二步,继续训练。
交叉熵损失函数可以适应多类别的情况,而猪的特征都是多种多样的,交叉熵损失函数十分适合,而且交叉熵损失函数是对数形式的函数,在接近上边界的时候,高梯度的状态仍能保持,不会影响收敛速度,但是它的运算过程很复杂,计算速度不快,而均方误差损失函数可以弥补这个缺陷,两者结合优势互补,提高整个模型的运行速度;最后进行迭代训练,当迭代损失值小于一定的阈值后,训练停止,得出模型并保存预训练的特征提取网络。
权利要求8.根据权利要求1所述步骤(5)中的MB-IADLDP特征提取具体过程如下:对处理好的图像进行尺寸变换,变换成222*222,然后对它进行分块,每个分块的尺寸为3*3,共有74个分块,得到3*3的分块的编码G
i后进行Kirsch掩膜算子计算得到E
i,如公式(8)所示,再分别进行差值编码和绝对编码,如公式(9)和公式(10)所示,对差值编码得到的结果取结果最大的3个,即把取得结果最大的3个方向置1,其他方向置0,把绝对编码最大值的方向置1,其他置0。对得到的这两个结果进行加权融合得到最终的MB-IADLDP特征提取结果,最后得到74*8维度的矩阵,整个提取过程如图2所示。差值编码是为了让中心像素g
c周围的8个领域像素各自和周围联系更紧密,从而丰富提取信息;因为绝对值的大的那个方向说明该方向纹理效果是最好的,让绝对值编码和差值编码的结果进行加权融合,这样既保留了主要纹理,又减少了信息冗余。
E
i=G
i*M
j,i=1,2,...,74,j=0,2,...,7 (8)
G
i——第i个分块的编码值;
M
j——第j方向的Kirsch掩膜算子;
差值编码公式如下:
e
i——分块中中心像素周围的第i个编码;
绝对编码公式如下:
da
i=|e
i-e
i+4|,i=0,1,...,3 (10)
e
k——分块中第k大的编码值;
权利要求9.根据权利要求1所述步骤(6)在神经网络特征融合中运用迁移学习的具体描述如下:将BN‐VGG16的特征提取网络应用到猪的身份识别网络Pig‐VGG16上去,把Pre‐VGG16网络迁移学习分别运用在两个神经网络模型中,两个网络的区别就是最后一个池化层的不同,一个是均值池化层,一个是最大池化层,最大池化层可以更好地保留图像的纹理信息,平均池化层可以让图像的局部空间信息得以保留,两者结合可以提高特征提取的精度,从而提高身份识别的精度,再把这两个神经网络提取的特征以及MB-IADLDP提取的特征进行串行融合,最后把融合的结果在输入全连接层和softmax层进行最后的身份识别。融合策略具体是将待融合的特征进行展开,分别归一化后,相互连接形成一个新的特征向量,其中生成的新特征向量的长度等于待连接的特征向量的长度的总和,然后送入神经网络中得到最终识别结果。把PIG‐VGG16的全连接层改成卷积层,这样对输入图片的维度就没有限制了,可以对不同尺度的图片进行处理,把Pre‐VGG16网络迁移到猪的身份识别网络Pig‐VGG16上,就不用一直对特征提取网络进行训练,单次训练完成后就能一直用下去,提高了效率;接着初始化猪的身份识别网络的训练后的参数,并将参数调整为自定义值,即调整为身份识别网络在历史训练时刻时的参数,即dropout设置为0.6,Epoch设置为25,卷积核使用3*3大小,损失函数使用交叉熵损失函数和均方误差损失函数;把这个训练过程至少分为两段周期,并在相邻的两个周期之间,进行参数调整。整个过程的TensorFlow2.0上完成。先分别根据BN‐VGG16的各个模块,分别写出卷积层、池 化层、全连接层模块并调试保存;再在池化层后面添加BN层的程序代码并调试;然后用主程序输入数据集并调用各模块进行模型训练;达到迭代次数后保存特征提取部分模型;接着,迁移到两个不同的网络中,因为特征提取部分是一样的,所以能直接调用,只需修改最后一个池化层即可;把两个神经网络以及MB-IADLDP提取的特征进行融合,融合结果输入全连接层和softmax层进行最后的身份识别。观察本方法和传统VGG16以及BN‐VGG16在猪身份识别精度上的差别,得出最后的对比结果。如图7所示,Pig‐VGG16网络的识别精度是最高的,而且在一开始精度可以达到0.6,这是传统VGG16以及改进VGG16网络无法比拟的,由此可见Pig‐VGG16网络比传统VGG16以及改进VGG16更适合于猪的身份识别。
以上实例仅为本发明的举例论证,来具体说明本发明的可行性,但不仅仅限于此。