一种基于深度卷积神经网络的多尺度目标检测方法与流程

文档序号:15493193发布日期:2018-09-21 21:04阅读:793来源:国知局

本发明涉及计算机图像处理的技术领域,尤其是指一种基于深度卷积神经网络的多尺度目标检测方法。



背景技术:

目标检测与识别是计算机视觉计算领域的重要课题之一。随着人类科学技术的发展,目标检测这一重要技术不断地得到充分利用,人们把它运用到各种场景中,实现各种预期目标,如战场警戒、安全检测、交通管制、视频监控等都方面。

近些年,随着深度学习的快速发展,深度卷积神经网络在目标检测与识别技术上也有进一步的突破。利用深度卷积神经网络,可以提取到图片的高层语义特征信息,然后再利用这些高层语义信息进行目标的检测。神经网络越深,其所表达的特征信息就更具有代表性,但是其存在的问题是,对小尺度物体则表达的非常粗糙,甚至会使得小尺度物体的部分特征丢失,而且,神经网络对大小尺度非常敏感,不同大小尺度的物体经过神经网络所提取到的特征信息存在很大的差异性,导致小尺度物体检测的准确率低,从而大大降低了目标检测的鲁棒性和有效性。



技术实现要素:

本发明的目的在于克服现有技术的缺点与不足,提出了一种深度卷积神经网络的多尺度目标检测方法,该方法可以很好的将大小尺度的目标检测出来,突破了之前方法中无法很好检测出大小尺度差异很大的同类目标的限制。

为实现上述目的,本发明所提供的技术方案为:一种基于深度卷积神经网络的多尺度目标检测方法,包括以下步骤:

1)数据获取

训练深度卷积神经网络需要大量的训练数据,因此需要使用大规模的自然图像或视频图像数据,如果得到的图像数据没有标签数据则需要进行人工标注,然后划分为训练数据集以及验证数据集;

2)数据处理

将图像数据集的图像和标签数据通过预处理转化为训练深度卷积神经网络所需要的格式;

3)模型构建

根据训练目标以及模型的输入输出形式,构造出一个适用于多尺度目标检测问题的深度卷积神经网络;

4)定义损失函数

根据训练目标以及模型的架构,定义出所需的损失函数;

5)模型训练

初始化各层网络的参数,不断迭代输入训练样本,根据损失函数计算得到网络的损失值,再通过反向传播计算出各网络层参数的梯度,通过随机梯度下降法对各层网络的参数进行更新;

6)模型验证

使用验证数据集对训练得到的模型进行验证,测试其泛化性能。

所述步骤2)包括以下步骤:

2.1)将数据集中的图像缩放到长和宽为m×n像素大小,标签数据也根据相应的比例缩放到相应的大小;

2.2)在缩放后的图像,随机裁剪包含有标签的地方得到a×b像素大小的矩形图像,a<=m,b<=n;

2.3)以0.5的概率随机水平翻转裁剪后的图像;

2.4)将随机翻转后的图像从[0,255]转换到[-1,1]的范围内。

所述步骤3)包括以下步骤:

3.1)构造特征提取网络模型

特征提取网络相当于一个编码器,用于从输入的图像中提取出高层的语义信息并保存到一个低维的编码中,特征提取网络的输入为经过步骤2)处理的图像,小物体在越深层的编码中会丢失部分信息,因此为了减少保全更多的信息,输出低维和较低维的特征编码;为了实现从输入到一系列输出的转换,特征提取网络包含多个级联的下采样层,下采样层由串联的卷积层、批量正则化层、以及非线性激活函数层、池化层组成,其中卷积层步长为1,卷积核大小为3×3,提取出相应的特征图,批量正则化层通过归一化同一个批次的输入样本的均值和标准差,起到稳定和加速模型训练的作用,非线性激活层的加入防止模型退化为简单的线性模型,提高模型的描述能力,池化层的作用是缩小特征图的大小,这样能够增加卷积核的感受野;

3.2)构造区域生成网络模型

区域生成网络主要负责找到输入图中所有的物体和它们的位置;区域生成网络的输入特征图,然后把这个特征图上的每一个点映射回原图,得到这些点的坐标,再在这些点周围取一些提前设定好的不同大小不同长宽比例的候选框,并计算出每个框是物体的概率分数;其中,区域生成网络的输入为步骤3.1)特征提取网络的输出,输出一系列候选框的坐标和其是物体的概率;

为了实现从输入到输出的一系列转换,区域生成网络模型包括3个串联的功能结构,有卷积层、批量正则化层、非线性激活函数层,第一个功能结构是将输入进行3×3大小的特征融合,融合周边的信息,并分别作为第二和第三个功能结构的输入,第二个功能结构实现输出矩形框的坐标信息,第三个功能结构实现输出对应矩形框是物体的分数;

3.3)构造有内容感知能力的感兴趣区域池化层

有内容感知能力的感兴趣区域池化层的作用是实现从原图的目标区域映射到所述步骤3.1)得到的低维编码区域,再池化到固定大小的功能,而有内容感知能力则表现在以下两方面:

3.3.1)信息补全

信息补全是为了补全小目标在低维编码时丢失的信息,让小目标的检测更准确;针对从原图的目标区域映射到所述步骤3.1)的低维编码的特征图,若其长和宽其中一个大于z,z的取值根据网络需求而定,另一个小于z,则通过反卷积的方式将其放大到边长为max(长,宽)的正方形,再进行池化操作;若其长和宽都小于z,则长宽通过反卷积的方式放大到原来的2倍,再进行池化操作;若其长和宽都大于z,则直接进行后续的池化操作;

3.3.2)划分大小

对所述步骤3.2)输出原图的目标区域进行划分大小,根据准备的训练数据集中所有标签框的面积的均值,若所述步骤3.2)输出的矩形框的面积小于该均值,标记为小目标输出,而大于或等于该均值的,标记为大目标输出;

3.4)构造多任务分类网络

多任务分类网络是为了分别识别大尺度和小尺度的目标,防止大和小尺度的目标的低维编码不同导致的分类错误;根据步骤3.3)得到的大小两类矩形框,分别输入两个分类网络;分类网络输出类别的分数用以分类任务,以及精修选框的位置用于回归任务,为了完成分类和回归任务,该网络包含全连接层、非线性激活函数层、信号丢失层,全连接层起到将学到的“分布式特征表示”映射到样本标记空间的作用,非线性激活层的加入防止了模型退化为简单的线性模型,提高模型的描述能力,信号丢失层以0.5的概率让神经元不工作,让训练过程收敛更快,防止过拟合;

最后将大小分类网络的输出结果进行融合,作为最终输出;

所述步骤4)包括以下步骤:

4.1)定义区域生成网络的损失函数

区域生成网络用于在低维的编码中得到输入图感兴趣区域的坐标和该区域是否为前景的分数,即回归任务和分类任务,定义损失函数使输出的选框尽可能的接近标准参考框的位置;因此,回归任务的损失函数能够定义为平滑化曼哈顿距离损失损失(smoothl1loss),公式如下所示:

其中,lreg为回归损失,v和t分别表示预测框的位置和其对应的标准参考框的位置,x和y表示左上角坐标值,w和h分别表示矩形框的宽和高;

分类任务的损失函数定义为柔性最大化损失(softmaxloss),公式如下所示:

xi=xi-max(x1,...,xn)

lcls=-logpk

其中,x为网络的输出,n表示总类别数,p表示每一类的概率,lcls为分类损失,k表示标签的类别;

4.2)定义分类网络的损失函数

分类网络输出类别的分数用于分类任务,以及精修选框的位置用于回归任务,定义损失函数使其输出的类别尽可能的和标签数据一致,同时使其输出的选框位置尽可能的和标准参考框的位置一致;同样如步骤4.1),回归任务的损失函数能够定义为smoothl1loss,分类任务的损失函数定义为softmaxloss;

4.3)定义总损失函数

步骤4.1)和步骤4.2)中定义的两个区域生成网络损失函数与两个分类网络损失函数能够通过甲醛的方式组合起来,使得网络可以完成图片中多尺度目标检测的任务;

所述步骤5)包括以下步骤:

5.1)初始化模型各层参数

各层参数的初始化采用的是传统的深度卷积神经网络中使用到的方法,对特征提取网络的卷积层参数利用在imagenet预训练好的vgg16网络模型的卷积层参数值作为初始值,区域生成网络中的卷积层以及分类网络的全连接层,则采用均值为0,标准差为0.02的高斯分布进行初始化,而对所有的批量正则化层的参数采用均值为1,标准差为0.02的高斯分布进行初始化;

5.2)训练网络模型

随机输入经过步骤2)处理的原始图像,经过步骤3.1)的特征提取网络得到相应的低维编码特征,在经过步骤3.2)的区域生成网络生成一批选框的候选区域,并通过步骤4.1)计算相应的损失值,然后将这些区域经过步骤3.3)的有内容感知能力的感兴趣区域池化层得到固定大小的另一种低维编码特征,而后再经过步骤3.4)的分类网络得到目标的分类以及精修的选框位置,并通过步骤4.2)计算相应的损失值。最后将这两部分的损失值经过步骤4.3)的处理得到最终损失值,将改值通过反向传播能够得到步骤3)网络模型中的各层参数的梯度,再通过随机梯度下降算法使得到的梯度对各层参数进行优化,即可实现一轮网络模型的训练;

5.3)重复步骤5.2)直到网络关于多尺度目标检测的能力达到预期的目标为止。

所述步骤6)的具体做法如下:

随机从验证数据集中取出一些原始图像,经过步骤2)处理后,输入到步骤5训练好的网络模型,让该网络模型去检测图中的目标的位置并预测其类别,通过输出的结果与对应的标签数据进行比对,从而判断该训练好的网络模型的多尺度目标检测能力。

本发明与现有技术相比,具有如下优点与有益效果:

1、提出了新的网络层--有内容感知能力的感兴趣区域池化层(caroipooling,content-awareroipoolinglayer),实现从原图区域映射到所低维编码区域再池化到固定大小的功能,尤其会对小尺度物体的地位编码特征图进行信息补全,达到更准确和更全面的低维编码特征图的目的,而且该网络层在其他目标检测网络中一样适用。

2、提出了一个多分支的目标检测网络,不同分支分别负责大尺度和小尺度的目标检测任务,从而更加准确的区分和检测出大尺度物体和小尺度物体,突破已有方法的限制。

附图说明

图1为本发明方法流程图。

图2为特征提取网络示意图。

图3为区域生成网络示意图。

图4为分类网络示意图。

具体实施方式

下面结合具体实施例对本发明作进一步说明。

如图1所示,本实施例所提供的基于深度卷积神经网络的多尺度目标检测方法,其具体情况如下:

步骤1,获取高速公路视频数据集,然后获取其视频帧,进行人工标注,并划分为训练数据集以及验证数据集。

步骤2,将图像数据集的图像和标签数据通过预处理转化为训练深度卷积神经网络所需要的格式,包括以下步骤:

步骤2.1,将数据集中的图像缩放到长和宽为768×1344像素大小,标签数据也根据相应的比例缩放到相应的大小。

步骤2.2,在缩放后的图像,随机裁剪其中包含有标签的地方得到768×768像素大小的正方形图像。

步骤2.3,以0.5的概率随机水平翻转裁剪后的图像。

步骤2.4,将随机翻转后的图像从[0,255]转换到[-1,1]的范围内。

步骤3,构建网络模型,包括特征提取网络、区域生成网络、多任务分类网络,包括以下步骤:

步骤3.1,构造特征提取网络。特征提取网络的输入为3×768×768的图像,输出为一系列低维编码特征图(512×48×48和512×24×24)。该网络包括多个级联的下采样层。下采样层由串联的卷积层、批量正则化层、以及非线性激活函数层、池化层组成。以下是一个特征提取网络模型的具体例子,如图2所示。

步骤3.2,构造区域生成网络。区域生成网络的输入为512×48×48/512×24×24的特征图,输出为36×48×48/36×24×24和18×48×48/18×24×24的矩阵信息。该网络包括3个串联的结构(卷积层、批量正则化层、非线性激活函数层)。以下是一个区域生成网络模型的具体例子,如图3所示。

步骤3.3,构造多任务分类网络。本例子用了两个分类网络,他们的输入都是长度为512×7×7的向量,输出长度为4的向量a和长度为4的向量b,其中向量a中的4个值分别表示背景、小车、公共汽车、火车的类别分数,向量b中的4个值表示了一个选框的位置(左上角点的坐标x和y,选框的宽和高w和h)。该网络包含了全连接层、非线性激活函数层,信息丢失层。以下是本例子多任务分类网络模型的具体例子,如图4所示。

步骤4,定义区域生成网络和分类网络的损失函数,包括以下步骤:

步骤4.1,定义区域生成网络的损失函数。定义损失函数使输出的选框尽可能的接近标准参考框的位置,此处用smoothl1loss定义损失函数使输出的选框的前景分数尽可能的与标签数据接近,此处用softmaxloss。

步骤4.2,定义分类网络的损失函数。定义损失函数使输出的选框的前景分数尽可能的与标签数据接近,类别为4类。定义损失函数使输出的选框尽可能的接近标准参考框的位置。

步骤4.3,定义总损失函数。对以上4个损失进行加权求和。用公式表示如下:

loss=(w1×lcls+w2×lreg)区域生成网络损失+(w1×lcls+w2×lreg)分类网络损失

其中,loss为总损失值,w1、w2、w3、w4为权重,本例w1=w2=w3=w4=1,lcls为分类损失值,lreg为回归损失值。

步骤5,训练网络模型,包括以下步骤:

步骤5.1,初始化模型各层参数,特征提取网络的卷积层参数利用在一个大数据库imagenet上预训练好的vgg16网络模型的卷积层参数值作为初始值,区域生成网络中的卷积层以及分类网络的全连接层,则采用均值为0,标准差为0.02的高斯分布进行初始化,而对所有的批量正则化层的参数采用均值为1,标准差为0.02的高斯分布进行初始化。

步骤5.2,训练网络模型随机输入经过步骤2处理的原始图像,输入步骤3的网络模型,输出类别信息和回归框的坐标信息,再经过步骤4计算得到最终损失值,将改值通过反向传播能够得到步骤3网络模型中的各层参数的梯度,再通过随机梯度下降算法使得到的梯度对各层参数进行优化,即可实现一轮网络模型的训练。

步骤5.3,持续迭代训练,即重复步骤5.2直到网络关于多尺度目标检测的能力达到预期的目标为止。

步骤6,使用验证数据集对训练得到的模型进行验证,测试其泛化性能。

具体做法是随机从验证数据集中取出一些原始图像,经过步骤2处理后,输入到步骤5训练好的网络模型,让该网络模型去检测图中的目标的位置并预测其类别。通过输出的结果与对应的标签数据进行比对,从而判断该训练好的网络模型的多尺度目标检测能力。

以上所述实施例只为本发明之较佳实施例,并非以此限制本发明的实施范围,故凡依本发明之形状、原理所作的变化,均应涵盖在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1