一种基于密集连接深度网络的目标检测方法与流程

文档序号:20352357发布日期:2020-04-10 23:05阅读:243来源:国知局
一种基于密集连接深度网络的目标检测方法与流程

本发明涉及一种基于密集连接深度网络的目标检测方法,属于目标检测技术领域。



背景技术:

当前基于深度学习的目标检测算法有很多,例如fasterrcnn(fasterregion-basedconvolutionalnetwork),ssd(singleshotmultiboxdetector),r-fcn(region-basedfullyconvolutionalnetworks),yolo(youonlylookonce),yolo-tiny(youonlylookonce-tiny)等。但是这些算法仍存在许多不足,如fasterrcnn、r-fcn、ssd等算法存在着检测速度慢,系统配置环境复杂等问题,yolov3算法检测速度较快,但模型占用内存大,而yolov3-tiny则存在着检测精度过低的问题。

当前yolov3-tiny检测网络虽然检测速度快,但存在着各种问题,如检测定位不准确,检测效果差,漏检、误检情况严重。目前有文献将残差网络结构融合进yolov3-tiny中,但检测精度仅为60.92%。

密集连接卷积神经网络(gaohuang,zhuangli,laurensvandermaaten,kilianq.weinberger.denselyconnectedconvolutionalnetworks[c].cvpr,2017.doi:10.1109/cvpr.2017.243)是一个独立且完整的检测网络,但该网络由于不同卷积层输出参数的设置以及全连接层的存在,使得网络的计算量急剧增大,需要消耗大量的显存。这个问题限制了该网络在实际生产中的应用。



技术实现要素:

为了解决上述至少一个问题,本发明提供了一种基于密集连接深度网络的目标检测的方法,通过对yolov3-tiny算法的网络结构做出改进,达到了检测精度高,速率快且模型占用内存较小的效果,能够满足显示使用中对实时性的要求。

本发明的基于密集连接深度网络的目标检测方法,将密集连接方式融进卷积神经网络中,通过级联每个卷积层的输出,极致利用提取得到的每个特征。本发明不仅提高了检测网络的特征利用率和信息流动,同时也强化了特征传播,提高了检测效果。

本发明的第一个目的是提供一种基于密集连接深度网络的目标检测方法,包括以下步骤:

步骤(1):读入pascalvoc数据集中的图像数据并提取目标数据特征;

步骤(2):训练网络模型;

步骤(3):进行目标检测。

可选的,包括以下步骤:

步骤(1):读入pascalvoc数据集中的图像数据并提取目标数据特征:网络读取输入的图像数据,首先将其分辨率归一化为416*416,然后通过一系列卷积层以及密集连接模块denseblock提取、融合各通道的特征;

步骤(2):训练网络模型:设置网络batch为64,重复迭代训练得到检测模型;

步骤(3):进行目标检测:网络首先通过特征提取网络对输入图像提取特征,得到一定尺寸的特征图(假定为k*k),然后将输入图像分为k*k个单元格,每个单元格预测固定数量(3个)的边界框;预测时采用逻辑回归,用于预测每个边界框的目标性得分,即这块区域是目标的可能性有多大;而后进行非极大值抑制(nms),最后输出检测结果。

可选的,所述步骤(1)包括:

(1)引入的密集连接方式,使得l层网络有l(l+1)/2个连接;其中的密集连接模块denseblock主要是由1*1和3*3的卷积层组成,其中的1*1卷积操作又被成为bottlenecklayer,目的是减少输入的特征图数量,提高计算效率并融合各个通道的特征;3*3卷积则是用于提取图像特征;密集连接模块denseblock中每一层的输入来自前面所有层的输出,以达到更好的效果和更少的参数;下式表明了第l层的输入即为之前所有层的输出之和;

xl=hl([x0,x1,···,xl-1])

其中,xl表示第l层的输出,[x0,x1,…,xl-1]表示第0,…,l-1层输出的级联。上式中hl(·)表示三个连续运算的复合函数,由batchnormalization(bn)、rectifiedlinearunit(relu)和一个3*3的卷积层组成;

(2)减少密集连接模块denseblock中卷积层输出特征图数量;

(3)为实现网络降采样操作,将网络分为多个密集连接模块denseblock,且每个denseblock中的特征图的输出都设定为相同,且不同尺度下特征图的数量也不同。

可选的,所述步骤(2)包括:

设置网络的学习率为0.001,动量设为0.9,权重衰减正则项为0.0005,网络最大的迭代次数为500200,网络的学习率在迭代次数到达400000和450000时衰减10倍;同时网络使用多尺度训练,网络读取数据后,图像归一化分辨率的宽高在320~608之间取随机值,且每10轮随机改变一次,随机值均为32的倍数。

可选的,所述步骤(3)包括:

(1)yolov3-tiny使用k-means聚类算法聚类数据集中真实框,为下采样得到的两种尺度设定3个不同大小的先验框,总共聚类出6个不同尺寸的先验框;

两种不同尺度的6个先验框大小如下表1所示:

表1

(2)使用6个不同先验框(anchors)在三种不同尺度的特征映射图上进行预测;在对边界框进行预测的时候,为了更好的数据建模以及支持多标签分类,网络采用逻辑回归(logisticregression);网络边界框的坐标预测公式如下:

bx=σ(tx)+cx

by=σ(ty)+cy

其中tx、ty、tw、th为模型的实际预测值,cx和cy表示gridcell的坐标偏移量,pw和ph表示anchorbox的宽高,bx、by、bw和bh为最终得到的边界框的中心的坐标和宽高;坐标的训练采用的是平方和误差损失。

(3)设定非极大值抑制(nms)的阈值为0.45。

本发明的第二个目的是本发明所述的基于密集连接深度网络的目标检测的方法在图像目标检测中的应用。

可选的,本发明所述的基于密集连接深度网络的目标检测的方法在图像目标检测中的应用具体步骤为:网络读取不同场景下的行人图像数据作为训练数据,首先将图像数据的图像分辨率归一化为416*416,然后通过卷积层、池化层以及密集连接模块(denseblock)提取、融合各通道的特征;通过训练网络得到相应的检测模型;加载训练得到的模型、网络配置文件以及待检测的图像,网络首先通过特征提取网络对输入的待检测图像提取特征,由于本发明采用多尺度预测,提取特征后得到13*13、26*26的特征图,并在这两种不同尺度下进行预测。随后网络将待检测图像分别划分为13*13、26*26个单元格,每个单元格预测固定数量(3个)的边界框;预测时采用逻辑回归,用于预测每个边界框的目标性得分,即这块区域是行人类别的可能性有多大。而后进行非极大值抑制(nms),最后输出检测结果。

本发明的第三个目的是本发明所述的基于密集连接深度网络的目标检测的方法在视频目标检测中的应用。

可选的,本发明所述的基于密集连接深度网络的目标检测的方法在视频目标检测中的应用具体步骤为:网络读取不同场景下的视频目标图像数据作为训练数据,首先将目标图像数据的图像分辨率归一化为416*416,然后通过卷积层、池化层以及密集连接模块(denseblock)提取、融合各通道的特征;通过训练网络得到相应检测任务的检测模型;加载训练得到的模型、网络配置文件以及待检测的图像,网络首先通过特征提取网络对输入的待检测图像提取特征;由于本发明采用多尺度预测,提取特征后得到13*13、26*26的特征图,并在这两种不同尺度下进行预测;随后网络将待检测图像分别划分为13*13、26*26个单元格,每个单元格预测固定数量(3个)的边界框;预测时采用逻辑回归,用于预测每个边界框的目标性得分,即这块区域是行人类别的可能性有多大;而后进行非极大值抑制(nms);由于本网络检测速度快,因而可以达到实时检测的效果,可以应用于实时视频检测中,输出检测结果。

本发明的有益效果:

(1)本发明方法极致利用了提取到的每个特征,不仅提高了网络的特征利用率,强化了特征传播,也增强了网络对于细节信息的学习。

(2)本发明的方法在检测精度上,可以达到65.93%,高于yolo-tiny的49.19%。

(3)本发明的方法在检测速度上可以达到83fps/s,能够应用于实际场景中各种实时目标检测任务。

(4)本发明的方法采用的模型大小仅有44.7mb,模型对于计算机内存的需求较小,能够节约成本。

附图说明

图1为密集连接网络结构图。

图2为网络的整体架构图。

图3为原算法在pascalvoc数据集中对行人的检测结果。

图4为实施例2在pascalvoc数据集中对行人的检测结果。

图5为原算法在pascalvoc检测任务中的检测结果。

图6为实施例3在pascalvoc检测任务中的检测结果。

具体实施方式

下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。

实施例1

现有的目标检测方法虽然检测精度高,但并不能满足实际生产中实时检测的要求,且由于模型内存原因,可移植性差。针对这些问题,本发明提出了一种基于密集连接深度网络的目标检测方法,下面结合附图进行详细说明:

如图1所示,为本发明所提供的一种基于密集连接深度网络的目标检测方法的密集连接网络的结构图;如图2所示,为本发明所提供的一种基于密集连接深度网络的目标检测方法的网络整体架构图。在本实施方式中,一种基于密集连接深度网络的目标检测方法,其包括以下部分:

a.1、读入pascalvoc数据集中的图像数据并提取目标数据特征:网络读取输入的图像数据,首先将其分辨率归一化为416*416,然后通过一系列卷积层以及密集连接模块(denseblock)提取、融合各通道的特征。

所述步骤a.1包括:

(1)引入的密集连接方式,使得l层网络有l(l+1)/2个连接。其中的密集连接模块denseblock主要是由1*1和3*3的卷积层组成,其中的1*1卷积操作又被成为bottlenecklayer,目的是减少输入的特征图数量,提高计算效率并融合各个通道的特征。3*3卷积则是用于提取图像特征。密集连接模块denseblock中每一层的输入来自前面所有层的输出,以达到更好的效果和更少的参数。下式表明了第l层的输入即为之前所有层的输出之和;

xl=hl([x0,x1,···,xl-1])

其中,xl表示第l层的输出,[x0,x1,…,xl-1]表示第0,…,l-1层输出的级联。上式中hl(·)表示三个连续运算的复合函数,由batchnormalization(bn)、rectifiedlinearunit(relu)和一个3*3的卷积层组成。

(2)减少denseblock中卷积层输出特征图数量;

(3)为实现网络降采样操作,将网络分为多个密集连接模块denseblock,且每个denseblock中的特征图的输出都设定为相同,且不同尺度下特征图的数量也不同。

b.1、训练网络模型:设置网络batch为64,重复迭代训练得到检测模型。

所述步骤b.1包括:

设置网络的学习率为0.001,动量设为0.9,权重衰减正则项为0.0005,网络最大的迭代次数为500200,网络的学习率在迭代次数到达400000和450000时衰减10倍。同时网络使用多尺度训练,网络输入尺寸的宽高在320~608之间取随机值,且每10轮随即改变一次。

c.1、进行目标检测:

网络首先通过特征提取网络对输入图像提取特征,得到一定尺寸的特征图(假定为k*k),然后将输入图像分为k*k个单元格,每个单元格预测固定数量(3个)的边界框。预测时采用逻辑回归,用于预测每个边界框的目标性得分,即这块区域是目标的可能性有多大。而后进行非极大值抑制(nms),最后输出检测结果。

所述步骤c.1具体包括:

(1)yolov3-tiny使用k-means聚类算法聚类数据集中真实框,为每种下采样尺度设定3种不同大小的先验框,总共聚类出6个不同尺寸的先验框。

两种不同尺度的6个先验框大小如下表2所示:

表2

(2)使用6个不同先验框(anchors)在三种不同尺度的特征映射图上进行预测。在对边界框进行预测的时候,为了更好的数据建模以及支持多标签分类,网络采用逻辑回归(logisticregression)。网络的边界框的坐标预测公式如下:

bx=σ(tx)+cx

by=σ(ty)+cy

其中tx、ty、tw、th为模型的实际预测值,cx和cy表示gridcell的坐标偏移量,pw和ph表示anchorbox的宽高,bx、by、bw和bh为最终得到的边界框的中心的坐标和宽高。坐标的训练采用的是平方和误差损失。

(3)设定非极大值抑制(nms)的阈值为0.45。

实施例2

本实施例是在pascalvoc数据集上对于行人类检测的过程和结果。具体步骤如下:

a.1读入pascalvoc数据集中不同场景下的行人图像数据作为训练数据并提取行人数据特征:网络读取输入的图像,首先将其分辨率归一化为416*416,然后通过卷积层、池化层以及密集连接模块(denseblock)提取、融合各通道的特征。

所述步骤a.1包括:

(1)引入的密集连接方式,使得l层网络有l(l+1)/2个连接。其中的密集连接模块denseblock主要是由1*1和3*3的卷积层组成,其中的1*1卷积操作又被成为bottlenecklayer,目的是减少输入的特征图数量,提高计算效率并融合各个通道的特征。3*3卷积则是用于提取图像特征。denseblock中每一层的输入来自前面所有层的输出,以达到更好的效果和更少的参数。

xl=hl([x0,x1,···,xl-1])

其中,xl表示第l层的输出,[x0,x1,…,xl-1]表示第0,…,l-1层输出的级联。hl(·)由batchnormalization(bn)、rectifiedlinearunit(relu)和一个3*3的卷积层组成。

图像数据通过第一个密集连接模块denseblock得到的208*208*48的特征映射图,再通过一个1*1的卷积层,目的是为了降低输入的通道数,减少网络计算复杂度,而后通过2*2的池化层,作用是对特征映射图进行降采样,得到更高层的语义信息。得到的输出作为密集连接模块denseblock2的输入。

(2)减少denseblock中卷积层输出特征图数量。其中,denseblock1设定特征映射图数量为16,denseblock2、denseblock3、denseblock4、denseblock5设定为32、64、128、256。输出特征图数量不断递增的目的是使网络能够学习到行人图像数据中更为丰富的高层语义信息,增加定位的精确度。

(3)为实现网络降采样操作,将网络分为多个denseblock,且每个denseblock中的特征图的输出都设定为相同,且不同尺度下特征图的数量也不同。

b.1训练网络模型:设置网络batch为64,重复迭代训练得到检测模型。

所述步骤b.1包括:

设置网络的学习率为0.001,动量设为0.9,权重衰减正则项为0.0005,网络最大的迭代次数为500200,网络的学习率在迭代次数到达400000和450000时衰减10倍。同时网络使用多尺度训练,网络读入行人图像数据后,图像归一化分辨率的宽高在320~608之间取随机值,且每10轮随机改变一次,随机值均为32的倍数。

c.1进行目标检测:

检测图像时,首先加载模型、网络配置文件以及待检测的图像数据,网络首先通过特征提取网络对输入的待检测图像提取特征,由于本发明采用多尺度预测,提取特征后得到13*13、26*26的特征图,并在这两种不同尺度下进行预测。随后网络将待检测图像分别划分为13*13、26*26个单元格,每个单元格预测固定数量(3个)的边界框。预测时采用逻辑回归,用于预测每个边界框的目标性得分,即这块区域是行人类别的可能性有多大。而后进行非极大值抑制(nms),最后输出检测结果。

所述步骤c.1具体包括:

(1)yolov3-tiny使用k-means聚类算法聚类数据集中真实框,为每种下采样尺度设定3种不同大小的先验框,总共聚类出6个不同尺寸的先验框。两种不同尺度的6个先验框大小如下表3所示:

表3

(2)使用6个不同先验框(anchors)在三种不同尺度的特征映射图上进行预测。在对边界框进行预测的时候,为了更好的数据建模以及支持多标签分类,网络采用逻辑回归(logisticregression)。网络的边界框的坐标预测公式如下:

bx=σ(tx)+cx

by=σ(ty)+cy

其中tx、ty、tw、th为模型的实际预测值,cx和cy表示gridcell的坐标偏移量,pw和ph表示anchorbox的宽高,bx、by、bw和bh为最终得到的边界框的中心的坐标和宽高。坐标的训练采用的是平方和误差损失。

(3)设定非极大值抑制(nms)的阈值为0.45。用于滤除预测过程中出现的重叠框。

图3为原算法在pascalvoc数据集中对行人的检测结果,其检测行人类别精度为65.1%。原算法来源于文献(redmonj,farhadia.yolov3:anincrementalimprovement[j].arxivpreprintarxiv:1804.02767,2018.)。

图4为实施例2在pascalvoc数据集中对行人的检测结果,检测行人类别精度为79.8%,相较于原算法,检测精度提高了14.7%。

实施例3

本实施例为在pascalvoc数据集上对于马的类别进行检测的过程和结果。具体步骤如下:

a.1读入pascalvoc数据集中不同场景下的马的图像数据作为训练数据并提取马的类别数据特征:网络读取输入的图像,首先将其分辨率归一化为416*416,然后通过卷积层、池化层以及密集连接模块(denseblock)提取、融合各通道的特征。

所述步骤a.1包括:

(1)引入的密集连接方式,使得l层网络有l(l+1)/2个连接。其中的denseblock主要是由1*1和3*3的卷积层组成,其中的1*1卷积操作又被成为bottlenecklayer,目的是减少输入的特征图数量,提高计算效率并融合各个通道的特征。3*3卷积则是用于提取图像特征。denseblock中每一层的输入来自前面所有层的输出,以达到更好的效果和更少的参数。

xl=hl([x0,x1,···,xl-1])

其中,xl表示第l层的输出,[x0,x1,…,xl-1]表示第0,…,l-1层输出的级联。hl(·)由batchnormalization(bn)、rectifiedlinearunit(relu)和一个3*3的卷积层组成。

图像数据通过第一个密集连接模块denseblock得到的208*208*48的特征映射图,再通过一个1*1的卷积层,目的是为了降低输入的通道数,减少网络计算复杂度,而后通过2*2的池化层,作用是对特征映射图进行降采样,得到更高层的语义信息。得到的输出作为denseblock2的输入。

(2)减少密集连接模块denseblock中卷积层输出特征图数量。其中,denseblock1设定特征映射图数量为16,denseblock2、denseblock3、denseblock4、denseblock5设定为32、64、128、256。输出特征图数量不断递增的目的是使网络能够学习到马的图像数据中更为丰富的高层语义信息,增加定位的精确度。

(3)为实现网络降采样操作,将网络分为多个密集连接模块denseblock,且每个denseblock中的特征图的输出都设定为相同,且不同尺度下特征图的数量也不同。

b.1训练网络模型:设置网络batch为64,重复迭代训练得到检测模型。

所述步骤b.1包括:

设置网络的学习率为0.001,动量设为0.9,权重衰减正则项为0.0005,网络最大的迭代次数为500200,网络的学习率在迭代次数到达400000和450000时衰减10倍。同时网络使用多尺度训练,网络读入马的图像数据后,图像归一化分辨率的宽高在320~608之间取随机值,且每10轮随机改变一次,随机值均为32的倍数。

c.1进行目标检测:

检测图像时,首先加载模型、网络配置文件以及待检测的图像数据,网络首先通过特征提取网络对输入的待检测图像提取特征,由于本发明采用多尺度预测,提取特征后得到13*13、26*26的特征图,并在这两种不同尺度下进行预测。随后网络将待检测图像分别划分为13*13、26*26个单元格,每个单元格预测固定数量(3个)的边界框。预测时采用逻辑回归,用于预测每个边界框的目标性得分,即这块区域是马的类别的可能性有多大。而后进行非极大值抑制(nms),最后输出检测结果。

所述步骤c.1具体包括:

(1)yolov3-tiny使用k-means聚类算法聚类数据集中真实框,为每种下采样尺度设定3种不同大小的先验框,总共聚类出6个不同尺寸的先验框。两种不同尺度的6个先验框大小如下表4所示:

表4

(2)使用6个不同先验框(anchors)在三种不同尺度的特征映射图上进行预测。在对边界框进行预测的时候,为了更好的数据建模以及支持多标签分类,网络采用逻辑回归(logisticregression)。网络的边界框的坐标预测公式如下:

bx=σ(tx)+cx

by=σ(ty)+cy

其中tx、ty、tw、th为模型的实际预测值,cx和cy表示gridcell的坐标偏移量,pw和ph表示anchorbox的宽高,bx、by、bw和bh为最终得到的边界框的中心的坐标和宽高。坐标的训练采用的是平方和误差损失。

(3)设定非极大值抑制(nms)的阈值为0.45。用于滤除预测过程中出现的重叠框。

图5为原算法在pascalvoc检测任务中的检测结果,由图像可知原算法网络并不能很好的检测出图像中类别,出现了漏检的情况。其检测马的类别精度为63.2%。原算法来源于文献(redmonj,farhadia.yolov3:anincrementalimprovement[j].arxivpreprintarxiv:1804.02767,2018.)。

图6为实施例2在pascalvoc检测任务中的检测结果,能够很好的检测出图像中的类别并定位。本发明检测马的类别精度为79.4%,相较于原算法,检测精度提高了16.2%。

本发明将密集连接方式融合进yolo-tiny网络,增加其卷积层,改进特征提取网络。改进网络首先将输入图像归一化为固定大小,然后使用denseblock模块提取、融合各通道的特征,接着在不同的尺度上使用不同的先验框进行预测,完成目标的分类和定位。改进后的算法相比于原算法,精度提高了15%,且仍能达到实时检测的要求;模型大小也仅有44.7mb,能够满足实际使用中对于内存占用以及实时性的要求。

虽然本发明已以较佳实施例公开如上,但其并非用以限定本发明,任何熟悉此技术的人,在不脱离本发明的精神和范围内,都可做各种的改动与修饰,因此本发明的保护范围应该以权利要求书所界定的为准。

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