基于卷积神经网络的非刚性多尺度物体检测方法与流程

文档序号:13983299阅读:457来源:国知局
基于卷积神经网络的非刚性多尺度物体检测方法与流程

本发明涉及物体实时检测的技术领域,具体涉及一种基于卷积神经网络的非刚性多尺度物体的检测方法。



背景技术:

如图3所示,神经元是模仿生物神经构造的数学模型,不同的输入(如不同的像素点)通过加权(如卷积神经网络中的卷积运算)求和,在节点处同过非线性函数(激活函数)的变换得到该神经节点的输出。如图4所示,众多神经节点可形成神经层,众多神经层可搭建神经网络。神经网络由于输入通过多层非线性变换(非线性函数的嵌套),表现出对训练数据强大的拟合能力(学习能力),从而表现出良好的预测能力。

对于神经网络模型,有训练和测试两个阶段。训练是通过输入训练图片,得到的输出与标准输出(标注)对比,其误差是通过损失函数体现,通过优化参数来减小损失函数。测试则是对训练好的模型性能的评估,通过测试结果可以评估出模型的泛化能力。

在检测任务中,网络模型和三个主要板块:区域提名(选取目标可能区域,往往通过滑窗和选择性搜索),但常规方法中滑窗其实是一种穷举法,过程存在很多冗余,选择性搜索则需要耗费大量时间。在端到端的检测(定位、识别一体化)中采取了网格划分,每个区域各自判定是否为目标,然后综合得出最后结果。



技术实现要素:

本发明要解决技术问题为:在移动设备和小体积设备的目标实时检测中,由于不同场景中非刚性多尺度目标形态、角度多变,传统检测方法普适性和鲁棒性不高。在采用神经网络和划分网格区域搜索的方案中,一定程度上解决了普适性和鲁棒性的问题,同时又保证了检测的实时性。

本发明解决上述技术问题采用的技术方案为:一种基于卷积神经网络的非刚性多尺度物体(如红外行人图像)检测方法,构造具有强大特征提取和学习能力的神经网络检测系统,使得在数据集中学习到非刚性物体不同尺度上的抽象特征;再将程序移植到开发平台,通过硬件设备输入图像并进行目标的实时检测。

进一步地,具有合适且准确标定的数据集(监督学习),由于神经网络训练数据集中缺乏针对较小红外目标的训练数据集,且现阶段神经网络在检测较小目标方面存在瓶颈,通过在网络上寻找、筛选非标配的数据集,编写脚本把数据集标注转换为网络可用的数据,在此基础上,通过拍摄和标注,扩充了数据,形成了可训练的数据集。

进一步地,具有强大特征提取能力和学习能力的模型,由于非刚性目标(如:人)在不同角度姿态上差异比较大,且目标存在不同尺度,非单一场景下传统方法性能受到限制,该方法采用了具有强大特征提取能力的分类模型——深度网络,该模型将不同的网络层之间密集连接,使得各层特征利用充分。

进一步地,在硬件平台上能够实现实时检测。通过提取出非刚性目标的特征,再由神经网络中的回归层和分类层对侯选框进行目标识别和位置估计,这一端到端的过程同时完成目标的识别和定位,通过区域网格划分并对每个区域实施上述操作,简化了搜过可能目标的过程,一次性完成了目标与非目标的判定,从而保证了检测的实时性,最后的非极大值抑制去处了冗余的检测输出。

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

(1)本发明特点是端到端的网络结构保证了检测的实时性。与一般模型相比,采用了较多的均值池化缩减运算数据,运用稠密连接的思想,在不增加网络深度的情况下来提高网络网络的性能,同时该神经网络的框架简洁,具有高的可移植性,使得训练好的网络能直接运用到成像系统目标检测上,实现检测技术的落地,实现了小体积设备具有智能性的检测。

(2)本发明在训练数据上采用了增广的方法,同时把数据库中的正样本(目标充满整张图片)当做目标检测的训练数据,进一步针对性地学习目标本身的特征。

附图说明

图1为本发明方法网络训练过程实现的流程图;

图2为本发明方法网络检测过程实现的流程图;

图3为神经网络中神经元节点的数学模型;

图4神经网络的基本模型;

图5为稠密连接模型;

图6为网格划分输入图像示意图;

图7示意经过特征提取后网络分类识别出目标所在的网格区域;

图8表示对目标所在的区域运用侯选框进行回归;

图9为经过非极大值抑制冗余检测框后的最终输出;

图10为训练过程中损失函数变化图表。

具体实施方式

下面结合附图以及具体实施方式进一步说明本发明。

如图1所示,本发明一种基于卷积神经网络的非刚性多尺度物体检测方法,该方法具体步骤如下:

步骤1、带标注的图像;

图1表示整个训练过程。将带有标注的训练数据(待标注的图像)输入神经网络,通过前向传播得到输出结果。将输出结果和标注进行比较得到误差(用损失函数衡量,训练的目标是减小损失函数),通过神经网络的误差梯度反向传播更新参数,如此循环,使损失函数减小和收敛。

在训练的过程中,除了运用传统的平移、多尺度、调整图像对比度方法之外,还用了其他数据增广的方式来增加的用于训练的图像数据,如:

(1)将标注的数据集中的目标裁剪出来,成为标注框为整幅图大小的新目标。

(2)将裁剪出来的目标图像随机组合放置在新的背景图像上,成为新的训练样本。

步骤2、用7×7网格划分成不同区域;

除了对输入图像进行7×7的网格划分,可以根据具体任务,选择划分大小。比如在红外行人检测中针对小较小目标,采用上述方法。如果是检测水下大体积的鱼,可以对神经网络中靠后的特征层进行网格划分(因为在网络中,前面的卷积层提取出的更多是边沿和轮廓特征,后面的则是相对抽象的语义特征),把特征层的信息导入到网络末端的检测部分。

划分尺度和特征层的选取可以根据具体任务而机动选取,以特征参数少和尽量不增加网络的计算量为前提。

步骤3、对整幅图像进行特征提取;

特征提取由神经网络中的卷积层完成。神经网络卷积层的卷积核参数现被初始化,在训练的过程中,通过不断调节参数,减小损失函数,最后得到训练好的网络模型(此时的参数通过训练和改变,能够使得卷积操作提取图像特征,然后前向传播,检测出目标)。数据增广的作用就是增加训练样本,使得网络在训练过程中能够学习到目标更抽象、更普遍的特征。

步骤4、对每个区域运用候选框进行检测;

候选框的作用是对检测目标有个先验判定。在具体检测任务中,采用选取的几个固定尺寸的框对每个局部区域进行定位,然后在后续的步骤中合并和去除冗余,来得到最终检测结果。k均值聚类则是在训练数据中,根据标注信息来得出候选框的大小。候选框的个数可根据要求而定,数量越多会导致速度下降,精度提升。可以利用k-means选取候选框大小。

步骤5、候选框的分类和回归;

分类和回归由神经网络模型中常用的softmax(分类层)和bboxregressor(边框回归层)完成。

步骤6、非极大值抑制;

非极大值抑制根据设定阈值,选取阈值以上置信度的边框和概率的类别,去掉其他边框和类别,得到最后的位置信息和类别信息。

步骤7、识别定位出目标,根据标签求出检测误差;

检测过程便运用已经训练好参数的神经网络模型,得到最后输出,如图2所示。在训练过程中,则通过输出和标注对比,误差逐层反向传播,运用梯度下降法更新参数,使得模型的输出逼近标注(减小损失函数值),完成训练学习的过程,如图1所示。

本发明是基于卷积神经网络特征提取的方法进行中小目标的非刚性物体(如行人)检测,即通过搭建卷积神经网络检测模型,导入图像数据库进行训练优化模型参数,达到良好的检测效果。首先设计深度网络,并以具有一定代表性的红外行人数据集cvc-09,cvc-14(有约20x30像素的小目标,也有较近距离的大目标行人),以及自己标注的小目标行人数据进行目标检测的深度网络学习训练,然后基于硬件平台设计不同的检测模型,并加以评估。所设计网络,运用7x7网格划分并针对每个格子运用多个候选框,完成目标区域提名,通过分类识别和位置回归分析实现行人目标检测。该设计中运用神经网络,增加了检测模型的特征提取能力。鉴于网格划分的思想,实现了检测的实时性,运用不同目标尺度的数据集和多尺度训练,增多侯选框数量,最终增强小目标的检测能力。

通过神经网络不同层特征图的级联,增强网络的学习能力,同时采用多层网络的模型方式,在保证具有较多的网络层数下有较少的参数,方便了训练,简化了计算,利于在体积小、计算性不高的平台下运用。

网络层与层之间的稠密连接与端到端技术的结合,同时用均值聚类的方法选取了多个(如行人检测中6个侯选框)侯选框,将检测器连接在该网络末尾或者过渡层出,根据使用一个或者多个检测器。稠密连接如图5所示。

图5中,每层以之前层的输出为输入,对于有l层的传统网络,一共有l个连接,对于多层网络,则有l(l+1)/2。上图中,h4层可以直接用到原始输入信息x0,同时还用到了之前层对x0处理后的信息,这样能够最大化信息的流动。反向传播过程中,x0的梯度信息包含了损失函数直接对x0的导数,有利于梯度传播,由于稠密连接和权值共享,使得在非刚性物体(如行人)检测中,有足够深的网络(超过300层),而足够少的参数(存储大小仅60mb左右)。

将网格划分的提名技术、数据集与之结合,则可以在检测上面得到很好的效果,并且根据具体的任务不同,可在多层网络不同的过渡层上连接检测器,在多尺度的基础下综合检测结果。也可用在单一出连接检测器(如在末尾连接用于红外行人检测,)则可取得较好的结果,流程如图6-9所示,对图像进行网格划分,在通过提取特征后,对每个区域的图像运用候选框分类和定位,最后融合并去除冗余,得到检测目标的位置和类别信息。

本发明采用的神经网络框架为darknet,硬件开发平台采用了gtx1080加速网络训练,硬件使用平台为nvidiajetsontx1。

首先安装配置cuda和cudnn加速库和darknet。在此基础上,使用python编写脚本将cvcx系列的标注数据转换,用lablimg标注扩充训练样本。

通过修改网络结果,评估网络侯选框,在网络结构配置中使用route层引出detector,采用平移、旋转等方式增广训练数据,选择合适的批数据量和数据导入次数来控制训练过程中数据的吞吐,选择合适的学习率和权值衰减率等来保证优化过程的收敛,并防止收敛到局部最优解,gpu上迭代训练使损失函数降低,部分过程如图10所示。

最后,评估选择出最合适的训练权值,移植到使用平台即可。

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