对象检测技术是计算机视觉中的一个重要研究课题。行人检测作为对象检测的一个子问题, 由于在汽车安全、监控、机器人及人机交互等领域有着重要的应用前景, 成为对象检测中的一个研究热点[1-2]。由于其易受人的姿态变化、光照变化、复杂场景以及存在遮挡等问题的影响, 如何高效地进行行人检测成为一个很难的课题。
国内外很多学者对行人检测算法作了总结[3-4], 目前主流的检测方法主要是统计分类学习的方法。2005年Dalal等[5]提出了基于方向梯度直方图(Histogram of Oriented Gradient, HOG)的行人检测算法, 选用支持向量机(Support Vector Machine, SVM)作为分类器进行检测, 由于该特征能较好地刻画行人, 在当时的行人检测中取得了突破性的进展;后来又被应用于可变部件检测(Deformable Part Model, DPM)[6-7]中, 其主要思想是针对人姿态多变的问题, 建立根模型和部件模型, 根模型确定行人整体信息, 部件确定行人局部信息, 该算法在当时取得了很好的检测性能。Wu等[8]提出了一个CENTRIST(Census Transform histogram)特征, 然后分别训练两个分类器, 最后把两个分类器级联进行行人检测。由于单一特征具有自身一定的局限性, 所以陆续出现一些融合多种特征的方法。Wang等[9]用HOG与局部二进制模式(Local Binary Pattern, LBP)相结合, 应用积分图快速计算提高速度, 同时针对行人遮挡的问题进行了处理, 证实了LBP特征能够与HOG特征进行互补。Walk等[10]为了更好地结合时空信息, 利用局部部位间的颜色自相似性(Color Self-Simlarity, CSS)刻画人体的结构特征, 同时与HOG特征和光流特征结合起来, 大大提高了检测的精度。Dollar等[11]提出了积分通道特征(Integral Channel Features, ChnFtrs), 对HOG特征进行改进, 同时结合LUV颜色信息提高检测精度。文献[12]对ChnFtrs作了改进, 提出了聚合通道特征(Aggregated Channel Feature, ACF), 由于其计算简单、检测效率高等优点, 很多检测方法将ACF作为基准, 被广泛应用于实时系统中。ST(Sketch Tokens)特征是由Lim等[13]提出的一种描述轮廓信息的中级特征, 是一组用于表达图像中各种局部边缘信息的结构图, 作者将其和ACF特征结合, 验证了ST特征能够弥补ACF的缺陷, 从而提高了检测精度。
在统计分类学习的行人检测算法中, 分类器的构建与特征的计算对检测的结果起着关键的作用。由于现实环境的复杂性, 导致很难用唯一特征来有效地刻画行人。本文针对ACF算法在复杂场景下, 由于其特征的局限性导致误检较多的问题, 引入LBP特征与ST特征, 提出了基于多通道特征的改进算法。为了提高算法的检测速度, 首先对ACF特征、LBP特征和ST特征分别训练三种特征分类器, 然后利用三种分类器传递置信函数值的方式进行级联检测。结果表明:LBP特征能够刻画人体区域的纹理信息, ST能够刻画行人整体的轮廓信息, 二者与ACF特征形成有效的互补, 从而提高了检测精度。
1 相关理论基于统计学习的行人检测算法, 首先需要确定一种或一类能够有效刻画行人的特征, 利于这些特征选择合适的分类器进行学习和检测。一般的行人特征有梯度、轮廓、纹理和结构等, 分类器常采用SVM、Real AdaBoost等。
1.1 特征提取特征的好坏决定最后的检测准确度, 如何计算特征, 以及计算什么特征是行人检测技术中的关键。区分性强的特征, 有利于分类器分类。本文分析场景中的行人, 发现在行人区域除了梯度和特殊的颜色信息外还具有较强的纹理信息, 身体具有独特的轮廓信息。
1.1.1 聚合通道特征聚合通道特征, 简称ACF, 是对ChnFtrs的改进。它应用了梯度信息和颜色信息, 计算方法是:首先, 计算图像的LUV 3通道特征、梯度幅值特征以及6个梯度直方图特征。如图 1所示。然后, 在10个通道内求取特征, ChnFtrs是随机选择3万个矩形框, 对矩形框内的像素求和作为特征。而ACF算法是将图像分成若干个4×4固定大小的块, 每个块内特征点的均值作为聚合通道特征。
局部二值模式, 简称LBP, 是由Ojala等[14]提出的一种描述纹理的特征, 被广泛应用于人脸识别、表情识别等领域。原始的LBP特征是在3×3大小的窗口内, 以窗口中心像素为阈值, 将相邻的8个像素的灰度值与其比较, 若大于中心像素的灰度值, 则该像素点被标记为1;否则为0。如图 2所示。
对应的编码值为:
$LBP(P,R) = \sum\limits_{p = 0}^{P - 1} {s({I_p} - {I_c}){2^p}} $ |
其中:P为邻域像素点个数; R为半径; Ic和Ip分别为中心像素点和第p个邻域像素点的灰度值; s(x)为阶跃函数。s(x)的表达式为:
$s(x) = \left\{ \begin{array}{l} 1\\ 0 \end{array} \right.\begin{array}{*{20}{c}} {\begin{array}{*{20}{c}} ,&{x < 0} \end{array}}\\ {\begin{array}{*{20}{c}} ,&{x \ge 0} \end{array}} \end{array}$ |
二值化后所得到的环形0-1二值串中, 将0到1或者1到0的跳变次数不超过2次所对应的二进制称为等价模式(Uniform Pattern), 其余归并成一类, 称为混合模式。如01000000(2次跳变)为等价模式, 而11011011(4次跳变)为混合模式。当邻域有P个像素点时, 共有P(P-1) +3种模式, 其中混合模式有1种, 其余为等价模式。如, 当P=8时, 等价模式只有58种。Ojala等认为:在实际图像中, 等价模式占据了图像中绝大多数的信息, 使用等价模式可以对传统的LBP算子进行降维, 而且可以减少噪声的影响。因此, 等价模式能够更好地用于目标检测。
1.1.3 ST特征ST特征是一组用于表达图像中各种局部边缘轮廓信息的结构图。包括:直线、T-路口、角点、曲线、平行线等。该特征具有对噪声不敏感的特点, 有利于后期的分类。
假设有n幅图像, 相应的手绘轮廓的二值图像集为S, 在二值图像Si(i=1, 2, …, n)中, 以轮廓点为中心像素的图像块(大小为35×35) 记为sj(j=1, 2, …), 首先使用Daisy算法对每个图像块进行描述, 然后采用K-means算法进行聚类, 得到K种ST类, 其中K取150。部分ST类如图 3所示。
从n幅图像中采集每个ST对应的大小为35×35的图像块, 同时裁剪中心像素不是轮廓点的图像块作为第151类。首先,对这些图像块提取特征, 方法如下:
1) 第一类特征的提取。求取每个图像块的LUV通道、梯度幅值通道、4个方向的梯度方向通道。使用不同方差(分别为0、1.5和5) 的高斯滤波器对梯度幅值通道进行滤波, 并采用方差0和1.5的高斯滤波器平滑4个方向的梯度方向通道。最后, 将这14个梯度通道均采用方差为1的高斯滤波器平滑处理, 这样每个块共有35×35×14=17150个特征。
2) 第二类特征(自相关性特征)的提取。自相关特征能够有效地刻画每个图像块的相似度。将1) 中得到的每个图像块分成m×m个子图像块, 如:当m=5时, 子图像块的大小为7×7。对于通道k, 第i(i=1, 2, …, m×m)个子图像块内部的像素之和记为Sik, 定义第i和第j个子图像块之间的相似度特征fijk:
${f_{ijk}} = {S_{jk}} - {S_{ik}};i{\rm{,}}j = 1,2, \cdots ,m \times m$ |
因为fijk=-fjik且fiik=0, 所以当m=5时, 每个通道共有Cm×m2=300个特征。因此, 自相关特征共有300×14=4200个。
从而得到17150+4200=21350维特征向量。
其次, 随机挑选150000个轮廓图像块(每个ST类1000个)和160000个无轮廓的图像块(每个训练图像800个), 将它们以及对应的ST类(标签)放到随机森林里进行训练。训练采用深度为20的25棵树。
最后, 通过训练好的随机森林检测一个图像的所有像素点, 输出的值是每个ST类及背景的概率图。将这150个ST类对应的概率图以及背景概率图作为通道特征。
1.2 分类器Real AdaBoost分类器[15]是经典AdaBoost分类器的一个扩展, 经典AdaBoost分类器的每个弱分类器输出为+1或-1, 而Real AdaBoost的每个弱分类器输出的是一个实数值。
算法描述如下:
给定训练集:(x1, y1), (x2, y2), …, (xN, yN), 其中xi是长度为m的特征向量, 标签为yi∈{+1, -1}, i=1, 2, …, N。
训练集上的样本初始分布:D1(i)=1/N
确定弱分类器的数量T, 对式(1) ~(6) 进行循环T次, 得到T个弱分类器。
1) 将每一维特征的取值空间X划分为若干个不相交的子空间X1, X2, …, Xn。
2) 计算每个子空间上的权重:
$W_l^j = P({\mathit{\boldsymbol{x}}_i} \in {X_j},{y_i} = l) = \sum\limits_{{x_i} \in {X_j},{y_i} = l} {{D_t}(i)} $ |
其中:l∈{+1, -1}。
3) 计算每一个弱分类器的输出:
$\forall \mathit{\boldsymbol{x}} \in {X_j},h(\mathit{\boldsymbol{x}}) = \frac{1}{2}\ln (\frac{{W_{ + 1}^j + \varepsilon }}{{W_{ - 1}^j + \varepsilon }})$ |
其中:ε是一个很小的正常量, 用于平滑输出; h(x)实际上是一个分段线性函数, 在每个子空间上都有不同的输出值。
4) 计算归一化因子:
$Q = 2\sum\limits_j {\sqrt {W_{ + 1}^jW_{ - 1}^j} } $ |
5) 选择让Q最小的弱分类器h(x)作为该轮迭代的弱分类器:
${Q_t} = \min Q,{h_t} = \arg \min Q$ |
6) 更新样本的分布:
${D_{t + 1}}(i) = {D_t}\exp \left( { - {y_i}{h_t}({\mathit{\boldsymbol{x}}_i})} \right)$ |
最后的强分类器H为:
$H(\mathit{\boldsymbol{x}}) = {\rm{sign}}\left( {\sum\limits_{t = 1}^T {{h_t}(\mathit{\boldsymbol{x}}) - b} } \right)$ |
其中b是阈值。H函数的置信函数为:
$Conf(\mathit{\boldsymbol{x}}) = \sum\limits_{t = 1}^T {{h_t}(\mathit{\boldsymbol{x}})} $ | (1) |
由于ACF只计算了颜色和梯度特征, 误检率较高, 考虑到行人具有较强的纹理和轮廓特征, 本文引入了对噪声不敏感的LBP纹理特征以及ST轮廓特征进一步提高检测的准确度, 降低误检率。
2.1 特征计算方法LBP特征:首先将图像转换到LUV空间, 在L通道上计算LBP特征, 本文选择P=8, 并将跳变为0次的二值串归并为一类, 采用上文所述方法计算, 共有57种等价模式, 1种混合模式。将这些模式分别对应成58幅图, 作为通道特征。
映射成特征向量的方式跟ACF类似:将每个LBP直方图通道分成d×d大小的图像块, 最后串起来作为特征向量。
ST特征:首先使用已经训练好的随机森林对正负样本计算ST类及背景类概率图, 然后按照ACF的方式分大小为d×d的块, 求其平均值, 作为新的特征值, 并将其串起来形成特征向量。
得到上述的特征之后, 然后采用Real AdaBoost进行训练学习。将每一维特征的取值空间分为n=256个子空间。由于样本的特殊性, 所有样本的模板大小采用128×64。训练采用自举法(Bootstrapping)进行训练, 共训练4轮, 根据样本集的大小、特征数量的大小来确定每轮的弱分类器个数分别是32、128、512、2048, 树的深度取2。
2.2 检测流程具体检测流程如图 4所示。其中, ACF分类器、LBP分类器和ST分类器都是事先单独训练得到。检测大体思路是通过三种分类器级联对图像进行检测。
具体步骤为:
步骤1 ACF分类器检测采用的是软级联(Soft Cascade)[16], 算法伪代码如下:
d=0
For i=1 to T
d=d+h(x)
if d< b返回false, 移动窗口到下个位置检测;
else返回true, 保存当前候选区域矩形框的位置、大小和置信函数ConfACF
其中:置信函数计算公式如式(1);d是累加的置信函数;b是阈值, 取b=0。
为了去除重叠窗口, 减少后面分类器的计算量, 对其结果进行后处理, 后处理采用非极大值抑制原理。首先按照置信函数对所有候选区域进行降序排列, 若两个矩形框重叠, 则留下置信度高的矩形框。本文采用贪心策略, 若当前矩形框已经被抑制, 则不能再抑制比其置信度更低的矩形框。第i个矩形框记为Ri, area表示区域的面积, 计算两个矩形框的重叠度:
$overlap({R_i},{R_j}) = \frac{{area({R_i} \cap {R_j})}}{{area({R_i} \cup {R_j})}}$ |
设定阈值Th, 如果overlap(Ri, Rj)>Th, 则删除置信度低的矩形框Rj; 否则将其保留。
步骤2 通过ACF分类器的检测会得到一些带有置信函数的目标行人矩形框, 重新计算矩形框内的LBP特征, 通过LBP分类器对ACF的检测结果进行筛选, 同样也会输出一个置信函数ConfLBP, 计算:
${S_1} = Con{f_{{\rm{ACF}}}} + Con{f_{{\rm{LBP}}}}$ |
如果S1<b, 则删除当前的矩形框。
步骤3 通过ST分类器将保留下来的区域进行二次筛查, 并将得到置信函数ConfST和S1进行累加:
${S_2} = {S_1} + Con{f_{{\rm{ST}}}}$ |
若S2<b, 则删除当前的矩形框, 最后得到最终的结果。
3 实验与分析算法的运行环境:内存为8 GB, CPU为intel酷睿i7处理器, 主频为3.6 GHz。
实验采用的数据集:本文采用INRIA数据集, 该数据集包含城市、海滩、山等各种场景。该数据集的训练集具有正样本614张(包含2416个行人), 负样本为1218张;测试集的正样本为288张(包含行人1126个), 负样本453张。
3.1 评价指标二分类问题中, 根据分类器预测类别和真实类别可将样本划分为:真正例TP、假正例FP、真反例TN、假反例FP四种。查准率P和查全率R定义为:
$\begin{array}{l} P = \frac{{TP}}{{TP + FP}}\\ R = \frac{{TP}}{{TP + FN}} \end{array}$ |
本文评价算法指标采用:平均对数漏检率(Log-Average Miss Rate, LAMR)、MR-FPPI(Miss rate-False Positives Per Image)曲线和P-R曲线。
3.2 参数的选取为了让ACF检测漏检率达到最低, 本文对非极大值抑制中阈值T的取值进行了分析, 如图 5所示。由图可以看出, 阈值T取0.58~0.6时漏检率达到最低, 本文取T=0.6。
计算LBP与ST特征时候, 需要对图像进行分块, 本文分别选取了2×2、4×4、8×8、16×16分块大小计算平均漏检率, 分析分块大小对检测精度的影响, 如图 6所示。由图 6可知, LBP与ST均采用4×4的块大小时检测漏检率最低。
为了说明本文算法的检测效果, 表 1比较了本文算法及几个经典算法(HOG、HOG+LBP、ChnFtrs、ACF)的平均漏检率(LAMR)。
从表 1可以看出本文算法的LAMR要远低于几种经典算法的LAMR。仅采用一级LBP筛查得到的LAMR为14.95%, 经过二级筛查检测精度进一步提高, LAMR为13.32%;本文算法与原始的ACF比较, LAMR降低了3.73个百分点。实验结果表明, 通过结合多通道特征的检测算法可以提高行人检测的精度。
对应几种算法的MR-FPPI曲线如图 7(a)所示,从中可看出本文算法的MR-FPPI曲线位于其他几种算法的MR-FPPI曲线下方。图 7(b)为本文算法与ACF算法的P-R曲线图, 从中可看出ACF的P-R曲线完全被本文算法的P-R曲线“包围”。由此分析本文算法要明显优于ACF算法。
为了能够更好地说明在复杂场景下的检测情况, 图 8列举了四幅复杂场景下“单人”和“多人”检测结果。
从图 8可知:在复杂场景下, ACF在颜色多变的背景处容易发生误检, 本文利于LBP特征和ST特征对ACF特征进行互补, 能够一定程度上消除这些误检, 提高了算法的精度。
为了测试本文算法的检测速度, 对测试集的288幅图像进行检测, ACF的平均时间是0.14 s, ACF-LBP的平均时间是0.25 s, ACF-LBP-ST的平均时间是0.95 s, 由此可知, 本文算法主要时间开销来源于ST特征的计算。综合分析, 本文算法在时间开销的允许范围内, 有效地降低了检测的LAMR, 提高了算法精度。
4 结语ACF算法速度快, 在场景不复杂时具有较高的检测精度, 但是由于它只刻画了颜色和梯度信息, 在复杂场景下, 有时会出现误检较多的现象, 为了克服这一问题, 本文对ACF特征结合了LBP特征与ST特征对其进行补充。同时在检测中, 为了提高算法效率本文采用了级联思想, 利用累加置信函数作为判别方式。在INRIA数据集进行算法测试, 证实了LBP特征与ST特征能够有效弥补ACF算法对行人特征刻画不全的缺陷, 同时在此基础上本文算法采用了级联的方式提高效率, 但是与ACF算法比较, 检测速度还是相对有所下降, 同时在某些场景下仍然存在一些误检的情况, 遇到姿态变化较大的行人也存在漏检情况。未来完善的地方在于是否还有更好的特征可以对ACF算法进行补充, 在精度影响不大的情况下, 如何进一步提高算法的效率。
[1] | DOLLAR P, WOJEK C, SCHIELE B, et al. Pedestrian detection: an evaluation of the state of the art[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2012, 34(4): 743-761. DOI:10.1109/TPAMI.2011.155 |
[2] | 贾慧星, 张毓晋. 车辆辅助驾驶系统中基于计算机视觉的行人检测研究综述[J]. 自动化学报, 2007, 33(1): 84-90. (JIA H X, ZHANG Y J. A survey of computer vision based pedestrian detection for driver assistance system[J]. Acta Automatica Sinica, 2007, 33(1): 84-90.) |
[3] | BENENSON R, OMRAN M, HOSANG J, et al. Ten years of pedestrian detection, what have we learned?[EB/OL]. [2017-01-10]. https://arxiv.org/pdf/1411.4304.pdf. |
[4] | 苏松志, 李绍滋, 陈淑媛, 等. 行人检测技术综述[J]. 电子学报, 2012, 40(4): 814-820. (SU S Z, LIN S Z, CHEN S Y. A survey on pedestrian detection[J]. Acta Electronica Sinica, 2012, 40(4): 814-820.) |
[5] | DALAL N, TRIGGS B. Histograms of oriented gradients for human detection[C]//Proceedings of the 2005 IEEE Conference on Computer Vision and Pattern Recognition. Washington, DC: IEEE Computer Society, 2005, 1: 886-893. |
[6] | FELZENSZWALB P, MCALLESTER D, RAMANAN D. A discriminatively trained, multiscale, deformable part model[C]//Proceedings of the 2008 IEEE Conference on Computer Vision and Pattern Recognition. Washington, DC: IEEE Computer Society, 2008:1-8. |
[7] | FELZENSZWALB P, GIRSHICK R, MCALLESTER D, et al. Object detection with discriminatively trained part based models[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2010, 32(9): 1627-1645. DOI:10.1109/TPAMI.2009.167 |
[8] | WU J, GEYER C, REHG J M. Real-time human detection using contour cues[C]//Proceedings of the 2011 IEEE International Conference on Robotics and Automation. Piscataway, NJ: IEEE, 2011. |
[9] | WANG X, HAN T X, YAN S. An HOG-LBP human detector with partial occlusion handling[C]//Proceedings of the 2009 IEEE 12th International Conference on Computer Vision. Piscataway, NJ: IEEE, 2009: 32-39. |
[10] | WALK S, MAJER N, SCHINDLER K, et al. New features and insights for pedestrian detection[C]//Proceedings of the 2010 IEEE Conference on Computer Vision and Pattern Recognition. Washington, DC: IEEE Computer Society, 2010: 1030-1037. |
[11] | DOLLAR P, TU Z, PERONA P, et al. Integral Channel Features[C]//Proceedings of the 2009 British Machine Vision Conference. London: BMVC Press, 2009: 1-11. |
[12] | DOLLAR P, APPEL R, BELONGIE S, et al. Fast feature pyramids for object detection[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2014, 36(8): 1532-1545. DOI:10.1109/TPAMI.2014.2300479 |
[13] | LIM J J, ZITNICK C L, DOLLAR P. Sketch tokens: a learned mid-level representation for contour and object detection[C]//Proceedings of the 2013 IEEE Conference on Computer Vision and Pattern Recognition. Washington, DC: IEEE Computer Society, 2013: 3158-3165. |
[14] | OJALA T, PIETIKAINEN M, HARWOOD D. A comparative study of texture measures with classification based on feature distributions[J]. Pattern Recognition, 1996, 19(3): 51-59. |
[15] | SHAPIRE R E, SINGER Y. Improved boosting algorithms using confidence-rated predictions[J]. Machine Learning, 1999, 37(3): 297-336. DOI:10.1023/A:1007614523901 |
[16] | BOURDEV L, BRANDT J. Robust object detection via soft cascade[C]//CVPR 2005: Proceedings of the 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. Washington, DC: IEEE Computer Society, 2005, 2: 236-243. |