2. 山东正晨科技股份有限公司, 济南 250101
2. Shandong Zhengchen Technology Co. Ltd., Jinan 250101, China
我国渔业资源虽然丰富, 但是目前我国的渔业资源呈衰退趋势[1], 通过水下图像进行水下鱼类检测对指导海洋捕鱼业的可持续发展和渔业资源勘测具有重要意义. 目前, 获取水下信息的方式主要有两种: 水下声呐技术和水下光学成像技术. 与水下声呐技术相比, 水下光学成像技术具有目标检测直观、成像分辨率高、信息量大等优点, 更适用于近距离目标检测. 近年来, 大部分水下探测都依赖于潜水员. 长期的潜水作业和复杂的水下环境给他们的健康带来了很大的负担. 通过搭载摄像头的水下机器鱼对海洋渔业资源的探索可以提高效率, 实现对深水环境的广泛探测. 因此, 开展仿生机器鱼搭载摄像头对水下鱼类进行搜寻、实时监测方面的研究更有意义, 具有更好的应用前景. 鱼类的准确定位和高效识别是实现水下智能作业的关键[2]. 现有的目标检测算法在复杂的水下环境中精度有限, 水下目标检测任务存在许多困难. 在复杂的水下环境中准确、快速地对目标进行检测是亟待解决的问题.
目标检测包括识别和定位任务. 目标检测算法可分为基于传统机器学习的目标检测算法和基于深度学习的目标检测算法两大类. 基于传统机器学习的目标检测算法, 其目标检测模型主要有信息区域选择、特征提取和分类3个阶段, 传统检测方法效果差, 速度慢. 基于深度学习的目标检测算法, 分为以下3类: (1)基于区域建议的目标检测算法, 如R-CNN[3], Fast R-CNN[4], Faster R-CNN[5]; (2)基于回归的目标检测算法, 如YOLO[6]、SSD[7]; (3)基于搜索的目标检测算法, 如基于视觉注意的AttentionNet[8]、基于强化学习的算法[9]等. 最近几年, 还出现了NAS-FPN、EfficientDet、YOLOF 等新算法[10].
目前水下目标检测的方法主要分为两类[11]: (1)基于候选区域的水下目标检测算法; (2)基于回归思想的水下目标检测算法. Zheng等人提出了一种基于图像增强和深度网络的目标检测算法, 该算法首先对图像数据进行增强以获得较好的对比度, 然后采用深度学习算法将目标与背景分离, 以提高目标的检测性能[12]. Zeng等人提出了一种将对抗性遮挡网络(AON)添加到标准Faster R-CNN检测算法中的方法, 在水下数据集上的mAP提升为4.2%[13]. 李庆忠等人基于改进YOLO和迁移学习的水下鱼类目标实时检测算法, 对海底鱼类小目标和重叠目标具有更好的检测性能[14]. 强伟等人针对水下复杂环境中存在的目标检测准确率低、实时性差的问题, 提出一种基于改进SSD的目标检测算法[15]. 叶赵兵等人针对水下目标检测任务中图像模糊, 背景复杂以及目标小而导致误检和漏检问题, 提出一种改进YOLOv3-SPP的水下目标检测算法, 平均检测精度由79.58%提升到88.71%[16]. 陈宇梁等人针对浅海水下图像存在颜色失真、图像毛糙、局部过曝和尺寸差异大等导致的浅海水下生物目标检测精确度低的问题, 提出一种基于YOLOv3网络的浅海水下生物目标检测识别方法[17]. Lei等人将Swin Transformer当作YOLOv5的基本骨干网, 通过改进多尺度特征融合的路径聚合网络( PANet )方法, 在不同检测层的基础上改进了置信度损失函数, 使网络更有能力检测目标[18].
YOLOv5是YOLO系列中性能和通用性较强的一款模型, 在检测速度和精度上比上述算法更具优势. YOLOv5 是继 YOLOv3 之后被广泛运用于工业检测的算法, 能够在保持较高精确率的同时满足实时性要求[19]. YOLOv5在正常场景下的目标检测精确度和速度都有较好的效果, 但是YOLOv5对水下小目标检测效果较差, 因此针对水下目标的特点, 通过改进YOLOv5算法提高水下鱼类目标检测具有重要意义, 本文针对这类问题进行研究, 提出改进的YOLOv5水下鱼类目标检测算法.
首先, 针对水下图像经常存在图像模糊和颜色不协调等质量问题, 本文利用UDCP算法[20]对数据集进行预处理, 提高水下图像清晰度, 使得检测模型可以检测到更多的目标; 然后, 针对检测目标容易出现局部过曝以及小目标难以检测的问题, 在YOLOv5网络中加入ECA[21]注意力机制, 增强特征提取能力; 最后, 为增强预测框的适应能力, 提高目标框的准确度, 引入
YOLOv5算法是一种端到端的神经网络模型, 它只使用一个卷积神经网络对整个图像进行分割, 并预测边界盒和每个网格所属的类别, 从而在快速检测图像的同时保证了较高的准确性. YOLOv5的网络结构主要分为主干(backbone)、颈部(neck)、头部(head)这3个组成部分. YOLOv5网络结构如图1所示.
1.1 BackboneYOLOv5主要由Focus、CBL、CSPDarknet53和SPP结构组成. Focus进行切片操作, 将原始608×608×3的图像变成304×304×12的特征图. CSP1_X对图片进行下采样, 既可以保持高精度又可以减少计算.
1.2 Neck
Neck旨在混合组合图像特征并将图像特征传递给预测层的一系列网络层. 采用FPN连接PAN结构, 从而提高模型的鲁棒性. FPN 利用自上而下的方式通过对特征图进行上采样融合, PAN 结构采用自底向上的方式通过对特征图进行下采样融合[23].
1.3 HeadHead主要作用是图像特征的预测、边界框的生成和类别的预测.
YOLOv5提供了4种模型, 根据特征图的宽度和网络的深度, 分为YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x. 其中, YOLOv5s检测速度最快且网络最小, 本文选择YOLOv5s作为训练和检测模型.
2 改进的YOLOv5目标检测框架本文将YOLOv5和注意力机制ECA模块相结合, 首先分别在Backbone中CSP1_1、CSP1_3、SPP之后引入了ECA注意力机制模块, ECA注意力机制用一维卷积实现局部跨通道交互, 提取通道的依赖关系, ECA更加简便, 对网络速度的影响更小. 然后, 使用
2.1 UDCP水下图像增强算法
DCP (dark channel prior)算法最初是由He等人[24]提出的, 用于地面雾化图像的恢复, 基于光在水中和雾中传播的相似特性, 可以对一些图像进行恢复. 通过对水下图像执行去雾操作来确定范围.
在 DCP 的基础上, Drews 等人[20] 专门针对水下图像提出了 UDCP (underwater dark channel prior), 考虑到当光在水中传播时红光的衰减速度远快于蓝光和绿光. 它消除了红光的影响, 进一步提高了DCP算法的有效性.
UDCP仅应用于绿色和蓝色通道, 这是由于难以对红色通道的行为进行建模. 这种现象主要与红色通道中的高吸收效应有关. UDCP算法暗通道的计算公式:
$ {J^{{\rm{UDCP}}}}\left( x \right) = \mathop {\min }\limits_{y \in \Omega \left( x \right)} \left( {\mathop {\min }\limits_{c \in G, B} {J^c}\left( y \right)} \right) $ | (1) |
其中,
$ \tilde t\left( x \right) = 1 - \mathop {\min }\limits_{y \in \Omega \left( x \right)} \left( {\mathop {\min }\limits_{c \in G, B} \frac{{{I^c}\left( y \right)}}{{{A^c}}}} \right) $ | (2) |
其中, A为大气光值.
2.2 ECA注意力机制通道注意力机制在提高深度卷积神经网络的性能方面具有很大的潜力. ECA是用于深度卷积的高效通道注意力模块, 它避免了降维并有效地捕获跨通道交互. ECA结构图如图3所示, 在不降低维度的渠道全局平均池化之后, ECA通过考虑每个通道及其相邻通道来捕获本地跨通道互动. 这种方法不但保证了效率, 而且保证了效果. 内核尺寸K表示局部跨通道交互的程度, 即有多少邻近通道参与一个通道的注意力预测.
ECA通过大小为K的一维卷积为每个通道生成权值:
$ \omega = \sigma \left( {C1{D_K}\left( y \right)} \right) $ | (3) |
其中,
$ C = \phi \left( K \right) \approx \exp \left( {\gamma \times K - b} \right) $ | (4) |
给定通道维数
$ K = \Psi \left( C \right) = {\left| {\frac{{{{\log }_2}\left( C \right)}}{\gamma } + \frac{b}{\gamma }} \right|_{{\rm{odd}}}} $ | (5) |
其中,
YOLOv5中使用的是广义交并比(GIoU)作为损失函数, GIoU示意图如图4所示, 对于两个边界框X、Y, 先算出X、Y最小外接矩形Z, 再计算差集占Z总面积的比值, 最后用X和Y的IoU减去这个比值, 公式如下:
$ GIoU = IoU - \frac{{Z - \left( {X \cup Y} \right)}}{Z} $ | (6) |
$ GIo{U_{{\rm{Loss}}}} = 1 - \left( {IoU - \frac{{Z - \left( {X \cup Y} \right)}}{Z}} \right) $ | (7) |
当预测框与目标框重叠时, GIoU损失函数无法区分两个预测框相交的不同之处. 所以本文用
通常IoU损失函数定义为
$ IoU_{{\rm{Loss}}}^\alpha = \frac{{1 - Io{U^\alpha }}}{\alpha }, \; \alpha > 0 $ | (8) |
通过调整
1) 秩序保持性.
$ \begin{gathered} IoU\left( {{B_i}, {B^{{\rm{gt}}}}} \right) < IoU\left( {{B_j}, {B^{{\rm{gt}}}}} \right) \Leftrightarrow \\ Io{U_{{\rm{Loss}}}}\left( {{B_i}, {B^{{\rm{gt}}}}} \right) > \left( {{B_j}, {B^{{\rm{gt}}}}} \right) \Leftrightarrow \\ IoU_{{\rm{Loss}}}^\alpha \left( {{B_i}, {B^{{\rm{gt}}}}} \right) > \left( {{B_j}, {B^{{\rm{gt}}}}} \right) \\ \end{gathered}$ |
其中,
2) 相对损失重新加权. 与
3) 相对梯度重新加权. 与
本文进行的实验环境为 Windows 操作系统, AMD Ryzen 7 5800H(CPU), 16 GB 随机存取内存(RAM), RTX 3060 Laptop(GPU), 6 GB 显示内存, 深度学习框架为PyTorch.
本文所使用的野生鱼类数据集(labeled fishes in the wild), 由NOAA渔业局提供( https://swfscdata.nmfs.noaa.gov/labeled-fishes-in-the-wild/), 该数据集包括鱼类, 无脊椎动物和海底的图像, 这些图像是使用部署在远程操作车辆(ROV)上的摄像系统收集的, 用于渔业调查. 其中鱼类图片有1326张, 含有标注信息的是928张, 对这928张图片进行数据增强. 首先, 使用UDCP算法将图像进行预处理, 使图像变得更加清晰; 然后通过旋转、翻转、对比度变换等方法扩充数据集, 最终数据集为8352张. 取其中835张图片作为验证集, 剩余7517张图片作为训练集进行训练. 如图5所示.
3.2 评价指标本文采用精确度(precision, P)、召回率(recall, R)和平均精确度 (mean average precision, mAP)这3种评价指标对模型进行评价.
精确度是指在识别的图片中, TP真阳性(true positive)所占的比例, 直观反映模型错检程度, 其公式如下所示:
$ P = \frac{{TP}}{{TP + FP}} $ | (9) |
其中, P是指precision, FP假阳性是指false positive.
召回率是指被正确识别的图片中, TP所占的比例, 直观反映模型漏检程度, 其计算公式如下所示:
$ R = \frac{{TP}}{{TP + FN}} $ | (10) |
其中, R是指recall, FN假阴性是指false negative.
平均精确度包含mAP@0.5和mAP@0.5:0.95两种, mAP@0.5:0.95就是将mAP的IoU阈值从0.5以0.05为步长增长到0.95并取mAP的平均值, 其计算公式分别为式(11)和式(12):
$ mAP@0.5 = \frac{1}{C}\sum\limits_{k = 1}^c {AP{\text{@}}{{0.5}_k}} $ | (11) |
$ \begin{split} mAP{\text{@}}0.5:0.95 = &\frac{1}{{10}}( mAP{\text{@}}0.5 + mAP{\text{@}}0.55 \\ & + \cdots + mAP{\text{@}}0.95 ) \end{split} $ | (12) |
相比较来说, mAP@0.5:0.95更加考虑整体情况, 所以本文采用mAP@0.5:0.95来评价预测框与标注框的拟合精确度.
3.3 实验结果及分析
将改进之前的YOLOv5模型, 与图像增强之后的YOLOv5-UDCP模型、仅加入1层ECA模块的YOLOv5-ECA1模型、使用
通过表1可以看出, 本文改进的YOLOv5和改进之前的YOLOv5模型在水下鱼类目标检测方面, 各指标均有所提高. 其中, YOLOv5-
综合以上分析结果表明, 通过对损失函数进行改进, 增强了目标检测鲁棒性, 提高了目标检测的精确度和召回率. Backbone层添加ECA注意力机制模块, 增加了网络的广度和深度, 增强了对小目标的特征获取能力, 进一步提高了算法的检测能力.
为进一步验证本文提出的YOLOv5-FISH算法对水下鱼类目标检测的能力优于其他算法, 使用同样的数据集对目前几种检测效果较好的算法进行对比, 实验结果如表2所示.
通过表2可以看出, YOLOv5-FISH对于水下鱼类目标检测的精确度和召回率均高于其他算法, 证明本文提出的算法在水下鱼类目标检测上有更好的效果.
3.4 检测效果随机抽取测试集中的图片进行检测, 结果如图6所示.
如图6所示, 图6(a)和图6(b)分别为改进前YOLOv5和YOLOv5-FISH的检测效果. 可以看出, 改进之前的YOLOv5模型虽然能将水下鱼类目标检测出来, 但是预测值基本都在0.87以下, 而通过本文提出的算法进行检测, 可以看出在预测框的预测值, 大部分均高于改进之前的YOLOv5模型, 而且大多数预测值都在0.93以上, 证明了本文提出的改进模型的有效性.
4 结论与展望针对目前常用的目标检测算法对水下鱼类目标检测中精度低、召回率低的问题, 本文提出改进的YOLOv5水下鱼类目标检测算法. 针对水下图像模糊和物体曝光等问题, 本文在YOLOv5中加入了ECA注意力模块, 提出了YOLOv5-FISH算法. 针对数据集有限, 且鱼类目标尺寸差异大等问题, 为提高预测精确度, 引入新的损失函数, 有效提高了检测精确度. 下一步工作将改进后的YOLOv5-FISH算法搭载到实验室的机器鱼进行实际应用, 以机器鱼代替人工进行水下作业.
[1] |
李继龙, 曹坤, 丁放, 等. 基于渔获物统计的中国近海鱼类营养级结构变换及其与捕捞作业的关系. 中国水产科学, 2017, 24(1): 109-119. |
[2] |
张琳, 葛艳, 杜军威, 等. 改进FCOS网络的海洋鱼类目标检测. 计算机系统应用, 2023, 32(3): 309–315.
|
[3] |
Girshick R, Donahue J, Darrell T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation. Proceedings of the 2014 IEEE Conference on Computer Vision and Pattern Recognition. Columbus: IEEE, 2014. 580–587.
|
[4] |
Girshick R. Fast R-CNN. Proceedings of the 2015 IEEE International Conference on Computer Vision. Santiago: IEEE, 2015. 1440–1448.
|
[5] |
Ren SQ, He KM, Girshick R, et al. Faster R-CNN: Towards real-time object detection with region proposal networks. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(6): 1137-1149. DOI:10.1109/TPAMI.2016.2577031 |
[6] |
Redmon J, Divvala S, Girshick R, et al. You only look once: Unified, real-time object detection. Proceedings of the 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas: IEEE, 2016. 779–788.
|
[7] |
Liu W, Anguelov D, Erhan D, et al. SSD: Single shot multibox detector. Proceedings of the 14th European Conference on Computer Vision. Amsterdam: Springer, 2016. 21–37.
|
[8] |
Yoo D, Park S, Lee JY, et al. AttentionNet: Aggregating weak directions for accurate object detection. Proceedings of the 2015 IEEE International Conference on Computer Vision (ICCV). Santiago: IEEE, 2015. 2659–2667.
|
[9] |
刘全, 翟建伟, 章宗长, 等. 深度强化学习综述. 计算机学报, 2018, 41(1): 1-27. DOI:10.11897/SP.J.1016.2019.00001 |
[10] |
Fan LT, Jin C, Zhang S. Research on multi-source detection method of underwater target based on improved evidence theory. Proceedings of the 5th International Conference on Information Science and Control Engineering (ICISCE). Zhengzhou: IEEE, 2018. 482–485.
|
[11] |
谢富, 朱定局. 深度学习目标检测方法综述. 计算机系统应用, 2022, 31(2): 1-12. DOI:10.15888/j.cnki.csa.008303 |
[12] |
Zheng YL, Yu MX, Ma ZA, et al. Underwater target detection based on deep neural network and image enhancemen. Journal of Physics: Conference Series, 2021, 2029: 012145. DOI:10.1088/1742-6596/2029/1/012145 |
[13] |
Zeng LC, Sun B, Zhu DQ. Underwater target detection based on faster R-CNN and adversarial occlusion network. Engineering Applications of Artificial Intelligence, 2021, 100: 104190. DOI:10.1016/j.engappai.2021.104190 |
[14] |
李庆忠, 李宜兵, 牛炯. 基于改进YOLO和迁移学习的水下鱼类目标实时检测. 模式识别与人工智能, 2019, 32(3): 193-203. |
[15] |
强伟, 贺昱曜, 郭玉锦, 等. 基于改进SSD的水下目标检测算法研究. 西北工业大学学报, 2020, 38(4): 747-754. DOI:10.3969/j.issn.1000-2758.2020.04.008 |
[16] |
叶赵兵, 段先华, 赵楚. 改进YOLOv3-SPP水下目标检测研究. 计算机工程与应用, 1–12. http://kns.cnki.net/kcms/detail/11.2127.tp.20220629.1121.009.html. (2022-06-30).
|
[17] |
陈宇梁, 董绍江, 朱孙科, 等. 改进的YOLOv3浅海水下生物目标检测. 计算机工程与应用, 1–10. http://kns.cnki.net/kcms/detail/11.2127.TP.20220705.1953.024.html. (2022-07-06).
|
[18] |
Lei F, Tang FF, Li SH. Underwater target detection algorithm based on improved YOLOv5. Journal of Marine Science and Engineering, 2022, 10(3): 310. DOI:10.3390/jmse10030310 |
[19] |
黎学飞, 童晶, 陈正鸣, 等. 基于改进YOLOv5的小目标检测. 计算机系统应用, 2022, 31(12): 242-250. DOI:10.15888/j.cnki.csa.008835 |
[20] |
Drews Jr P, Nascimento ED, Moraes F, et al. Transmission estimation in underwater single images. Proceedings of the 2013 IEEE International Conference on Computer Vision Workshops. Sydney: IEEE, 2013. 825–830.
|
[21] |
Wang QL, Wu BG, Zhu PF, et al. ECA-Net: Efficient channel attention for deep convolutional neural networks. 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). Seattle: IEEE, 2020. 11531–11539.
|
[22] |
He JB, Erfani S, Ma XJ, et al. Alpha-IoU: A family of power intersection over union losses for bounding box regression. arXiv:2110.13675, 2021.
|
[23] |
田枫, 贾昊鹏, 刘芳. 改进YOLOv5的油田作业现场安全着装小目标检测. 计算机系统应用, 2022, 31(3): 159-168. DOI:10.15888/j.cnki.csa.008359 |
[24] |
He KM, Sun J, Tang XO. Single image haze removal using dark channel prior. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2011, 33(12): 2341-2353. DOI:10.1109/TPAMI.2010.168 |
[25] |
Box GE, Cox DR. An analysis of transformations. Journal of the Royal Statistical Society: Series B (Methodological), 1964, 26(2): 211-243. DOI:10.1111/j.2517-6161.1964.tb00553.x |