1.一种基于迁移学习的改进VGG16网络猪的身份识别方法,其特征在于,包括以下步骤:步骤1,根据视频进行逐帧提取,再进行翻转、裁剪、对比度增强操作得到扩充后的数据集,然后进行测试集和训练集的划分;
步骤2,将每个池化层后添加BN层构建改进网络层后的BN‑VGG16模型;
步骤3,将粒子群算法改进为高斯‑改良因子粒子群算法G‑IFPSO;
步骤4,利用步骤1处理好的训练集进行训练,采用G‑IFPSO算法对加权融合的损失函数中的交叉熵损失函数和均方误差损失函数的权重进行优化,并保存预训练的特征提取网络Pre‑VGG16;
步骤5,采用多分块改进的绝对值差分局部方向模式算法用于猪的传统特征提取,为特征融合和猪的身份识别提供特征信息;
步骤6,把Pre‑VGG16特征提取网络分别迁移到两个不同的神经网络中进行训练,并对网络参数进行微调,然后将数据集调整为224*224*3,并对调整后的数据集进行多分块改进的绝对值差分局部方向模式MB‑IADLDP特征提取,再把这两个神经网络提取的特征以及MB‑IADLDP特征进行串行融合,即向量融合,最后进行猪的身份识别。
2.根据权利要求1所述的一种基于迁移学习的改进VGG16网络猪的身份识别方法,其特征在于,步骤1具体包括:先对视频进行逐帧提取得到图片;然后对得到的图片进行预处理,即对图像进行水平翻转和随机方向翻转、伽马变换、直方图均衡化、对数变换、去噪和添加噪声点扩充数据集,最终得到处理后的数据集,由一开始的500张扩充到4900张;最后对处理后的数据集进行划分,以6:1的比例划分为训练集和测试集。
3.根据权利要求1所述的一种基于迁移学习的改进VGG16网络猪的身份识别方法,其特征在于,步骤2中构建改进网络层后的BN‑VGG16模型具体包括:在每个最大池化层后加个BN层,整个网络的结构就是有2个包含64个卷积核的卷积层,后接一个最大池化层和BN层,2个包含128个卷积核的卷积层,后接一个最大池化层和BN层,3个包含256个卷积核的卷积层,后接一个最大池化层和BN层,3个包含512个卷积核的卷积层,后接一个最大池化层和BN层,
3个包含512个卷积核的卷积层,后接一个最大池化层和BN层,2个包含4096个神经元的全连接层,1个包含1000个神经元的全连接层,最后是一个softmax层。
4.根据权利要求1所述的一种基于迁移学习的改进VGG16网络猪的身份识别方法,其特征在于,步骤3中,对粒子群算法改进,对最优粒子添加高斯扰动,改进的粒子群算法的公式如下:Pgm——粒子群的最优值;
P'gm——扰动后的粒子群的最优值;
Pim——个体最优值;
N(μ,σ)——高斯函数,其中μ是平均值,σ为方差;
vim——速度分量;
xim——位置分量;
w——惯性权重;
c1——自身学习因子;
c2——种群学习因子;
r1 r2——0到1之间的随机值;
适应度函数:
F(x)=aQ+b (2)
其中a为标量系数,b为偏移量,Q为加权融合后的损失函数。
5.根据权利要求4所述的一种基于迁移学习的改进VGG16网络猪的身份识别方法,其特征在于,步骤3中,对粒子群算法改进,还需要对速度权重根据迭代次数实时优化,并添加偏移量,使得权重不会消失,改进的速度权重公式如下:imax为最大迭代次数;wmax为速度权重最大值;wmin为速度权重最小值;i为当前迭代次数;d为偏移量。
6.根据权利要求5所述的一种基于迁移学习的改进VGG16网络猪的身份识别方法,其特征在于,步骤3中,对粒子群算法改进,还需要对自身学习因子和种群学习因子进行优化,即让学习因子随迭代次数进行最优化,改进的学习因子公式如下:imax——最大迭代次数;
i——当前迭代次数。
7.根据权利要求6所述的一种基于迁移学习的改进VGG16网络猪的身份识别方法,其特征在于,步骤4中利用步骤1处理好的训练集进行训练具体包括:在训练过程中的dropout的值设置为0.65,其目的是防止过拟合现象的发生;把训练好的数据集的维度调整为224*
224*3;其中损失函数选择交叉熵损失函数和均方误差损失函数,并对这两种函数进行加权融合,加权公式如式(5)所示:α——交叉熵损失函数最后趋于稳定的损失值;
β——均方误差损失函数最后趋于稳定的损失值;
L——交叉熵损失函数,如式(4)所示;
MSE——均方误差损失函数,如式(5)所示;
令
交叉熵损失函数如式(6)所示
M——类别的数量;
u——表示第u个类别;
Lu——第u个类别的损失函数值;
yuc——指示变量,如果该类别和样本i的类别相同就是1,否则是0;
puc——对于观测样本i属于本类别的预测概率;
均方误差损失函数如式(7)所示
yc——表示第i个输入的值;
y′c——表示其预测值;
采用G‑IFPSO算法对权值进行优化,优化算法过程如下:(1)初始化参数,即粒子的位置、速度、个体最优位置、种群最优位置、学习因子;
(2)根据式(2)随着迭代次数不断更新粒子群算法的权重;
(3)根据式(3)随着迭代次数使得学习因子取得当前最优值;
(4)根据式(1)(3)(4)更新粒子的位置以及速度分量;
(5)根据式(2)计算出适应度的值;
(6)比较粒子的个体极值以及全局极值,不断进行优值替换;
(7)如果已经达到最大的迭代次数,输出最优解(η,γ),否则就返回第二步,继续训练;
最后进行迭代训练,当迭代损失值小于一定的阈值后,训练停止,得出模型并保存预训练的特征提取网络。
8.根据权利要求1所述的一种基于迁移学习的改进VGG16网络猪的身份识别方法,其特征在于,步骤6中的MB‑IADLDP特征提取具体过程如下:对处理好的图像进行尺寸变换,变换成222*222,然后对它进行分块,每个分块的尺寸为3*3,共有74个分块,得到3*3的分块的编码Gi后进行Kirsch掩膜算子计算得到Ei,如公式(8)所示,再分别进行差值编码和绝对编码,如公式(9)和公式(10)所示,对差值编码得到的结果取结果最大的3个,即把取得结果最大的3个方向置1,其他方向置0,把绝对编码最大值的方向置1,其他置0;对得到的这两个结果进行加权融合得到最终的MB‑IADLDP特征提取结果,最后得到74*8维度的矩阵,差值编码是为了让中心像素gc周围的8个领域像素各自和周围联系更紧密,从而丰富提取信息;因为绝对值的大的那个方向说明该方向纹理效果是最好的,让绝对值编码和差值编码的结果进行加权融合,这样既保留了主要纹理,又减少了信息冗余;
Ei=Gi*Mj,i=1,2,...,74,j=0,2,...,7 (8)Gi——第i个分块的编码值;
Mj——第j方向的Kirsch掩膜算子;
差值编码公式如下:
ea——分块中中心像素周围的第a个编码;
绝对编码公式如下:
dac=|ec‑ec+4|,c=0,1,...,3 (10)ek——分块中第k大的编码值;
9.根据权利要求1所述的一种基于迁移学习的改进VGG16网络猪的身份识别方法,其特征在于,步骤6中,把Pre‑VGG16特征提取网络分别迁移到两个不同的神经网络中进行训练的具体描述如下:将BN‑VGG16的特征提取网络应用到猪的身份识别网络Pig‑VGG16上去,把Pre‑VGG16网络迁移学习分别运用在两个神经网络模型中,两个网络的区别就是最后一个池化层的不同,一个是均值池化层,一个是最大池化层,再把这两个神经网络提取的特征以及MB‑IADLDP提取的特征进行串行融合,最后把融合的结果在输入全连接层和softmax层进行最后的身份识别;融合策略具体是将待融合的特征进行展开,分别归一化后,相互连接形成一个新的特征向量,其中生成的新特征向量的长度等于待连接的特征向量的长度的总和,然后送入神经网络中得到最终识别结果;把Pig‑VGG16的全连接层改成卷积层;接着初始化猪的身份识别网络的训练后的参数,并将参数调整为自定义值,即调整为身份识别网络在历史训练时刻时的参数,即dropout设置为0.6,Epoch设置为25,卷积核使用3*3大小,损失函数使用交叉熵损失函数和均方误差损失函数;把这个训练过程至少分为两段周期,并在相邻的两个周期之间,进行参数调整;整个过程的TensorFlow2.0上完成,先分别根据BN‑VGG16的各个模块,分别写出卷积层、池化层、全连接层模块并调试保存;再在池化层后面添加BN层的程序代码并调试;然后用主程序输入数据集并调用各模块进行模型训练;达到迭代次数后保存特征提取部分模型;接着,迁移到两个不同的网络中,因为特征提取部分是一样的,所以能直接调用,只需修改最后一个池化层即可;把两个神经网络以及MB‑IADLDP提取的特征进行融合,融合结果输入全连接层和softmax层进行最后的身份识别。