基于具有RoI池化的双CNN网络的目标识别方法与流程

文档序号:11231265阅读:888来源:国知局
基于具有RoI池化的双CNN网络的目标识别方法与流程

本发明涉及数字图像处理技术领域,尤其涉及一种基于具有roi(regionofinterest,兴趣区)池化的双cnn(convolutionneuralnetwork,卷积神经网络)网络的目标识别方法。



背景技术:

无人机、机器人等各种智能无人系统的应用越来越广泛,对视觉系统的目标检测与识别的速率和准确率的要求也随之越来越高。常用的目标识别方法有基于模板匹配、基于语法结构分析、基于神经网络以及单纯的基于传统统计方法等,图像目标识别中较为常用的则如基于卷积神经网络cnn的目标识别方法。基于cnn的目标识别方法是利用卷积神经网络的多层卷积层的卷积作用来获得能够代表数字图像的特征矩阵,然后再将获得的特征矩阵输入分类器以实现分类、识别等。

目前基于cnn的目标识别方法,通常都是先将原图像划分成若干个候选框,然后利用常规的cnn对候选框进行逐个提取特征,再对提取的特征进行分类,进行目标检测以便于目标的识别,主要包括以下几种方法,且均存在一定的缺陷;

(1)rcnn(richfeaturehierarchiesbasedcnn)方法,是采用selective-search技术获取一系列窗口(通常为2000多个),包括目标区域和背景区域,这些窗口会覆盖输入原始图像,对每一个窗口先进行缩放处理以满足一个固定大小的尺寸,然后利用cnn进行特征提取,再利用分类器(如svm/softmax等)进行分类、识别;但是rcnn算法由于需要逐个处理多达2000多个的区域窗口,所需处理的区域窗口数据众多,使得所需消耗的时间长、识别速度慢,并且由于全连接层需要固定大小的维度矩阵,而rcnn结构需要在输入网络之前对图像进行剪切或缩放处理,造成图像信息损失,使得无论在识别准确度还是在识别速度上都比较差;

(2)spp-net(spatialpyramidpoolingbasedcnn)方法,是针对传统的cnn用于目标检测、识别过程中都必须保证输入的图像大小维度相同这一缺陷所提出,通过引入spp池化避免图像剪切、缩放的过程。由于传统方法都是通过剪切或者缩放的方式将输入图像转换成固定大小的图像然后再进行后续的处理,这一处理过程会损失图像信息,造成识别准确度下降,通过spp池化避免了图像剪切、缩放的过程,从而保证了识别的准确率。但是spp-net结构是将目标和背景区域窗口混在一起处理,因而所需消耗时间仍然较长,而且spp的金字塔结构也使得不便于调节参数;

(3)fast-rcnn方法,是在rcnn和spp-net的基础上进行的改进,采用单层池化即roi层,代替多层金字塔池化,使得可以同时对roi池化层两边的处理层(卷积层、全连接层)进行调参,达到优化网络的作用。但是fast-rcnn结构仅是对spp-net的spp结构进行改进,但是未区分目标区域和背景区域,因而所需消耗时间仍然较长;

(4)double-cnn方法,是采用两级cnn进行图像目标识别,其中第一级cnn只有5层卷积层,用于获得目标所在的区域窗口,排除背景区域减少窗口的总共数目,然后对这些目标区域窗口进行缩放,达到一个固定大小的尺寸,再逐个利用第二级cnn提取特征,最后利用分类器进行分类、识别;double-cnn结构虽然将目标区域和背景区域的窗口分开,只保留目标区域的窗口,可以减少处理时间,但是在提取特征时,是逐个窗口进行卷积提取特征,而且为了保证全连接值层的输入具有固定的维度,还需要对每个目标区域窗口进行一定的缩放处理,因此识别速度、准确率仍然不高。



技术实现要素:

本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种实现方法简单、兼具目标识别效率高以及识别精度高,且易于调节网络参数的基于具有roi池化的双cnn网络的目标识别方法。

为解决上述技术问题,本发明提出的技术方案为:

一种基于具有roi池化的双cnn网络的目标识别方法,步骤包括:

s1.将待识别图像通过第一级cnn网络获取目标区域窗口,以及通过具有roi池化层的第二级cnn网络获取待识别图像的全局特征图;

s2.将获取到的所述全局特征图、目标区域窗口输入所述第二级cnn网络的roi池化层中进行池化处理,提取出所述目标区域窗口指定维数的特征向量;

s3.将所述步骤s2提取到的特征向量训练分类器,根据训练得到的分类器检测待识别图像中的目标,输出识别结果。

作为本发明的进一步改进,所述步骤s1中获取目标区域窗口的具体步骤为:

s11.将待识别图像通过所述第一级cnn网络的多层卷积层进行卷积处理,分别获得包含有目标区域窗口、背景区域窗口的多个区域窗口;

s12.区分获得的多个所述区域窗口中目标区域窗口、背景区域窗口后,去除所述背景区域窗口、保留指定个数的所述目标区域窗口,输出对应各个所述目标区域窗口的roi元组。

作为本发明的进一步改进:所述步骤s12中具体分别对各个所述区域窗口的边界计算iou值,根据计算得到的iou值区分目标区域窗口、背景区域窗口。

作为本发明的进一步改进:所述步骤s11后、步骤s12前还包括确定各个所述区域窗口的边界步骤。

作为本发明的进一步改进,所述步骤s1中全局特征图的具体获取步骤为:将待识别图像通过所述第二级cnn网络的多层卷积层进行卷积处理,输出多个三维全局特征图矩阵,获取得到待识别图像的全局特征图。

作为本发明的进一步改进,所述步骤s2中roi池化层中进行池化处理的具体步骤为:

s21.获取一个目标区域窗口作为当前目标区域窗口,使用当前目标区域窗口所对应的roi元组定位当前目标区域在所述全局特征图中的位置;

s22.在所述全局特征图中截取当前目标区域的特征矩阵,并使用roi池化层将所述特征矩阵划分为指定大小的网格,根据每个所述网格中的最大值作为特征值,得到对应当前目标区域窗口的特征值矩阵;

s23.重复执行步骤s21、s23,得到对应每一个所述目标区域窗口的特征值矩阵。

作为本发明的进一步改进:所述步骤s2还包括将各个所述目标区域窗口的特征值矩阵输入全连接层进行非线性组合处理步骤,得到所述目标区域窗口所需的特征向量。

作为本发明的进一步改进:所述进行全连接层的非线性组合处理时,具体采用svd(singularvaluedecomposition,奇异值分解)权值分解方法对原始权值矩阵进行分解。

作为本发明的进一步改进:所述步骤s3中具体将所述步骤s2提取到的特征向量训练softmax分类器,根据训练得到的所述softmax分类器检测待识别图像中的目标。

作为本发明的进一步改进:所述步骤s3后还包括窗口调整步骤,所述窗口调整步骤对窗口大小进行调整,返回执行步骤s2以重新训练分类器,直至达到预设识别效果。

与现有技术相比,本发明的优点在于:

1)本发明基于具有roi池化的双cnn网络的目标识别方法,综合考虑目标识别的准确率及识别速度,采用两级cnn网络处理实现双cnn网络架构的图像目标识别,通过第一级cnn网络排除背景区域窗口获取到目标区域窗口信息,对目标区域和背景区域进行了区分处理,同时结合roi池化技术,通过具有roi池化层的第二级cnn网络获取全局特征图,并将全局特征图和目标区域窗口一起输入到roi池化层进行池化处理,能够大大减少所需数据处理量,同时提高识别精度,从而能够同时满足目标识别速度高以及目标识别精度高的需求,尤其适用于实时性要求较高的应用场合中,且基于双cnn网络结构便于实现参数调节;

2)本发明基于具有roi池化的双cnn网络的目标识别方法,通过第一级cnn网络排除背景区域窗口得到目标区域窗口,避免了如传统方法中需要对背景区域进行卷积处理,大大减少了数据处理量及所需处理时间;通过具有roi池化层的第二级cnn网络将全局特征图和目标区域窗口进行池化处理,能够获得固定尺寸的目标窗口特征,使得仅需对整幅图像做一次卷积操作,无需对目标区域窗口逐个进行卷积提取特征,相比于传统方法中耗时较大的对大量目标区域窗口逐个进行卷积提取特征,能够大大减少识别计算量、提高识别效率,同时避免了如传统方法中需要剪切、缩放处理而导致图像信息损失,有效提高了识别精度;

3)本发明基于具有roi池化的双cnn网络的目标识别方法,进一步将全连接层的权值矩阵采用svd分解技术,可以减少全连接层的参数,进而减少参数训练学习的时间,从而进一步减少识别所需的时间、提高识别效率。

附图说明

图1是本实施例基于具有roi池化的双cnn网络的目标识别方法的实现原理示意图。

图2是本实施例双cnn网络的目标识别方法的具体实现流程示意图。

图3本发明具体实施例中双cnn网络的目标识别方法的具体实现流程示意图。

图4是本实施例中所采用的cnn网络中卷积层处理的实现原理示意图。

图5是本实施例roi池化层进行池化处理的实现原理示意图。

图6是本实施例全连接层进行非线性组合处理的实现原理示意图。

具体实施方式

以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。

如图1、2所示,本实施例基于具有roi池化的双cnn网络的目标识别方法,步骤包括:

s1.图像数据获取:将待识别图像通过第一级cnn网络获取目标区域窗口,以及通过具有roi池化层的第二级cnn网络获取待识别图像的全局特征图;

s2.roi池化:将获取到的全局特征图、目标区域窗口输入第二级cnn网络的roi池化层中进行池化处理,提取出目标区域窗口指定维数的特征向量;

s3.目标检测识别:将步骤s2提取到的特征向量训练分类器,根据训练得到的分类器检测待识别图像中的目标,输出识别结果。

本实施例综合考虑目标识别的准确率及识别速度,采用两级cnn网络处理实现双cnn网络架构的图像目标识别,通过第一级cnn网络排除背景区域窗口获取到目标区域窗口信息,对目标区域和背景区域进行了区分处理,同时结合roi池化技术,通过具有roi池化层的第二级cnn网络获取全局特征图,并将全局特征图和目标区域窗口一起输入到roi池化层进行池化处理,能够大大减少所需数据处理量,同时提高识别精度,从而能够同时满足目标识别速度高以及目标识别精度高的需求,尤其适用于实时性要求较高的应用场合中,且基于双cnn网络结构便于实现参数调节。

本实施例中,步骤s1中获取目标区域窗口的具体步骤为:

s11.将待识别图像通过第一级cnn网络的多层卷积层进行卷积处理,分别获得包含有目标区域窗口、背景区域窗口的多个区域窗口;

s12.区分获得的多个区域窗口中目标区域窗口、背景区域窗口后,去除背景区域窗口、保留指定个数的目标区域窗口,输出对应各个目标区域窗口的roi元组。

本实施例中,步骤s11后、步骤s12前还包括确定各个区域窗口的边界步骤,即给每个目标区域窗口、背景区域窗口加一个明确的边界。本实施例具体采用轮廓估计方法(contourapproximationmethod)来确定各个区域窗口的边界。

本实施例中,步骤s12中具体分别对各个区域窗口的边界计算iou(intersectionofunit,交叠)值,根据计算得到的iou值区分目标区域窗口、背景区域窗口。本实施例具体将各个区域窗口的边界计算得到的iou值与预设阈值进行比较,以确定是背景区域窗口或是目标区域窗口,并确定是否保留该窗口,最后保留得到的即为目标区域窗口核心信息。

如图3所示,本发明具体实施例中步骤s1中获取目标区域窗口的详细步骤为:

首先,将输入的大小为a*a*3的待识别图像经过第一级cnn的卷积处理后,获得包含有目标区域和背景区域的窗口特征信息,如图4所示,其中每一层卷积层处理按如下公式:

其中,x为输入的图像,h为卷积核。

然后,将五层卷积层输出的窗口特征信息经过轮廓估计方法处理后给每个目标区域窗口、背景区域窗口加一个明确的边界,本实施例轮廓估计方法具体通过直接调用opencv库(opensourcecomputervisionlibrary,开源计算机视觉库)中的cvfindcontours函数实现,也可以采用其他方式实现;

再对每个目标区域窗口、背景区域窗口的边界计算iou值,并判断iou值跟阈值的大小,确定是否是目标区域并确定是否保留,以去除所有的背景区域目标,同时保留r个大小不等的目标区域目标窗口,输出r个roi元组,从而可以获得一系列排除背景区域后锁定所有目标的具有明显边界的区域窗口核心信息roi元组;每个roi元组具体包含(n,r,c,h,w)等信息,其中n表示该窗口的序列号,(r,c)表示该窗口左上角坐标,(h,w)表示该窗口的高和宽。

本实施例采用上述步骤,利用cnn的局部感受视野特性,通过第一级cnn网络排除背景区域窗口得到目标区域窗口,避免了如传统方法中需要对背景区域进行卷积处理,大大减少了数据处理量及所需处理时间。

本实施例中,步骤s1中全局特征图的具体获取步骤为:将待识别图像通过第二级cnn网络的多层卷积层进行卷积处理,输出多个三维全局特征图矩阵,获取得到待识别图像的全局特征图。本实施例具体通过第二级cnn网络的5层卷积层的卷积处理,从输入的待识别图像中逐层抽取出维度较低且能够代表图像的全局特征图(featuremap),获得n个h*w*c大小的三维立体的全局特征图(featuremaps)矩阵,每一层卷积层处理具体如式(1)所示;获取到全局特征图(featuremaps)、目标窗口信息roi元组后,将获取的全局特征图(featuremaps)矩阵、目标窗口信息roi元组一起输入到roi池化层进行池化处理,即可得到目标区域窗口固定长度的特征向量。

本实施例中,步骤s2中roi池化层中进行池化处理的具体步骤为:

s21.获取一个目标区域窗口作为当前目标区域窗口,使用当前目标区域窗口所对应的roi元组定位当前目标区域在全局特征图中的位置;

s22.在全局特征图中截取当前目标区域的特征矩阵,并使用roi池化层将特征矩阵划分为指定大小的网格,根据每个网格中的最大值作为特征值,得到对应当前目标区域窗口的特征值矩阵;

s23.重复执行步骤s21、s23,得到对应每一个目标区域窗口的特征值矩阵。

本实施例roi池化处理中,具体首先利用步骤s1所获得的roi元组定位目标区域在全局特征图中的位置,然后在特征图中截取该目标区域部分的特征矩阵,其中对于任意大小的特征矩阵,roi池化层都将其划分为h1*w1大小的网格,利用取池化网格中最大的值maxpooling方法获取每个小网格中的最大值以代表对应网格的特征值,每个小网格单元的大小具体是(h/h1)*(w/w1),即可获取h1*w1个网格小单元,每个网格大小可根据roi的大小调整,网格数目为固定;经过上述roi池化层的处理之后,输入的每一个roi窗口池化成一个固定大小的矩阵h1*w1*c,从而能够满足全连接层所需的固定维度的输入。

如图5所示,本实施例将第二级cnn的五层卷积层处理原始输入图像,获得n个h*w*c大小的三维立体的全局特征图(featuremaps)矩阵,n表示卷积核数目;将获取的全局特征图(featuremaps)矩阵、目标窗口信息roi元组(r个roi元组,r>>n,每个roi是一个元组(n,r,c,h,w))一起输入到roi池化层进行池化处理,经过roi池化层的处理之后,每一个roi窗口池化成一个固定大小的矩阵h1*w1*c,该特征矩阵代表了目标的信息,由最终得到的特征矩阵即可进行后续的目标检测、识别。

本实施例采用上述步骤,通过具有roi池化层的第二级cnn网络将全局特征图和目标区域窗口进行池化处理,能够获得固定尺寸的目标窗口特征,使得仅需对整幅图像做一次卷积操作,无需对目标区域窗口逐个进行卷积提取特征,相比于传统方法中耗时较大的对大量目标区域窗口逐个进行卷积提取特征,能够大大减少识别计算量、提高识别效率,同时避免了如传统方法中需要剪切、缩放处理而导致图像信息损失,有效提高了识别精度。

本实施例中,步骤s2还包括将各个目标区域窗口的特征值矩阵进行全连接层的非线性组合处理步骤(fc处理),得到目标区域窗口所需的特征向量。通过在roi池化层处理后的全连接层,对固定大小的特征矩阵进行非线性组合,使得可获得便于后续分类器所需的特征向量,从而便于对目标图像特征进行分类、识别处理。

本实施例中,进行全连接层的非线性组合处理时,具体采用svd权值分解方法对原始权值矩阵进行分解,可以减少全连接层的参数,进而减少参数训练学习的时间,从而进一步减少识别所需的时间、提高识别效率,结合roi池化技术以及svd权值分解技术,能够最大限度的减少整个图像目标检测识别过程所需消耗的时间。

如图6所示,本实施例在全连接层中采用svd权值分解技术时,具体按照式(2)将原始的权值矩阵进行分解;

w≈u∑tvt(2)

其中w是原始fc层的权值矩阵,经过矩阵分解得到公式右边的三个矩阵u、vt以及∑t,其中u是u*t大小的矩阵,∑t是t*t大小的单位矩阵,vt是t*v大小的矩阵。

本实施例进一步通过调整参数t的值使得u,v远大于t,能够使得需要训练学习的fc参数大大减少。

本实施例中,步骤s3中具体将步骤s2提取到的特征向量训练softmax分类器,根据训练得到的softmax分类器检测待识别图像中的目标,实现最终的分类、识别。softmax回归模型是logistic回归模型对多分类问题的推广得到。

本实施例softmax分类器具体表示为:

其中,i=0,1,2,3..k-1,k表示数据集的k个类,ai是由输入的特征向量计算得到。

softmax分类器的结果相当于输入图像被分到每个标签的概率分布,且为单调递增函数,即输入值越大,则输出也越大,对应输入图像属于该标签的概率也越大,因而识别的效果就越明显。如图3所示,当对输入图像经过上述具有roi池化的双cnn网络处理后,得到图像目标归属于各类的概率p,最终通过概率的大小确定识别结果,其中由pmax对应的类为识别类。

本实施例中,步骤s3后还包括窗口调整步骤,窗口调整步骤对窗口大小进行调整,返回执行步骤s2以重新训练分类器,直至达到预设识别效果。若分类器的分类损失函数值较大,分类效果不好,本实施例进一步根据目标检测效果的反馈调整窗口边界大小,再重新进行分类器训练,直到分类效果明显为止,具体可采用回归方法对窗口边界进行不断微调实现。

本实施例进一步采用回归调参模块对网络结构进行回归调参,返回重新进行分类器训练,以进一步提高识别精度、识别效果。

上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。

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