1.一种基于注意力机制和DropBlock的YOLOv5海洋鱼类目标检测方法,其特征在于,它包括以下步骤:步骤1:进行目标鱼类数据集的获取;
步骤2:对所获得的数据集进行标注、划分;
步骤3:构造加入注意力机制和DropBlock的YOLOv5海洋鱼类目标检测模型;
步骤4:采用所构造的海洋鱼类目标检测模型进行鱼类的检测;
在步骤3中,所述模型的结构为:将由步骤2获得的鱼类数据集依次经过第一CBS模块---第二CBS模块---第一C3模块---第三CBS模块---第二C3模块---第四CBS模块---第三C3模块---第五CBS模块---第四C3模块---SPPF模块---第六CBS模块---第一Unsample模块---第一Concat模块---第五C3模块---第七CBS模块---第二Upsample模块---第二Concat模块---第六C3模块---第八CBS模块---第三Concat模块---第七C3模块---第九CBS模块---第四Concat模块---第八C3模块;
其中,第一Unsample模块的输出与第三C3模块的输出拼接并输入第一Concat模块;
第二Unsampale模块的输出与第二C3模块的输出拼接并输入第二Concat模块;
第六C3模块的输出输入第一卷积模块Conv的输入端,第一卷积模块Conv的输出作为第一输出结果;
第七C3模块的输出输入第二卷积模块Conv的输入端,第二卷积模块Conv的输出作为第二输出结果;
第八C3模块的输出输入第三卷积模块Conv的输入端,第三卷积模块Conv的输出作为第三输出结果;
第一输出结果、第二输出结果、第三输出结果合并以获得合并后的检测结果。
2.根据权利要求1所述的方法,其特征在于,第一C3模块为改进的C3模块,它包括C3模块以及与C3模块的输出连接的ECA模块;
在第一C3模块、第二C3模块、第三C3模块、第四C3模块和第五C3模块中,具体的结构为:C3模块包括两条支路,第一条支路包括依次串接的CBS模块、bottleneck;另一条支路包括CBS模块;两条支路的输出拼接后串接CBS模块,再与ECA模块连接。
3.根据权利要求2所述的方法,其特征在于,在ECA模块中,输入经过池化层,再经过卷积,最后经过Sigmoid激活函数得到输出,该输出与输入特征图相乘,其结果作为ECA模块的输出。
4.根据权利要求2所述的方法,其特征在于,第六C3模块为改进的C3模块,它包括DropBlock模块、与DropBlock模块的输出连接的C3模块、与C3模块的输出连接的ECA、与ECA的输出连接的SSA;
在第六C3模块、第七C3模块和第八C3模块中,具体的结构为:C3模块包括两条支路,第一条支路包括依次串接的CBS模块、bottleneck;另一条支路包括CBS模块;两条支路的输出拼接后串接CBS模块,再与ECA模块连接,再与SSA模块连接;
在DropBlock模块中,输入经过DropBlock丢弃局部区域信息得到输出;
在ECA模块中,输入经过池化层,再经过卷积,最后经过Sigmoid激活函数得到输出,该输出与输入特征图相乘,其结果作为ECA模块的输出;
在SSA模块中,输入分别经过全局最大池化层和全局平均池化层,得到W方向和H方向的特征图最大值,经过BN层,再经过卷积,最后经过Sigmoid激活函数得到输出,该输出与输入特征图相乘,其结果作为SSA模块的输出。
5.根据权利要求1所述的方法,其特征在于,在步骤2中,将由步骤1获取的数据集使用LabelImg标注软件进行手工校对和标注,得到对应的标签数据。
6.根据权利要求1所述的方法,其特征在于,在步骤4中,包括以下步骤:
4-1:将海洋鱼类训练集输入到步骤3中的网络中进行训练,调整模型的学习率、动量、迭代次数,采用余弦退火算法动态调整学习率;
4-2:将海洋鱼类测试集放入步骤4-1训练好的模型中,根据模型输出结果计算相关评价指标,来评价模型的性能;
若模型性能达不到预期,调整网络参数,重复步骤4-1和步骤4-2;通过计算精度Accuracy、查准率Precision、查全率Recall和参数量Parameters,对方法的性能进行度量;
精度计算公式如式(3)所示,查准率计算公式如式(4)所示,查全率计算公式如式(5)所示;
其中:TP表示真正例,FP表示假正例,FN表示假负例,TN表示真负例。