基于大规模鱼类数据集的智慧养殖对象识别系统设计与实现
摘 要
随着深度学习的发展,深度学习已经广泛应用于各种领域,例如鱼类识别,但对于鱼类行为识别,只用简单的深度学习模型和算法是无法很好的进行识别的,所以本文就鱼类行为识别进行研究。在本文中,我们基于深度学习技术,传统的研究方法通常依赖于人工,这要求科研人员投入大量的时间和精力,这样的方法不仅效率低下,而且由于其主观性,很容易受到个人偏见的影响,从而对研究结果的客观性和准确性构成了挑战。深度神经网络技术的出现为解决这些问题提供了新的可能。通过在大规模数据集上的学习和训练,深度学习算法能够自动地提取特征,进行高效的目标检测行为识别,这大大提升了识别精度和效率。本文所提出的系统正是基于技术背景,本文基于深度技术,成功设计并实现了一套群体行为识别系统。该在鱼类群体行为研究领域具有应用价值,为相关学科和实践带来了新的视角和方法我们期待在未来,通过进一步性能优化和应用拓展,推动深度学习技术在生态、海洋学等领域的深入和发展。
关键词:深度学习;目标检测;生物识别;
Abstact
With the development of deep learning, it has been widely applied in various fields, such as fish recognition. However, for fish behavior recognition, simple deep learning models and algorithms alone cannot achieve good recognition. Therefore, this article focuses on the research of fish behavior recognition. In this article, we are based on deep learning techniques. Traditional research methods often rely on manual labor, which requires researchers to invest a lot of time and effort. Such methods are not only inefficient, but also susceptible to personal biases due to their subjectivity, posing challenges to the objectivity and accuracy of research results. The emergence of deep neural network technology has provided new possibilities for solving these problems. Through learning and training on large-scale datasets, deep learning algorithms can automatically extract features for efficient object detection and behavior recognition, greatly improving recognition accuracy and efficiency. The system proposed in this article is based on technical background, and this article successfully designs and implements a group behavior recognition system based on deep technology. This has practical value in the field of fish collective behavior research, bringing new perspectives and methods to related disciplines and practices. We look forward to further optimizing performance and expanding applications in the future, promoting the deepening and development of deep learning technology in ecology, oceanography, and other fields.
目录
摘 要 I
Abstact II
1 绪论 1
1.1 研究背景和意义 1
1.2 国内外研究现状 1
1.3 存在的问题 3
2 理论基础 4
2.1 深度学习 4
2.2 卷积神经网络 4
2.3 目标检测算法 5
2.4 注意力机制 6
3. 基于深度学习的鱼类识别模型 7
3.1卷积注意力模型 7
3.2 CIOU损失函数 9
3.2 FaceNet识别算法 10
3.3训练过程 11
4 基于深度学习的鱼类识别模型的视线 13
4.1 数据集获取 13
4.2 评估标准 14
4.2.1性能评价指标 14
4.3 模型训练与评估 15
4.4 性能评估指标 16
6. 结论与展望 18
参考文献 20
致谢 22
1 绪论
1.1 研究背景和意义
近几年,深度学习技术在图像辨认范围获得了重大突破,普遍运用于人面辨认、物体查找等领域[3]。但是,针对动物行为辨认范围,特别是鱼类集体行为的研究却相对比较匮乏。据统计,全球鱼类养殖业年产值超过1000亿美元,而鱼类行为异常往往是导致养殖损失的重要原因之一。因此,开展基于深度学习的鱼类群体行为识别研究具有重要的理论和实践意义。
首先,鱼类群体行为识别技术可以为鱼类养殖业提供智能监测技术支持。根据世界粮食计划署的数据,全球每年有超过1亿人依赖于鱼类作为主要蛋白质来源,而鱼类养殖业的发展受到鱼类健康和行为的影响。通过对鱼群动态的即时观测,得以即时辨识异常现象,从而提升养殖业的效率与管理质量。例如,监测鱼类的游动轨迹、聚集情况等,为养殖者提供科学决策依据,提高养殖效益。
深度学习在鱼类群体行为识别方面的应用,不仅推动了该领域的发展,也扩展了深度学习在动物行为识别领域的应用范围。传统的鱼种行为辨识技术通常依赖于人工制定的特性和条例,但这种方法往往准确度不高,且普遍适应性较差。根据研究数据显示,传统方法在鱼类行为识别中的准确率仅在70%左右,而深度学习技术具有强大的特征学习能力和泛化能力,能够更准确和高效地把握鱼群动态的繁复属性,从而提高辨识的精度和效率。
研究深度学习的鱼类群体行为识别技术还有助于推动动物行为识别领域的发展。通过在鱼类群体行为识别上的探索和实践,可以为其他动物群体行为识别提供借鉴和启示,从而促进动物行为研究的进步。
基于大规模鱼类数据集的智慧养殖对象识别系统研究不仅有助于提高鱼类养殖业的管理水平和效益,还可以推动深度学习在动物行为识别领域的应用,促进动物行为学的研究进步,具有重要的理论和实践意义。
1.2 国内外研究现状
在国外,深度学习和图像识别技术在鱼类行为分析与健康监测方面取得了显著进展,特别是在提高水产养殖效率和减少疾病传播方面。例如,美国的水产养殖企业开发了一个基于深度学习的鱼类行为识别系统,系统利用CNN进行图像分类,能够实时监测鱼类的动作和健康状态。通过训练一个多层CNN模型,该系统不仅能识别不同种类的鱼类,还能分析鱼群行为的异常模式,如游动速度、位置变化和群体的集结状态。这些异常行为常常与鱼类的健康状况相关,如受伤或生病的个体。CNN模型通过从大规模标注数据集中提取特征,能够自动学习和优化识别效果,从而帮助养殖者在疾病的早期阶段及时发现问题并采取干预措施。在欧洲,Fish4Ever项目结合了深度学习和计算机视觉技术,开发了一套自动化鱼类识别系统。该系统采用了DCNN和RNN的结合,处理大量水下图像和视频数据,并通过深度学习模型自动识别鱼类种类和行为的变化。DCNN擅长从图像中提取空间特征,而RNN则能够对时间序列数据进行建模,捕捉鱼类行为的动态变化。这种深度学习技术的结合,提升了鱼类健康监测的精准度,能够对鱼群进行细粒度分析并识别潜在的疾病风险,提供疾病预警并提前采取防控措施。
在国内,鱼类识别技术的研究也取得了显著进展。天津大学的研究团队开发了一种基于CNN的深度学习模型,该模型不仅能够准确识别鱼类种类,还能够对鱼类的健康状况进行自动评估。特别是在检测鱼类体表病变方面,该系统表现出比传统人工检测方法更高的准确性。模型利用大规模标注的图像数据集进行训练,通过卷积层自动提取图像特征,结合全连接层完成分类任务。与传统方法相比,基于深度学习的系统能够减少人为误差,显著提高诊断效率。国内还有科技公司通过将物联网与人工智能结合,推出了一种智能水产养殖平台。该平台通过部署多种环境传感器和水下摄像头,实时监测水环境参数,并通过机器学习算法对水质异常进行预测。机器学习模型包括决策树、SVM和深度学习算法,通过数据挖掘分析水质变化与鱼类健康之间的关联,帮助养殖者在发现水质问题时及时调节水环境,从而降低养殖成本并提升鱼类存活率。南京农业大学的研究团队提出了一种结合大数据与人工智能技术的鱼类行为预测系统。该系统通过收集水质参数和鱼类行为数据,利用随机森林、KNN等算法对鱼群的行为变化进行分析,预测潜在的疾病风险和生长状况。系统的优势在于能够提前发现水质恶化或鱼类异常行为,为养殖者提供预警,并建议采取必要的措施。
1.3 存在的问题
在深度学习框架下,对鱼类群体的行为进行识别已经取得了一定的进展,但仍然面临着一些难题和挑战,这些问题的解决需要进一步的探究和研究。当前,在进行鱼类群体行为识别时,主要遇到的困难包括:
(1) 数据量和质量:
水下目标检测的困难主要源于水下环境的特殊性质:例如水质的散射和吸收会导致图像质量的退化,使得水下图像的色彩不同、对比度低,从而使得目标与背景之间的界限变得模糊不清[8]。此外,水下目标通常分布较为密集,不同目标之间可能会严重重叠,增加了目标检测的难度。另外,由于水下目标的姿态可能会随着水流或其他因素而发生变化,使得同一种目标在不同帧中的外观差异较大,进一步增加了识别的复杂性。因此,为了提高水下目标检测算法的精度,需要构建具有代表性和多样性的水下图像数据集,以便训练算法能够充分适应水下环境的特殊挑战。水底鱼类繁多并且较稳密集,诸多检测目标聚在一起存在较多的重叠部分。虽然是同一类型的鱼,但这些鱼有着不同的姿态,有着不同的行为,所以在区分上面有着很大的难度。
(2) 数据标注:对于鱼类群体行为数据的标注可能需要耗费大量的人力和时间,且标注的准确性对于模型的训练和性能至关重要,因此如何有效地进行数据标注是一个挑战。
(3) 模型泛化能力:深度学习模型在训练集上表现良好,但在未见过的数据上可能出现泛化能力不足的情况,如何提高模型的泛化能力是一个重要问题。
(4) 复杂环境下的影响:鱼类群体行为往往受到环境因素的影响,如光照、水质、自然环境因素等,这些因素会导致数据的多样性和复杂性,对鱼类群体行为识别是一个巨大的挑战。
(5)实时性要求:在对鱼类群体行为识别的条件下,该识别需要具备实时性,但深度学习模型的计算复杂度较高,可能无法满足实时性要求,如何提高模型的速度和效率是一个问题。
水下图像的产生受到水体对不同波长光的筛选与衰减、目标与观测者的距离以及光源的光谱属性的影响,因此常呈现蓝绿色调。人工光源的应用可以拓宽水下可见区域,但也会导致亮点现象和悬浮颗粒散射。水下环境具有低对比、不均匀光照、模糊、亮点问题和噪声,加上多变性使得水下图像获取困难且数据集稀缺。水底生物目标体态微小且聚集紧密,目标侦测算法在复杂水下环境中准确度受限,面临挑战。如何在复杂水下环境中快速且精准地探测目标是待解的问题。
2 理论基础
2.1 深度学习
深度学习源于人工神经网络,但是和传统的人工神经网络并不一致。深度学习含有多种架构,例如含有数个遮蔽层的复杂感知器便是一种深度学习架构。该学习方式通过将基础属性进行整合,构筑出更为高层与抽象的类别或特性认知,从而揭示数据的分散性特征表示。探究深度学习的目的在于搭建能够模拟人脑分析和学习功能的神经网络,可以对信息进行提取学习和检测,对诸如图像、音频和文本等信息种类进行解析。
鱼类行为识别利用传统的机器学习方法不能起到良好的效果,出现识别效果不精,训练速度慢,过程繁琐等一系列缺点,而深度学习的出现为鱼类行为识别的研究有了很好的进展,深度学习通过模拟人脑对物体进行智能化的学习和识别,相比于传统的机器学习,有了突飞猛进的进步。
2.2 卷积神经网络
卷积神经网络(ConvolutionalNeuralNetwork,CNN)是一种专门用于处理具有网格结构数据(如图像、音频等)的深度学习模型。CNN的核心思想是通过卷积操作和池化操作来提取输入数据的特征,并通过多层神经网络进行学习和分类[11]。
卷积神经网络的探究起始于八十至九十年代,其间的延时网络及LeNet-5属最早期的卷积神经网络。进入廿一世纪,伴随深度学习理念的提出与算计设备的进阶,卷积神经网络迎来了高速进展,并广泛被植入计算机视觉、自然语言处理等范畴[12]。
卷积神经网络最普遍的形态是将若干卷积层与ReLU层组合,紧随其后的是池化层,之后再重复此过程直到图像在空间维度上缩减至足够小的规模,在某个阶段转换为全连接层亦属常见。最终的全连接层输出结果,例如分类评分等。换句话说,最常见的卷积神经网络识别过程如图2-1:
图 2-1 卷积神经网络识别过程
当前比较流行的CNN模型很多都是在这些结构规律上做进一步的改进和优化。有的是做一些层级的修改,或是将全连接层替换成全局平均池化层,再或是使用1*1卷积、Depthwise卷积等比较特殊的卷积层,等等。有的是设计新的模型基本模块,比如Inception模块、残差模块等。这些修改通常不是盲目的,而是面向任务需求或已经发现的问题进行针对性的修改。
2.3 目标检测算法
目标检测算法是指用于在图像或视频中自动识别和定位目标物体的计算机视觉算法。如今主流的目标检测算法有R-CNN,Fast R-CNN,YOLO(You Only Look Once)算法,SSD(Single Shot MultiBox Detector)。本系统采用yolov5作为鱼类群体行为识别的目标检测算法。
目标检测算法流程如下:
目标检测算法大致过程就是根据给出的图片或视频进行特征提取加直接回归,对物体进行检测得出结果。我们所使用的yolov5是基于深度学习的目标检测算法,相比较于传统的目标检测算法,具有准确度高,识别速度快,识别效果好等许多优点。
2.4 注意力机制
注意力机制(Attention Mechanism)广泛应用于计算机科学和机器学习当中,它的发现源于人类对图像视觉的研究,在过去的几十年当中,由于人类的认知水平收到限制,人类对计算机视觉的研究还停留在人工学习的阶段,在研究当中,人们通过过滤自己看到的信息,选择一部分并且忽略一部分信息,这种机制叫做注意力机制[13]。
注意力机制的目的主要是通过过滤输入的信息,从而在处理子集信息时能够提高模型的时序性和准确性,这种机制多用于深度学习,机器学习,自然语言等一些技术当中,并且在处理信息时不是处理所有的信心或者随机选择一部分信息,而是特定的选择其中关键部分的信息进行处理。
例如,在图像识别中,注意力机制的存在可以过滤那些不重要或者和我们检测目标不相关的像素部分,而去处理和我们检测目标相关的那一部分像素,从而大大提高我们的检测速度和减少我们的训练时间,对于我们的研究有很大程度上效率的提高。
注意力机制有两种,一种是聚焦式注意力,另一种是基于显著性的注意力。聚焦式注意力是提前选择好对象和特定检测目标从而将目标聚集在一起来提高效率,而基于显著性的注意力不需要人工干预,由外界环境影响,从而被动选取目标,主要提高显著性。
- 基于深度学习的鱼类识别模型
3.1卷积注意力模型
在利用卷积神经网络构建的深度学习模型里,将多种注意力策略与该模型相结合逐步被视为增强网络表现的关键策略。其中,卷积神经网络层间连接权重和激活函数是两种常用且有效的注意机制,它们对整个网络结构有着非常关键的作用。简单地说,注意力机制的作用是对原始特征进行重新配置,并通过加权方法来强调更为关键的特征信息,这样可以让网络在重视这些特征的同时,忽视那些不那么重要的特征,从而提高网络的总体性能。传统卷积神经网络通常只注重对图像局部区域内关键特征提取以及相关计算过程,而对于其他部分却没有给予足够的关注。Woo及其团队提出的卷积注意力模块,其核心工作机制是通过提高网络中关键特征的识别能力,使网络更加关注关键特征,同时抑制或忽略那些不相关的特征。为了更好地在多个维度上表达关键特征,卷积注意力模块分别使用通道注意力模块和空间注意模块来处理这些特征,而卷积注意力模块的具体结构可以参考图3-1。
图 3-1 CBAM结构示意图
卷积注意力模块由两个子模块组成,它们是通道注意力模块(CAM)和空间注意力模块(SAM)。通道注意力模块在特征计算过程中首先采用平均池化和最大池化操作来整合要素特征图的空间信息,进而生成两种不同的空间上下文描述符Fcavg和Fcmax,这两种描述符分别代表了平均池化要素和最大池化要素。
接下来,我们将这两个描述符传送到共享网络中,以生成我们所需的通道注意力特征Mc∈Rc×1×1。图3-4展示了通道的注意力结构。在本文中提出了一种新的基于随机森林的自适应算法来检测和跟踪通道注意模型参数变化。计算通道注意力的步骤可以通过公式(3-1)来展示。
其中σ表示Sigmoid激活函数,W0∈Rc/r×C和W1∈Rc×C/r。请注意,MLP权重 W0和W1对于两个输入是共享的,并且RELU激活函数之后是W0。
图 3-5 SAM结构示意图
在识别出通道的注意力特性后,我们将这些特性输入到空间注意力模块,并持续地在空间维度上对其进行集中关注。计算的步骤包括:首先,将输入特征按照通道轴顺序进行平均汇集和最大汇集操作,然后将这些结果连接起来,以生成有效的特征描述符。图3-5展示了空间注意力的结构。计算的步骤可以参考公式(3-2)展示。
在这里,σ代表Sigmoid函数,而f7×7则代表滤波器尺寸为7×7的卷积计算。在深度学习过程当中,卷积注意力模型可以作为一种重要的训练数据来源来使用,而卷积神经网络层则是连接不同类型的网络结构。在本研究中,我们将卷积注意力模块与YOLOv4主干网络进行了整合,并通过与原始主干网络的比较来验证这种改进方法的实用性。为了进一步优化算法性能,采用了一种基于梯度下降法的网络结构设计方法。计算的步骤如下:首先,对输出特征执行全局的平均池化操作以得到全局的平均值。接下来,将这些特征输入到一个双层的神经网络中进行求和。之后,函数被激活以产生通道注意力特征。最后,将通道注意力特征与原始特征进行乘法操作,以产生空间注意力模块所需的输入特征。为了提高深度学习模型对复杂场景下语音信号特征提取的效率,本文引入了一种基于局部梯度提升的卷积神经网络层间耦合策略来实现该算法。接下来,我们将输入特征按照通道轴顺序执行平均汇集和最大汇集的操作,并在获得结果后将这些特征连接起来,以生成我们所需的卷积注意力特征。利用这种特征处理技术,网络能够针对性地增强包含关键语音信息的特征,同时抑制那些不相关或关联性较低的特征。
3.2 CIOU损失函数
损失函数的主要功能是用来衡量模型产生的预测值与实际值之间可能存在的偏差。损失函数能够有效地帮助我们了解到模型对于不同类型的数据分布情况下所表现出的特性和规律。在目标检测模型的训练过程中,损失函数是一个常用的工具。当模型对分批次输入的数据进行训练并获得预测结果后,损失函数会计算模型预测值与实际值之间的差异。然后,模型会通过反向传播的方式更新网络参数,继续对模型进行训练,从而实现网络对数据特征的学习。
为了解决水下复杂环境导致的数据模糊、个体重叠和遮挡等问题,本文采用了由三个部分组成的损失函数,该损失函数的计算过程可以在公式中找到。对于不同种类的目标信息采用相应的损失函数进行分类,并将其转化为一个线性回归模型,然后通过求解该线性回归方程来估计未知参数。采用二值交叉熵损失函数来估算置信度损失和类别损失,正如公式所展示的
I代表box中的目标值是1,如果不是则为0,λ代表损失系数,S2代表网络输出的网格大小,这里的52×52、26×26、13×13 B是每个格子中的box数量。