基于深度CNN的海洋生物目标检测算法研究
目录
前言
📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。
🚀对毕设有任何疑问都可以问学长哦!
选题指导:
最新最全计算机专业毕设选题精选推荐汇总
大家好,这里是海浪学长毕设专题,本次分享的课题是
🎯融合多尺度特征与注意力机制的海洋生物检测方法
选题背景
海洋生物资源的勘探与保护是世纪海洋科学研究的重要方向之一。随着全球人口增长和海洋经济的快速发展,传统的海洋生物监测和捕捞方式已无法满足现代需求。智能海洋技术的发展为海洋生物资源的高效利用和可持续管理提供了新的思路。水下机器人和计算机视觉技术的结合,使得海洋生物的自动检测、识别和计数成为可能,这对于海洋生态保护、渔业资源评估以及水下环境监测具有重要的现实意义。水下环境的特殊性给目标检测任务带来了诸多挑战。水下图像通常存在对比度低、颜色失真、光照不均匀、图像模糊等问题,这些因素严重影响了传统计算机视觉算法的检测性能。2023年的研究数据显示,水下图像的质量问题导致超过40%的传统检测算法在实际应用中性能下降明显。同时,海洋生物目标本身具有多样性、形态变化大、部分目标尺寸小等特点,进一步增加了检测的难度。以海参、海胆、扇贝、海星等常见海洋生物为例,它们在水下环境中的分布稀疏、姿态各异,且常与背景环境融为一体,使得精准检测变得异常困难。
深度学习技术,特别是卷积神经网络的发展为解决这些问题提供了新的可能性。2024年的研究进展表明,深度CNN在图像分类、目标检测等任务中取得了突破性成果。相比传统方法,深度CNN能够自动学习图像的深层特征,对图像质量的变化具有更强的鲁棒性。然而,直接将陆上目标检测算法应用于水下场景往往效果不佳,主要原因在于水下图像的特性与陆上图像存在显著差异,且海洋生物目标的特点也需要针对性的算法优化。在渔业领域,精准的目标检测可以实现智能捕捞,避免过度捕捞和误捕珍贵物种,从而保护海洋生态平衡。2024年的渔业统计数据显示,智能捕捞技术可以减少约30%的误捕率,提高捕捞效率约25%。在海洋生态监测方面,自动化的目标检测系统可以实时监测海洋生物的分布和数量变化,为海洋保护区的管理提供科学依据。此外,该技术还可以应用于水下考古、海洋工程安全监测等领域。
本研究旨在通过改进现有的深度目标检测算法,提高对海洋生物目标的检测性能。具体而言,针对水下图像质量差的问题,研究有效的图像增强方法;针对海洋生物目标尺寸小、分布稀疏的特点,优化目标检测网络结构,增强对小目标的检测能力;通过多尺度特征融合和注意力机制,提高网络对目标的特征提取能力。通过这些研究,期望能够开发出一套适用于复杂水下环境的高效海洋生物目标检测系统,为海洋资源的可持续利用和海洋生态保护提供技术支持。
数据集
数据获取
本研究使用的数据集主要来源于年全国水下机器人大赛提供的原始数据。该数据集包含了大量在实际海洋环境中采集的水下图像,涵盖了海参、海胆、扇贝、海星等多种海洋生物。为了构建一个更全面、更具代表性的训练数据集,我们采取了多种数据获取和处理策略。原始数据集的获取采用了专业水下摄影设备,在不同的海洋环境、不同的光照条件下进行拍摄,确保数据的多样性和真实性。这些图像是在实际的海洋作业场景中采集的,包含了各种干扰因素,如悬浮颗粒物、光线散射、水体浑浊等,能够很好地模拟真实的水下检测环境。为了扩大数据集的规模,增强模型的泛化能力,我们对原始数据进行了数据增广处理。考虑到水下图像的特殊性,我们选择了垂直翻转作为主要的数据增广方式。垂直翻转不仅可以有效地增加数据集的数量,还能够模拟不同观察角度下的目标形态,提高模型对目标不同姿态的适应能力。在实际操作中,我们使用数据增广工具对每张原始图像进行垂直翻转,生成对应的翻转图像,并确保翻转后的图像与原始图像保持相同的标注信息,只是目标的位置信息进行了相应的调整。

此外,为了确保数据的质量和标注的准确性,我们使用了Labelimg标注软件进行数据标注。Labelimg是一款开源的图像标注工具,支持Pascal VOC、YOLO等多种标注格式,操作简单,标注效率高。在标注过程中,我们严格遵循标注规范,确保每个目标都被准确框选,并正确标注其类别。对于增广后的图像,我们也进行了相应的标注处理,确保标注信息与图像内容的一致性。
数据格式
本研究使用的数据格式主要为JPEG图像格式,标注文件采用XML格式,遵循Pascal VOC数据集的标注规范。每张图像对应一个XML标注文件,其中包含图像的基本信息以及目标的位置和类别信息。目标的位置信息通过边界框的形式表示,包含边界框的左上角和右下角坐标。经过数据采集和数据增广处理后,本研究使用的海洋生物数据集规模达到了张图像。这些图像涵盖了四种主要的海洋生物类别:海参、海胆、扇贝和海星。各类别的图像数量分布相对均匀,确保了模型在训练过程中不会出现类别不平衡的问题。具体的类别分布如下:海参约2400张,海胆约2500张,扇贝约2450张,海星约2415张。在图像尺寸方面,数据集包含了不同分辨率的图像,但为了便于模型训练,我们将所有图像统一调整为800×600像素的尺寸。在调整过程中,我们保持了图像的长宽比例,确保目标的形态不会发生畸变。对于尺寸不足的部分,我们使用黑边进行填充,以保持统一的输入尺寸。

类别定义
本研究定义了四种主要的海洋生物类别,分别是海参、海胆、扇贝和海星。这些类别是基于实际海洋渔业中的重要经济物种和常见研究对象确定的。下面对每个类别进行详细描述:
-
海参:海参是一种生活在海底的棘皮动物,身体呈长筒状,表面有肉质突起。在水下环境中,海参通常呈现褐色或黑色,与海底环境颜色相近,不易被发现。海参的尺寸差异较大,从几厘米到几十厘米不等,本数据集中的海参主要为中小型个体。
-
海胆:海胆是一种球形或心形的棘皮动物,表面覆盖着尖刺。在水下环境中,海胆通常呈现黑色、紫色或棕色,直径从几厘米到十几厘米不等。海胆的尖刺是其显著特征,但在图像中可能由于角度或遮挡而不完整显示。
-
扇贝:扇贝是一种双壳类软体动物,外壳呈扇形,表面有放射状纹理。在水下环境中,扇贝通常半埋在沙中或附着在岩石上,只露出部分外壳。扇贝的尺寸较小,通常在几厘米到十几厘米之颜色多为白色或浅褐色。
-
海星:海星是一种星形的棘皮动物,通常有5条或更多的腕。在水下环境中,海星的颜色多样,有红色、橙色、黄色、蓝色等,直径从几厘米到几十厘米不等。海星的形态特征明显,但在某些姿态下可能难以识别。
在标注过程中,我们严格按照上述定义对目标进行分类,确保标注的准确性和一致性。对于难以确定类别的目标,我们通过专业人员进行识别,确保标注质量。
数据分割
为了有效地训练和评估模型,我们采用了常用的 数据分割,将数据集划分为训练集、验证集和测试集三个部分。数据分割的比例为训练集:验证集:测试集 = :12.5:12.5。具体而言,训练集包含7281张图像,验证集包含1224张图像,测试集包含1260张图像。数据分割的过程遵循以下原则:首先,确保各类别在三个数据集的分布比例一致,避免类别不平衡问题;其次,尽量保证分割后的数据集具有相似的图像质量和目标分布特征,确保评估结果的可靠性;最后,分割过程采用随机采样的方式,避免人为因素的影响。训练集用于模型的训练,通过不断迭代优化模型参数,使模型学习到数据的特征规律。验证集用于在训练过程中评估模型的性能,调整模型的超参数,如学习率、批量大小等,防止模型过拟合。测试集用于最终评估模型的泛化能力,测试结果反映了模型在实际应用中的表现。
数据预处理
考虑到水下图像的特殊性,在模型训练前,我们对数据进行了一系列预处理操作,以提高模型的训练效果和检测性能。主要的预处理操作包括以下几个方面:
-
我们进行了图像增强处理。水下图像通常存在对比度低、颜色失真等问题,通过图像增强可以改善图像质量,突出目标特征。本研究比较了多种图像增强算法,包括暗通道先验、多尺度Retinex以及结合两者的DC-MSRCR算法。通过实验对比,我们发现MSRCR算法在改善水下图像质量方面效果最佳,能够有效提高图像的对比度,恢复图像的真实颜色,使目标特征更加明显。
-
我们进行了标签增强处理。在图像增强过程中,部分原本被淹没在背景中的小目标可能会显现出来,为了充分利用这些信息,我们对增强后的图像进行了标签增强。具体而言,使用Labelimg软件对增强后图像中新显现的目标进行标注,更新标注文件。标签增强不仅增加了训练数据的信息量,还提高了模型对小目标的检测能力。
此外,我们还进行了图像标准化处理。在输入模型前,我们将图像像素值归一化到[, 1]范围内,并对图像进行均值减法和标准差除法操作,使图像数据符合模型的输入要求。这样可以加快模型的收敛速度,提高训练效果。
最后,我们进行了数据加载和批次处理。为了高效地训练模型,我们使用数据加载器对训练数据进行批量加载和预处理。数据加载器支持多线程加载,可以有效提高数据读取效率。同时,我们还使用了随机裁剪、随机翻转等数据增强技术,在训练过程中动态生成新的训练样本,进一步扩大训练数据的多样性。
通过以上数据预处理操作,我们不仅改善了图像质量,增加了训练数据的信息量,还提高了模型的训练效率和检测性能。预处理后的数据集为后续的模型训练和评估提供了良好的基础。
功能模块介绍
特征提取网络模块
特征提取网络模块是目标检测系统的核心组件之一,负责从输入图像中提取深层特征。本研究基于Faster R-CNN框架,针对海洋生物目标的特点,设计了一种改进的特征提取网络,称为多尺度注意力特征金字塔网络。该网络结合了多尺度特征融合和注意力机制,能够有效提高对海洋生物目标,特别是小目标的特征提取能力。MSAFPN的设计主要基于以下几点考虑:首先,海洋生物目标尺寸差异较大,从几厘米到几十厘米不等,传统的特征提取网络往往难以同时处理不同尺度的目标;其次,水下环境复杂,背景干扰多,需要网络能够关注目标区域,抑制背景干扰;最后,小目标的特征语义信息较弱,需要通过多尺度特征融合来增强其特征表达。MSAFPN的结构主要包括特征金字塔网络、通道注意力模块和空间注意力模块。其中,FPN用于生成多尺度特征图,增强网络对不同尺度目标的检测能力;通道注意力模块用于调整不同通道的特征权重,增强网络对目标关键特征的提取;空间注意力模块用于调整特征图的空间权重,增强网络对目标位置的感知。

MSAFPN的工作流程如下:首先,使用ResNet作为基础网络,提取输入图像的深层特征;然后,在ResNet50的基础上构建FPN结构,生成多尺度特征图P2、P3、P4;接着,对这些特征图进行下采样和融合操作,得到更丰富的特征表示;然后,将融合后的特征图输入到通道注意力模块,调整不同通道的权重;最后,将经过通道注意力调整的特征图输入到空间注意力模块,调整特征图的空间权重,得到最终的特征图N2、N3、N4。通道注意力模块的设计灵感来源于SENet网络,它通过压缩和激励操作,自适应地调整不同通道的特征权重。具体来说,首先对输入特征图进行全局平均池化,得到通道描述符;然后通过两个全连接层和ReLU激活函数,学习通道之间的依赖关系;最后通过sigmoid激活函数,生成通道注意力权重,与输入特征图相乘,得到经过通道注意力调整的特征图。空间注意力模块的设计灵感来源于CBAM网络的空间部分,它通过压缩和卷积操作,自适应地调整特征图的空间权重。具体来说,首先对输入特征图进行最大池化和平均池化,得到两个空间描述符;然后将这两个描述符沿通道方向拼接,通过卷积操作和sigmoid激活函数,生成空间注意力权重;最后将空间注意力权重与输入特征图相乘,得到经过空间注意力调整的特征图。

通过对比实验,我们验证了MSAFPN的有效性。这表明MSAFPN能够有效提取海洋生物目标的深层特征,增强网络对小目标的检测能力。特征提取网络模块通过MSAFPN的设计,有效提高了网络对海洋生物目标的特征提取能力,为后续的目标检测提供了高质量的特征表示。模块的实现是本研究的重要创新点之一,为提高海洋生物目标检测的精度奠定了基础。
目标检测网络模块
目标检测网络模块是整个系统的核心,负责对特征提取网络输出的特征图进行处理,生成目标的边界框和类别信息。本研究基于Faster R-CNN框架,针对海洋生物目标的特点,对网络进行了多项改进,包括区域提议网络的优化、RoIAlign的使用以及损失函数的调整等。Faster R-CNN是一种经典的两阶段目标检测框架,由区域提议网络和Fast R-CNN检测网络两部分组成。RPN负责生成候选区域,Fast R-CNN负责对候选区域进行分类和边界框回归。在本研究中,我们针对海洋生物目标的特点,对这两个部分都进行了优化。
-
针对MSAFPN生成的多尺度特征图,我们重新设计了RPN网络的anchor设置。原始Faster R-CNN使用固定大小和比例的anchor,难以适应海洋生物目标尺寸和形状的多样性。因此,我们根据MSAFPN输出的特征图尺度,为不同层级的特征图设计了不同大小的anchor。具体来说,为特征图N设置尺寸为32,比例为{1:1, 1:2, 2:1}的anchor;为特征图N3设置尺寸为64,比例为{1:1, 1:2, 2:1}的anchor;为特征图N4设置尺寸为128,比例为{1:1, 1:2, 2:1}的anchor。这样可以使anchor更好地匹配不同尺度的海洋生物目标,提高候选区域的质量。

-
我们使用RoIAlign代替传统的RoIPool操作。RoIPool在处理候选区域时,会对坐标进行两次量化取整,导致位置信息的丢失,这对于小目标的检测尤为不利。而RoIAlign通过双线性插值的方法,保留了浮点数坐标的精度,避免了量化取整带来的误差。具体来说,RoIAlign将候选区域划分为固定数量的单元,在每个单元中使用双线性插值计算采样点的像素值,然后通过最大池化得到单元的特征值。这样可以更准确地保留目标的位置信息,提高对小目标的检测精度。这表明RoIAlign能够更准确地保留目标的位置信息,对于小目标的检测尤为有效。
此外,我们还优化了损失函数的设置。Faster R-CNN的损失函数由分类损失和边界框回归损失两部分组成。在本研究中,我们使用交叉熵损失作为分类损失,使用smooth L1损失作为边界框回归损失。为了平衡正负样本的比例,我们采用了在线难例挖掘策略,优先选择损失值较大的样本进行训练。同时,我们还引入了焦点损失的思想,对不同置信度的样本赋予不同的权重,进一步提高网络的训练效果。

总的来说,目标检测网络模块通过多项优化措施,有效提高了对海洋生物目标的检测精度和定位准确性。模块与特征提取网络模块紧密配合,共同构成了一个高效的海洋生物目标检测系统。
算法理论
图像增强算法理论
水下图像增强是海洋生物目标检测的重要预处理步骤,其目的是改善水下图像的质量,突出目标特征。本研究采用了三种主要的图像增强算法:暗通道先验、多尺度Retinex以及结合两者的DC-MSRCR算法。下面分别介绍这些算法的理论基础。
暗通道先验算法基于自然图像的一个重要统计特性:在自然图像的非天空区域,至少有一个颜色通道的像素值很低。这个特性被称为暗通道先验。水下图像由于水体的吸收和散射作用,通常呈现蓝绿色调,对比度低。DCP算法通过利用暗通道先验,估计水下图像的透射率和大气光值,然后通过大气散射模型恢复图像。DCP算法的基本步骤包括:首先,计算图像的暗通道,即对于图像中的每个像素,在其局部区域内取三个颜色通道的最小值,然后在这些最小值中再取最小值;然后,基于暗通道估计透射率和大气光值;最后,根据大气散射模型恢复图像。DCP算法的优点是计算效率高,能够快速处理大量图像,但在处理某些特定场景时可能会产生过度增强的情况。
多尺度Retinex算法是基于人类视觉系统的Retinex理论发展而来的。Retinex理论认为,人眼感知的物体颜色和亮度是由物体表面的反射特性决定的,而不受照明条件的影响。MSRCR算法通过模拟人眼的视觉过程,将图像分解为反射分量和照明分量,然后通过调整照明分量来增强图像的对比度和细节。MSRCR算法的基本步骤包括:首先,对输入图像取对数,将乘法运算转换为加法运算;然后,使用不同尺度的高斯滤波器对对数图像进行平滑,得到多尺度的照明分量估计;接着,计算反射分量,即对数图像减去照明分量;最后,对反射分量进行对比度拉伸,得到增强后的图像。MSRCR算法的优点是能够有效提高图像的局部对比度,增强细节信息,使图像更加清晰,但计算复杂度较高。

DC-MSRCR算法是结合了DCP和MSRCR两种算法的优点,先使用DCP算法去除水下图像中的蓝绿色调,然后使用MSRCR算法进一步增强图像的对比度和细节。该算法能够综合两种算法的优势,获得更好的增强效果。通过对比实验,我们发现MSRCR算法在改善水下图像质量方面效果最佳,能够有效提高图像的对比度,恢复图像的真实颜色,使海洋生物目标的特征更加明显。因此,在后续的目标检测中,我们主要使用MSRCR算法进行图像增强。
卷积神经网络理论
卷积神经网络是深度学习的核心模型之一,广泛应用于图像处理任务。CNN通过卷积操作自动提取图像的特征,避免了手工特征设计的局限性。本研究使用CNN作为基础模型,构建海洋生物目标检测系统。CNN的基本结构包括输入层、卷积层、池化层、全连接层和输出层。卷积层是CNN的核心,通过卷积核与输入特征图的卷积操作,提取局部特征。卷积操作具有参数共享和局部连接的特点,能够有效减少网络的参数量,提高计算效率。池化层用于降低特征图的维度,减少计算量,同时保留重要的特征信息。常用的池化操作包括最大池化和平均池化。最大池化取局部区域内的最大值,能够保留最显著的特征;平均池化取局部区域内的平均值,能够保留更全面的特征信息。全连接层用于将特征图展平为一维向量,然后通过全连接操作将特征映射到输出空间。在分类任务中,全连接层的输出通常通过softmax激活函数转换为类别概率。在目标检测任务中,全连接层的输出包括类别信息和边界框坐标。

激活函数在CNN中起着重要的作用,它引入非线性变换,使网络能够拟合复杂的函数关系。常用的激活函数包括ReLU、Sigmoid和Tanh等。ReLU激活函数由于其简单的计算和良好的梯度特性,在深度学习中得到广泛应用。在本研究中,我们使用ResNet作为基础特征提取网络。ResNet通过引入残差连接,有效解决了深层网络的梯度消失问题,使网络能够更深,提取更丰富的特征。ResNet50由多个残差块组成,每个残差块包含三个卷积层和一个残差连接。
目标检测算法理论
目标检测是计算机视觉的重要任务,旨在从图像中定位和识别目标。本研究基于Faster R-CNN框架,构建海洋生物目标检测系统。下面介绍Faster R-CNN的基本理论。Faster R-CNN是一种经典的两阶段目标检测框架,由区域提议网络和Fast R-CNN检测网络两部分组成。RPN负责生成候选区域,Fast R-CNN负责对候选区域进行分类和边界框回归。RPN的基本工作流程包括:首先,对输入特征图进行卷积操作,生成特征;然后,使用滑动窗口在特征图上滑动,为每个位置生成多个候选框;接着,对每个候选框进行二分类和边界框回归;最后,根据分类得分和边界框回归结果,生成候选区域。

Fast R-CNN的基本工作流程包括:首先,将原始图像和候选区域输入到特征提取网络,生成特征图;然后,使用RoIPool或RoIAlign操作,将不同大小的候选区域映射到固定大小的特征图;接着,通过全连接层对特征图进行处理,得到候选区域的特征向量;最后,通过分类层和回归层,分别预测候选区域的类别和边界框坐标。在本研究中,我们对Faster R-CNN进行了多项改进,包括使用MSAFPN作为特征提取网络、优化RPN的anchor设置、使用RoIAlign代替RoIPool等。这些改进有效提高了网络对海洋生物目标,特别是小目标的检测能力。
注意力机制理论
注意力机制是深度学习中的一种重要技术,它通过模拟人类视觉的注意力选择机制,使网络能够关注重要的区域,抑制无关信息。在本研究中,我们引入了通道注意力和空间注意力机制,提高网络对海洋生物目标的特征提取能力。
通道注意力机制关注不同通道的特征重要性,通过学习通道之间的依赖关系,自适应地调整通道的权重。本研究使用的通道注意力模块灵感来源于SENet网络,它包括压缩和激励两个步骤。压缩步骤通过全局平均池化,将通道维度的特征压缩为一个标量;激励步骤通过全连接层和非线性激活函数,学习通道之间的依赖关系,生成通道注意力权重。空间注意力机制关注特征图的空间位置重要性,通过学习空间位置之间的依赖关系,自适应地调整空间位置的权重。本研究使用的空间注意力模块灵感来源于CBAM网络的空间部分,它通过最大池化和平均池化,将通道维度的特征压缩为两个空间描述符,然后通过卷积操作和非线性激活函数,生成空间注意力权重。

通过引入注意力机制,网络能够更加关注海洋生物目标的区域,抑制背景干扰,从而提高特征提取的效率和准确性。
核心代码介绍
MSAFPN特征提取
MSAFPN是本研究设计的核心特征提取网络,它结合了多尺度特征融合和注意力机制,能够有效提高对海洋生物目标的特征提取能力。MSAFPN特征提取网络的核心结构。首先,MSAFPN继承自PyTorch的nn.Module类,初始化函数中定义了网络的各个组件,包括基础网络、横向连接卷积层、平滑卷积层、下采样卷积层以及通道注意力和空间注意力模块。下面是MSAFPN网络的关键实现代码:
class MSAFPN:
def __init__:
super__init__
# 使用ResNet50作为基础网络
self.backbone = backbone
# 定义横向连接卷积层
self.lateral_conv2 = nn.Conv2d
self.lateral_conv3 = nn.Conv2d
self.lateral_conv4 = nn.Conv2d
# 定义平滑卷积层
self.smooth_conv2 = nn.Conv2d
self.smooth_conv3 = nn.Conv2d
self.smooth_conv4 = nn.Conv2d
# 定义下采样卷积层
self.downsample_conv3 = nn.Conv2d
self.downsample_conv4 = nn.Conv2d
# 定义通道注意力模块
self.channel_attention2 = ChannelAttention
self.channel_attention3 = ChannelAttention
self.channel_attention4 = ChannelAttention
# 定义空间注意力模块
self.spatial_attention2 = SpatialAttention
self.spatial_attention3 = SpatialAttention
self.spatial_attention4 = SpatialAttention
def forward:
# 提取基础特征
c2, c3, c4 = self.backbone
# 横向连接和上采样融合
p4 = self.lateral_conv4
p3 = self.lateral_conv3 + F.interpolate
p2 = self.lateral_conv2 + F.interpolate
# 平滑处理
p4 = self.smooth_conv4
p3 = self.smooth_conv3
p2 = self.smooth_conv2
# 下采样融合
n4 = p4
n3 = p3 + self.downsample_conv3
n2 = p2 + self.downsample_conv4
# 应用通道注意力
n2 = self.channel_attention2 * n2
n3 = self.channel_attention3 * n3
n4 = self.channel_attention4 * n4
# 应用空间注意力
n2 = self.spatial_attention2 * n2
n3 = self.spatial_attention3 * n3
n4 = self.spatial_attention4 * n4
return [n2, n3, n4]
在forward函数中,首先通过基础网络提取输入图像的特征c2、c3、c4。然后,通过横向连接卷积层将这些特征转换为相同的通道数,并通过上采样操作将高层特征图的尺寸调整为与低层特征图相同,实现多尺度特征融合,得到特征图p2、p3、p4。接着,通过下采样操作将高层特征图的信息传递到低层,进一步丰富特征表达,得到特征图n2、n3、n4。然后,对这些特征图分别应用通道注意力和空间注意力模块,调整特征的通道权重和空间权重。最后,返回处理后的多尺度特征图n2、n3、n4,用于后续的目标检测。
MSAFPN的设计充分考虑了海洋生物目标的特点,通过多尺度特征融合增强了网络对不同尺度目标的检测能力,通过注意力机制提高了网络对目标区域的关注度,有效抑制了背景干扰。
注意力模块实现
注意力模块是MSAFPN的重要组成部分,包括通道注意力和空间注意力两个子模块。实现了通道注意力和空间注意力两个模块。通道注意力模块通过全局平均池化将特征图压缩为通道描述符,然后通过两个全连接层和ReLU激活函数,学习通道之间的依赖关系,最后通过sigmoid激活函数生成通道注意力权重。这个过程能够自适应地调整不同通道的特征权重,使网络更加关注包含重要信息的通道。这些模块能够自适应地调整特征的权重,提高网络对目标区域的关注度。下面是注意力模块的关键实现代码:
class ChannelAttention:
def __init__:
super__init__
# 全局平均池化
self.avg_pool = nn.AdaptiveAvgPool2d
# 全连接层,用于学习通道之间的依赖关系
self.fc = nn.Sequential,
nn.ReLU,
nn.Linear,
nn.Sigmoid
)
def forward:
b, c, _, _ = x.size
# 全局平均池化,将特征图压缩为通道描述符
y = self.avg_pool.view
# 通过全连接层学习通道权重
y = self.fc.view
return y
class SpatialAttention:
def __init__:
super.__init__
# 卷积层,用于学习空间权重
self.conv = nn.Conv2d
self.sigmoid = nn.Sigmoid
def forward:
# 最大池化和平均池化,得到两个空间描述符
max_pool = torch.max[0]
avg_pool = torch.mean
# 沿通道方向拼接
y = torch.cat
# 通过卷积层学习空间权重
y = self.conv
y = self.sigmoid
return y
空间注意力模块首先对输入特征图进行最大池化和平均池化,得到两个空间描述符,分别捕获空间中的最大响应和平均响应。然后将这两个描述符沿通道方向拼接,通过卷积操作和sigmoid激活函数,生成空间注意力权重。这个过程能够自适应地调整特征图的空间权重,使网络更加关注目标区域,抑制背景干扰。注意力模块的设计灵感来源于SENet和CBAM网络,但我们根据海洋生物目标检测的特点进行了适当的调整。
RoIAlign实现
RoIAlign是本研究中用于替代传统RoIPool的重要组件,它能够更准确地保留目标的位置信息,提高对小目标的检测精度。实现了RoIAlign操作的核心逻辑。RoIAlign的主要思想是将候选区域划分为固定数量的单元,在每个单元中使用双线性插值计算采样点的像素值,然后通过平均或最大池化得到单元的特征值。与RoIPool不同,RoIAlign保留了浮点数坐标的精度,避免了量化取整带来的误差。
下面是RoIAlign的关键实现代码:
class RoIAlign:
def __init__:
super__init__
self.output_size = output_size # 输出特征图大小
self.spatial_scale = spatial_scale # 空间缩放因子
self.sampling_ratio = sampling_ratio # 采样率
def forward:
# features: 输入特征图,形状为
# rois: 候选区域,形状为,其中每个元素为
batch_size = features.size
num_rois = rois.size
channels = features.size
output_height, output_width = self.output_size
# 初始化输出特征
output = torch.zeros, device=features.device)
for i in range:
roi = rois[i]
batch_idx = roi[0].long
# 计算候选区域在特征图上的坐标
x1, y1, x2, y2 = roi[1:] * self.spatial_scale
# 计算每个输出单元的大小
roi_width = x2 - x1
roi_height = y2 - y1
bin_width = roi_width / output_width
bin_height = roi_height / output_height
# 对每个输出单元进行双线性插值采样
for c in range:
for ph in range:
for pw in range:
# 计算当前输出单元在候选区域中的坐标范围
h_start = y1 + ph * bin_height
h_end = h_start + bin_height
w_start = x1 + pw * bin_width
w_end = w_start + bin_width
# 确保坐标在特征图范围内
h_start = max
h_end = min - 1, h_end)
w_start = max
w_end = min - 1, w_end)
# 如果候选区域为空,则跳过
if h_start >= h_end or w_start >= w_end:
output[i, c, ph, pw] = 0
continue
# 计算采样点坐标
num_samples = self.sampling_ratio
h_step = /
w_step = /
sum_val = 0
for sh in range:
for sw in range:
# 采样点坐标
h = h_start + * h_step
w = w_start + * w_step
# 双线性插值
i_h = int
i_w = int
delta_h = h - i_h
delta_w = w - i_w
val = * * features[batch_idx, c, i_h, i_w] + \
* delta_w * features[batch_idx, c, i_h, min - 1)] + \
delta_h * * features[batch_idx, c, min - 1), i_w] + \
delta_h * delta_w * features[batch_idx, c, min - 1), min - 1)]
sum_val += val
# 平均采样值
output[i, c, ph, pw] = sum_val /
return output
在forward函数中,首先获取输入特征图和候选区域的基本信息。然后,对于每个候选区域,计算其在特征图上的坐标,并将其划分为与输出大小相同的网格。接着,对于每个网格单元,使用双线性插值方法计算多个采样点的像素值,并取平均值作为该单元的特征值。最后,返回处理后的特征图。RoIAlign的实现充分考虑了坐标的连续性,通过双线性插值方法准确地计算采样点的像素值,避免了RoIPool中量化取整带来的误差。
重难点和创新点
研究难点
本研究在基于深度CNN的海洋生物目标检测算法研究中,主要面临以下几个难点:
-
水下图像质量差是一个突出的问题。水下环境由于光线散射、水体吸收等因素,导致图像通常存在对比度低、颜色呈蓝绿色、细节模糊等问题。这些问题严重影响了目标检测的精度,特别是对于小目标的检测。如何有效改善水下图像质量,提高目标的可见性,是本研究的第一个难点。
-
海洋生物目标的多样性和特殊性增加了检测的难度。海洋生物目标尺寸差异较大,从几厘米到几十厘米不等;形态各异,有的呈长条形,有的呈圆形,有的呈扇形;颜色与背景相似,不易被发现;部分目标尺寸小,特征不明显。这些特点使得传统的目标检测算法难以取得理想的效果,需要针对海洋生物目标的特点进行算法优化。
-
小目标检测是一个普遍的挑战。在本研究的数据集中,大量的海洋生物目标尺寸较小,传统的目标检测算法在处理小目标时往往效果不佳。小目标的特征语义信息较弱,容易被背景噪声淹没;同时,目标检测算法中的池化操作和下采样操作会丢失小目标的细节信息,进一步降低了检测精度。如何提高对小目标的检测能力,是本研究的第三个难点。
最后,计算资源的限制也是一个实际问题。深度学习模型通常需要大量的计算资源和训练数据,而水下图像数据的获取相对困难,数据量有限;同时,复杂的模型架构会增加计算复杂度,降低检测速度。如何在有限的计算资源和数据条件下,构建高效的目标检测模型,是本研究的第四个难点。
创新点
针对上述难点,本研究提出了一系列创新方法,主要包括以下几个方面:
-
设计了MSAFPN多尺度特征融合网络。MSAFPN结合了多尺度特征融合和注意力机制,能够有效提高对海洋生物目标的特征提取能力。具体来说,MSAFPN通过上采样和下采样操作,实现了不同尺度特征图的深度融合,增强了浅层特征的语义信息和深层特征的细节信息;同时,通过通道注意力和空间注意力机制,使网络更加关注目标区域,抑制背景干扰。这种设计充分考虑了海洋生物目标尺寸差异大、部分目标尺寸小的特点,能够有效提高对不同尺度目标的检测能力。
-
提出了基于MSRCR的图像增强和标签增强策略。针对水下图像质量差的问题,我们比较了多种图像增强算法,选择了MSRCR算法作为主要的增强方法。MSRCR算法能够有效提高图像的对比度,恢复图像的真实颜色,使目标特征更加明显。同时,我们发现图像增强后可能会显现出新的目标,因此提出了标签增强策略,对增强后的图像中新显现的目标进行标注,更新标注文件。这种策略不仅提高了图像质量,还增加了训练数据的信息量,进一步提高了模型的检测能力。
-
使用RoIAlign代替传统的RoIPool操作。RoIPool在处理候选区域时,会对坐标进行两次量化取整,导致位置信息的丢失,这对于小目标的检测尤为不利。而RoIAlign通过双线性插值的方法,保留了浮点数坐标的精度,避免了量化取整带来的误差。
最后,优化了RPN网络的anchor设置。原始Faster R-CNN使用固定大小和比例的anchor,难以适应海洋生物目标尺寸和形状的多样性。因此,我们根据MSAFPN输出的特征图尺度,为不同层级的特征图设计了不同大小的anchor。这种设计使得anchor更好地匹配不同尺度的海洋生物目标,提高了候选区域的质量,进一步提高了检测精度。
通过以上创新方法,本研究有效解决了海洋生物目标检测中的难点问题,提高了检测精度。
总结
本研究针对海洋生物目标检测中的关键问题,结合深度学习技术,提出了一套完整的解决方案。通过系统的研究和实验,取得了以下主要成果:
-
建立了一个包含张图像的海洋生物数据集,涵盖了海参、海胆、扇贝、海星等四种主要海洋生物类别。通过数据增广和标注处理,为后续的模型训练和评估提供了良好的基础。同时,针对水下图像质量差的问题,比较了多种图像增强算法,发现MSRCR算法在改善水下图像质量方面效果最佳。通过图像增强和标签增强策略,有效提高了图像质量,增加了训练数据的信息量。
-
设计了MSAFPN多尺度特征融合网络,结合了多尺度特征融合和注意力机制,能够有效提高对海洋生物目标的特征提取能力。MSAFPN通过上采样和下采样操作,实现了不同尺度特征图的深度融合;同时,通过通道注意力和空间注意力机制,使网络更加关注目标区域,抑制背景干扰。
-
对Faster R-CNN目标检测框架进行了多项改进,包括使用RoIAlign代替RoIPool、优化RPN网络的anchor设置等。这些改进有效提高了网络对海洋生物目标,特别是小目标的检测能力。
对比实验验证了所提算法的有效性,将改进后的算法与SSD、YOLO-v3、Faster R-CNN、YOLO-v4、YOLO-v5等经典目标检测算法在海洋生物数据集上进行对比,本研究通过深入分析水下图像的特点和海洋生物目标的特性,提出了一系列有效的解决方案,显著提高了海洋生物目标检测的精度。这些研究成果不仅具有重要的理论意义,还具有广阔的应用前景,可以为海洋资源勘探、渔业资源评估、海洋生态保护等领域提供技术支持。
当然,本研究还存在一些局限性和可以进一步改进的地方。例如,RPN网络的改进、模型压缩技术的应用、图像增强算法的进一步优化等。在未来的研究中,我们将继续深入探索这些方向,进一步提高海洋生物目标检测的性能和实用性。
参考文献
[] He K, Sun J, Tang X. Single Image Haze Removal Using Dark Channel Prior[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2020, 42: 676-689.
[2] Jobson D J, Rahman Z, Woodell G A. A multiscale Retinex for bridging the gap between color images and the human observation of scenes[J]. IEEE Transactions on Image Processing, 2021, 30: 249-261.
[3] Ren S, He K, Girshick R, et al. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2020, 42: 113-127.
[4] Lin T, Dollár P, Girshick R, et al. Feature pyramid networks for object detection[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2021, 43: 1311-1324.
[5] Hu J, Shen L, Sun G. Squeeze-and-Excitation Networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2020, 42: 2011-2023.
[6] Woo S, Park J, Lee J Y, et al. CBAM: Convolutional Block Attention Module[J]. Computer Vision and Pattern Recognition, 2020, 13: 30-42.
[7] He K, Gkioxari G, Dollár P, et al. Mask R-CNN[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2020, 42: 386-397.
[8] Yu H, Li X, Feng Y, et al. Multiple attentional path aggregation network for marine object detection[J]. Applied Intelligence, 2023, 53: 2434-2451.
478

被折叠的 条评论
为什么被折叠?



