1. 引言
水资源是人类赖以生存的重要资源,但如今水资源问题已成为全球性挑战。随着工业化和城市化建设的不断推进,工业废气和生活污水的排放量持续增加,导致水污染问题愈发严重,严重影响了我们的生产和生活。因此,水质的有效检测已成为水资源管理和污染防治中不可或缺的一部分[1]。目前,广泛应用的水质检测技术主要包括理化分析方法和生物检测方法。传统的理化分析方法通常存在人力和物力消耗大、设备成本高、数据反馈不及时等不足,难以快速、准确地反映水质状况。在这种背景下,生物检测方法应运而生,利用水生生物的行为变化来检测和评估环境水质,弥补了理化分析的不足。生物检测方法以其成本低、灵敏度高、适用性广泛和结果直观等优点,正受到水质检测领域的广泛关注[2]。
在众多用于水质检测系统的生物中,鱼类是最早被应用于水质检测预警和水环境质量评估的生物之一,也被认为是迄今为止最适合且最受欢迎的指示物种。与其他水生生物相比,鱼类具有对水环境变化更加敏感的特点。此外,鱼类生命力较强,能够进行较长时间的连续检测。由于鱼类的养殖技术相对简单,管理方便,运行维护成本低,并且检测结果的稳定性良好,它们常被用作水质检测的重要指示生物,用于评估单一或多种污染物的综合毒性效应[3]。
目前,通过观察鱼类的游动行为来评估水质状况的方法已经得到了成功应用,因此,研究鱼类对水污染物的反应行为成为检测水质异常的重要方法。然而,关于水环境变化对鱼类活动影响的定量实证研究仍然相对较少。因此,本研究旨在利用大量实验数据,通过分析水质变化时鱼类的不同运动轨迹,来反映异常水质状况。
2. 相关工作
氨氮是一种在水体中广泛存在的污染物,其来源包括农业、工业以及城市生活污水。氨氮可以与水中的其他污染物相互作用,从而影响水体的污染程度和生态效应。因此,氨氮浓度是评估水体污染程度的重要指标之一[4]。基于此,本实验选择氨氮(NH4Cl)作为研究的污染物。
斑马鱼作为脊椎动物发育生物学的经典模型,被广泛应用于生物医学、药物研发、环境检测和行为学研究等多个领域[3]。何雅琪[5]参照国家地表水环境质量标准(GB3838-2002) [6]中对I类和IV类地表水氨氮质量标准的限值分类,探究了0.15 mg/L和1.5 mg/L氨氮胁迫下斑马鱼行为响应变化,为不同环境胁迫下斑马鱼的有不同的行为响应提供理论依据。研究表明,斑马鱼对氨氮具有较高的敏感性,因此非常适合用于水质生物检测,其运动特征能够直接反映水质的污染情况。基于这些特性,我们选择斑马鱼幼鱼作为实验对象。
许多学者[7]-[16]已经对鱼类在水质变化过程中的行为反应进行了深入研究,包括探讨不同污染物浓度对鱼类行为强度的影响、构建基于鱼类行为特征的水质评价因子模型以及研究鱼类在毒性环境中的行为表现等,这些研究为利用鱼类行为进行水质异常检测奠定了坚实的理论和实践基础。杨凌升[14]等人通过对观测电极采集到鱼类各种活动电位信号的功率谱密度,结合各类活动功率占比变化是否超过阈值完成预警判断。这种方法限制条件多,误报信号概率高,使用效果不理想。王丽娜[11] [15]在鱼缸上方放置了一个摄像头,通过摄像头获取鱼的二维图像,该论文研究了鱼在不同状态下的运动特征统计值,并获得了鱼的运动特征:平均泳速、平均泳高和活鱼的数量。但其缺点是计算量大,精度低。程淑红[16]等人进一步研究了鱼类的呼吸频率、尾频变化及运动轨迹的变化频率,并将鱼类二维运动轨迹的弯曲度和接近度特征作为水质评价因子。尽管这些研究在一定程度上从多个角度综合反映了水环境质量状况,但由于量化特征都是手动选取的,总体而言,稳定性较差,普遍存在性能和可靠性不足的问题,难以全面、深刻地反映水质环境的复杂特征。因此,仅凭这些参数作为水质评价因素,往往适用性较低,很难确定最优解。
克服传统方法在定义和获取鱼类运动特征参数上的局限性,成为检测水质异常研究的重点。本文提出采用深度学习方法,通过机器学习和训练来识别正常水质、轻度污染和重度污染水质下鱼类的运动模式,然后通过分类判断实现水质异常检测。这种方法能够有效解决传统方法中的问题,提供更为精准和全面的水质检测能力。深度学习模型利用数据集直接进行特征和表达关系的学习,更能提取代表性特征,不仅提高了检测的实时性和精度,还能够更好地适应复杂的水质环境变化。
3. 基于鱼类行为的水质检测方法
3.1. 系统结构
根据斑马鱼在正常水质、轻度污染、重度污染水质下的不同行为特点,利用计算机视觉对斑马鱼在不同水质条件下的运动行为轨迹进行处理和分析,得到行为轨迹图像的特征,实现水质分类。算法流程如图1所示。
该模型分为三个模块:数据采集模块、模型训练模块和水质检测分类模块。
在数据采集模块中,首先搭建实验平台,拍摄正常水质、轻度污染水质和严重污染水质条件下斑马鱼幼鱼的运动视频,然后对视频中的斑马鱼幼鱼进行目标检测和轨迹跟踪,提取斑马鱼幼鱼的行为轨迹数据。最后处理行为轨迹数据生成可用于后续分析的数据集。
在分类模型训练模块中,将上一模块处理过的行为轨迹数据分别制作成正常水质、轻度污染水质和重度污染水质下运动轨迹的图像数据集,将这些图像数据集输入到分类模型中,通过机器学习算法让模型学习不同水质条件下鱼类的运动特点。
最后,在水质检测分类模块中,对于随机给出的未知水质的轨迹图,分类模型通过测试函数输出轨迹对应的水质类型和准确预测的概率,最终通过分类判断实现水质的检测,输出具体的水质类型和预测结果的可信度。
通过这种系统的构建,可以实现对水质异常的有效检测和分类,提高水质检测的准确性和实时性。这种方法不仅克服了传统方法的局限性,还能够在复杂的水质环境中提供更可靠的结果。
Figure 1. System structure diagram
图1. 系统结构图
3.2. 斑马鱼幼鱼检测算法
YOLOv5算法是一种广受欢迎的目标检测方法,以其快速、高效和易于使用的特点而著称,非常适合用于斑马鱼幼鱼的检测[17]。该算法的核心思想是将目标检测的分类问题转化为回归问题,通过一次前向传递直接预测图像中目标的边界框和类别,从而实现检测。YOLOv5由四个主要部分组成:输入部分、骨干网络部分、颈部部分和检测部分。
在输入部分,数据会被预处理,包括将图像自适应缩放至统一尺寸,并根据数据集的特性动态调整锚框的范围。骨干网络部分的主要功能是提取输入图像的特征信息。颈部部分则负责融合骨干网络提取的特征信息,然后将其传递给检测部分。检测部分由三个尺度的特征图构成,分别用于检测小型、中型和大型物体。例如,当输入分辨率为640 × 640的图像时,可以检测到分辨率大于8 × 8的小型物体、大于16 × 16的中型物体和大于32 × 32的大型物体。
然而,在斑马鱼幼鱼的单类检测中,数据集中头部特征的分辨率介于8像素和25像素之间。因此,原始YOLOv5模型中的大物体检测层对于斑马鱼幼鱼的检测来说是多余的[18]。因此,对YOLOv5模型进行了优化,移除了大物体检测层及其相应的颈部组件,改进后的YOLOv5网络结构图如图2所示。这一调整减少了模型的结构参数,使其更适合斑马鱼幼鱼的识别,并提升了检测的精度和速度。
3.3. 斑马鱼幼鱼追踪算法
DeepSORT是一种结合了运动度量和外观度量的算法,能够更可靠地处理目标跟踪问题,尤其是在丢失和障碍物干扰的情况下有较高的鲁棒性。针对斑马鱼幼鱼独特的运动特性,本文采用卡尔曼滤波器,仅跟踪物体边界框的中心坐标,而无需调整框的长度和宽度。此外,DeepSORT还引入了级联匹配策略,以提高在目标被遮挡时正确分配ID的几率[19]。
这一策略的核心在于按照轨迹从小到大的顺序进行匹配,并逐步消除不匹配的项,从而为更常见的物体分配更高的优先级。在匹配过程的最后阶段,将未确定的匹配轨迹纳入基于IOU (交并比)匹配的进一步分配中[20]。这一过程有助于缓解由于表面特征变化或部分遮挡导致的斑马鱼幼鱼外观变化问题,确保跟踪的稳定性和准确性。算法流程图如图3所示。
Figure 2. Improved YOLOv5 network structure diagram
图2. 改进后的YOLOv5网络结构图
Figure 3. DeepSORT algorithm flow chart
图3. DeepSORT算法流程图
图4为单条斑马鱼幼鱼运动轨迹的追踪结果,由图4可以看出,追踪的轨迹完整并且具有良好的平滑性和连续性,没有断裂和跳跃情况出现,表明本算法在追踪的过程中能保持良好的稳定性和准确性,同时在光线明暗程度不同的情况下,跟踪的性能依旧稳定,表明本算法具有良好的鲁棒性。
Figure 4. Movement tracking results of a single zebrafish larvae
图4. 单条斑马鱼幼鱼运动轨迹追踪结果
3.4. 斑马鱼幼鱼行为轨迹分类算法
为了提升模型的准确性,通常会尝试增加网络的深度,以便提取更高级别的图像特征。然而,随着网络深度的增加,可能会出现梯度消失、梯度爆炸以及模型退化等问题,这导致深度网络的性能可能不如浅层网络。为了解决这些问题,微软实验室提出了一种深度残差神经网络ResNet。其优势在于能够构建非常深的网络结构,并通过引入残差模块和批量归一化(BN)层来提高训练速度。残差模块有效地解决了模型退化问题,而BN层则有助于缓解梯度消失和梯度爆炸问题[21]。
ResNet18的结构如图5所示。首先,网络通过卷积操作对图像进行处理,卷积的步长为2,卷积核大小为7 × 7,输出通道数为64。卷积层的输出经过批量归一化和ReLU激活函数的处理后,接入一个大小为3 × 3、步长为2的最大池化操作。最大池化通过计算图像特定区域的最大值来表示该区域的特征,同时保留更多的纹理。
其次,ResNet18网络由一系列残差结构组成,如图6所示。残差结构的核心思想是在经过多个卷积层后,将主线上生成的特征矩阵与原始输入特征矩阵相加,然后通过ReLU激活函数进行处理。这种结构允许网络在每个残差模块中“跳过”某些层,从而有效地缓解了深度网络中的梯度消失和模型退化问题[22]。ReLU函数是一种常用的激活函数,其显著特点是当输入值x大于0时,梯度保持为1。这一特性确保了在训练过程中,梯度下降的速度得以保持,从而加快了模型的收敛速度。通过这种设计,ResNet不仅能够构建更深的网络结构,还能在训练过程中保持稳定的性能和较高的准确性。
Figure 5. ResNet18 structure diagram
图5. ResNet18结构图
Figure 6. Residual structure diagram
图6. 残差结构图
最终,网络增加了一个平均池化下采样层和一个全连接层作为输出。输出层使用Softmax函数作为分类器,将网络输出转换为概率分布,计算类别预测概率并计算预测损失。
4. 实验设计
4.1. 实验装置
本实验的设备主要包括摄像机、恒温加热平台、培养皿和计算机。视频采集设备的帧率为30帧/秒,并安装在培养皿的正上方,以确保能够清晰、完整地捕捉斑马鱼幼鱼的运动。放置斑马鱼幼鱼的培养皿的直径为6厘米,其中放置待测液体的深度为0.2厘米,以限制鱼在垂直方向的游动,从而可以近似认为鱼是在二维平面内活动。在视频采集过程中,实验装置被安置在具有固定照明和稳定环境的空间内,以减少光线变化和人为干扰对实验结果的影响。实验环境的具体条件如表1所示:
Table 1. Experiment environment settings
表1. 实验环境设置
水质名称 |
水质配置 |
水温(℃) |
pH |
视频拍摄时长 |
正常水质 |
去离子水 |
28 ± 0.5 |
7.5 ± 0.2 |
5 min |
轻度污染水质 |
0.5 mg/L NH4CL |
28 ± 0.5 |
7.5 ± 0.2 |
5 min |
重度污染水质 |
1.5 mg/L NH4CL |
28 ± 0.5 |
7.5 ± 0.2 |
5 min |
4.2. 实验平台及训练参数
使用RseNet18网络模型对正常水质、轻度污染水质、重度污染水质的数据集进行8:2的比例进行训练和测试,训练次数为700轮。
实验的硬件配置如表2所示。
Table 2. Hardware parameters
表2. 硬件参数
硬件 |
参数 |
显卡内存 |
16 GB |
CPU |
Intel Core i7-11800H |
GPU |
NVIDIA GeForce RTX 3060 |
实验的软件配置如表3所示。
Table 3. Software parameters
表3. 软件参数
软件 |
参数 |
操作系统 |
Windows 10 64bit |
开发环境 |
Matlab 2021b |
实验工具箱 |
Deep Learning Toolbox 14.3 |
实验的过程中不断调整超参数至最佳,最终的超参数设置如表4所示。
Table 4. Model parameters setting
表4. 模型参数设置
参数名称 |
参数值 |
Batch-size |
32 |
Epochs |
50 |
Optimizer |
Adam |
Learning rate |
0.001 |
Loss function |
Cross Entropy Loss |
4.3. 实验结果评价指标
为了验证本文分类模型的效果,本文引入了混淆矩阵作为一级评价指标。混淆矩阵是一种特定的矩阵,用于呈现算法性能的可视化效果,是评价分类网络模型的重要工具。混淆矩阵的每一行代表模型预测的类别,而每一列代表实际的类别。通过这种形式,可以很直观地看出不同类别之间是否存在混淆,即某个类别是否被正确预测,以及在未被正确预测的情况下,被错误预测为哪个类别。混淆矩阵形式如图7所示:
Figure 7. Confusion matrix
图7. 混淆矩阵
其中,TP为正样本中预测为正样本的数量,FN为正样本中预测为负样本的数量,FP为负样本中预测为正样本的数量,TN为负样本中预测为负样本的数量。
基于混淆矩阵中的数据,可以进一步得到对模型评估的4个性能指标作为二级评价指标,分别是准确率(Accuracy):分类模型中所有判断正确的样本数量占总样本数量的比重,计算公式为公式(1)。精确率(Precision):在模型预测是Positive的所有结果中,模型预测正确的比重,计算公式为公式(2)。召回率(Recall):在真实值是Positive的所有结果中,模型预测正确的比重,计算公式为公式(3)。特异度(Specificity):在真实值是Negative的所有结果中,模型预测正确的比重,计算公式为公式(4)。
(1)
(2)
(3)
(4)
二级指标中的精确率和召回率的分子相同均为TP,而分母不同,精确率的分母为TP + FP,表示预测值中全部为正样本的数量,召回率的分母为TP + FN,表示真实值中全部为正样本的数量,这两个指标一个变好的同时另一个指标会变差,即所谓的P-R曲线,我们需要找到二者间的平衡点,因此需要引入三级指标F1分数(F1-Score)来判断模型的性能,公式如下:
(5)
5. 实验结果与分析
5.1. 准确率与损失函数
本实验使用正常水质、轻度污染水质和严重污染水质三种水质状态下采集到的轨迹图像进行训练,在训练集上,准确率Accuracy曲线和损失函数Loss曲线的变化情况如下图8和图9所示。
准确率Accuracy曲线是以训练轮数为横坐标,以准确率为纵坐标绘制的一条折线图,浅蓝色曲线为原始的准确率曲线,深蓝色曲线为平滑处理后的准确率曲线,通过观察准确率的变化趋势,可以判断模型的训练效果。由图8可知本实验模型的准确率曲线稳步上升,最终趋于平稳,表示模型的训练效果比较好,模型能够正确地预测出输入数的类别。
损失函数Loss曲线是以训练轮数为横坐标,以模型损失函数值为纵坐标绘制的一条折线图,浅黄色曲线为原始的损失函数曲线,深黄色曲线为平滑处理后的准确率曲线,通过观察损失函数值的变化趋势,可以判断模型的训练效果。通过图9可知本实验模型的损失函数值曲线稳步下降,很快收敛并达到稳定,表示模型的训练效果比较好,模型能够正确地捕捉到训练数据中的规律。
Figure 8. Accuracy curve change chart
图8. 准确率Accuracy曲线变化图
Figure 9. Loss curve change chart
图9. 损失函数Loss曲线变化图
5.2. 分类结果的混淆矩阵
混淆矩阵用于可视化展示分类模型的性能,图10为本模型分类准确率的混淆矩阵。其中图10中的主对角线绿色区域表示分类模型对每个水质类别正确分类的比例,而主对角线以外的红色区域则显示模型将某个水质类别错误识别为其他类别的比例。图10中浅灰色区域表示该类别正确分类的数量占该类别总数量的比例,深灰色区域则表示所有被正确预测的数量占总数量的比例。
Figure 10. Confusion matrix for classification accuracy
图10. 分类准确率的混淆矩阵
根据图10的混淆矩阵结果可知,本文分类模型的整体准确率达到了97.4%。大部分图像能够被正确分类,但仍有少部分存在分类错误。其中,正常水质和重度污染水质的分类准确率达到了100%,但轻度污染水质的分类准确率为92.1%。尽管经过多次实验,轻度污染水质的分类准确率仍无法提高至100%。
通过分析,错误分类的可能原因包括以下几个方面:
1) 数据集规模有限:由于数据集较小,错误分类的概率对整体准确率的影响较大。
2) 个体差异:斑马鱼幼鱼个体之间存在行为习惯的差异。有些斑马鱼的耐受度较低,在轻度污染水质中的运动习惯与大多数幼鱼在重度污染水质中的运动习惯相似;而有些斑马鱼的耐受度较高,在轻度污染水质中的运动习惯与大多数幼鱼在正常水质中的运动习惯相似。这些个体差异导致在过渡水质中容易发生错误分类。
总体而言,虽然其他文献中的模型也存在较为明显的错误分类情况,但本文提出的模型能够较好地对三种水质进行有效区分和判别,尤其是在正常水质和重度污染水质的分类上达到了100%的正确率,并有效降低了轻度污染水质分类的错误率。
5.3. 分类结果的评价指标
三个类别对应的混淆矩阵如下所示,图11为正常水质这个类别对应的混淆矩阵,图12为轻度污染水质这个类别对应的混淆矩阵,图13为重度污染水质这个类别对应的混淆矩阵。
Figure 11. Confusion matrix for normal water quality categories
图11. 正常水质类别对应的混淆矩阵
Figure 12. Confusion matrix for lightly polluted water quality categories
图12. 轻度污染水质类别对应的混淆矩阵
Figure 13. Confusion matrix for heavily polluted water quality categories
图13. 重度污染水质类别对应的混淆矩阵
根据三种类别对应的混淆矩阵来计算本模型对三种水质分类的性能评价指标结果,计算结果如表5所示:
Table 5. Calculation results of classification model performance evaluation indicators
表5. 分类模型性能评价指标的计算结果
类别 |
准确率
(Accuracy) |
精确率
(Precision) |
召回率
(Recall) |
特异度
(Specificity) |
F1分数
(F1-Score) |
正常水质 |
98.2% |
95% |
100% |
97.4% |
97.4% |
轻度污染水质 |
97.4% |
100% |
92.1% |
100% |
95.9% |
重度污染水质 |
99.1% |
97.4% |
100% |
98.7% |
98.7% |
由表5可知,该分类模型的准确率、精确率、召回率、特异度、F1值都很高,三种胁迫的分类准确率和特异度都在97.4%以上,特别是对于正常水质和重度污染水质的分类准确率达到98.2%以上,F1分数达97.4%以上。本文提出的分类模型通过大量实验可以有效的对水质进行分类,并且有较好的泛化性能,能够出色的处理分类任务。
5.4. 分类结果
对于随机给出的未知水质的轨迹图,分类模型通过测试函数输出轨迹对应的水质类型和准确预测的概率,最终通过分类判断实现水质的检测,输出具体的水质类型和预测结果的可信度。由图14可知,正常水质和重度污染水质的分类正确的可信度在99.7%以上,轻度污染水质的分类正确的可信度在98.6%以上,所以本文提出的分类模型通过大量实验可以有效地预测水质的类别,并且有较好的泛化性能,能够出色地完成水质分类任务。
Figure 14. Classification results and prediction probabilities of different water quality
图14. 不同水质的分类结果及分类正确的概率
6. 结论
本文针对斑马鱼幼鱼在不同水质下运动特点不同,通过对不同水质下斑马鱼幼鱼的运动行为轨迹图像进行分类实现水质检测,提出了基于斑马鱼幼鱼行为轨迹的水质检测模型。相关结论如下:
1) 基于深度学习的鱼类行为轨迹图像分类方法可以避免手动选取量化特征带来的可靠性不足的问题,减少因鱼类行为量化不精确导致的误检问题。
2) 基于改进的YOLOv5和DeepSORT的目标跟踪算法减少了模型的结构参数,使其更适合斑马鱼幼鱼的识别,提升了检测的精度和速度,为分类模型提供高质量的图像数据集。
3) 本文建立的基于ResNet的水质检测模型的分类准确率达到97.4%,表明本网络模型具有较好的图像分类能力,同时使用混淆矩阵和性能指标值对本文所建立的网络模型进行评价,该模型的各项性能指标均处于较高水平,表明本模型在水质检测任务中具有较高的应用价值。
4) 可根据特定水质制作对应水质下斑马鱼幼鱼行为轨迹的数据集让本模型进行学习,从而可以实现任意水质的检测需求。