专利名称:一种鱼类疾病预警方法及系统
专利类型:发明专利
专利申请号:CN202410095671.4
专利申请(专利权)人:中国水产科学研究院黄海水产研究所
权利人地址:山东省青岛市市南区南京路106号
专利发明(设计)人:崔鸿武,黄桢铭,赵海翔,崔正国,曲克明
专利摘要:本发明公开了一种鱼类疾病预警方法及系统,包括以下步骤:获取鱼类体表、行为以及水质信息进行特征训练,并提取鱼类的特征向量,反映鱼类的健康状况和疾病的影响。利用YOLOv8对鱼类体表信息进行分类,利用YOLOv8+ByteTrack多目标跟踪技术,准确地检测和跟踪鱼类的目标,避免目标丢失和误识别的问题。利用LSTM时间序列预测技术,预测鱼类的未来状态,捕捉鱼类的行为变化和异常情况。利用FUZZY模糊推理技术,合理地设定模糊集合和模糊规则,有效地进行模糊推理,输出鱼类的疾病预警等级。本发明可以将鱼群体表特征,游动行为,水质情况整合,对鱼群的健康状态进行精准的评估,避免了单独使用某一特征而出现弊端。
主权利要求:
1.一种鱼类疾病预警方法,其特征在于,包括以下步骤:
获取鱼类行为信息、鱼类体表信息以及水质信息,并对所述鱼类行为信息、所述鱼类体表信息以及所述水质信息进行特征训练,获得鱼类患病数据集;其中,所述鱼类患病数据集包括:鱼类健康、患病的体表数据集、鱼类俯视角行为标注数据集以及水质数据集;
利用YOLOv8对所述鱼类健康、患病的体表数据集以及所述鱼类俯视角行为标注数据集进行训练,获得鱼类体表以及头部的权重;
利用ByteTrack对鱼类头部的权重进行跟踪训练,获得每一个鱼类个体在连续帧中的空间位置、速度与转向角信息;
基于所述水质数据、所述每一个鱼类个体在连续帧中的空间位置、速度与转向角信息,利用LSTM时间序列预测技术,预测水质和鱼类的分类状态,获得水质分类等级以及鱼类行为分类等级;
利用FUZZY模糊推理技术,设定模糊集合和模糊规则,构建模糊推理模型;基于所述模糊推理模型,对所述水质以及鱼类行为分类进行模糊推理,获得鱼类疾病预警等级;
实验系统为一个1.2m*0.8m的pp圆形池,过滤设备采用周转箱模拟循环水系统,水质采集设备采用传感器和水质监测仪器,图像采集系统由摄像机和数据存储器组成,光源采用LED灯架设在水面上,摄像机被放置于系统正上方以及水下,水上采集分辨率为2560*1920像素,速率为25fps,水下采集分辨率为1920*1080像素,速率为25fps;系统中共养殖鱼20尾,采用大口黑鲈漂浮饲料喂养,每天喂食体重1%;水温维持在24‑26℃之间,实验前,已在系统中进行了为期8周的养殖;
通过视频采集系统,对鱼群患病前、患病中和患病后的游动行为进行拍摄,共采集累计
200小时视频图像,将侧面视角和俯视角视频分别采用codetools分为300张图像,并选择患病前,患病中,患病后的视频片段导入服务器,制作出鱼群患病行为数据集;
获得每一个鱼类个体在连续帧中的空间位置、速度与转向角信息的方法包括:
使用labelImg对图像中的鱼类头部进行标注,将标注好的数据集输入YOLOv8网络中进行训练,其网络结构获得用于识别鱼类头部的权重;将鱼类头部图像截取并输入到ByteTrack网络中,对患病前,患病中,患病后的视频中的鱼类头部进行追踪,并输出每一个鱼类个体在连续帧中的空间位置,速度与转向角信息;
对于鱼类疾病识别和鱼类头部识别以用于追踪的用途,YOLOv8的参数介设置:model为YOLOv8s.pt,data为bigmouth.yaml,epochs为100,patience为50,batch为16,imgsz为640,box为7.5,cls为0.5,dfl为1.5,pose为12.0,kobj为1.0,IOU为0.7;
对于头部识别追踪的用途,将ByteTrack参数设置为:model为Bigmouth‑20.yaml,track_thresh为0.001,track_buffer为120,match_thresh为0.9,frame_rate为60,conf_thres为0.001;
利用ByteTrack对所述鱼类体表以及头部的权重进行跟踪训练,检测框对目标检测结果分类,大于等于0.001的检测框为高分检测框,进行第一次IOU匹配,IOU大于等于0.9的轨迹与检测框进行匹配,未匹配的检测框在置信度大于等于0.001的时候进入轨迹追踪,小于
0.001则忽略,未匹配轨迹及低分检测框进行第二次IOU匹配,循环以上步骤直至匹配完成,获得每一个鱼类个体在连续帧中的空间位置、速度与转向角信息;
获得鱼类体表以及头部的权重的方法包括:
使用labelImg对所述鱼类健康、患病的体表数据集以及所述鱼类俯视角行为标注数据集中的鱼类侧视角全身、鱼类俯视角头部数据进行标注;
将标注好的数据集输入YOLOv8网络中进行训练,获得鱼类体表以及头部的权重;
所述模糊推理模型由五个功能模块组成,分别是:FUZZY编辑器、隶属函数编辑器、模糊规则编辑器、模糊规则观察器和曲面观察器;
所述模糊推理模型包含若干模糊if‑then规则的规则库;定义关于使用模糊if‑then规则的模糊集的隶属度函数的数据库;在规则上的执行推理操作的决策单元;将明确输入转化为与语言价值匹配的程度的模糊界面;将推理得到的模糊结果转化为明确输出的去模糊界面;
采用mamadni算法,gaussmf函数来进行模糊规则的设计,根据水质数据,体表数据,行为数据,进行模糊推理模型的设计;
其中YOLOv8算法的网络结构由三个部分组成:backbone、Neck和Head;骨干网络用于提取图像的特征,Neck用于融合不同尺度的特征,Head用于预测目标的类别和位置;其原理为:backbone采用了CSPDarkNet的结构,YOLOv8使用C2f模块代替C3模块,实现进一步轻量化,同时增加了跳层连接,提升梯度流和收敛效果;
Neck采用了PANet的结构,通过自上而下和自下而上的双向通路,使得底层信息更容易传递到顶层,增强了特征的表达能力;
Head采用了解耦头的结构,将分类和回归分支分离,并从Anchor‑Based换成了Anchor‑Free的方式,简化标签分配和损失计算的过程;
YOLOv8算法的损失函数由两部分组成:分类损失和回归损失;分类损失使用了VFLLoss,它是一种基于概率分布的分类损失,有效地处理类别不平衡的问题;
回归损失使用了DFLLoss和CIOULoss,它们是一种基于分布的回归损失,更准确地预测目标的位置和大小;
YOLOv8算法的标签分配采用了Task‑AlignedAssigner,它是一种动态的正负样本分配策略,根据任务的难度和模型的性能进行自适应的调整,提高训练的效率和稳定性;
ByteTrack分为四个部分:检测器、卡尔曼滤波、匈牙利算法和置信度阈值,其各个部分的原理为:检测器:ByteTrack使用YOLOX作为检测器,实现高效的目标检测;YOLOX是一种基于anchor‑free的检测器,使用了FocalLoss和NMS来优化检测结果;YOLOX还使用了多尺度特征融合和数据增强技术来提高检测性能;
卡尔曼滤波器:ByteTrack使用卡尔曼滤波器来预测目标的运动状态,包括位置、速度和加速度;卡尔曼滤波器是一种递归的贝叶斯滤波器,利用观测数据和先验知识来估计系统的状态;卡尔曼滤波器处理运动模型的不确定性和噪声;
匈牙利算法:ByteTrack使用匈牙利算法来进行目标和轨迹之间的匹配,即数据关联;
匈牙利算法是一种求解二分图最大匹配的算法,在多项式时间内找到最优解;ByteTrack使用余弦相似度和马氏距离作为匹配的代价函数,分别衡量目标的外观和运动的相似度;
置信度阈值:ByteTrack使用一个动态的置信度阈值来过滤掉背景检测框和虚假目标;
置信度阈值是根据当前帧的检测框的分数分布来确定的,自适应地调整;ByteTrack还使用一个最小置信度阈值来保留一些低分数的检测框,以便利用轨迹的相似度来恢复真实目标;
LSTM引入了一个单元状态,用来保存和传递长期的信息,同时通过三个门控结构来控制信息的流动;LSTM有效地解决一般RNN中的梯度消失或爆炸的问题,提高了模型的稳定性和泛化能力,其原理如下:输入门控制新输入的信息的流动,通过一个sigmoid层和一个tanh层来计算一个候选状态,表示新的信息;
遗忘门控制旧细胞状态的遗忘,通过一个sigmoid层来计算一个遗忘因子,表示哪些元素需要被遗忘,哪些元素需要保留;
细胞状态根据输入门和遗忘门的控制,遗忘旧状态和融合新状态,得到新的状态;
输出门控制细胞状态的输出,通过一个sigmoid层和一个tanh层来计算一个输出因子,表示细胞状态的哪一部分需要被输出;
鱼类疾病预警预测方法在健康、亚健康、患病等级的数据集上提高了疾病预警的准确率,经过验证,对于染病体表特征识别准确率达到87.54%,对于染病水质的预测准确率达到
78.73%,对于染病行为的预测准确率达到81.08%,鱼类疾病预警系统的综合识别准确率达到94.17%。
2.一种鱼类疾病预警系统,实现如权利要求1所述的一种鱼类疾病预警方法,其特征在于,包括以下步骤:数据集获得模块、权重获得模块、特征信息获得模块、分类模块和预警模块;
所述数据集获得模块用于获取鱼类行为信息、鱼类体表信息以及水质信息,并对所述鱼类行为信息、所述鱼类体表信息以及所述水质信息进行特征训练,获得鱼类患病数据集;
其中,所述鱼类患病数据集包括:鱼类健康、患病的体表数据集、鱼类俯视角行为标注数据集以及水质数据集;
所述权重获得模块用于利用YOLOv8对所述鱼类健康、患病的体表数据集以及所述鱼类俯视角行为标注数据集进行训练,获得鱼类体表以及头部的权重;
所述特征信息获得模块用于利用ByteTrack对所述鱼类体表以及头部的权重进行跟踪训练,获得每一个鱼类个体在连续帧中的空间位置、速度与转向角信息;
所述分类模块用于基于所述水质数据、所述每一个鱼类个体在连续帧中的空间位置、速度与转向角信息,利用LSTM时间序列预测技术,预测水质和鱼类的分类状态,获得水质分类等级以及鱼类行为分类等级;
所述预警模块用于利用FUZZY模糊推理技术,设定模糊集合和模糊规则,构建模糊推理模型;基于所述模糊推理模型,对所述水质以及鱼类行为分类进行模糊推理,获得鱼类疾病预警等级。 说明书 : 一种鱼类疾病预警方法及系统技术领域[0001] 本发明属于鱼类疾病预警技术领域,具体涉及一种鱼类疾病预警方法及系统。背景技术[0002] 目前,对鱼类疾病进行预警的传统方法主要依靠经验来对鱼类进行检查,如观察鱼的行为和外观,如游动、摄食、呼吸、鳞片、鳍、鳃等有无异常或损伤。观察水质和水温,如颜色、透明度、气味、pH、溶氧、氨氮、亚硝酸盐等有无超出正常范围或突变。采集病鱼和池水样本,进行肉眼检查、显微镜观检、解剖检查等,有无病原微生物、寄生虫、病理变化等。根据现场调查和病原鉴别,分析发病原因和病症特征,参考相关文献或专家意见,进行初步诊断。传统的方法依靠经验来进行诊断,对养殖者的要求较高,依赖肉眼和经验对鱼类进行观察,容易忽略早期症状和隐性症状,导致误诊和漏诊,而且不能准确鉴定病原和多病原复合感染的情况,同时其准确性以及时效性低,常常会发生诊断不及时导致养殖户产生巨大损失。[0003] 近年来,随着人工智能技术的发展,一些基于机器学习和深度学习的鱼类疾病预测方法被提出,如采用梯度推进技术通过分析水质来早期检测鱼类疾病,该模型可对水质及特定水质特征引起的疾病进行预测。行为方面,目前有研究采用YOLOv5作为监测模型,深化ReID模型的网络结构,针对鱼体扭曲造成的较大变形,深化了ReID模型的网络结构,增强了模型的特征提取能力。提出通过设置虚拟基线对过线鱼类进行识别和跟踪,实现对过线鱼类的动态识别和上下数量的自动,但是对于鱼病的多维度综合识别,还是有很大空缺。[0004] 因此,亟需提出一种基于YOLOv8+ByteTrack多目标跟踪、LSTM时间序列预测和FUZZY模糊推理技术三者结合的鱼类疾病预警方法,对鱼类的患病特征进行精确分析,提高养殖效益。发明内容[0005] 针对现有技术的不足,本发明提出了一种鱼类疾病预警方法及系统,分为特征提取部分和疾病预警分析部分,可以将鱼群游动行为,水质情况,体表特征整合,对鱼群的健康状态进行精准的评估,避免了单独使用某一特征而出现弊端。[0006] 为实现上述目的,本发明提供了如下方案:[0007] 一种鱼类疾病预警方法,包括以下步骤:[0008] 获取鱼类行为信息、鱼类体表信息以及水质信息,并对所述鱼类行为信息、所述鱼类体表信息以及所述水质信息进行特征训练,获得鱼类患病数据集;其中,所述鱼类患病数据集包括:鱼类健康、患病的体表数据集、鱼类俯视角行为标注数据集以及水质数据集;[0009] 利用YOLOv8对所述鱼类健康、患病的体表数据集以及所述鱼类俯视角行为标注数据集进行训练,获得鱼类体表以及头部的权重;[0010] 利用ByteTrack对所述鱼类头部的权重进行跟踪训练,获得每一个鱼类个体在连续帧中的空间位置、速度与转向角信息;[0011] 基于所述水质数据、所述每一个鱼类个体在连续帧中的空间位置、速度与转向角信息,利用LSTM时间序列预测技术,预测水质和鱼类的分类状态,获得水质分类等级以及鱼类行为分类等级;[0012] 利用FUZZY模糊推理技术,设定模糊集合和模糊规则,构建模糊推理模型;基于所述模糊推理模型,对所述水质以及鱼类行为分类进行模糊推理,获得鱼类疾病预警等级。[0013] 优选的,获得鱼类体表以及头部的权重的方法包括:[0014] 使用labelImg对所述鱼类健康、患病的体表数据集以及所述鱼类俯视角行为标注数据集中的鱼类侧视角全身、鱼类俯视角头部数据进行标注;[0015] 将标注好的数据集输入YOLOv8网络中进行训练,获得鱼类体表以及头部的权重。[0016] 优选的,获得每一个鱼类个体在连续帧中的空间位置、速度与转向角信息的方法包括:[0017] 将需要检测的鱼群游动行为视频和YOLOv8训练得出的头部权重输入到ByteTrack网络中,对患病前、患病中以及患病后的鱼群每个个体的头部进行追踪,获得鱼群中每个个体与时间序列一一对应的空间位置、速度与转向角信息。[0018] 优选的,所述模糊推理模型由五个功能模块组成,分别是:FUZZY编辑器、隶属函数编辑器、模糊规则编辑器、模糊规则观察器和曲面观察器;[0019] 所述模糊推理模型包含若干模糊if‑then规则的规则库;定义关于使用模糊if‑then规则的模糊集的隶属度函数的数据库;在规则上的执行推理操作的决策单元;将明确输入转化为与语言价值匹配的程度的模糊界面;将推理得到的模糊结果转化为明确输出的去模糊界面;采用mamadni算法,gaussmf函数来进行模糊规则的设计,根据水质数据,体表数据,行为数据,采用59条规则进行模糊推理模型的设计。[0020] 本发明还提供了一种鱼类疾病预警系统,包括以下步骤:数据集获得模块、权重获得模块、特征信息获得模块、分类模块和预警模块;[0021] 所述数据集获得模块用于获取鱼类行为信息、鱼类体表信息以及水质信息,并对所述鱼类行为信息、所述鱼类体表信息以及所述水质信息进行特征训练,获得鱼类患病数据集;其中,所述鱼类患病数据集包括:鱼类健康、患病的体表数据集、鱼类俯视角行为标注数据集以及水质数据集;[0022] 所述权重获得模块用于利用YOLOv8对所述鱼类健康、患病的体表数据集以及所述鱼类俯视角行为标注数据集进行训练,获得鱼类体表以及头部的权重;[0023] 所述特征信息获得模块用于利用ByteTrack对所述鱼类体表以及头部的权重进行跟踪训练,获得每一个鱼类个体在连续帧中的空间位置、速度与转向角信息;[0024] 所述分类模块用于基于所述水质数据、所述每一个鱼类个体在连续帧中的空间位置、速度与转向角信息,利用LSTM时间序列预测技术,预测水质和鱼类的分类状态,获得水质分类等级以及鱼类行为分类等级;[0025] 所述预警模块用于利用FUZZY模糊推理技术,设定模糊集合和模糊规则,构建模糊推理模型;基于所述模糊推理模型,对所述水质以及鱼类行为分类进行模糊推理,获得鱼类疾病预警等级。[0026] 优选的,获得鱼类体表以及头部的权重的过程包括:[0027] 使用labelImg对所述鱼类健康、患病的体表数据集以及所述鱼类俯视角行为标注数据集中的鱼类侧视角全身、鱼类俯视角头部数据进行标注;[0028] 将标注好的数据集输入YOLOv8网络中进行训练,获得鱼类体表以及头部的权重。[0029] 优选的,获得每一个鱼类个体在连续帧中的空间位置、速度与转向角信息的过程包括:[0030] 将需要检测的鱼群游动行为视频和YOLOv8训练得出的头部权重输入到ByteTrack网络中,对患病前、患病中以及患病后的鱼群每个个体的头部进行追踪,获得鱼群中每个个体与时间序列一一对应的空间位置、速度与转向角信息。[0031] 优选的,所述模糊推理模型由五个功能模块组成,分别是:FUZZY编辑器、隶属函数编辑器、模糊规则编辑器、模糊规则观察器和曲面观察器;[0032] 所述模糊推理模型包含若干模糊if‑then规则的规则库;定义关于使用模糊if‑then规则的模糊集的隶属度函数的数据库;在规则上的执行推理操作的决策单元;将明确输入转化为与语言价值匹配的程度的模糊界面;将推理得到的模糊结果转化为明确输出的去模糊界面;采用mamadni算法,gaussmf函数来进行模糊规则的设计,根据水质数据,体表数据,行为数据,采用59条规则进行模糊推理模型的设计。[0033] 与现有技术相比,本发明的有益效果为:[0034] 本发明的鱼类疾病预警预测方法在健康、亚健康、患病等级的数据集上提高了疾病预警的准确率,能够实现多维度,多方法预测鱼类疾病的发生,降低鱼类疾病产生的影响与损失。附图说明[0035] 为了更清楚地说明本发明的技术方案,下面对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。[0036] 图1为本发明实施例中的基于YOLOv8+ByteTrack多目标跟踪、LSTM时间序列预测和FUZZY模糊推理技术三者结合的鱼类疾病预警方法流程图;[0037] 图2为本发明实施例中的YOLOv8的模型结构示意图;[0038] 图3为本发明实施例中的ByteTrack算法的模型结构示意图;[0039] 图4为本发明实施例中的LSTM时间序列预测算法的模型结构示意图;[0040] 图5为本发明实施例中的模糊推理系统的模型结构示意图;[0041] 图6为本发明实施例中的鱼类疾病预警过程示意图。具体实施方式[0042] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0043] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。[0044] 实施例一[0045] 如图1‑图6所示,本实施例中提供了一种基于YOLOv8+ByteTrack多目标跟踪、LSTM时间序列预测和FUZZY模糊推理技术三者结合的鱼类疾病预警系统。包括以下步骤:[0046] 获取鱼类行为、鱼类体表信息以及水质信息,并对所述鱼类行为、所述鱼类体表信息以及所述水质信息进行特征训练,获得鱼类患病数据集;其中,所述鱼类患病数据集包括:鱼类健康、患病的体表数据集、鱼类俯视角行为标注数据集以及水质数据;[0047] 利用YOLOv8对所述鱼类健康、患病的体表数据集以及所述鱼类俯视角行为标注数据集进行训练,获得鱼类体表以及头部的权重;[0048] 利用ByteTrack对所述鱼类体表以及头部的权重进行跟踪训练,检测框对目标检测结果分类,大于等于0.001的检测框为高分检测框,进行第一次IOU匹配,IOU大于等于0.9的轨迹与检测框进行匹配,未匹配的检测框在置信度大于等于0.001的时候进入轨迹追踪,小于0.001则忽略,未匹配轨迹及低分检测框进行第二次IOU匹配,循环以上步骤直至匹配完成,获得每一个鱼类个体在连续帧中的空间位置、速度与转向角信息;[0049] 基于所述水质数据、所述每一个鱼类个体在连续帧中的空间位置、速度与转向角信息,利用LSTM时间序列预测技术,预测水质和鱼类的未来状态,获得水质以及鱼类行为分类;[0050] 利用FUZZY模糊推理技术,设定模糊集合和模糊规则,构建模糊推理模型;基于所述模糊推理模型,对所述水质以及鱼类行为分类进行模糊推理,获得鱼类疾病预警等级。[0051] 本实施例的实验系统为一个1.2m*0.8m的pp圆形池,过滤设备采用周转箱模拟循环水系统,水质采集设备采用传感器和水质监测仪器,图像采集系统由摄像机和数据存储器组成,光源采用LED灯架设在水面上,摄像机被放置于系统正上方以及水下,水上采集分辨率为2560*1920像素,速率为25fps,水下采集分辨率为1920*1080像素,速率为25fps。系统中共养殖鱼20尾,采用大口黑鲈漂浮饲料喂养,每天喂食体重1%。水温维持在24‑26℃之间,实验前,已在系统中进行了为期8周的养殖。[0052] 首先,通过视频采集系统,对鱼群患病前、患病中和患病后的游动行为进行拍摄,共采集累计200小时视频图像,针对算法的输入方式,将侧面视角和俯视角视频分别采用codetools分为300张图像,并选择患病前,患病中,患病后的视频片段导入服务器,制作出鱼群患病行为数据集。[0053] 本实施例中,利用YOLOv8+ByteTrack进行特征提取的工作流程为:使用labelImg对图像中的鱼类头部进行标注,将标注好的数据集输入YOLOv8网络中进行训练,其网络结构获得用于识别鱼类头部的权重;将鱼类头部图像截取并输入到ByteTrack网络中,对患病前,患病中,患病后的视频中的鱼类头部进行追踪,并输出每一个鱼类个体在连续帧中的空间位置,速度与转向角等信息。[0054] 基于YOLOv8+ByteTrack多目标跟踪、LSTM时间序列预测和FUZZY模糊推理技术三者结合的鱼类疾病预警系统由三个部分的算法组成:YOLOv8、ByteTrack和LSTM。[0055] 其中YOLOv8算法的网络结构由三个部分组成:backbone、Neck和Head。骨干网络用于提取图像的特征,Neck用于融合不同尺度的特征,Head用于预测目标的类别和位置。其原理为(1)backbone采用了CSPDarkNet的结构,与YOLOv5的最大区别是,YOLOv8使用C2f模块代替C3模块,实现了进一步轻量化,同时增加了更多的跳层连接,提升了梯度流和收敛效果。(2)Neck采用了PANet的结构,通过自上而下和自下而上的双向通路,使得底层信息更容易传递到顶层,增强了特征的表达能力。(3)Head采用了解耦头的结构,将分类和回归分支分离,并从Anchor‑Based换成了Anchor‑Free的方式,简化了标签分配和损失计算的过程。(4)YOLOv8算法的损失函数由两部分组成:分类损失和回归损失。分类损失使用了VFLLoss,它是一种基于概率分布的分类损失,可以有效地处理类别不平衡的问题。回归损失使用了DFLLoss和CIOULoss,它们是一种基于分布的回归损失,可以更准确地预测目标的位置和大小。(5)YOLOv8算法的标签分配采用了Task‑AlignedAssigner,它是一种动态的正负样本分配策略,可以根据任务的难度和模型的性能进行自适应的调整,提高了训练的效率和稳定性。[0056] 在本实例中,对于鱼类疾病识别和鱼类头部识别以用于追踪的用途,YOLOv8的参数介设置如下表1所示:[0057] 表1[0058][0059] ByteTrack分为四个部分:检测器、卡尔曼滤波、匈牙利算法和置信度阈值,其各个部分的原理为(1)检测器:ByteTrack使用YOLOX作为检测器,可以实现高效的目标检测。YOLOX是一种基于anchor‑free的检测器,使用了FocalLoss和NMS来优化检测结果。YOLOX还使用了多尺度特征融合和数据增强等技术来提高检测性能。(2)卡尔曼滤波器:ByteTrack使用卡尔曼滤波器来预测目标的运动状态,包括位置、速度和加速度。卡尔曼滤波器是一种递归的贝叶斯滤波器,可以利用观测数据和先验知识来估计系统的状态。卡尔曼滤波器可以有效地处理运动模型的不确定性和噪声。(3)匈牙利算法:ByteTrack使用匈牙利算法来进行目标和轨迹之间的匹配,即数据关联。匈牙利算法是一种求解二分图最大匹配的算法,可以在多项式时间内找到最优解。ByteTrack使用了余弦相似度和马氏距离作为匹配的代价函数,分别衡量目标的外观和运动的相似度。(4)置信度阈值:本发明采用的ByteTrack使用了0.001的置信度阈值来过滤掉背景检测框和虚假目标,大于等于0.001置信度阈值的检测框进行跟踪,低于0.001置信度检测框忽略。ByteTrack检测追踪是根据当前帧的检测框的分数分布来确定的,可以自适应地调整。同时ByteTrack还会保留一些低分数的检测框,以便利用轨迹的相似度来恢复真实目标。[0060] 在本实例中,对于头部识别追踪的用途,将ByteTrack参数设置为如下表2所示:[0061] 表2[0062][0063] LSTM的主要特点是引入了一个单元状态(cellstate),用来保存和传递长期的信息,同时通过三个门控结构(输入门、遗忘门和输出门)来控制信息的流动。LSTM可以有效地解决一般RNN中的梯度消失或爆炸的问题,提高了模型的稳定性和泛化能力,其原理如下(1)输入门控制新输入的信息的流动,通过一个sigmoid层和一个tanh层来计算一个候选状态,表示新的信息。(2)遗忘门控制旧细胞状态的遗忘,通过一个sigmoid层来计算一个遗忘因子,表示哪些元素需要被遗忘,哪些元素需要保留。(3)细胞状态根据输入门和遗忘门的控制,以一定的比例遗忘旧状态和融合新状态,得到新的状态。(4)输出门控制细胞状态的输出,通过一个sigmoid层和一个tanh层来计算一个输出因子,表示细胞状态的哪一部分需要被输出。[0064] 在本实例中,对于预测鱼类疾病分类和鱼类水质染病分类,将LSTM的主要参数介绍及设置如下表3所示:[0065] 表3[0066][0067] 模糊推理系统由五个功能模块组成:即FUZZY编辑器、隶属函数编辑器、模糊规则编辑器、模糊规则观察器、曲面观察器。其组成为(1)包含若干模糊if‑then规则的规则库(rulebase);(2)定义关于使用模糊if‑then规则的模糊集的隶属度函数的数据库(database);(3)在规则上的执行推理操作的决策单元(decision‑makingunit);(4)将明确输入转化为与语言价值匹配的程度的模糊界面(fuzzificationinterface);(5)将推理得到的模糊结果转化为明确输出的去模糊界面(defuzzificationinterface)。(6)采用mamadni算法,gaussmf函数来进行模糊规则的设计,根据水质数据,体表数据,行为数据,采用59条规则进行模糊系统的设计。[0068] 本实施例提出的一种基于YOLOv8+ByteTrack多目标跟踪、LSTM时间序列预测和FUZZY模糊推理技术三者结合的鱼类疾病预警方法,分为特征提取部分和疾病预警分析部分,可以将鱼群游动行为,水质情况,体表特征整合,对鱼群的健康状态进行精准的评估,避免了单独使用某一特征而出现弊端。[0069] 本实施例的预测方法在本发明的鱼类疾病预警预测方法在健康、亚健康、患病等级的数据集上提高了疾病预警的准确率,经过验证,对于染病体表特征识别准确率达到87.54%,对于染病水质的预测准确率达到78.73%,对于染病行为的预测准确率达到81.08%,鱼类疾病预警系统的综合识别准确率达到94.17%,表明基于多模态的模糊推理预警系统能够较好地对鱼类疾病进行预警,具有较高的实用价值。能够实现多维度,多方法预测鱼类疾病的发生,降低鱼类疾病产生的影响与损失。[0070] 实施例二[0071] 本发明还提供了一种鱼类疾病预警系统,包括以下步骤:数据集获得模块、权重获得模块、特征信息获得模块、分类模块和预警模块;[0072] 数据集获得模块用于获取鱼类行为、鱼类体表信息以及水质信息,并对所述鱼类行为、所述鱼类体表信息以及所述水质信息进行特征训练,获得鱼类患病数据集;其中,所述鱼类患病数据集包括:鱼类健康、患病的体表数据集、鱼类俯视角行为标注数据集以及水质数据;[0073] 权重获得模块用于利用YOLOv8对所述鱼类健康、患病的体表数据集以及所述鱼类俯视角行为标注数据集进行训练,获得鱼类体表以及头部的权重;[0074] 特征信息获得模块用于利用ByteTrack对所述鱼类体表以及头部的权重进行跟踪训练,获得每一个鱼类个体在连续帧中的空间位置、速度与转向角信息;[0075] 分类模块用于基于所述水质数据、所述每一个鱼类个体在连续帧中的空间位置、速度与转向角信息,利用LSTM时间序列预测技术,预测水质和鱼类的未来状态,获得水质以及鱼类行为分类;[0076] 预警模块用于利用FUZZY模糊推理技术,设定模糊集合和模糊规则,构建模糊推理模型;基于所述模糊推理模型,对所述水质以及鱼类行为分类进行模糊推理,获得鱼类疾病预警等级。[0077] 在本实施例中,对鱼群患病特征图像进行特征提取之前还包括:剪辑视频分辨率大小,将所述视频图像划分为满足多目标训练的片段,获得鱼类患病信息的数据集。对水质信息获取,需要将多种水质信息划分为相同长度,获得鱼类患病信息数据集。[0078] 对特征提取模型进行训练的过程包括:对所述数据集中的鱼群每个个体的头部进行标注,获得标注后的数据集,并将所述标注后的数据集输入到所述特征提取模型中进行训练。[0079] 具体的,鱼类健康患病体表数据集为300张,鱼类俯视角行为标注数据集为300张,水质数据为5028条。[0080] 在本实施例中,获得鱼类体表以及头部的权重的过程包括:[0081] 使用labelImg对所述鱼类健康、患病的体表数据集以及所述鱼类俯视角行为标注数据集中的鱼类侧视角全身、鱼类俯视角头部数据进行标注;[0082] 将标注好的数据集输入YOLOv8网络中进行训练,获得鱼类体表以及头部的权重。[0083] 在本实施例中,获得每一个鱼类个体在连续帧中的空间位置、速度与转向角信息的过程包括:[0084] 将需要检测的鱼群游动行为视频、鱼类体表以及头部的权重输入到ByteTrack网络中,对患病前、患病中以及患病后的鱼群每个个体的头部进行追踪,获得鱼群中每个个体与时间序列一一对应的空间位置、速度与转向角信息。[0085] 具体的,进行时空特征提取的过程包括:截取鱼群中每个个体的头部图像并输入到训练后的特征提取模型中,获得鱼群中每个个体的头部权重;基于所述头部权重,对数据集中的鱼群每个个体的头部进行追踪,获得鱼群中每个个体与时间序列一一对应的空间位置信息。[0086] ByteTrack进行跟踪训练的具体过程为:将需要检测的视频放入videos文件夹里,将训练好的头部权重放在weights里;修改参数,修改鱼类条数,点击track.py运行;将运行结果保存在track里,输出速度转向角数据。[0087] 经过YOLOv8+ByteTrack算法识别鱼类头部输出数据,得出在健康,亚健康,患病状态下的鱼群游动数据,即鱼群跟踪头部获得的数据转向角数据,以及搜集到患病鱼类的水质数据,标注其鱼类在患病期间所处状态的水质,将水质序列和行为序列分别标注为“健康”、“亚健康”、“患病”,以便于输入LSTM系统进行序列分类。[0088] 在本实施例中,LSTM时间序列预测具体过程为:将跟踪数据以及水质数据根据鱼类状态进行分级标注;通过test.py进行训练,再通过tetect.py进行预测;得到水质以及行为分类。[0089] 在本实施例中,所述模糊推理模型由五个功能模块组成,分别是:FUZZY编辑器、隶属函数编辑器、模糊规则编辑器、模糊规则观察器和曲面观察器;[0090] 所述模糊推理模型包含若干模糊if‑then规则的规则库;定义关于使用模糊if‑then规则的模糊集的隶属度函数的数据库;在规则上的执行推理操作的决策单元;将明确输入转化为与语言价值匹配的程度的模糊界面;将推理得到的模糊结果转化为明确输出的去模糊界面;采用mamadni算法,gaussmf函数来进行模糊规则的设计,根据水质数据,体表数据,行为数据,采用59条规则进行模糊推理模型的设计。[0091] 具体的,模糊推理模型的具体工作过程为:设定模糊推理输入规则以及函数,将获得的行为,体表纹理,水质等级输入模糊推理模型,得到鱼类疾病预警等级。[0092] 本发明通过获取鱼类行为,体表以及水质信息进行特征训练,从水质数据和行为数据中提取鱼类的特征向量,反映鱼类的健康状况和疾病的影响。利用多目标跟踪技术,准确地检测和跟踪鱼类的目标,避免目标丢失和误识别的问题。利用LSTM时间序列预测技术,预测鱼类的分类状态,捕捉鱼类的行为变化和异常情况。利用模糊推理技术,合理地设定模糊集合和模糊规则,有效地进行模糊推理,输出鱼类的诺卡氏菌病的预警等级。[0093] 以上所述的实施例仅是对本发明优选方式进行的描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案做出的各种变形和改进,均应落入本发明权利要求书确定的保护范围内。
专利地区:山东
专利申请日期:2024-01-24
专利公开日期:2024-09-03
专利公告号:CN117611380B