一种基于自适应归一化的细粒度鱼类疫病识别融合算法的制作方法



1.本发明涉及鱼类疫病识别分析领域,尤其是一种基于自适应归一化的细粒度鱼类疫病识别融合算法。


背景技术:



2.渔业活动为人类提供丰富的生活必需品的同时面临着各种疫病威胁。由于鱼类疫病细粒度特性表现为类间差距较小和类内差距较大,从元类别中识别出子类别实现对细粒度的相似特征进行识别较为困难。目前,鱼类健康监测仍需人类肉眼可视化识别方式准确性低、耗时长、容易产生各种各样误报。
3.因此,在养殖经验和鱼类健康专业知识外,需要准确可靠的鱼类疫病识别工具。计算机视觉方法在不影响输出精度的情况下自动提取特征,在鱼类疫病识别中发挥重要作用。由于transformer缺乏卷积神经网络(cnn)的归纳偏差,需要大量的数据进行训练;cnn对全局特征提取不足,泛化性能较差等问题限制模型的分类精度,现有归一化方法具有局限性,不能根据图像数据与识别模型自适应选择归一化方法,限制了模型精度。


技术实现要素:



4.为了克服现有技术中存在的上述问题,本发明提出一种基于自适应归一化的细粒度鱼类疫病识别融合算法。
5.本发明解决其技术问题所采用的技术方案是:一种基于自适应归一化的细粒度鱼类疫病识别融合算法,包括如下步骤:步骤1,开展数据采集工作,形成细粒度鱼类疫病识别数据集;步骤2,将步骤1所得的数据集中二维图像输入到cnn网络中,利用cnn网络对鱼类图像进行特征提取,得到二维数据特征图;步骤3,将步骤2所得的二维数据特征图输入到vision transformer网络,通过嵌入层得到带有位置编码信息的特征数据一维向量信息;步骤4,将步骤3所得的带有位置编码信息的特征数据一维向量信息输入到transformer编码层中,进行编码模块操作,通过自适应组归一化操作,将不同变化范围的数据计算为固定范围,采用全局交互算法对不同数字特征提供不同注意力,通过分配不同的权重,最后对特征图进行叠加生成能分辨不同疫病类别的特征图;步骤5,将步骤4所得的数据通过全连接输出带有类别特征的数字向量,即输出特定类别的健康鱼或感染鱼。
6.上述的一种基于自适应归一化的细粒度鱼类疫病识别融合算法,所述步骤1具体包括:步骤1.1,对鱼类的皮肤、鳃、眼睛或鳞片上的可见痕迹进行图像处理;步骤1.2,对所有分类不一致的图像进行分析,剔除不能得到代表性的图像,将数据集按4:1随机分为训练集和测试集。
7.上述的一种基于自适应归一化的细粒度鱼类疫病识别融合算法,所述步骤3具体包括:步骤3.1,嵌入层将二维数据特征图分为若干个相同大小的块,通过线性映射生成一维特征向量;步骤3.2,添加类别向量,与步骤2所得的二维数据特征图叠加,添加一个块作为分类的额外块;步骤3.3,添加位置嵌入,对步骤3.1中每一个块进行位置编码确定不同块的位置信息,具体公式如下:其中,pe
pos,2i
、pe
pos,2i+1
表示位置矩阵,pos表示向量的某一具体位置,d
model
表示维度,表示具体某一个维度。
8.上述的一种基于自适应归一化的细粒度鱼类疫病识别融合算法,所述步骤4中编码模块包括自适应组归一化层、多头注意力机制、全连接输出、丢弃模块。
9.上述的一种基于自适应归一化的细粒度鱼类疫病识别融合算法,所述自适应组归一化层通过控制参数来控制批归一化层与组归一化层分配比例,具体公式如下:其中,x表示模型的输入,r为relu激活函数,为组归一化方式计算的输入变量x的均值,为组归一化方式计算的输入变量x的方差,表示组归一化计算的输出;表示批归一化方式计算的输入变量x的均值,表示批归一化方式计算的输入变量x的方差,表示批归一化计算的输出;表示比例参数,表示移动参数,表示模型的输出。
10.上述的一种基于自适应归一化的细粒度鱼类疫病识别融合算法,当批数据量较小时采用组归一化方式训练结果更好,根据公式提出的归一层会自动增加比重,只使用组归一化输出;批数据量较大时采用批归一化方式训练结果更好,根据公式提出的归一化层
会自动减少比重,通过调整比例参数和移动参数在提出的归一化层中进行恒等变换。
11.上述的一种基于自适应归一化的细粒度鱼类疫病识别融合算法,所述多头注意力机制基于特征图对所有像素的全局交互建立算法模型,对不同序列进行注意力运算。
12.上述的一种基于自适应归一化的细粒度鱼类疫病识别融合算法,所述多头注意力机制具体运算过程包括:加强多个头部相互作用的学习,头部能够共享学习,将归一化后的特征输入到多头注意力机制中,具体公式如下:特征输入到多头注意力机制中,具体公式如下:其中,qm,km,vm分别是输入序列xm与q的权重矩阵wq、k的权重矩阵wk、v的权重矩阵wv相乘所得的变换矩阵,q表示匹配其他,k表示待匹配,v表示待提取信息,变换矩阵qm与变换矩阵km做一定的点积运算得到vm的权重矩阵,然后将权重矩阵与vm相乘并引入比例因子通过softmax()函数,最终将所得的结果叠加得到注意力bm。
13.上述的一种基于自适应归一化的细粒度鱼类疫病识别融合算法,所述全连接输出带由线性连接、gelu激活函数与丢弃结构的组成,线性连接将输入的节点数量相比较原节点数量扩充了四倍。
14.上述的一种基于自适应归一化的细粒度鱼类疫病识别融合算法,所述丢弃模块防止在训练数据集样本较小,模型参数过多时,模型容易产生过拟合现象,以某种概率忽略一定数量的神经元用于防止模型过拟合。
15.本发明的有益效果是,在不同水域、不同季节、不同天气下进行数据采集工作,并形成细粒度鱼类疫病识别数据集,通过图像处理技术提高模型在复杂多变环境下的抗干扰能力,提高模型的泛化能力;聚焦提高细粒度鱼类疫病识别精度,在cnn部建模识别关键特征结构之后连接transformer结构,使cnn结构更多的提取有用特征,采用自适应归一化方法合理分配归一化控制参数提高模型的鲁棒性,得到最终预测的重要特征,由此提高细粒度图像分类精度,在公开数据集上的识别结果明显领先于mobilenetv3、vit-small与efficientnet-b2等经典模型,有效解决鱼类疫病识别准确率低,人工识别效率低等问题。
附图说明
16.下面结合附图和实施例对本发明进一步说明。
17.图1为本发明的基于自适应归一化的细粒度鱼类疫病识别融合算法流程图;图2为本发明的融合算法的模型结构图;图3为模型分类可视化示意图;图4为本发明实施例验证结构示意图。
具体实施方式
18.为使本领域技术人员更好的理解本发明的技术方案,下面结合附图和具体实施方式对本发明作详细说明。
19.本实施例提供了一种高精度的细粒度鱼类疫病识别融合算法,可以准确识别出鱼类疫病,本实施例公开了融合算法的模型结构图如图2所示,采用cnn-transformer架构,包括卷积结构和transformer结构,利用来自cnn的特征,保留更多的图像边缘信息,卷积运算的局部特征使得距离较远的特征之间难以沟通,导致提取的特征中含有背景复杂的部分,影响识别结构,通过在卷积结构之后连接transformer结构来解决这个问题。transformer结构包括嵌入层、编码模块,编码模块包括自适应组归一化层、多头注意力机制、全连接输出、丢弃模块,transformer中的多头注意力机制可以建立对输入图像的长距离依赖,对图像的不同位置提供不同的注意,从而实现精确特征提取与鱼类疫病识别。
20.如图1所示,本实施例公开了一种基于自适应归一化的细粒度鱼类疫病识别融合算法,包括如下步骤:步骤1,开展数据采集工作,形成细粒度鱼类疫病识别数据集;本实施例中,为提高鱼类疫病数据集的多样性,分别在不同水域、不同季节、不同天气下与养殖专家开展为期300天的鱼类疫病数据采集工作,鱼类疫病图像主要在晴天光照条件好的情况下采集,由两位鱼类养殖专家审查数据集,以确认基本事实的有效性。
21.由于采集的原始数据在训练时无法适应复杂的现场条件,在研究中为防止过拟合现象,提升训练模型的泛化能力,通过对鱼类疫病图像数据增强的方法提高训练样本的多样性,扩大数据集增加建立模型的鲁棒性。对收集的图像中鱼类的皮肤、鳃、眼睛或鳞片上的可见痕迹进行图像处理,包括图像旋转、锐度值操作以及对原始细粒度鱼类疾病图像进行高斯处理。
22.在本实施例中,对所有分类不一致的图像进行分析,剔除不能得到代表性的图像,排出包含伪影图像33张、光照差图像47张、特征不明显图像72张等共201张图像,共收集鱼类疫病图像数据2020张,其中传染性鱼病图像499张,非寄生物引起的鱼病图像510张,侵袭性鱼病图像507张,健康鱼类图像504张,将数据集按4:1随机分为训练集和测试集。
23.为了缓解类别不平衡的问题,尝试用不同方法:第一种方法在训练过程中给每个类别分配不同的权重,其中权重与各自类别中的样本数量成反比;另一种采用过采样或数据增强,对鱼类疫病图像数据进行对比度增强操作,以获得每个类相同的样本数量,经测试,采用数据集增强可以平衡数据库从而提高分类准确率,为后续提供高质量数据集。
24.步骤2,将步骤1所得的数据集中二维图像输入到cnn网络中,利用cnn网络对鱼类图像进行特征提取,图像通过输入层输入到网络中,然后对其进行归一化处理。图像高度、宽度和通道大小分别设置为 224, 224, 3(红、绿、蓝),卷积层以空间感知的方式将各种低层特征编码为更具有辨析性的特征,得到二维数据特征图。鱼类疫病图像识别中使用卷积核大小为 16*16,卷积核个数为 768 的卷积层来实现。通过卷积[224, 224, 3]生成[14, 14, 768],将宽、高两个维度展平生成[196, 768]的二维矩阵并输入到 transformer 模型中。
[0025]
步骤3,将步骤2所得的二维数据特征图输入到vision transformer网络,通过嵌入层得到带有位置编码信息的特征数据一维向量信息;
步骤3具体包括:步骤3.1,嵌入层将二维数据特征图分为若干个相同大小的块,本实施例中,224*224 的图片按照 16*16 大小进行划分得到(224*224)/(16*16)=196个块,通过线性映射生成一维特征向量,每个[16, 16, 3]的块通过线性映射生成长度为 768 的一维向量;步骤3.2,添加类别向量,与步骤2所得的二维数据特征图叠加,添加一个块作为分类的额外块,196个块中需额外添加作为分类的额外块,因此分块的总数量为197,由([1, 768], [196,768])生成[197, 768];步骤3.3,添加位置嵌入,对步骤3.1中每一个块进行位置编码确定不同块的位置信息,具体公式如下:其中,pe
pos,2i
、pe
pos,2i+1
表示位置矩阵,pos表示向量的某一具体位置,d
model
表示维度,表示具体某一个维度。
[0026]
步骤4,将步骤3所得的带有位置编码信息的特征数据一维向量信息输入到transformer编码层中,进行编码模块操作,通过自适应组归一化操作,将不同变化范围的数据计算为固定范围,采用全局交互算法对不同数字特征提供不同注意力,通过分配不同的权重,最后对特征图进行叠加生成能分辨不同疫病类别的特征图,模型分类可视化如图3所示;其中编码模块包括自适应组归一化层、多头注意力机制、全连接输出、丢弃模块。
[0027]
自适应组归一化层通过控制参数来控制bn(批归一化)与gn(组归一化)分配比例,具体公式如下:其中,x表示模型的输入,r为relu激活函数,为组归一化方式计算的输入变量x的均值,为组归一化方式计算的输入变量x的方差,表示组归一化计算的输出;表示批归一化方式计算的输入变量x的均值,表示批归一化方式计算的输入变量x的方
差,表示批归一化计算的输出;表示比例参数,表示移动参数,表示模型的输出;当批数据量较小时采用组归一化方式训练结果更好,根据公式提出的归一层会自动增加比重,只使用组归一化输出;批数据量较大时采用批归一化方式训练结果更好,根据公式提出的归一化层会自动减少比重,通过调整比例参数和移动参数在提出的归一化层中进行恒等变换。
[0028]
多头注意力机制基于特征图对所有像素的全局交互建立算法模型,对不同序列进行注意力运算。加强多个头部相互作用的学习,头部能够共享学习,将归一化后的特征输入到多头注意力机制中,具体公式如下:到多头注意力机制中,具体公式如下:其中,qm,km,vm分别是输入序列xm与q的权重矩阵wq、k的权重矩阵wk、v的权重矩阵wv相乘所得的变换矩阵,q表示匹配其他,k表示待匹配,v表示待提取信息,变换矩阵qm与变换矩阵km做一定的点积运算得到vm的权重矩阵,然后将权重矩阵与vm相乘并引入比例因子通过softmax()函数,最终将所得的结果叠加得到注意力bm。
[0029]
全连接输出由线性连接、gelu激活函数与丢弃结构的组成,线性连接将输入的节点数量由[197, 768]扩充到[197, 3072],相比较原节点数量扩充了四倍,下一个线性连接层将节点的个数由[197, 3072]还原到[197, 768]数量,输入到丢弃结构中。
[0030]
丢弃模块:实际训练过程中模型的训练样本可能不足够,数据集会存在不平衡的问题,为防止模型训练需要的参数过多出现训练集精度较高,而测试集精度交底的过拟合问题,在网络的最后接入丢弃模块。
[0031]
步骤5,transformer 编码后数据的输入形状和输出形状是保持不变的,通过全连接输出带有类别特征的数字向量,由此模型具备了识别不同疫病的特征,输出特定类别的健康鱼或者为感染的鱼。
[0032]
对模型分别采用不同的组归一化方法,对本实施例提出的方法分别与主流归一化进行比较,将本实施例所提出的模型方法在搭建的鱼类疫病图像数据集下进行实验,总数据量为2020张鱼类疫病数据,按4:1划分训练集与测试集,总计传染性语病、非寄生引起的鱼病、侵袭性鱼病、健康鱼类四种鱼类数据。本次训练基于nvidia geforce rtx 3060,机带ram 16gb,windows11系统,tensorflow1.7框架,python3.7下实现。精度用于测量的总和上的真正样本(tp: true positives)、真负样本(tn: true negatives)、假阳性样本(fp: false positives)、假阴性样本(fn: false negatives)。验证结果如图4所示,其中gn为组归一化,bn为批归一化,ln为层归一化,in为实例归一化,验证模型归一化方法的效果横轴为召回率,纵轴为精确率,计算公式如下所示:
从图4可以看出,本实施例自适应归一化算法分类效果最好,精确率最高。
[0033]
将本实施例所提出的模型方法及现有技术中的经典模型在公开细粒度数据集oxford flowers(类别量102个,图片数量8189张)上进行对比实验,按4:1划分数据集验证各个模型分类效果,所得结果如表1所示,本次训练基于nvidia geforce rtx 3060,机带ram 16gb,windows11系统,tensorflow1.7框架,python3.7下实现。从表1可以看出 ,本发明所提出的方法进行鱼类疫病识别的准确率达到96%,优于现有技术中的经典模型。
[0034]
表1 本实施例模型与经典模型精确率对比以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。

技术特征:


1.一种基于自适应归一化的细粒度鱼类疫病识别融合算法,其特征在于:包括如下步骤:步骤1,开展数据采集工作,形成细粒度鱼类疫病识别数据集;步骤2,将步骤1所得的数据集中二维图像输入到cnn网络中,利用cnn网络对鱼类图像进行特征提取,得到二维数据特征图;步骤3,将步骤2所得的二维数据特征图输入到vision transformer网络,通过嵌入层得到带有位置编码信息的特征数据一维向量信息;步骤4,将步骤3所得的带有位置编码信息的特征数据一维向量信息输入到transformer编码层中,进行编码模块操作,通过自适应组归一化操作,将不同变化范围的数据计算为固定范围,采用全局交互算法对不同数字特征提供不同注意力,通过分配不同的权重,最后对特征图进行叠加生成能分辨不同疫病类别的特征图;步骤5,将步骤4所得的数据通过全连接输出带有类别特征的数字向量,即输出特定类别的健康鱼或感染鱼。2.根据权利要求1所述的一种基于自适应归一化的细粒度鱼类疫病识别融合算法,其特征在于,所述步骤1具体包括:步骤1.1,对鱼类的皮肤、鳃、眼睛或鳞片上的可见痕迹进行图像处理;步骤1.2,对所有分类不一致的图像进行分析,剔除不能得到代表性的图像,将数据集按4:1随机分为训练集和测试集。3.根据权利要求1所述的一种基于自适应归一化的细粒度鱼类疫病识别融合算法,其特征在于,所述步骤3具体包括:步骤3.1,嵌入层将二维数据特征图分为若干个相同大小的块,通过线性映射生成一维特征向量;步骤3.2,添加类别向量,与步骤2所得的二维数据特征图叠加,添加一个块作为分类的额外块;步骤3.3,添加位置嵌入,对步骤3.1中每一个块进行位置编码确定不同块的位置信息,具体公式如下:其中,pe
pos,2i
、pe
pos,2i+1
表示位置矩阵,pos表示向量的某一具体位置,d
model
表示维度,具体某一个维度。4.根据权利要求1所述的一种基于自适应归一化的细粒度鱼类疫病识别融合算法,其特征在于,所述步骤4中编码模块包括自适应组归一化层、多头注意力机制、全连接输出、丢弃模块。5.根据权利要求4所述的一种基于自适应归一化的细粒度鱼类疫病识别融合算法,其特征在于,所述自适应组归一化层通过控制参数来控制批归一化层与组归一化层分配比例,具体公式如下:
其中,x表示模型的输入,r为relu激活函数,为组归一化方式计算的输入变量x的均值,为组归一化方式计算的输入变量x的方差,表示组归一化计算的输出;表示批归一化方式计算的输入变量x的均值,表示批归一化方式计算的输入变量x的方差,表示批归一化计算的输出;表示比例参数,表示移动参数,表示模型的输出。6.根据权利要求5所述的一种基于自适应归一化的细粒度鱼类疫病识别融合算法,其特征在于,当批数据量较小时采用组归一化方式训练结果更好,根据公式提出的归一层会自动增加控制参数比重,只使用组归一化输出;批数据量较大时采用批归一化方式训练结果更好,根据公式提出的归一化层会自动减少控制参数比重,通过调整比例参数和移动参数在提出的归一化层中进行恒等变换。7.根据权利要求4所述的一种基于自适应归一化的细粒度鱼类疫病识别融合算法,其特征在于,所述多头注意力机制基于特征图对所有像素的全局交互建立算法模型,对不同序列进行注意力运算。8.根据权利要求7所述的一种基于自适应归一化的细粒度鱼类疫病识别融合算法,其特征在于,所述多头注意力机制具体运算过程包括:加强多个头部相互作用的学习,头部能够共享学习,将归一化后的特征输入到多头注意力机制中,具体公式如下:化后的特征输入到多头注意力机制中,具体公式如下:其中,q
m
,k
m
,v
m
分别是输入序列x
m
与q的权重矩阵w
q
、k的权重矩阵w
k
、v的权重矩阵w
v
相乘所得的变换矩阵,q表示匹配其他,k表示待匹配,v表示待提取信息,变换矩阵q
m
与变换矩阵k
m
做一定的点积运算得到v
m
的权重矩阵,然后将权重矩阵与v
m
相乘并引入比例因子通过softmax()函数,最终将所得的结果叠加得到注意力b
m

9.根据权利要求4所述的一种基于自适应归一化的细粒度鱼类疫病识别融合算法,其特征在于,所述全连接输出带由线性连接、gelu激活函数与丢弃结构的组成,线性连接将输入的节点数量相比较原节点数量扩充了四倍。10.根据权利要求4所述的一种基于自适应归一化的细粒度鱼类疫病识别融合算法,其特征在于,所述丢弃模块防止在训练数据集样本较小,模型参数过多时,模型容易产生过拟合现象,以某种概率忽略一定数量的神经元用于防止模型过拟合。

技术总结


本发明公开了一种基于自适应归一化的细粒度鱼类疫病识别融合算法,包括开展数据采集工作,形成细粒度鱼类疫病识别数据集;将数据集中二维图像输入到CNN网络中,利用CNN网络对鱼类图像进行特征提取,得到二维数据特征图;将二维数据特征图输入到Vision Transformer网络,通过嵌入层得到带有位置编码信息的特征数据一维向量信息;将带有位置编码信息的特征数据一维向量信息输入到Transformer编码层中,进行编码模块操作,将数据通过全连接输出带有类别特征的数字向量。本发明模型的泛化能力高,鲁棒性好,有效解决鱼类疫病识别准确率低,人工识别效率低的问题。人工识别效率低的问题。人工识别效率低的问题。


技术研发人员:

贺保卫 魏立明 张忠岩 崔海朋 刘鲁西 马志宇 沈炜皓 徐东阳 姜英昌 田贺

受保护的技术使用者:

青岛杰瑞工控技术有限公司

技术研发日:

2022.11.02

技术公布日:

2022/12/12

本文发布于:2024-09-20 14:40:19,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/34069.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:鱼类   疫病   特征   数据
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议