公开/公告号CN113191237A
专利类型发明专利
公开/公告日2021-07-30
原文格式PDF
申请/专利权人 深圳职业技术学院;
申请/专利号CN202110434149.0
申请日2021-04-21
分类号G06K9/00(20060101);G06K9/20(20060101);G06K9/62(20060101);G06N3/04(20060101);G06N3/08(20060101);
代理机构44202 广州三环专利商标代理有限公司;
代理人郭浩辉;颜希文
地址 518000 广东省深圳市南山区西丽街道西丽湖镇西丽湖畔
入库时间 2023-06-19 12:02:28
技术领域
本发明涉及计算机视觉技术领域,尤其涉及一种基于改进YOLOv3的果树图像小目标检测方法及装置。
背景技术
近年来,随着目标检测被广泛应用于农业领域,逐渐采用基于深度学习的目标检测方法替代传统的抽样或目测方法对果树图像中的水果进行检测来估算果树产量。基于深度学习的目标检测方法一般分为基于候选框的方法和基于回归的方法,常见的基于候选框的方法有Fast R-CNN、Faster R-CNN和R-FCN,常见的基于回归的方法有YOLO和SSD。相比基于候选框的方法,基于回归的方法无需提取候选框,检测效率较高,但其对输入图像的尺寸存在较大限制,对于水果这类在果树图像中占用像素少、纹理及边缘特征不明显且可能受到遮挡的小目标,检测精度较低。
因此,目前提出基于深度学习的目标检测方法尚不能完美适用于果树图像中的小目标特别是受遮挡小目标的检测,难以提高小目标检测精度。
发明内容
为了克服现有技术的缺陷,本发明提供一种基于改进YOLOv3的果树图像小目标检测方法及装置,能够充分考虑到果树图像中的小目标的特性以及小目标受到遮挡的情况,提高小目标检测精度。
为了解决上述技术问题,第一方面,本发明一实施例提供一种基于改进YOLOv3的果树图像小目标检测方法,包括:
对标注有待检测小目标的原始图像进行预处理,得到训练图像,并将所述训练图像收集在训练图像集;
分别将YOLOv3的原始传输层和部分下采样层替换为DenseNet,并新增一个特征提取层,构建改进YOLOv3的小目标检测模型;
利用所述训练图像集训练所述小目标检测模型,使所述小目标检测模型输出所述待检测小目标的类别及位置;
将检测图像输入训练后的小目标检测模型,得到所述检测图像中的小目标的类别及位置。
进一步地,在所述将检测图像输入训练后的小目标检测模型,得到所述检测图像中的小目标的类别及位置之前,还包括:
对所述检测图像进行预处理。
进一步地,所述预处理包括图像裁剪、图像翻转、图像缩放中的任一种或多种图像处理。
进一步地,所述分别将YOLOv3的原始传输层和部分下采样层替换为DenseNet,并新增一个特征提取层,构建改进YOLOv3的小目标检测模型,具体为:
将YOLOv3的原始传输层替换为DenseNet,使所述原始传输层将输入图像的尺寸调整至512×512,将YOLOv3的32×32下采样层和16×16下采样层替换为DenseNet,并在YOLOv3的第一个残差块后新增一个特征提取层,使所述特征提取层提取尺寸为128×128的特征图,构建所述小目标检测模型。
进一步地,所述将检测图像输入训练后的小目标检测模型,得到所述检测图像中的小目标的类别及位置,具体为:
将所述检测图像输入所述训练后的小目标检测模型,使所述训练后的小目标检测模型对所述检测图像中的预测目标进行非极大值抑制操作,得到所述检测图像中的小目标的类别及位置。
第二方面,本发明一实施例提供一种基于改进YOLOv3的果树图像小目标检测装置,包括:
图像处理模块,用于对标注有待检测小目标的原始图像进行预处理,得到训练图像,并将所述训练图像收集在训练图像集;
模型构建模块,用于分别将YOLOv3的原始传输层和部分下采样层替换为DenseNet,并新增一个特征提取层,构建改进YOLOv3的小目标检测模型;
模型训练模块,用于利用所述训练图像集训练所述小目标检测模型,使所述小目标检测模型输出所述待检测小目标的类别及位置;
目标检测模块,用于将检测图像输入训练后的小目标检测模型,得到所述检测图像中的小目标的类别及位置。
进一步地,所述目标检测模块,还用于在所述将检测图像输入训练后的小目标检测模型,得到所述检测图像中的小目标的类别及位置之前,对所述检测图像进行预处理。
进一步地,所述预处理包括图像裁剪、图像翻转、图像缩放中的任一种或多种图像处理。
进一步地,所述分别将YOLOv3的原始传输层和部分下采样层替换为DenseNet,并新增一个特征提取层,构建改进YOLOv3的小目标检测模型,具体为:
将YOLOv3的原始传输层替换为DenseNet,使所述原始传输层将输入图像的尺寸调整至512×512,将YOLOv3的32×32下采样层和16×16下采样层替换为DenseNet,并在YOLOv3的第一个残差块后新增一个特征提取层,使所述特征提取层提取尺寸为128×128的特征图,构建所述小目标检测模型。
进一步地,所述将检测图像输入训练后的小目标检测模型,得到所述检测图像中的小目标的类别及位置,具体为:
将所述检测图像输入所述训练后的小目标检测模型,使所述训练后的小目标检测模型对所述检测图像中的预测目标进行非极大值抑制操作,得到所述检测图像中的小目标的类别及位置。
本发明的实施例,具有如下有益效果:
通过对标注有待检测小目标的原始图像进行预处理,得到训练图像,并将训练图像收集在训练图像集,分别将YOLOv3的原始传输层和部分下采样层替换为DenseNet,并新增一个特征提取层,构建改进YOLOv3的小目标检测模型,利用训练图像集训练小目标检测模型,使小目标检测模型输出待检测小目标的类别及位置,将检测图像输入训练后的小目标检测模型,得到检测图像中的小目标的类别及位置,完成对检测图像的小目标检测。相比于现有技术,本发明的实施例基于改进的YOLOv3网络构建小目标检测模型,增强了图像的特征传播并促进特征融合,且利用新增的一个特征提取层提取多一个尺度的特征图,提升了对小目标的检测能力,能够充分考虑到果树图像中的小目标的特性以及小目标受到遮挡的情况,提高小目标检测精度。
附图说明
图1为本发明第一实施例中的一种基于改进YOLOv3的果树图像小目标检测方法的流程示意图;
图2为现有技术中YOLOv3网络的结构示意图;
图3为本发明第一实施例中一种改进的YOLOv3网络的结构示意图;
图4为本发明第一实施例中训练小目标检测网络的数据流图;
图5为本发明第二实施例中的一种基于改进YOLOv3的果树图像小目标检测装置的结构示意图。
具体实施方式
下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,文中的步骤编号,仅为了方便具体实施例的解释,不作为限定步骤执行先后顺序的作用。
第一实施例:
如图1所示,第一实施例提供一种基于改进YOLOv3的果树图像小目标检测方法,包括步骤S1~S4:
S1、对标注有待检测小目标的原始图像进行预处理,得到训练图像,并将训练图像收集在训练图像集;
S2、分别将YOLOv3的原始传输层和部分下采样层替换为DenseNet,并新增一个特征提取层,构建改进YOLOv3的小目标检测模型;
S3、利用训练图像集训练小目标检测模型,使小目标检测模型输出待检测小目标的类别及位置;
S4、将检测图像输入训练后的小目标检测模型,得到检测图像中的小目标的类别及位置。
需要说明的是,在将检测图像输入训练后的小目标检测模型之前,应使检测图像的尺寸与训练图像的尺寸保持一致。
作为示例性地,在步骤S1中,采集原始图像,通过人工或图像标注工具对原始图像中的待检测小目标进行标注,并对标注后的原始图像进行预处理,比如图像裁剪、图像翻转、图像缩放中的任一种或多种图像处理,得到训练图像。其中,通过对标注后的原始图像进行预处理,不仅能够增加图像量,还能增加图像的随机性,有利于得到稳定的小目标检测模型。为了提升对小目标的检测能力,对于分辨率较大的原始图像,需要将原始图像裁剪成有一定命名规范的一系列分块图像作为训练图像。
在步骤S2中,选择YOLOv3的主干网络DarkNet-53作为基本的网络架构,DarkNet-53主要由1×1或3×3的卷积核组成,包含有53个卷积层,在YOLOv3网络训练过程中,由于YOLOv3网络中存在多次卷积和下采样操作,输入图像的特征信息会在网络正向传播过程中丢失,通过将YOLOv3网络中分辨率较低的原始传输层替换为DenseNet,能够增强特征传播并促进特征融合,且DenseNet提升了梯度的反向传播,使得网络更容易训练,同时通过将YOLOv3网络中部分下采样层替换为DenseNet,并在YOLOv3网络中新增一个特征提取层,能够提取多一个尺度的特征图,有利于提升网络的特征提取能力,提高小目标检测精度。
在步骤S3中,利用训练图像集训练小目标检测模型,将训练图像集中的训练图像输入小目标检测模型进行训练,在训练时对待检测小目标的类别和位置进行回归,使小目标检测模型输出待检测小目标的类别及位置,得到训练后的小目标检测模型。
在步骤S4中,利用caffe深度学习框架对训练后的小目标模型进行初始化部署,并将尺寸与训练图像尺寸一致的检测图像输入训练后的小目标检测模型,使训练后的小目标检测模型对检测图像进行目标检测,得到检测图像中的小目标的类别及位置。
在优选的实施例当中,在将检测图像输入训练后的小目标检测模型,得到检测图像中的小目标的类别及位置之前,还包括:对检测图像进行预处理。
其中,预处理包括图像裁剪、图像翻转、图像缩放中的任一种或多种图像处理。
本实施例通过在将检测图像输入训练后的小目标检测模型之前,对检查图像进行图像裁剪、图像翻转、图像翻转中任一种或多种图像处理,不仅能够保证检测图像的尺寸与训练图像的尺寸保持一致,还能增加图像的随机性,有利于提高小目标检测精度。
在优选的实施例当中,分别将YOLOv3的原始传输层和部分下采样层替换为DenseNet,并新增一个特征提取层,构建改进YOLOv3的小目标检测模型,具体为:将YOLOv3的原始传输层替换为DenseNet,使原始传输层将输入图像的尺寸调整至512×512,将YOLOv3的32×32下采样层和16×16下采样层替换为DenseNet,并在YOLOv3的第一个残差块后新增一个特征提取层,使特征提取层提取尺寸为128×128的特征图,构建小目标检测模型。
作为示例性地,现有技术中的YOLOv3网络的结构示意图如图2所示,改进的YOLOv3网络的结构示意图如图3所示。
通过将YOLOv3网络中分辨率较低的原始传输层替换为DenseNet,使原始传输层将输入图像的尺寸从256×256调整至512×512,能够增强特征传播并促进特征融合,有效避免输入图像的特征信息在网络正向传播过程中丢失,同时通过将YOLOv3网络中的32×32下采样层和16×16下采样层替换为DenseNet,并在YOLOv3网络中的第一个残差块后新增一个特征提取层,使特征提取层提取尺度为128×128的特征图,加上YOLOv3网络原本可提取的尺度为64×64、32×32、16×16的特征图一共四个特征图,以通过FPN(Feature PyramidNetwork)算法融合低层特征高分辨率特征和高层特征的高语义信息特征,有利于提升网络的特征提取能力,提高小目标检测精度。
其中,引入DenseNet,能够解决深层网络的梯度消失问题,同时增强特征传播。使用公式表示YOLOv3网络在l层的输出:
x
对于ResNet,增加了来自上一层输出的identity函数:
x
在DenseNet中,会连接前面所有层作为输入:
x
上式中,H
本实施例通过改进YOLOv3,并基于改进的YOLOv3网络构建小目标检测模型,有利于提升小目标检测模型对小目标的检测能力,提高小目标检测精度。
作为示例性地,小目标检测模型的训练过程如图4所示。
编写了一些Python库,对训练图像进行预处理和后处理。
对高分辨率的训练图像进行预处理:将训练图像裁剪成有一定命名规范的一系列分块图像,将分块图像作为训练图像输入小目标检测模型进行训练。其中,通过滑动窗口分区遍历分块图像,为了确保每一个区域都能被检测,滑动窗口具有可定义的裁剪尺寸和重叠比例,滑动窗口所裁剪的的图片命名规范为:ImageName|Row_Column_height_width.ext。
对高分辨率的分块图像进行后处理:将每一个分块图像的bounding box位置的预测坐标加上这幅图像名字中row和column的值,就等于这个小目标在未裁剪图像的预测坐标。但需要注意的是,重叠部分(overlap region)会被重复检测到两次,所以产生两个bounding box的预测值,因此,可将非极大值抑制的方法应用于边界框预测的全局矩阵,减轻此类重叠检测。
小目标检测模型使用的损失函数与YOLOv3网络一样,同样在训练时会同时对小目标的类别和位置进行回归,其损失函数Loss是定位损失、置信度损失及分类损失之和,表达式如下:
Loss=Error
上式中,Error
在优选的实施例当中,将检测图像输入训练后的小目标检测模型,得到检测图像中的小目标的类别及位置,具体为:将检测图像输入训练后的小目标检测模型,使训练后的小目标检测模型对检测图像中的预测目标进行非极大值抑制操作,得到检测图像中的小目标的类别及位置。
本实施例通过使训练后的小目标检测模型对检测图像中的预测目标进行非极大值抑制操作,能够从检测图像重叠区域而重复标记的多个小目标中选择最优的小目标,有利于提高小目标检测精度。
第二实施例:
如图5所示,第二实施例提供一种基于改进YOLOv3的果树图像小目标检测装置,包括:图像处理模块21,用于对标注有待检测小目标的原始图像进行预处理,得到训练图像,并将训练图像收集在训练图像集;模型构建模块22,用于分别将YOLOv3的原始传输层和部分下采样层替换为DenseNet,并新增一个特征提取层,构建改进YOLOv3的小目标检测模型;模型训练模块23,用于利用训练图像集训练小目标检测模型,使小目标检测模型输出待检测小目标的类别及位置;目标检测模块24,用于将检测图像输入训练后的小目标检测模型,得到检测图像中的小目标的类别及位置。
需要说明的是,目标检测模块24在将检测图像输入训练后的小目标检测模型之前,应使检测图像的尺寸与训练图像的尺寸保持一致。
作为示例性地,通过图像处理模块21,采集原始图像,通过人工或图像标注工具对原始图像中的待检测小目标进行标注,并对标注后的原始图像进行预处理,比如图像裁剪、图像翻转、图像缩放中的任一种或多种图像处理,得到训练图像。其中,通过对标注后的原始图像进行预处理,不仅能够增加图像量,还能增加图像的随机性,有利于得到稳定的小目标检测模型。为了提升对小目标的检测能力,对于分辨率较大的原始图像,需要将原始图像裁剪成有一定命名规范的一系列分块图像作为训练图像。
通过模型构建模块22,选择YOLOv3的主干网络DarkNet-53作为基本的网络架构,DarkNet-53主要由1×1或3×3的卷积核组成,包含有53个卷积层,在YOLOv3网络训练过程中,由于YOLOv3网络中存在多次卷积和下采样操作,输入图像的特征信息会在网络正向传播过程中丢失,通过将YOLOv3网络中分辨率较低的原始传输层替换为DenseNet,能够增强特征传播并促进特征融合,且DenseNet提升了梯度的反向传播,使得网络更容易训练,同时通过将YOLOv3网络中部分下采样层替换为DenseNet,并在YOLOv3网络中新增一个特征提取层,能够提取多一个尺度的特征图,有利于提升网络的特征提取能力,提高小目标检测精度。
通过模型训练模块23,利用训练图像集训练小目标检测模型,将训练图像集中的训练图像输入小目标检测模型进行训练,在训练时对待检测小目标的类别和位置进行回归,使小目标检测模型输出待检测小目标的类别及位置,得到训练后的小目标检测模型。
通过目标检测模块24,利用caffe深度学习框架对训练后的小目标模型进行初始化部署,并将尺寸与训练图像尺寸一致的检测图像输入训练后的小目标检测模型,使训练后的小目标检测模型对检测图像进行目标检测,得到检测图像中的小目标的类别及位置。
在优选的实施例当中,目标检测模块24,还用于在将检测图像输入训练后的小目标检测模型,得到检测图像中的小目标的类别及位置之前,对检测图像进行预处理。
其中,预处理包括图像裁剪、图像翻转、图像缩放中的任一种或多种图像处理。
本实施例通过目标检测模块24,在将检测图像输入训练后的小目标检测模型之前,对检查图像进行图像裁剪、图像翻转、图像翻转中任一种或多种图像处理,不仅能够保证检测图像的尺寸与训练图像的尺寸保持一致,还能增加图像的随机性,有利于提高小目标检测精度。
在优选的实施例当中,分别将YOLOv3的原始传输层和部分下采样层替换为DenseNet,并新增一个特征提取层,构建改进YOLOv3的小目标检测模型,具体为:将YOLOv3的原始传输层替换为DenseNet,使原始传输层将输入图像的尺寸调整至512×512,将YOLOv3的32×32下采样层和16×16下采样层替换为DenseNet,并在YOLOv3的第一个残差块后新增一个特征提取层,使特征提取层提取尺寸为128×128的特征图,构建小目标检测模型。
作为示例性地,通过将YOLOv3网络中分辨率较低的原始传输层替换为DenseNet,使原始传输层将输入图像的尺寸从256×256调整至512×512,能够增强特征传播并促进特征融合,有效避免输入图像的特征信息在网络正向传播过程中丢失,同时通过将YOLOv3网络中的32×32下采样层和16×16下采样层替换为DenseNet,并在YOLOv3网络中的第一个残差块后新增一个特征提取层,使特征提取层提取尺度为128×128的特征图,加上YOLOv3网络原本可提取的尺度为64×64、32×32、16×16的特征图一共四个特征图,以通过FPN(Feature Pyramid Network)算法融合低层特征高分辨率特征和高层特征的高语义信息特征,有利于提升网络的特征提取能力,提高小目标检测精度。
其中,引入DenseNet,能够解决深层网络的梯度消失问题,同时增强特征传播。使用公式表示YOLOv3网络在l层的输出:
x
对于ResNet,增加了来自上一层输出的identity函数:
x
在DenseNet中,会连接前面所有层作为输入:
x
上式中,H
本实施例通过模型构建模块22,改进YOLOv3,并基于改进的YOLOv3网络构建小目标检测模型,有利于提升小目标检测模型对小目标的检测能力,提高小目标检测精度。
作为示例性地,小目标检测模型的训练过程具体如下:
编写了一些Python库,对训练图像进行预处理和后处理。
对高分辨率的训练图像进行预处理:将训练图像裁剪成有一定命名规范的一系列分块图像,将分块图像作为训练图像输入小目标检测模型进行训练。其中,通过滑动窗口分区遍历分块图像,为了确保每一个区域都能被检测,滑动窗口具有可定义的裁剪尺寸和重叠比例,滑动窗口所裁剪的的图片命名规范为:ImageName|Row_Column_height_width.ext。
对高分辨率的分块图像进行后处理:将每一个分块图像的bounding box位置的预测坐标加上这幅图像名字中row和column的值,就等于这个小目标在未裁剪图像的预测坐标。但需要注意的是,重叠部分(overlap region)会被重复检测到两次,所以产生两个bounding box的预测值,因此,可将非极大值抑制的方法应用于边界框预测的全局矩阵,减轻此类重叠检测。
小目标检测模型使用的损失函数与YOLOv3网络一样,同样在训练时会同时对小目标的类别和位置进行回归,其损失函数Loss是定位损失、置信度损失及分类损失之和,表达式如下:
Loss=Error
上式中,Error
在优选的实施例当中,将检测图像输入训练后的小目标检测模型,得到检测图像中的小目标的类别及位置,具体为:将检测图像输入训练后的小目标检测模型,使训练后的小目标检测模型对检测图像中的预测目标进行非极大值抑制操作,得到检测图像中的小目标的类别及位置。
本实施例通过目标检测模块24,使训练后的小目标检测模型对检测图像中的预测目标进行非极大值抑制操作,能够从检测图像重叠区域而重复标记的多个小目标中选择最优的小目标,有利于提高小目标检测精度。
综上所述,实施本发明的实施例,具有如下有益效果:
通过对标注有待检测小目标的原始图像进行预处理,得到训练图像,并将训练图像收集在训练图像集,分别将YOLOv3的原始传输层和部分下采样层替换为DenseNet,并新增一个特征提取层,构建改进YOLOv3的小目标检测模型,利用训练图像集训练小目标检测模型,使小目标检测模型输出待检测小目标的类别及位置,将检测图像输入训练后的小目标检测模型,得到检测图像中的小目标的类别及位置,完成对检测图像的小目标检测。相比于现有技术,本发明的实施例基于改进的YOLOv3网络构建小目标检测模型,增强了图像的特征传播并促进特征融合,且利用新增的一个特征提取层提取多一个尺度的特征图,提升了对小目标的检测能力,能够充分考虑到果树图像中的小目标的特性以及小目标受到遮挡的情况,提高小目标检测精度。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
本领域普通技术人员可以理解实现上述实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
机译: 基于针的假设验证的雷达图像小目标检测方法
机译: 预测模式选择方法,一种基于主边的方向性来减少预测模式候选的数量的装置,一种使用该方法的运动图像压缩方法,一种包括该装置的运动图像编码器以及一种编码器执行该方法的程序
机译: 红外图像小目标检测的方法和装置