基于改进的YOLOV4对水下坝体裂纹检测研究

(整期优先)网络出版时间:2023-04-17
/ 2

基于改进的YOLOV4对水下坝体裂纹检测研究

石春鹤b,赵玉莹a,韩晓微b

沈阳大学 a.信息工程学院,b.科技创新学院,辽宁 沈阳 110044

摘要:针对水下裂纹采集的图片清晰度、对比度低的问题,本文提出了利用计算机视觉技术对水下裂纹进行检测,首先利用二值化对采集的水下裂纹图像进行出里,再利用改进的YOLOV4算法进行目标检测。将水下拍摄的裂纹视频提取出单独的帧;利用二值化将采集到的水下彩色图像转化成二值图像,将二值化得到的图片利用中值滤波方法进行去噪处理;将处理后的图片送入到改进后的YOLOV4网络进行训练。结果表明,该方法在对水下坝体裂纹检测的平均精确度可达94.67,速度可达33.7fps使得水下坝体裂纹检测的准确率和运算速率都得到了很大的提升。

关键字:水下坝体裂纹,图像二值化,中值滤波,改进的YOLOV4

中图分类号TP文献标识码:A

1引言

水下环境恶劣,给视频采集带来了诸多不便,其中最主要的问题就是水下光线的散射以及水对光线的吸收,会导致采集到的视频模糊,使得裂纹检测变得困难[2]。所以为了解决这一难题,本文提出在二值化的基础上,利用改进的YOLOV4算法实现水下坝体裂纹检测。首先利用二值化对采集到的图片进行前景与背景的分离;其次,在YOLOV4基础上,减少卷积层的层数和模型的参数量,可以使得模型的预测速度加快;最后通过实验比较改进后的YOLOV4的检测效果。

2数据集的处理


水下图像是水下信息的重要载体,其成像过程受水下特殊的物理化环境的影响,水下图像大多存在颜色失真、对比度低、细节不清晰等退化现象,这些退化现象严重影响水下图像的分析工作。为了解决上述问题在对水下坝体裂纹进行识别之前,需要对水下数据集进行处理。本文是先对水下数据集进行二值化处理将图片转化为二值图像避免了颜色失真对图片的影响[3]

局部自适应阈值分割算法中局部是指图像中逐个像素滑动的小窗口,自适应是指算法能够根据图像自身的特征计算出合适的阈值计算每个窗口内对用图像子区域内所有像素的总和,若sum值大于或者等于阈值,则令窗口最中间位置的值为1(目标),否则令值为0(背景)[4]。。可以降低目标判断错误的几率,适应性好,抗噪能力强。下图1所示为利用局部自适应阈值法获得的裂纹图片[5]

zishiying

1局部自适应阈值法获得的裂纹图片

水下裂纹图像进行二值化处理后的噪声为椒盐噪声,而常用于处理椒盐噪声的方法有中值滤波[6]。中值滤波是一种非线性图像处理方法,是统计排序滤波器的一种典型应用。中值滤波是通过对邻域内像素按灰度排序的结果决定中心像素的灰度,从而进行去噪[11]。中值滤波器对处理椒盐噪声有明显的效果,且可以起到保护图像边缘的作用[8]。如图2为去除噪声后的图像[9]

微信图片_20210831104814

图2 去噪后的图像

3 YOLOV4算法改进

YOLOV4利用CSPDarknet53作为主干网络,CSPDarknet53可以三个不同大小的特征层,其中分别进行一次1*1的卷积操作后送入PANet结构进行特征融合;特征层经过三次卷积后进入SPP结构进行最大池化。通过上述操作后,可以提取到很好的特征,但是操作过于复杂,参数过多,使得网络检测速度变慢,甚至导致过拟合。

在进行水下坝体裂纹检测时,要保证网络训练速度、精度。本文简化了主干网络的结构,在第一个卷积层利用32个3*3的滤波器对608*608的输入进行操作,再利用64个1*1的滤波器进行操作并实施下采样[29];之后将CSP结构中的2、4、6、8、16下采样后的残差结构从原来的1、2、8、8、4变为1、2、5、5、2,并且卷积层的通道数减少为原来的一半。网络结构图如图3所示。


图3 改进后的网络结构图

4实验结果与分析

4.1实验环境与实验数据集

硬件环境:试验环境为64位Windows 10系统,Intel Core i7-9700@3.0GHz八核,NVIDIA GeForce RTX 2080 Ti GPU,32GB内存上使用OpenCv+Pytharm运行的,使用的编程语言为:Python。

实验时运用到的视频数据集是我们的团队在城市里一些偏僻桥段实际拍摄获得的。采集的视频总计时长为100min,大小为5G,采用OpenCv软件运行相应程序,相同时间间隔截取一帧图像的方式获得图片文件。总共截取了2000帧作为数据集。其中80%作为训练集,20%作为测试集。最后利用Labeling软件标注图片标签。

4.2训练细节

在进行水下目标检测时,利用的是神经网络。YOLOv4的初始先验框参数是由COCO数据集得到的,与本实验数据集相差比较大,因此有必要计算新的先验框,实验采用了K-means算法计算先验框。运行结果图如图4所示。

图4 裂纹检测图片

4.3 实验结果分析

为了验证改进后的YOLOV4算法的性能,首先,将改进后的YOLOV4算法与原始YOLOV4算法在原始数据集上进行训练,对实验结果进行对比。其次将进行二值化算法获得的数据集和原始数据集在改进后的YOLOV4算法与原始YOLOV4算法在原始数据集上进行训练,对实验结果再进行对比。实验结果如表1所示。

表1 算法性能对比

Algorithms

AP

fps

YOLOV4

87.3

23.6

改进后的YOLOV4

89.52

32.5

YOLOV4+二值化

91.24

32.9

改进后的YOLOV4+二值化

94.67

33.7

5 结论与展望

水下采集到的坝体裂纹的图像大多存在清晰度、对比度低的问题,直接将这些图片进行裂纹检测,会导致检测结果准确低的结果,统目标检测算法只适应于有明显特征,背景简单的情形,而在实际应用中,背景复杂多变,而且待检测的目标复杂多变,很难通过一般的抽象特征完成对目标的检测,而深度学习可以提取同一目标丰富的特征,完成目标的检测,改进后的YOLOV4算法和二值化结合,使得检测水下坝体裂纹精度大大提升。但是,本文算法依旧存在缺陷,虽然对图片进行去噪处理,但图片中任然会存在噪声,在之后的工作中,会对存在的问题进行改正。

参考文献

[1]张有波,郭威,周悦,徐高飞,李广伟,孙洪鸣.基于多粒度剪枝的水下遗迹实时目标检测[J].激光与光电子学进展,2021,58(14):286-295.

[2]张明华,龙腾,宋巍,黄冬梅,梅海彬,贺琪.基于改进Cascade R-CNN和图像增强的夜晚水下鱼类目标检测[J/OL].农业机械学报:1-9[2021-08-31].

[3]Zeng Lingcai,Sun Bing,Zhu Daqi. Underwater target detection based on Faster R-CNN and adversarial occlusion network[J]. Engineering Applications of Artificial Intelligence,2021,100.

[4]陈兆学,孟子渲,孟靖欣.基于凸多边形顶点检测的肝脏CT灌注图像肋骨和脊椎骨分割方法研究[J/OL].上海理工大学学报:1-4[2021-08-31].

[5]陈兆学,孟子渲,孟靖欣.基于凸多边形顶点检测的肝脏CT灌注图像肋骨和脊椎骨分割方法研究[J/OL].上海理工大学学报:1-4[2021-08-31].