基于聚合通道特征及卷积神经网络的行人检测

2018-07-19 13:02陈光喜蔡天任王佳鑫
计算机工程与设计 2018年7期
关键词:候选框行人分类器

陈光喜,蔡天任+,黄 勇,王佳鑫

(1.桂林电子科技大学 广西图像图形智能处理重点实验室,广西 桂林 541004;2.广州大学 广东省数学教育软件工程技术研究中心,广东 广州 510006)

0 引 言

目前行人检测算法[1]大部分用的都是类似的流程。首先,提取图像出的候选框。这个阶段提取候选框的算法有滑动窗口策略、Selective Search[2]等,其中基于滑动窗口策略具有代表性的工作是Felzenszwalb P F等[3]提出的形变部位模型(deformable part model,DPM),这个方法能一定程度上克服部分遮挡的影响。其次,提取候选框集的描述特征过程。Piotr Dollár等提出积分通道特征(integral channel features,ICF),利用积分图技术对图像的各个特征通道进行快速的计算,并在文献[4]中进一步提出了聚合通道特征(aggregate channel features,ACF)。特征的提取还可以利用卷积神经网络[5,6](convolutional neural networks,CNN),通过特定的卷积核对特征进行多次卷积以获取候选框集的深度特征。最后,判断当前的候选框集合中是否包含行人,此阶段也被称为分类过程。基于深度学习——卷积神经网络算法的目标检测,典型的代表性的工作是R-CNN系列[7-9]的结合区域候选框(region proposal)和CNN分类的目标检测框架。文献[10]针对行人检测对Faster R-CNN做出改进,提出了区域候选框网络(region proposal network,RPN)与随机森林(boosted forest,BF)结合的思想(RPN+BF)[10]用于行人检测,并说明这个方法能有效地降低行人检测的误检率。受到了这个思想的启发,提出一种基于结合聚合通道特征以及卷积神经网络的行人检测算法。首先使用聚合通道特征以及级联AdaBoost分类器生成一个行人检测的检测器,这个检测器具有尽可能多的行人检测候选框,这能有效地提高进一步分类之后的行人检测召回率,然后使用卷积神经网络,提取检测器中候选框内的深度特征,再利用支持向量机(support vector machine,SVM)进行再一次分类,检测出图像中行人的位置。实验结果表明,在行人检测中综合表现上优于目前主流的行人检测算法,准确率与其它主流算法[3,4,10]相当,但召回率和F值较高,且能在GPU上并行计算,有效地减少了计算机计算的开销。

1 本文方法

为了尽可能多地检测复杂环境下的行人,本文采用聚合通道特征和卷积神经网络结合的方法来进行行人检测。使用ACF算法尽可能多的提取出行人检测候选框,训练级联AdaBoost分类器采用的正样本(Positives)、模糊的负样本(Hard negatives)以及负样本(Negatives)比例为2∶1∶3,采用这样的策略是为了通过此方法训练AdaBoost分类器的检测器能对每张图像提取出尽可能多的行人候选框,以提高召回图像中正样本的数量,达到提高召回率的目的。此外,各类样本比例的控制是为了ACF算法在使用该分类器时,不至于提取过多的包含负样本的候选框以影响行人检测的准确率,从而加大计算机所需的计算开销。

1.1 提取候选框

为了提高行人检测的召回率,采取融合LUV颜色通道、梯度幅值通道和梯度方向通道特征的方法,计算出图像的聚合通道特征,尽可能多提取出不同大小、尺寸的可能包含行人的候选框集。为了加速提取候选框过程,本文采用快速特征金字塔的方法来加速聚合通道特征的提取。

1.1.1 快速特征金字塔

快速特征金字塔定义请参考文献[11]。给定一幅输入图像I,s尺度下记为Is,维度记为hs×ws,R代表图像尺度变化的计算函数,即Is=R(I,s), 则在s尺度下图像的通道特征为Cs=Ω(Is)。 计算通道特征的通用方法是忽略原始尺度下的通道特征,根据当前图像的尺度来计算特征,即

Cs=Ω(Is)=Ω(R(I,s))

(1)

本文使用的是一种近似计算方法

Cs≈R(I,s)·s-λΩ

(2)

式中:λΩ是每个通道函数对应的系数。

定义特征fΩ(Is)为s尺度图像通道的加权和

(3)

式中:Cs=Ω(R(I,s))。

(4)

(5)

再根据式(3)、式(5)得出

μs=s-λΩ+ε

(6)

log2μs=2αΩ-λΩlog2s

(7)

这样就可得出λΩ。

建立快速特征金字塔的具体步骤为:

(1)首先创建图像的多尺度图像金字塔;

(3)每组的其它层则根据以下公式进行估计

Cs≈R(Cs′,s/s′)(s/s′)

(8)

1.1.2 候选框提取流程

行人候选框提取过程如图1所示。首先采用快速特征金字塔算法,对输入的图像构建图像金字塔,计算出聚合通道特征图,再对聚合通道特征图进行滑窗操作,获取各个不同的检测块,然后再使用预先训练好的AdaBoost分类器对这些检测块进行分类操作,得到尽可能多的可能包含行人的候选框的集合,然后再使用非极大值抑制算法(non-maximum suppression,NMS)[12]过滤掉大部分重叠的行人候选框,然后再对这些行人候选框进行统一化操作,使这些行人检测候选框的大小、尺寸成同一规格,以输入到卷积神经网络中进行后续的操作。

图1 提取候选框的流程

1.2 特征提取

1.2.1 Convolutional Neural Networks

CNN是深度学习的一个重要分支,是一种前馈人工神经网络的类型。卷积神经网络的网络结构有权值共享的机制,这使得它能在图像处理领域广泛的应用。本文算法采用卷积神经网络提取行人候选框的特征以及对行人进行分类。对于卷积神经网络,输入的是可能包含行人的候选框的集合,然后判断图像上是否存在行人,如果图像上存在行人,则进一步输出行人所在图像上的位置信息。

1.2.2 CNN结构[13]

本文训练和测试采用的卷积神经网络结构包含4个卷积层和4个max-pooling层,如图2所示。表1是该CNN网络的结构分析。

图2 卷积神经网络结构

TypeFiltersSize/StrideOutputConv1327×780×32Max-pooling-2×2/240×16Conv2485×540×16Max-pooling-2×2/120×8Conv3643×320×8Max-pooling-2×2/110×4 Conv4963×310×4Max-pooling-2×2/15×2Fc5--500Fc6--200SVM---

1.3 基于ACF和CNN的行人检测算法

1.3.1 算法描述

行人检测,实际上是一个二分类问题,需要判断的目标只有两类,即“行人”或者“非行人”。因此,本文结合传统方法以及深度学习的方法,提出两次分类的行人检测算法,旨在利用传统方法(使用的是ACF算法),进行第一步的预分类,提取出尽可能多的行人检测候选框,然后再利用深度学习算法(主要指的是CNN),对提取出的尽可能多的行人检测候选框进行特征提取,再利用预先训练好、只分类“行人”与“非行人”的SVM分类器,进行第二步较第一步更为精确的分类,最终检测出行人所在图像上的信息,尽可能多地召回正样本,提高检测行人的召回率。

1.3.2 算法步骤

流程如图3所示。假设待检测的图像是RGB图像,检测算法的具体步骤如下:

(1)构建图像的图像金字塔,并计算出图像的聚合通道特征图;

(2)对于聚合通道特征图进行滑窗操作,获取检测块;

(3)使用预先训练好的AdaBoost分类器对获取的检测块进行分类,得到尽可能多的行人检测候选框的集合;

(4)使用NMS过滤掉重叠的行人候选框;

(5)把这些行人候选框进行统一化操作再输入到卷积神经网络中,提取这些候选框的深度特征;

(6)然后使用预先训练好的SVM分类器对这些候选框集再进行一次分类,输出行人检测的结果。

图3 基于ACF和CNN的行人检测流程

2 实验设计、结果与分析

本文算法运行环境为64位的Ubuntu14.04LTS,内存为16 G,CPU为8核Inter(R) Core(TM) i7-4790@3.60 GHz,GPU为GeForce GTX 750Ti的台式机,程序使用的深度学习框架是caffe框架[14],运行环境为MatlabR2013a。训练ACF算法的AdaBoost分类器正样本和负样本在公开数据集Caltech[15]、INRIA数据集中选取,模糊的负样本在Caltech数据集中选取,训练SVM分类器的正样本和负样本均在Caltech数据集中选取,正负样本的大小均为128×64。实验中采用的评价指标为准确率(Precision,P),召回率(Recall,R),以及准确率和召回率的综合评价指标F值(F-score)。一般来说,准确率和召回率是相互矛盾的,而F值则综合了这两个指标的评价参数,当F值越高时则实验的检测性能更好。准确率与召回率的定义为

(9)

(10)

综合评价指标F值的定义为

(11)

2.1 不同算法行人检测结果分析

为了验证本文算法对于行人检测的检测性能较好,本实验对比了传统的经典算法ACF行人检测算法[1]和有效地处理了遮挡问题的可形变模型DPM检测算法[7],以及2016年提出的基于Faster R-CNN[14]在行人检测上做出改进的算法RPN+BF[7]算法。实验的第一阶段,为保证检测算法的鲁棒性,从Caltech数据集和INRIA数据集中选取包含正样本的图像来进行检测算法的测试实验,选取具有代表性的实验结果,各个检测算法的实验结果如图4(a)~图4(d)所示。

图4 各个检测算法实验结果

从图4(a)~图4(d)可以看出,以上算法都能较为出色地完成行人检测的任务。传统的ACF算法存在着漏检的情况,而且偶尔还会出现误检的情况,而RPN+BF算法检测行人的准确率是很高的,但仍然会出现较多漏检的情况。DPM算法在简单的场景下,则出现漏检的几率较小,准确率也较高,而对于复杂的场景下,如第4张图像所示,DPM算法不能表现出很好的召回率,可以看出,本文算法检测时,准确率确实有所下降,但是检测到的行人数则明显多于前3种算法检测到的行人数。综上所述,本文算法即便是在复杂场景,也可以尽可能的检测出正样本,但是召回率有所提高的同时准确率有所下降,则以上实验不足以说明本文算法性能的优异。因此,本文从Caltech数据集和INRIA数据集中共选取600幅图像,其中行人数目为967,以此来进一步进行算法性能的分析。

2.2 不同算法行人检测性能分析

表2即为4种算法的参数指标,准确率、召回率以及F值的对比数据。从实验数据可以看出,本文算法对于行人检测任务的准确率确实不及ACF方法、RPN+BF方法以及DPM方法,尤其是RPN+BF的方法,可以看出这个方法的准确率确实很高,然而本文算法表现出来的召回率却远远高于前3种算法,这是由于本文算法在第一阶段利用聚合通道特征尽可能提取可能包含行人的候选框,使得第二阶段的分类过程筛选的到更多的行人,从而提升召回率。除此以外,本文算法的平均检测时间虽然不及ACF算法速度,但是优于另外的两种算法且准确率与召回率的综合评价指标F值也高于前三者行人检测算法,因此可认为本文算法的综合性能最佳。

表2 4种算法性能的比较

3 结束语

本文提出了一个基于传统方法——聚合通道特征算法和深度学习方法——卷积神经网络的行人检测方案。利用聚合通道特征算法尽可能的产生包含行人的候选框,再把这些行人候选框输入到卷积神经网络中提取深度特征,进而通过预先训练好的支持向量机进行较为准确的分类,从而检测到图像中的行人信息,这样做的目的是在保证准确率不下降过多的情况下,大幅度的提升行人检测召回率,而且可以在GPU上并行计算,可减小计算机的计算开销。如何在提高召回率的情况下,进一步提高检测速度和检测的准确率将是我们下一步研究的方向。

猜你喜欢
候选框行人分类器
重定位非极大值抑制算法
面向自然场景文本检测的改进NMS算法
基于Soft-NMS的候选框去冗余加速器设计*
毒舌出没,行人避让
路不为寻找者而设
一种针对特定目标的提议算法
我是行人
加权空-谱与最近邻分类器相结合的高光谱图像分类
结合模糊(C+P)均值聚类和SP-V-支持向量机的TSK分类器
基于LLE降维和BP_Adaboost分类器的GIS局部放电模式识别