掌桥专利:专业的专利平台
掌桥专利
首页

一种改进Yolo水下图像小目标和遮挡目标的检测方法

文献发布时间:2023-06-19 10:48:02


一种改进Yolo水下图像小目标和遮挡目标的检测方法

技术领域

本发明涉及一种改进Yolo水下图像小目标和遮挡目标的检测方法,属于人工智能、计算机视觉技术领域。

背景技术

伴随着互联网时代的落幕,人工智能时代已经悄悄地到来。虽然我们目前仍处于弱人工智能时代,但是人工智能已经给我们带来了巨大的便利。视觉作为人类最重要的感知系统,在机器中也得到了充分的体现。在计算机视觉中运用较多的有图像分类、物体检测、图像分割、物体跟踪、关键点检测等技术,其中在工业中运用较多的就是目标检测这一技术。目标检测的目的是将图片(视频中)中感兴趣的目标给提取出来,它是计算机视觉中环境理解领域中比较重要的任务之一。

目前,在目标检测中比较常用的算法有SSD、Fast-RCNN和Yolo,Yolo是一种One-Stage算法,相比较于Fast-RCNN这种Two-Stage算法,Yolo可以直接预测物体的类别和位置,没有RPN网络,也没有类似Anchor的预选框,因此速度很快,在工业中得到了大量的运用。

但是Yolo也存在着一些缺陷。首先在Yolo网络模型中,由于每个区域默认只有两个边框做预测,并且只有一个类别,因此这会导致对小物体的检测效果变差,造成漏检的结果。其次由于是在水下环境中,水下机器所获取的图像效果会比较差,如果直接将获取到的水下图像送入Yolo网络,会导致预测效果变差。

发明内容

本发明的目的在于提供一种改进Yolo水下图像小目标和遮挡目标的检测方法,使用SPP-Net、RBFNet和Dense-Net来改进原先的YoloV3网络,减少了网络参数,使计算过程更加简单;同时提高了小目标的检测精度。

为达到上述目的,本发明采用的技术方案如下:

本发明提供一种改进Yolo水下图像小目标和遮挡目标的检测方法,包括:

对水下机器采集的图像进行预处理;

将预处理后的图像输入预先训练好的改进YoloV3网络模型中,输出目标物体在图像中的位置信息和类别信息;

所述改进YoloV3网络模型包括:特征提取模块,特征增强模块和特征输出模块;

所述特征提取模块用于输入预处理后的图像,输出13*13,26*26,52*52和1024*1024四种尺寸共6个特征图;

所述特征增强模块用于对输入特征图进行多次池化操作,并提取特征;

所述特征输出模块用于将提取的特征进行整合,输出预测结果,所述预测结果包括目标物体在图像中的位置信息和类别信息。

进一步的,所述特征提取模块采用Densenet,包括4个Dense Block,分别对应输出13*13,26*26,52*52和1024*1024四种尺寸的特征图;

第二和第三个Dense Block之间的转换层经步长为1的卷积操作和步长为2的最大池化操作后生成一个26*26的特征图;

第三和第四个Dense Block之间的转换层经步长为1的卷积操作和步长为2的最大池化操作后生成一个52*52的特征图。

进一步的,还包括,

在Densenet之前增加RBFNet环节。

进一步的,所述特征增强模块采用在YoloV3网络结构的基础上增加SPP网络层;

所述SPP网络层用于对输入特征图进行包含5*5、9*9和13*13的三种不同尺度的池化操作;以及从池化操作后的每个块中提取一个特征。

进一步的,还包括,

将SPP网络层提取的所有特征合并且进行批量归一化。

进一步的,所述特征输出模块具体用于,

采用水下机器采集若干水下图像;

对采集的图像进行预处理,构成训练集;

使用LabelImg进行数据标注,标注出图像中目标物体的位置和类别信息,形成适用Yolo训练的标注文件;

使用改进YoloV3网络模型对标注后的文件进行训练,采用损失函数不断优化,训练得到最优的模型权重文件。

进一步的,在训练过程中,采用Repulsion Loss损失函数,对改进YoloV3网络模型进行优化,得到最优的YoloV3网络模型权重文件。

进一步的,所述特征输出模块具体用于,

采用训练好的模型权重文件对预处理后的水下图像进行测试,输出目标物体在图像中的位置信息和类别信息。

进一步的,对采集的图像进行预处理,包括:

将采集的图像由RGB格式图像转化为YCbCr格式图像;

对YCbCr格式图像进行同态滤波和小波去噪处理;

将处理后的图像重新转换为RGB格式图像。

进一步的,还包括,采用Soft NMS筛选最终的目标检测框。

本发明的有益效果为:

(1)本发明采用改进的YoloV3网络模型对水下小目标和遮挡目标进行检测,改进的YoloV3网络模型采用Densenet来代替传统YoloV3中大量使用的Resnet,减少了网络参数,使计算过程更加简单;

(2)本发明在原有YoloV3输出3个特征图尺寸的基础上拓展了一个尺寸为104*104的特征图,使Yolo难以检测小目标的难题得到了进一步的解决;

(3)本发明在改进的YoloV3网络模型中引入了空间金字塔池化网络,对输入的原始特征图进行三种不同尺度的池化操作,并从每个块中提取一个特征,最后将特征合并且进行批量归一化,作为后续进行的全连接操作的输入,以此来解决全连接的输入维度必须一致的难点,提高了小目标的检测精度。

附图说明

图1为本发明的改进Yolo水下图像小目标和遮挡目标的检测网络结构;

图2为本发明的改进的Yolo网络各层结构;

图3为本发明中RBFNet结构;

图4为本发明实施例中采集的原始水下图像;

图5为本发明实施例中原始水下图像预处理后图像;

图6为本发明实施例中采用改进Yolo网络预测结果一;

图7为本发明实施例中采用改进Yolo网络预测结果二;

图8为本发明实施例中采用改进Yolo网络预测结果三;

图9为本发明实施例中改进Yolo网络训练过程中损失函数曲线。

具体实施方式

下面对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。

本发明提供一种改进Yolo水下图像小目标和遮挡目标的检测方法,包括以下步骤:

步骤一:对水下机器获取的图像进行预处理

在水下环境中经水下机器获取到的图像会存在光照不均匀、对比度低、色彩减弱、模糊等缺点。本发明所提出的预处理方法能够很好地改善这些缺点,它减少了水下扰动,提高了图像质量。

预处理如下:

(11)将RGB图像转化为YCbCr图像

将水下相机获取到的图像由RGB转化为YCbCr。这种颜色空间的转换能够单独只处理一个通道而非三个通道,对转换后的YCbCr图像的亮度通道(Y)进行调整,能够提高图像的亮度。

(12)对YCbCr图像进行同态滤波处理

同态滤波是一种频率滤波,通过过滤低频信息,放大高频信息来提高增强图像的对比度和校正不均匀光照。假设图像是有关光照强度和反射率的函数,如式(1):

g(x,y)=a(x,y)·b(x,y) (1)

式中,g(x,y)为转换后的YCbCr图像,a(x,y)为光照因子,b(x,y)为反射率函数。假设光照因子变化缓慢,因此在图像的傅里叶变换中表示低频信息,而反射率与高频信息有关,通过将这些成分与高通滤波器相乘,就可以抑制低频,即不均匀光照。

将图像函数g(x,y)做对数处理:

p(x,y)=ln(g(x,y))=ln(a(x,y)·b(x,y))=ln(a(x,y))+ln(b(x,y)) (2)

将式(2)作傅里叶变换得式(3):

P(w

式中,P(w

进行高通滤波:应用于傅里叶变换的滤波器,减少了低频信息,放大了中频和高频信息,锐化了边缘信息:

其中,S(w

(13)进行小波去噪处理

然后对图像进行小波去噪处理,由于水下图像本身就具有高斯噪声,而经过同态滤波处理后被进一步放大,因此需要进行去噪。

Mallat算法分解公式

式中,C、D为滤波器系数矩阵,Y

Y

式中,C

(14)将YCbCr图像重新转化为RGB图像。

步骤二、将预处理后的图像送入改进后的YoloV3网络模型中,输出目标物体在图像中的位置信息和类别信息。

传统的YoloV3采用了Darknet53作为检测框架,它很好地融合了Resnet和特征融合,是一个53层的卷积神经网络。Resnet的使用一定程度上了梯度弥散和梯度爆炸的问题,并且YoloV3最终能够输出了3个大小不同的特征图,分别代表了深层、中层、浅层的特征,实现了多尺度预测。

本发明是基于YoloV3的基础上进行改进的,很好的解决了Yolo难以识别小目标的问题。参见图1和图2,在本发明中,使用了Densenet来代替传统YoloV3中大量使用的Resnet。虽然Resnet通过前层与后层的“短路连接”,加强了前后层间的信息流通,很好地解决了随着网络层数的增加出现的网络“退化现象”。而本发明使用的Densenet最大化了这种前后层的信息交流,通过前馈的方式建立了前层与后层间的密集连接,实现了特征图的重复使用。与Resnet相比,Densenet的性能更加优越,网络参数更加少,计算更加简单。

此外,本发明在原来3个特征图的基础上新增了一个特征图。YoloV3借鉴了FPN(feature pyramid networks),采用多尺度来对不同的大小的目标进行检测。在输入图像尺寸为416*416的情况下,传统的YoloV3输出的特征图尺寸分别为13*13,26*26,52*52,这些特征图分别对应浅层、中层、深层的特征。13*13的特征图感受野较大,语义信息表征能力强,但分辨率较低,几何信息的表征能力弱。52*52的特征图的感受野较小,几何细节信息表征能力强,分辨率高。在本发明中拓展了一个尺寸为104*104的特征图,即由原先的13*13、26*26、52*52,用向上的一个Dense block中的1024*1024的卷积核进行后续的一系列网络操作来进行特征增强,输出104*104的特征图。

相比较于52*52的特征图,104*104的特征图的感受野更小,分辨率更高,几何细节信息表征能力更强,包含了更多的特征信息,对于Yolo难以检测小目标的难题得到了进一步的解决。

参见图1和图2,本发明在改进的YoloV3网络模型中引入了空间金字塔池化(Spatial Pyramid Pooling,SPP),能够对物体尺寸的变化和遮挡情况进行鲁棒检测。在之前的改进基础上,又新增了两个目标预测输出。其中一个目标预测输出创建在尺寸为26*26的特征图y2与尺寸为52*52的特征图y4之间,另一个目标预测输出则创建在尺寸为52*52的特征图y4与尺寸为1024*1024的特征图y6之间。

参见图1和图2,新增的两个目标预测输出是由两个转换层(Transition Layer)输出而来的,这两个转换层都进行了1*1,步长为1的卷积,和2*2,步长为2的最大池化操作。1*1卷积并无改变特征图尺寸的作用,大池化操作可以改变特征图尺寸,因此两个由转换层输出的特征图,它们的尺寸与下面的Dense block输出的特征图尺寸相同,但不同的是:由转换层输出的特征图由于最大池化操作,因此细节信息在转换层上下两个dense Block输出的特征图之间。由于两个Desne Block都用到了大量的卷积操作,大量的卷积操作会减少特征图的细节信息。

进一步的,本发明还增加了RBFNet,参见图3,RFBNet拥有三个不同的分支,使用了1*1、3*3、5*5不同大小的卷积核来模拟不同的感受野,使用空洞数为1、3、5的空洞卷积来实现不同的偏心度。完成这三个分支后,再利用通道堆叠(concat)的方法进行融合,利用1*1卷积降低特征的通道数,并且用Res net中常用的shortcut结构,将这个RBFNet的输入和输出进行一个元素层面上的叠加,这种简单的叠加不会给网络增加额外的参数和计算量,同时大大增加爱了模型的训练速度、提高训练效果,并且当模型层数加深时,可以很好的解决退化问题。

本发明在特征金字塔网络(Feature Pyramid Network)输出的每一个目标预测层之前加入空间金字塔池化网络(Spatial Pyramid Pooling Network,SPP-Net),SPP-Net最初是由何凯明团队所提出的。SPP是对卷积得到的多个特征图进行多次池化操作,并且卷积核逐渐增大,这会导致池化的输出逐渐减小。在本发明中,SPP-Net包含了5*5、9*9、13*13的平均池化操作,能够对输入的原始特征图进行三种不同尺度的池化操作。在经过3种不同尺度的池化过程后,可以得到275种不同的块,并从每个块中提取一个特征,最后将特征合并且进行批量归一化(Batch Normalization),作为后续进行的全连接操作的输入,以此来解决全连接的输入维度必须一致的难点。因此,SPP-Net的使用使得网络对于遮挡物体、不同尺寸的相同物体的检测更加优秀。

基于上述改进,本发明的改进的YoloV3网络结构,包括backbone(特征提取)、neck(特征增强)和head(特征输出)。

特征提取层用于输入预处理后的图像,输出不同尺寸的特征图。

本发明中特征提取成输入320*320大小的图像。

本发明中特征提取层采用Densenet,包括4个Dense Block,分别对应输出13*13,26*26,52*52和1024*1024四种尺寸的特征图。

其中,第二和第三个Dense Block之间的转换层经步长为1的卷积操作和步长为2的最大池化操作后生成26*26的特征图。第三和第四个Dense Block之间的转换层经步长为1的卷积操作和步长为2的最大池化操作后生成52*52的特征图。

本发明中最终输出1个1024*1024尺寸,2个52*52尺寸,2个26*26尺寸,1个13*13尺寸共6个特征图。

本发明中特征增强层在原有YoloV3网络结构的基础上增加了SPP网络,SPP网络用于对特征图进行多次池化操作,在本发明中,SPP网络层对输入的原始特征图进行了包含5*5、9*9和13*13的三种不同尺度的池化操作。在经过3种不同尺度的池化过程后,可以得到275种不同的块,并从每个块中提取一个特征。

本发明中对应于特征提取层输出的6个特征图,每个特征图均连接一个SPP网络层。

特征输出层用于将SPP网络层提取的特征进行整合,输出预测结果,即目标物体在图像中的位置信息和类别信息。

参见图1,各输出分别为:y1=13*13;y2=26*26;y3=26*26;y4=52*52;y5=52*52;y6=1024*1024。

在本发明中,采用Soft NMS来保证目标检测的召回率。在目标检测中,同一个物体一般拥有多个候选框,因此在Faster-RCNN和SSD中都使用了NMS来去除冗余的检测框,保留最好的那一个。NMS算法实现了对边框的预测得分,得分越高,这个边框就要被优先考虑,其他与其重叠(即设定的IOU阈值)超过一定程度的边框就要被舍弃。具体方法如下:

式中,P

相较于NMS,Soft NMS在iou(E,f

采用这种得分衰减的方式,当在剩余边框中存在其他得分较高的边框时,在后续还有可能被检测为正确的边框,提高了网络模型的召回率。

进一步的,本发明重新定义了YoloV3网络中的损失函数。使用了Repulsion Loss(排斥损失)来代替原先YoloV3中使用的MSE Loss,能有效缓解物体遮挡情况下的检测。Repulsion Loss的回归损失如下式所示:

S=S

式中,可以看出损失(S)由三部分组成,其中p和q这两个阈值都为0.5时,检测能力最佳。S

本发明中S

其中,

S

式(12)中的x表示

S

其中,I是identity函数,∈为预设的极小值。

本发明改进的YoloV3网络模型训练过程如下:

采用水下机器人平台采集若干水下图像;

对获取到的图像进行预处理,构成训练集;

使用LabelImg进行数据标注,标注出检测物体的位置和类别信息,形成适用Yolo训练的标注文件;

使用改进后的YoloV3算法对标注后的文件进行训练,采用损失函数不断优化,训练得到最优的模型权重文件。

本发明最终采用训练好的权重文件对水下画面进行测试,输出目标物体在图像中的位置信息和类别信息。经过测试,本发明的改进的YoloV3网络模型确实提高了小目标的检测精度,并且对于遮挡情况和多尺度问题进行了优化。

实施例

本发明实施例采用的数据集为深海水下数据集。采用改进的YoloV3网络,计算机配置为Intel Core I7-10750H CPU,显卡为GeForce GTX 1650,操作系统为Ubuntu18.04LTS。原始水下图像和经预处理后的图像分别如图4和图5所示。图6、图7、和图8、分别为3张采用改进的YoloV3网络得到的检测结果。

图9为改进的YoloV3网络在训练时的平均损失值随迭代次数的变化曲线,从图中可看到,当迭代超过23000次后,曲线趋于平稳,下降到0.25左右,从参数收敛情况来看,训练结果理想。在表1中可看到,相较于原先的YoloV3,改进的YoloV3的Map提升至84.8%,提升了8.3%。

表1不同目标检测方法在Brackish underwater dataset测试数据集下的mAP结果比较

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。

相关技术
  • 一种改进Yolo水下图像小目标和遮挡目标的检测方法
  • 一种基于改进YOLOv3-tiny的水下声纳图像目标检测方法
技术分类

06120112684587