一种基于深度学习的行人检测方法与流程

文档序号:15272850发布日期:2018-08-28 22:38阅读:230来源:国知局
本发明涉及一种行人检测方法,尤其是一种基于深度学习的行人检测方法,属于图像处理
技术领域

背景技术
:据了解,行人检测是计算机视觉领域的一个重要研究课题。行人检测的目的是为了准确识别和定位行人在图像或视频序列中的位置。目前,行人检测在车辆辅助驾驶系统、智能视频监控和智能交通中得到了广泛的应用。传统的行人检测方法也被称为手工设计的模型,是基于底层特征来表示行人的特征,例如hog特征、haar特征、lbp特征、luv特征、icf特征、squareschnftrs特征以及ldcf特征等。目前多利用支持向量机或决策树作为分类器来解决行人检测的问题。然而,传统的行人检测方法需要人工设计的特征较为复杂,需要大量的专业知识并且在鲁棒性方面存在一定的局限性。随着深度学习的发展,基于深度学习的行人检测方法在不考虑计算成本的情况下取得了巨大的成功。一般来说,基于深度学习的行人检测方法可以分为两类:一类是基于区域建议的行人检测方法,例如r-cnn方法、spp-net方法、fasterr-cnn方法以及r-fcn方法;另一类是不基于区域建议的行人检测方法,例如yolo方法以及ssd方法。虽然不基于区域建议的行人检测方法在计算速度上有一些优势,但是这种方法不能获得很高的精度。因此,对于大多数基于深度学习的行人检测方法来说,往往采用区域建议来生成行人候选者的策略。另外,随着深度学习在行人检测领域的广泛应用,卷积神经网络被广泛地应用于行人检测,例如alexnet网络、vgg网络、zf网络、fast-rcnn网络、faster-rcnn网络、r-cnn网络、ms-cnn网络以及r-fcn网络。在r-cnn、fast-rcnn以及fasterr-cnn这一系列的方法中,区域提议策略被用来提高目标检测准确率以及计算速度。对于ms-cnn方法,一个多尺度的区域提议网络被用来提高检测小目标的准确性。对于r-fcn方法,使用全卷积网络和区域提议网络相结合来进行行人检测。与faster-rcnn方法相比,r-fcn方法大大提高了计算速度并且轻微提高了行人检测的准确率。虽然基于深度学习的目标检测技术发展十分迅速,但无论是在准确率还是速度方面,行人检测的方法仍有很大的改进空间。技术实现要素:本发明的目的在于:针对现有技术存在的缺陷,提出一种新的基于学习深度的行人检测方法,用于提高行人检测的准确性和快速性。为了达到以上目的,本发明提供了一种基于深度学习的行人检测方法,包括以下步骤:第一步、将待检测的视频图像输入提取网络生成特征图;第二步、将提取网络生成的特征图输入区域提议网络,再利用区域提议方法检测最有可能是行人的区域,生成行人候选者以及行人候选者对应的分数;第三步、利用训练好的决策树算法确定行人候选者是否为真正的行人。本发明首先将视频图像输入到设计好的行人检测模型中,然后利用基于深度学习的pvanet网络生成特征图,接着利用区域提议网络生成行人候选者和对应的分数,最后利用训练好的决策树算法对生成的行人候选者进行分类以找出真正的行人。优选地,所述提取网络采用pvanet网络,所述pvanet网络有十四层,其中前三层为卷积层,中间为两组起始层,每组起始层包含四个结构相同的起始层,最后三层为全连接层;所述全连接层的输出为区域提议网络以及决策树分类器的输入。进一步优选地,所有起始层的结构都是相同的,单个起始层由第一、第二、第三分支组成,所述第一分支由一个1×1的卷积层组成,所述第二分支由一个1×1的卷积层和一个3×3的卷积层组成,所述第三分支由一个1×1的卷积层和两个3×3的卷积层组成。再进一步优选地,单个起始层生成特征图的具体方法如下:上一层产生的特征图被分别传入起始层的第一、第二、第三等三个分支,然后由这三个分支输出的特征图被传送至一连接层,最后进入下一层,成为下一层的输入特征图,这样通过起始层更为准确地获得小尺度的目标。上一层是单个起始层或者前面的卷积层,下一层是单个起始层或者后面的全连接层。优选地,在所述区域提议网络中,对于pvanet网络产生的输入特征图,将一个m*m大小的滑动窗口用到每一幅特征图上生成多个全连接的特征,每个全连接的特征包含两个分支,其中一个分支是scs层,另一个分支是cds层。单个滑动窗口能够同时预测不同尺度和不同纵横比的区域提案。例如,滑动窗口预测四个尺度和四个长宽比的区域提案时,会产生4*4个区域提案。也就是说,滑动窗口在cds层产生4*4*4个输出,在scs层产生2*4*4个输出。所述cds层用来生成行人候选者,包括行人候选者(即预测目标)中心点的坐标以及该行人候选者(即预测目标)的宽度和高度;所述scs层用来生成行人候选者对应的分数,即预测目标的相应分数,预测目标的相应分数为预测目标是行人的估计概率以及不是行人的概率;由cds层生成的行人候选者和由scs层生成的行人候选者对应的分数被输送到决策树分类器进行训练和检测。为了在不影响行人检测精度的情况下降低计算成本,在训练过程中,由pvanet网络产生的卷积特征被用作区域提议网络以及检测网络的输入。本发明的决策树采用树型结构,其中每个非叶子节点表示对一个特征属性的判断,每个分支表示对一个特征属性判断的结果,每个叶子节点代表了一个类别。为了进行决策,首先要从根节点开始对待分类目标的特征属性进行测试,然后根据测试结果选择相应的分支,最后重复该过程直到到达一个叶子节点为止。到达的叶子节点的类别就是预测的要分类的目标的类别。虽然决策树算法的变种有很多,例如id3,c5.0以及cart算法,但它们的基本思想都是相同的,并且使用决策树算法进行分类得到的准确率是很高的。决策树分类器的基本思想是在同一个训练集上训练多个弱分类器,然后将这些弱分类器组合成最终的强分类器。这些弱分类器各有一个权值参数β,也就是分类器正确分类的样本数的比例。因此需要设置一个阈值来确定样本是否被正确分类。在对决策树的训练过程中将会进行多次迭代,如果一次迭代过程中某个弱分类器的分类准确率很低,也就意味着该弱分类器的性能很差,那么就会减小该弱分类器的参数。具体的,采用realboost算法训练决策树的方法如下:①给定训练集,(x1,y1),…(xi,yi),…(xn,yn)其中,yi是特征向量,且i=1,…,n;②在初始阶段,对弱分类器进行编号并将编号记为j,根据(1)式确定每个弱分类器的权重,(1)其中,wj为弱分类器的权重,h为弱分类器的个数;③对弱分类器进行n次训练得到训练数据,对训练进行编号并将编号记为n,然后根据(2)式获得一概率估计,(2)其中,pn(y)为弱分类器的概率估计值,n为弱分类器的训练次数;④根据(3)式计算弱分类器的真实值分布,(3)其中,fn(y)为弱分类器的真实值,r为实数集;⑤在训练过程中,根据(4)式获得弱分类器的权重,(4)⑥在每次迭代之后,所有弱分类器的权重被重新归一化,使得所有弱分类器的总权重等于1,最终得到强分类器,根据(5)式获得强分类器,(5)其中,n为弱分类器的训练次数。确定真正行人的方法如下:首先利用训练好的决策树算法对生成的行人候选者进行分类,然后根据行人候选者分类预先设定阈值,当特征图中的行人候选者是行人的概率小于预先设定的阈值时,则该行人候选者分类是真正的行人,否则该分类不是真正的行人。本发明的优点是计算简单、快速,能够显著提高行人检测的准确率。附图说明下面结合附图对本发明作进一步的说明。图1为本发明的网络模型图。图2为本发明中pvanet网络的结构模型图。图3为本发明中pvanet网络起始层的结构模型图。图4为本发明中区域提议网络的结构模型图。图5(a)为本发明中caltech行人检测数据集上的部分训练样本示例图。图5(b)为本发明中caltech行人检测数据集上的部分检测样本示例图。图6(a)为本发明中inria行人检测数据集上的部分训练样本示例图。图6(b)为本发明中inria行人检测数据集上的部分检测样本示例图。图7(a)为本发明中行人检测模型在caltech行人检测数据集上进行检测的部分样本示例图。图7(b)为本发明中行人检测模型在caltech行人检测数据集上进行检测的部分结果示例图。图8(a)为本发明中行人检测模型在inria行人检测数据集上进行检测的部分样本示例图。图8(b)为本发明中行人检测模型在inria行人检测数据集上进行检测的部分结果示例图。具体实施方式实施例一本实施例提供了一种基于深度学习的行人检测方法,该方法的设计思路为:将视频图像输入到设计好的行人检测模型(模型结构见图1)中,利用基于深度学习的pvanet网络生成特征图,再将生成的特征图输入区域提议网络利用区域提议方法生成行人候选者以及行人候选者对应的分数,最后利用训练好的决策树算法对生成的行人候选者进行分类以找出真正的行人。pvanet网络共有十四层,其中前三层为卷积层,中间为两组起始层,每组起始层包含四个结构相同的起始层,最后三层为全连接层(见表1)。如图2所示,视频图像进入pvanet网络后,依次经过前三层卷积层,中间八层起始层和后三层全连接层的处理生成输出的特征图,特征图由全连接层传入区域提议网络和决策树分类器,全连接层的输出为区域提议网络以及决策树分类器的输入。所有起始层的结构都是相同的。表1.优化过的pvanet网络的结构卷积层4*4_32卷积层3*3_32卷积层3*3_32第一组起始层1*1_96-1*1_16_3*3_64-1*1_16_3*3_32_3*3_32第一组起始层1*1_96-1*1_16_3*3_64-1*1_16_3*3_32_3*3_32第一组起始层1*1_96-1*1_16_3*3_64-1*1_16_3*3_32_3*3_32第一组起始层1*1_96-1*1_16_3*3_64-1*1_16_3*3_32_3*3_32第二组起始层1*1_128-1*1_32_3*3_96-1*1_16_3*3_32_3*3_32第二组起始层1*1_128-1*1_32_3*3_96-1*1_16_3*3_32_3*3_32第二组起始层1*1_128-1*1_32_3*3_96-1*1_16_3*3_32_3*3_32第二组起始层1*1_128-1*1_32_3*3_96-1*1_16_3*3_32_3*3_32全连接层4096全连接层4096全连接层1000表1列出了优化过的pvanet网络的结构。在整个网络中,l*l_m表示该层的卷积核是l*l的并且将输出m个特征图。在起始层中,使用“-”表示起始层中不同的分支,最后全连接层的参数表示全连接层中包含的神经元的数目。如图3所示,单个起始层由第一、第二、第三分支组成,第一分支由一个1×1的卷积层组成,第二分支由一个1×1的卷积层和一个3×3的卷积层组成,第三分支由一个1×1的卷积层和两个3×3的卷积层组成。上一层产生的特征图被分别传入起始层的三个分支,然后由这三个分支输出的特征图被传送至一连接层,该起始层输出的特征图最后进入下一层,成为下一层的输入特征图。上一层可以是单个起始层也可以是前面的卷积层,下一层可以是单个起始层也可以后面的全连接层。由pvanet网络产生的卷积特征被用作区域提议网络以及检测网络的输入。如图4所示,在区域提议网络中,对于pvanet网络产生的输入特征图,将一个m*m大小的滑动窗口用到每一幅特征图上生成多个全连接的特征,每个全连接的特征包含两个分支,其中一个分支是scs层,另一个分支是cds层。单个滑动窗口能够同时预测不同尺度和不同纵横比的区域提案。cds层用来生成即预测目标中心点的坐标以及该预测目标的宽度和高度,scs层用来生成预测目标的相应分数,即预测目标是行人的估计概率以及不是行人的概率。最后由cds层和由scs层生成的输出被传送到决策树分类器进行训练和检测。在决策树分类器中,训练决策树的方法如下:给定训练集(x1,y1),…(xi,yi),…(xn,yn),,其中yi是特征向量,且i=1,…,n。在初始阶段,对弱分类器进行编号并将编号记为j,根据(1)式即确定每个弱分类器的权重,其中wj为弱分类器的权重,h为弱分类器的个数。在训练过程中,先对弱分类器进行n次训练得到训练数据,在训练开始前对训练进行编号并将编号记为n,再根据(2)式即获得一概率估计,其中pn(y)为弱分类器的概率估计值,n为弱分类器的训练次数,然后根据(3)式即计算弱分类器的真实值分布,其中fn(y)为弱分类器的真实值,r为实数集,最后根据(4)式即获得弱分类器的权重。在每次迭代之后,所有弱分类器的权重被重新归一化,使得所有弱分类器的总权重等于1,最终得到强分类器。决策树训练好之后,利用训练好的决策树算法对生成的行人候选者进行分类,,然后根据行人候选者分类预先设定阈值,当特征图中的行人候选者是行人的概率小于预先设定的阈值时,则该行人候选者分类是真正的行人,否则该分类不是真正的行人。对本实施例基于深度学习的行人检测模型进行实验,以评估其性能。具体评估方法如下:步骤a、介绍用于评估算法性能的数据集。该实验采用两个行人检测数据集,分别为caltech行人检测数据集和inria行人检测数据集。其中,caltech行人检测数据集是目前规模比较大的一个的行人数据集,该数据集来源于采用车载摄像头拍摄的一个长达十小时的视频,在该视频中有250000帧被标注,整个视频一共包括350000个矩形框以及2300个不同的行人,并且该数据集还对这些矩形框之间的遮挡关系进行了标注。这个数据集包括了来自整个视频的11个小视频,每个视频的大小都在1g左右,其中的前六个视频都已经进行了标注,这六个视频共包括192000个行人,6100个正样本以及61000个负样本,被用作对行人检测网络进行训练;后五个视频没有对应的标注信息,这五个视频共包括155000个行人,56000个正样本以及65000个负样本,被用来检测行人检测方法的效果。图5(a)和图5(b)给出了加州理工学院的行人检测数据集上的一些图片的例子,其中图5(a)展示的是caltech行人检测数据集的部分训练图像,图5(b)展示的是caltech行人检测数据集的部分测试图像。从图5(a)和图5(b)中可以看出,caltech行人检测数据集中的视频帧非常模糊,因此在caltech行人检测数据集上进行实验是一个具有挑战性的任务。inria行人检测数据集是最常用的静态行人检测数据库,该数据集中包含原始图片以及对应的标签。inria数据集提供了两种训练和测试样本,一种是图片分辨率不同的训练和测试样本,另一种是图片分辨率相同的训练和测试样本。本实施例的实验使用图片分辨率不同的样本,其中训练集包括614个正样本和1218个负样本,测试集包括288个正样本和453个负样本。图6(a)和图6(b)给出了inria数据集上一些图片的例子,图6(a)是iniria数据集的部分训练图片,包括6个正样本和6个负样本,图6(b)是iniria数据集的部分测试图片,包括6个正样本和6个负样本。从图6(a)和图6(b)可以看出,inria数据集中的视频清晰度是比较高的。步骤b、针对本实施例行人检测模型给出了一种基于深度学习的行人检测方法。首先,采用优化过的pvanet网络提取移动行人的特征图(优化的pvanet网络的结构如表1所示)。视频图像经过pvanet网络会生成512个特征图,这些特征图中前128个特征图被用于区域提议网络生成行人候选者以及对应的分数。其次,利用区域提议网络生成行人候选者以及对应的分数。区域提议网络中使用五种尺度与五种长宽比,对每个滑动窗口产生25个区域建议。对于每帧图片我们只取得分最高的200个区域建议送入决策树分类器中进行训练决策树。最后,训练决策树分类器并利用训练好的决策树算法对生成的行人候选者进行分类以找出真正的行人。对决策树分类器训练的目的是为了获得一棵简洁并能够很好分类行人的决策树。在训练决策树的最初始阶段,将所有的正样本、随机取样且与正样本数量相同的负样本以及一定比例的难以分类的样本作为训练集,整个训练共分为六个阶段,将决策树分类器的阈值设置为0.7。在训练决策树的第一阶段包括64棵树,之后每个阶段树的数量翻倍,并且在旧训练集中加入一定比例、难以分类的负样本构成新的训练集,最终生成一个具有2048个树的决策树分类器,这个决策树分类器便是最终使用的强分类器。步骤c、通过对比实验,探讨本实施例所提算法的性能。在实验过程中,将决策树分类器的阈值设置为0.7,对本实施例的行人检测模型进行实验。实验过后,针对行人检测模型的实验结果在时间性能与缺失率上与一些最先进的方法进行比较,其中包括compact-deep方法、ccf方法以及ldcf方法。最终的比较结果在表2中显示。从最终的比较结果中可以发现,本实施例的方法相对于这些最先进的方法来说不仅在单帧图片的处理上占据优势并且在错失率上也小于这些方法。表2.在时间性能与错失率上的比较结果方法时间/每张图片(秒)错失率%pvanet+rpn+bf[本实施例方法]0.489compact-deep0.512ldcf0.625ccf1317另外,图7(a)和图7(b)展示了在caltech行人检测数据集上进行行人检测的部份样本图片。图7(a)是caltech数据集上的原始图片,图7(b)是这些原始图片在本实施例的行人检测模型上对应的检测结果。从图7(a)和图7(b)可以看出,尽管caltech行人检测数据集上的图片是很模糊的,但是本实施例的行人检测模型仍能获得很好的行人检测的结果。本实施例所提出的行人检测模型在caltech行人检测数据集上进行了训练并在inria数据集上进行测试来验证模型的有效性。图8(a)和图8(b)展示了在inria行人检测数据集上进行行人检测的部份样本图片。图8(a)是inria数据集上的原始图片,图8(b)是这些原始图片在本实施例的行人检测模型上对应的检测结果。从图8(a)和图8(b)可以看出,尽管遮挡的问题并没有得到解决,但本实施例的模型在inria行人检测数据集上获得了很好的行人检测的结果。总之,通过在inria及caltech行人检测数据集的实验表明,本实施例提出的方案是确实有效的,能显著提高行人检测的准确性和快速性。除上述实施例外,本发明还可以有其他实施方式。凡采用等同替换或等效变换形成的技术方案,均落在本发明要求的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1