Print

发布时间: 2018-08-16
摘要点击次数:
全文下载次数:
DOI: 10.11834/jig.170517
2018 | Volume 23 | Number 8




    图像分析和识别    




  <<上一篇 




  下一篇>> 





改进特征与GPU加速的行人检测
expand article info 齐美彬, 李佶, 蒋建国, 王慈淳
合肥工业大学计算机与信息学院, 合肥 230009

摘要

目的 目前行人检测存在特征维度高、检测耗时的问题,行人图像易受到光照、背景、遮挡等影响,给实际行人检测造成了一定困难。为了提高检测准确性,减少检测耗时,针对以上问题,提出一种改进特征与GPU(graphic processing unit)加速的行人检测算法。方法 首先,采用多尺度无缩放思想,通过canny算子对所有样本进行预处理,减少背景干扰与统一归格化的形变影响。然后,针对实际视频中的遮挡问题,把图像分成头部、左臂、上身、右臂、左腿、右腿6个区域。接着选取比LBP(local binary patterns)特征鲁棒性更好的SILTP(scale invariant local ternary pattern)特征作为纹理特征,在GPU空间中并行提取;同时,分别提取6个区域的HOG(histogram of oriented gradient)特征值,结合行人轮廓在6个区域上的梯度方向分布特性,对其进行加权。最后,将提取的全部特征输出到CPU(central processing unit),利用支持向量机(SVM)分类器实现行人检测。结果 在INRIA、NICTA数据集上进行实验,INRIA数据集上检测率达到99.80%,NICTA数据集上检测率达到99.91%,并且INRIA数据集上检测时间加速比达到12.19,NICTA数据集上达到13.49,相对传统HOG、LBP算法,检测率、时间比实现提高。结论 提出的改进HOG-SILTP特征与GPU加速的行人检测算法,能够有效表达行人信息,改善传统特征提取方式带来的耗时与形变影响,对环境变化、遮挡具有较强的鲁棒性。该算法在检测率、检测时间方面均有提高,能够实现有效、快速的行人检测,具有实际意义。

关键词

行人检测; GPU加速; SILTP特征; HOG特征; 支持向量机(SVM)分类器

Pedestrian detection based on improved feature and GPU acceleration
expand article info Qi Meibin, Li Ji, Jiang Jianguo, Wang Cichun
School of Computer and Information, Hefei University of Technology, Hefei 230009, China
Supported by: National Natural Science Foundation of China(61771180)

Abstract

Objective With the growing attention paid to public safety and security, video surveillance systems become increasingly important. Pedestrian detection is the first step in video surveillance systems when analyzing behaviors of pedestrians, so it plays a critical role in computer vision research area. Although pedestrian detection has realized several achievements in recent years, speed and accuracy continue to show rooms for improvement. On the one hand, pedestrian detection is time consuming as it requires extensive calculation and high dimension of features. On the other hand, the detection results are easily influenced by different environmental factors, such as the changes of illumination and background, different postures of pedestrians, and occlusion among pedestrians. As detection results depend on the performances of the feature set and classifier, the features should be adequately representative to distinguish a pedestrian from other objects and background. This study proposes an algorithm for pedestrian detection based on improved feature and graphic processing unit (GPU) acceleration to reduce detection time and improve detection rate. Method First, Canny operator is used to process the original images and obtain images with enhanced edge information. Second, the images are processed in three scales to reduce the interference of background and deformation effect of unified standardized. Third, the images are divided into six regions to address the occlusion problem among pedestrians. These regions are head, left arm, upper body, right arm, left leg, and right leg, which are divided according to the characteristics of pedestrian action. Thereafter, the scale invariant local ternary pattern (SILTP) feature is used instead of the local binary pattern (LBP) feature to improve the pixel of low resolution and varied illuminations of images. The SILTP feature in parallel is extracted as the texture feature in GPU space to reduce the time of calculation. At the same time, the gradient and amplitude information of the six regions is calculated in the GPU space, and the value of the gradient is weighed with the value of the distribution characteristics. Therefore, the improved histogram of oriented gradient (HOG) features with 180 dimensions are obtained. The dimensions are much lower compared with traditional HOG feature and the calculation time is reduced. Finally, the features extracted in the three scales is concatenated, including HOG and SILTP feature. All features are outputted to central processing unit (CPU) space from GPU space, achieving pedestrian detection by the linear support vector machine (SVM) classifier. Result The proposed algorithm is demonstrated on two datasets, namely, INRIA and NICTA. The INRIA dataset is presently the most widely used static pedestrian dataset. The backgrounds, pedestrians' postures, and occlusions among pedestrians in this dataset are complex. By contrast, the NICTA dataset contains a large number of pedestrian images in different sizes. Therefore, the detection results of INRIA and NICTA datasets are representative. The INRIA dataset contains 2 416 positive training and 1 218 negative training samples and 1 126 positive detecting and 453 negative detecting samples. The NICTA dataset contains 142 598 positive training and 90 605 negative training samples and 34 416 positive detecting and 42800 negative detecting samples. The proposed method achieves a detection rate of 99.80% and 99.91% on INRIA dataset and NICTA dataset, respectively. On the INRIA dataset, the acceleration ratio is 12.19 compared with the algorithm based on traditional HOG and LBP, and the acceleration ratio of feature extraction is more than 8.19. On the NICTA dataset, the acceleration ratio is 13.49 compared with the algorithm based on traditional HOG and LBP. Therefore, the proposed algorithm based on improved feature and GPU acceleration enhances the detection rate and reduces the detection time. Conclusion Experiment results show that the proposed algorithm based on improved feature and GPU acceleration perform better than other algorithms in terms of accuracy and speed. The improved feature exhibits strong robustness to the changes of illumination and environment and performs well despite the occlusion among pedestrians. Apart from its lower dimension which improves the speed of pedestrian detection, the algorithm provides accurate information on pedestrians. The proposed algorithm is suitable for most situations involving pedestrian detection, especially for images or videos in an environment with different illuminations and occlusions. Its speed also performs well, especially with large amount of calculation and high repeatability. The proposed algorithm based on improved feature and GPU acceleration can achieve effective and fast pedestrian detection and has practical value.

Key words

pedestrian detection; graphic processing unit(GPU) acceleration; scale invariant local ternary pattern (SILTP)feature; histogram of oriented gradient(HOG) feature; support vector machine(SVM) classifier

0 引言

行人检测是智能视频监控[1]、智能辅助驾驶[2]等应用实现的第1步,在计算机视觉研究领域具有重要意义。过去20年里,由于人体的非刚性、光强的变化性、背景的复杂性,使得行人检测具有一定难度[3]。虽然目前行人检测取得了良好成果,但由于特征维度高,计算复杂,检测速度仍然缓慢。在保证应有检测精度的前提下,如何提高检测速度,仍具有一定的挑战。

目前基于统计学习的行人检测算法为主流,算法分为两部分:特征提取以及分类器训练。特征方面,HOG(histogram of oriented gradient)、LBP(local binary patterns)都是目前应用广泛的行人描述子。文献[4]首次提出了梯度方向直方图HOG特征,该特征块与块之间可以重叠,并且光照偏移不敏感。文献[5]提取该特征描述行人梯度信息。但是HOG特征处理遮挡较差,并且特征维度高,影响检测时间。文献[6]提出了LBP特征,该特征维度较低,能有效描述纹理信息,文献[7]改进了LBP特征,但LBP特征易受光照干扰,低分辨率下判别较差。文献[8]在背景建模方面提出了SILTP(scale invariant local ternary pattern)特征,该特征对光照变化具有良好的鲁棒性。单个特征的侧重点各异,对行人的描述有限,检测效果往往不理想,因此研究者们采用多特征融合的方法。文献[9]融合了HOG、CSS(cascading style sheets)两种特征进行检测,文献[10-11]融合了HOG、LBP特征描述人的梯度、纹理信息,文献[12]在HOG、LBP特征融合的基础上,利用K-SVD(K-singular value decomposition)和PCA(principal component analysis)降维的方法改进特征,但是算法无法自动确定字典数量和特征维度,需要人工确认,实际应用具有一定难度。

时间方面,部分算法改进特征提取方式,降低特征维度,如文献[13],利用PCA算法对改进后的HOG特征、LBP特征降低维度,但是本质上并没有减少计算。文献[14]改进经典casDPM(cascade deformable part model)模型,提高检测精度,但是DPM(deformable part model)算子本身计算量远大于HOG,检测耗时,加速有限。文献[15]利用GPU(graphic processing unit)解决DPM的计算瓶颈,对鱼眼图像的行人检测算法进行加速,实现原始HOG特征1.29的加速比,原始DPM特征1.11的加速比。文献[16]提出嵌入式的GPU、CPU(central processing unit)混合平台,实现HOG、LBP融合特征10倍以上的加速比。文献[17]对图像进行分块,针对人物、背景不同区域有选择地分配直方图数量,强调行人信息减弱背景信息,同时利用PCA降维,提高了检测效率。但该文献只针对一种尺寸比例的样本进行分块,统一规格化造成样本形变,不适用于其他尺寸样本,而且未考虑实际视频中的遮挡问题,相对传统HOG行人检测加速比为2.5,相对于LBP行人检测加速比为7。

针对行人非刚性,遮挡、场景光照等问题,在文献[17]的思想上,提出一种改进的SILTP、HOG融合特征,并在GPU上并行实现加速。该算法首先针对实际行人的遮挡问题,将行人样本分成6个部分,针对统一规格化造成的形变问题,采用文献[18]的多尺度无缩放思想;然后提取三尺度SILTP特征代替LBP特征,并融入改进的低维度HOG特征中,降低计算量;最后在GPU空间进行并行计算,进一步降低计算耗时,并将结果返回CPU,利用SVM(support vector machine)分类器实现行人检测。

1 特征提取与GPU并行计算

1.1 canny预处理与行人图像分区域

行人检测中,直接对图像提取特征,容易混入背景信息,不论是HOG特征还是纹理特征,直接提取整张图像的特征都存在大量冗余,影响检测的准确性。为了减少背景噪声的影响,利用canny算子和行人图像矩阵卷积得到边缘轮廓信息显著的行人图像,降低背景干扰,让后续所提取的特征具有更好的鲁棒性。

实际视频中行人遮挡难以避免,特别是人流量大的道路、商场、校园和医院,行人之间的相互交错影响检测判别。且遮挡的往往是局部的某个部位,例如左臂右臂、上半身、腿部等,而头部很少遮挡。因此针对行人遮挡问题,采用分区域的方式处理图像。当行人的某部分被遮挡时,不影响其余区域特征的描述,能较好地解决遮挡问题。借鉴文献[19]的分块思想,根据实际场景中遮挡特点和行人运动特点,将行人分成头部、左臂、上半身、右臂、左腿、右腿,共6个区域,如图 1所示。

图 1 行人图像分区域
Fig. 1 Dividing the pedestrian image into different regions

目前行人检测大多将行人样本规格化为统一大小,但是实际视频中行人的部分往往宽高比例不一样,数据集上正负样本行人矩形框比例不一致,因此直接规格化会带来图像变形,影响检测。借鉴文献[18]的多尺度无缩放思想,分别在原样本的1倍、3/4倍、1/2倍3个尺度下提取特征,进行行人检测。

1.2 SILTP特征提取

行人检测常用的纹理特征为LBP特征,然而光照变化情况下,该特征容易受到干扰。为了更好地描述行人纹理信息,采用SILTP描述算子。对canny算子处理后的行人图像提取该特征,串接3个尺度下的SILTP特征作为完整的行人纹理特征。

SILTP特征是一种改进的LBP描述算子,可以较好地克服光照引起的直方图不稳定问题,对于光线的突然变化有较好的适应性。同时对区域范围噪声具有良好的鲁棒性,特别是阴影、局部噪声等。因此实验采用SILTP特征与HOG特征串接来实现行人检测。SILTP算子采用00、01、10表示像素纹理,相比LBP算子,增加了1位。假设图像块中心像素点位置为$({x_{\rm{c}}}, {y_{\rm{c}}})$,中心像素点的灰度值为${I_{\rm{c}}}$,编码函数定义为

$ {s_\tau }({I_{\rm{c}}}, {I_k}) = \left\{ \begin{array}{l} 01\;\;{I_k} > (1 + \tau ){I_{\rm{c}}}\\ 10\;\;{I_k} < (1-\tau ){I_{\rm{c}}}\\ 00\;\;其他 \end{array} \right. $ (1)

$ {\rm{SILTP}}_{Q, R}^\tau ({x_{\rm{c}}}, {y_{\rm{c}}}) = \mathop \oplus \limits_{k = 0}^{Q-1} {s_\tau }({I_{\rm{c}}}, {I_k}) $ (2)

阈值为$\tau $,半径$R$$Q$邻域像素点灰度值为${I_k}$$ \oplus $将中心像素点邻域的二进制值按逆时针方向连成字符串。

原编码过程如图 2(a)所示;当环境中出现局部噪声时,如图 2(b)所示,一定范围内的噪声不影响编码结果;当光照发生变化时,光强增加1倍,各像素点灰度值加倍,中心点及邻域灰度值也加倍,如图 2(c)所示,编码结果也不发生改变。可见,SILTP对光照变化、局部噪声都具有良好的鲁棒性。

图 2 SILTP算子编码过程
Fig. 2 Encoding process of SILTP operator ((a)original encoding process; (b)encoding process in the situation of noise; (c)encoding process in the situation of pixel gray value doubled)

提取半径为1的8邻域SILTP特征,阈值为0.3,单张图像的特征维度是81维,则3尺度6区域特征维度是1 458维,计算量大。考虑SILTP特征纹理信息的意义,针对是否分区域提取该特征,在INRIA数据集上做实验,实验分:3尺度243维、6区域486维、3尺度6区域1 458维3种情况。结果为243维检测效果最优,则选择3尺度不分区域的SILTP特征。

实际应用中,SILTP特征的计算量大,每个像素点判断3次,但是计算都是基于像素点进行,因此可以给各个像素点分配线程,进行并行。

1.3 改进HOG特征的提取

目前行人检测最广泛的描述子为HOG算子,能够有效地刻画目标的边缘和局部形状信息。而传统HOG特征维度高达3 780,处理速度有限。本算法改进传统的提取方式,降低特征维度,减少检测耗时和空间开销。3个尺度下,首先计算行人图像的梯度值;然后分别统计6个区域的梯度方向,分析梯度方向在各个区间范围内的分布情况,选取权值;再与对应位置的梯度幅值进行加权;最后依次串接各区域的HOG特征。

首先进行Gamma校正,对各像素点值进行开方,减少图像局部阴影和光照变化的影响。然后计算梯度值,假设图像像素点位置为$(x, y)$,像素值为$I(x, y)$,则水平方向梯度、垂直方向梯度定义为

$ \left\{ \begin{array}{l} {G_x}(x, y) = I(x + 1, y)-I(x-1, y)\\ {G_y}(x, y) = I(x, y + 1)-I(x, y - 1) \end{array} \right. $ (3)

$(x, y)$处梯度幅值$G(x, y)$、梯度方向$\alpha (x, y)$

$ G(x, y) = \sqrt {{G_x}{{(x, y)}^2} + {G_y}{{(x, y)}^2}} $ (4)

$ \alpha (x, y) = {\tan ^{-1}}\left( {\frac{{{G_x}(x, y)}}{{{G_x}(x, y)}}} \right) $ (5)

分别计算图像6个区域的梯度值,将梯度方向的范围$(0, {\rm{ \mathit{ π} }}]$量化为$n$个区间,梯度方向值${H_\alpha }(x, y) \in \{ 1, 2, 3, \cdots, n\} $,则图像每个区域特征维数为$n$,总提取的HOG特征维数为3×6×$n$。针对不同维数$n$对检测率的影响,在INRIA数据集上进行实验。考虑到原始HOG特征每个cell内特征为9维以及文献[20]、文献[12]的维数结果,$n$取值15以内。维数取3以下时,实验检测率低于80%,表中不予列出,结果如表 1所示。

表 1 不同特征维度的HOG检测率
Table 1 Detection rate based on HOG of different feature dimensions

下载CSV
维数
4 5 6 7 8 9 10 11 12 13 14 15
检测率/% 83.66 86.31 87.99 88.42 88.96 89.31 91.60 91.42 91.17 90.96 90.74 90.90

表 1所示,维数取10时,检测率最高,因此每个区域梯度方向量化为10个区间,梯度方向从$(0, {\rm{ \mathit{ π} }}]$等间距分成10份,${H_\alpha }(x, y) \in \{ 1, 2, 3, \cdots, 10\} $

行人图像6个区域梯度方向的侧重各不相同,头部、左臂、右臂多为水平方向,上半身、腿部多为竖直方向,可见梯度方向的分布具有一定特点。因此,分析行人轮廓的梯度方向分布特点如下:首先提取多个行人样本的轮廓,然后对提取后的信息进行叠加、归一化,得到模板轮廓图,接着统计人体6个区域10个区间上的梯度方向分布情况,如图 3所示。可见人体6个区域的梯度方向分布近似高斯分布。6个区域上,取10个区间各自对应的高斯函数值作为量化区间的近似权值。

图 3 6区域上梯度方向分布
Fig. 3 Distribution of gradient direction in six region

为了进一步突出轮廓区域的梯度特性,利用该权值对HOG特征进行加权。各区域加权后特征为

$ \boldsymbol{F} = \{ {H_i} \times {t_i}{\rm{|}}1 \le i \le 10, i \in {\boldsymbol{\rm{N}}}\} $ (6)

${t_i}$为梯度方向第$i$个量化区间所对应的权值,与该量化区间对应的梯度值进行加权。接着串接6个区域加权后的特征,得到1个尺度下的HOG特征,同样提取另外两尺度下的特征,最终得到180维完整的HOG特征。

1.4 SILTP、HOG特征的GPU并行设置

SILTP特征提取基于像素点进行,HOG特征中Gamma校正只对各自像素点处理,水平垂直方向的梯度计算独立进行,因此可按像素点拆分,进行并行。虽然计算量大,但大部分为基础运算,计算过程并不复杂,而且重复性高,适合并行。因此利用GPU加速,分配1个像素点1个线程。线程块block大小取16×16像素,获得最大的利用率。以128×64像素图像为例,申请128×64线程,共有8×4个线程组。

GPU虽然计算能力强,但也存在一系列的延迟。主机与设备之间的数据传输非常耗时,且难以避免,影响整个算法的速度。为此需要减少数据传递,同时利用流技术,隐藏数据拷贝的延迟。GPU任务开始之前,先开辟整体样本的空间,将大量待检测数据一次性拷贝到显存上,计算结束后一次性输出到CPU,避免频繁的数据交互。

为了减少算法耗时,存储方面,利用共享存储器作为辅助。共享存储器比全局存储器更快,同1个block内数据共享,不需要重复传递。另方面,核函数中缓存对齐。缓存未对齐时,像素点分散,线程需要访问多个缓存;缓存对齐时,线程只需要访问1个缓存,计算效率提升。图 4中,缓存对齐时比缓存未对齐时,速度整体提升4倍。

图 4 内核计算
Fig. 4 Calculation of kernel ((a)cache misaligned (b)cache aligned)

多尺度图像缩放方面,利用2D texture加速访问,texture支持直接加速的线性插值算法,图像的缩放直接通过坐标轴的缩放来实现,无需额外的像素获取,因此减少另外两个尺度数据拷贝的时间。

函数计算方面,HOG特征计算的开方、三角函数占用大部分计算时间,执行1个完备函数库的函数需要数百个指令周期,而执行1个快速数学函数仅需几十条指令周期。且快速函数已经能够达到精度的要求。因此,这两个函数采用快速数学函数。

所以GPU任务开始之前,首先初始化并行模块,设置内核函数调用参数,将待检测样本一次性上传至GPU显存。特征计算时每个线程上的统计结果先写到共享内存,再写到全局内存,避免大量线程在有限内存上的竞争。3尺度下另外两尺度图像的缩放直接在GPU中进行,避免反复的数据传递。1个像素点1个线程提取特征,特征提取结束后,一次性传回主机内存,结束GPU任务。

1.5 行人检测操作步骤

检测部分流程如下:

1) 利用canny算子对行人样本预处理,将样本分成6个区域;统计行人6个区域的梯度方向分布情况,得到对应的梯度权值。

2) 输入样本,将待检测样本串接,上传至GPU显存,并规格化为3个尺度。

3) GPU空间内,3个尺度下,分别提取6个区域HOG特征,并与梯度方向对应区间的权值加权,得到加权后的HOG特征。同时提取SILTP特征。

4) 串接提取后的SILTP特征、HOG特征,输出到CPU内存。

5) 将所提取特征输入到SVM训练得到的行人检测分类器中,进行行人检测。

2 实验与结果

实验是基于VS2010+opencv2.4.10 +CUDA6.5实现的,实验平台:8 GB内存8核的Intel(R) Core(TM) i7-4790K CPU @4.00 GHz,显卡NVIDIA GeForce GTX 750,CUDA核768,核心频率1 084 MHz,显存4 GB,显卡计算能力5.0。

由于INRIA是目前使用最多的静态行人检测数据库,故算法对比实验均在INRIA数据集上进行测试,算法性能从检测精度、时间这两个方面进行评估,所有检测针对数据集所有行人目标。

检测精度采用检测率、误检率,检测错误权衡DET曲线作为评价标准,其中检测错误权衡曲线表示漏检率与误检率的关系。定义:${D_{{\rm{TP}}}}$为正确检测到的行人数,${D_{{\rm{FP}}}}$为错误检测到的行人数,${D_{{\rm{FN}}}}$为没有被检测到的非行人数,${D_{{\rm{TN}}}}$为正确检测到的非行人数。

检测率定义为

$ {R_{{\rm{TP}}}} = \frac{{{D_{{\rm{TP}}}}}}{{{D_{{\rm{TP}}}} + {D_{{\rm{FN}}}}}} $ (7)

误检率定义为

$ {R_{{\rm{FP}}}} = \frac{{{D_{{\rm{FP}}}}}}{{{D_{{\rm{FP}}}}{\rm{ + }}{D_{{\rm{TN}}}}}} $ (8)

漏检率定义为

$ {R_{MISS}} = \frac{{{D_{{\rm{FN}}}}}}{{{D_{{\rm{TP}}}} + {D_{{\rm{FN}}}}}} $ (9)

2.1 检测精度的实验结果

2.1.1 INRIA数据集上的实验结果

INRIA数据集是目前使用最广泛的静态行人检测数据库,存在背景复杂、光强变化、行人遮挡等情形,检测难度较大。训练集包括2 416个正样本,1 218个负样本,测试集包括1 126个正样本,453个负样本,检测针对所有行人目标。

为了验证canny算子预处理对本算法的影响,表 2给出使用canny算子和不使用canny算子的实验对比。

表 2 算法是否使用canny算子的检测率
Table 2 Detection rate of algorithm whether using canny operator

下载CSV
canny算子
不使用 使用
检测率/% 97.42 99.80

表 2实验数据显示,使用canny算子预处理比不使用时检测率提高2.38%。可见,相对原始行人图像,canny算子预处理可以有效减弱背景噪声干扰,强化行人人体信息,提高行人检测率。

为了验证SILTP特征对本算法的影响,以及该特征是否分区域,表 3给出不使用纹理特征、使用LBP特征以及使用243维、486维、1 458维SILTP特征的实验对比。

表 3 算法使用不同纹理特征的检测率
Table 3 Detection rate of algorithm based on different texture features

下载CSV
无纹理
特征
LBP 不同维数SILTP
243 486 1 458
检测率/% 91.26 96.87 99.80 98.74 98.21

表 3实验数据显示,使用纹理特征比不使用纹理特征检测率至少提高5.61%。纹理特征使用SILTP比LBP提高1至2个百分点,其中不分区域使用243维SILTP特征检测率最好,提高2.93%;486维检测率与243维检测率相近,但是特征维度加倍,而提取SILTP特征每个像素需要判断3次,更加耗时。可见,SILTP特征具有更好的鲁棒性,选取243维SILTP特征取得更好的检测效果。

为了验证分区域对算法的影响,表 4给出了不对图像分区域,分成3个区域(头部、上身、下身),分成5个区域(头部、左上身、右上身、左下身、右下身)以及本文分成6个区域的实验对比。

表 4 算法使用不同分区域方式的检测率
Table 4 Detection rate of algorithm based on different division methods

下载CSV
无分区 3个区域 5个区域 6个区域
检测率/% 95.72 97.69 98.04 99.80

表 4实验数据显示,使用分区域方式比不分区域检测率至少提高1.97%。其中按行人行动特点分6个区域的方式既突出行人特征又减弱背景因素,效果最好,比普通的3个区域检测率提高2.11%。

表 5给出INRIA数据集上HOG[4]、LBP[6]、HOG结合LBP[11]以及本文算法这4种不同算法的行人检测结果,本文算法检测结果优于以上3种算法,检测率达到99.8%,误检率达到3.91%。

表 5 不同算法在INRIA数据集上的检测结果
Table 5 Detection results of different algorithm on INRIA

下载CSV
/%
算法 检测率 误检率
HOG 91.01 5.67
LBP 95.36 5.16
HOG+LBP 97.32 4.73
本文 99.80 3.91

2.1.2 NICTA数据集上的实验结果

NICTA是规模较大的静态行人数据库,包括25 551个行人样本,5 207个非行人样本。由于64×80像素规格的样本信息过于丰富,因此选择32×80像素规格样本。训练集包括142 598个正样本,90 605个负样本,测试集包括34 416个正样本,42 800个负样本。

表 6结果显示,针对NICTA数据集,本文算法相比于HOG[4]、LBP[6]、HOG结合LBP[11],在检测率上有一定提高,误检率有一定降低,达到检测率99.91%,误检率3.61%。

表 6 不同算法在NICTA数据集上的检测结果
Table 6 Detection results of different algorithm on NICTA

下载CSV
/%
算法 检测率 误检率
HOG 92.82 5.40
LBP 95.23 5.19
HOG+LBP 97.82 4.68
本文 99.91 3.61

为了进一步评估算法性能,作出不同算法的DET曲线进行对比。图 5为不同行人检测算法的DET曲线。

图 5 不同算法的DET曲线
Fig. 5 DET curves of different algorithm

图 5给出HOG[4]、LBP[6]、改进HOG[17]、HOG结合LBP[11]、改进HOG结合LBP(K-SVD-HOG and K-SVD-LBP[12])以及本文算法的DET曲线。结果显示,相比其他算法,本文算法的DET曲线下降更快,相同误检率下,本文算法的漏检率更低。

表 7给出不同算法在误检率为10-3、10-2处的漏检率值。在这两处,同HOG算法对比,本文算法漏检率分别降低0.036、0.026;同LBP算法对比,本文算法漏检率分别降低0.107、0.045;同HOG结合LBP[11]算法对比,本文算法漏检率分别降低0.028、0.008;同改进HOG结合LBP算法(K-SVD-HOG and K-SVD-LBP)对比,本文算法漏检率分别降低0.014、0.003。

表 7 不同算法漏检率
Table 7 Miss rate of different algorithms

下载CSV
/%
算法 误检率
10-3 10-2
HOG 0.088 0.033
LBP 0.159 0.052
改进HOG 0.141 0.065
HOG+LBP 0.092 0.018
改进HOG+LBP 0.066 0.010
本文 0.052 0.007

综上,本文算法结合多尺度思想,按遮挡以及行动特点对人体分区域,在传统HOG基础上改进特征提取,并结合SILTP特征,使得检测精度方面有一定提高。相比其他算法,具有良好性能。

2.2 检测时间的实验结果

时间方面,采用加速比作为评价标准,比较各算法的特征提取时间加速比、检测时间加速比。特征提取时间和行人检测时间,取相同条件下10次实验的平均值作为最终结果。

2.2.1 INRIA数据集上的实验结果

为了验证GPU并行计算对算法速度方面的影响,表 8给出不同分辨率图像上CPU提取特征、GPU并行提取特征的时间对比。时间为相同条件下提取1 000张图像特征的时间,所提取特征为本文算法180维HOG、243维SILTP特征。

表 8 不同分辨率下特征提取时间
Table 8 The time of feature extraction at different resolution

下载CSV
分辨率/像素 CPU时间/s GPU时间/s 加速比
320×240 780.71 95.31 8.19
640×480 3 036.17 298.04 10.19
1 280×720 10 946.79 770.19 15.23
1 980×1 080 29 063.27 1 570.23 18.51

表 8数据显示,利用GPU并行计算提取特征相对于CPU耗时大大降低。随着分辨率增加,GPU加速比增加,可见,对于大数据计算,GPU加速更充分。

对于行人检测时间,由于可供参考的文献有限,表 9仅给出本机上实现的4种算法检测时间,包括HOG[4]、LBP[6]、HOG结合LBP[11]以及本文算法。由于行人检测的分类器可以通过离线学习训练得到,不影响实际检测中的检测时间,因此算法处理时间只关注分类器训练之后的检测时间,不关注训练时间。处理时间为INRIA数据集上测试集的检测时间,样本包括1 126个正样本,453个负样本。

表 9 不同算法在INRIA数据集上的检测时间
Table 9 Detection time of different algorithms on INRIA

下载CSV
算法 检测时间/s 加速比
HOG 94.49 4.10
LBP 149.78 6.50
HOG+LBP 280.85 12.18
本文 23.05 1.00

表 9实验数据显示,本文算法相对其他算法的处理时间大大降低,因此,本文算法改进特征以及利用GPU并行计算,相比其他算法可以较好地提升效率。

2.2.2 NICTA数据集上的实验结果

由于实验平台显卡NVIDIA GeForce GTX 750显存有限,因此将测试集的34 416个正样本、42 800个负样本,分成10个部分分别检测,处理时间为10部分实验的平均检测时间。

表 10实验数据显示,本文算法相对其他算法的处理时间大大降低,实现了算法加速。

表 10 不同算法在NICTA数据集上的检测时间
Table 10 Detection time of different algorithms on NICTA

下载CSV
算法 检测时间/s 加速比
HOG 427.56 5.12
LBP 558.38 6.68
HOG+LBP 1 126.42 13.49
本文 83.49 1.00

本文一方面从算法上实现维度降低,将传统的3 780维HOG特征、256维LBP特征,改进为180维HOG特征、243维SILTP特征,降低计算量并减少耗时;另一方面利用GPU性能实现并行加速。加速比依赖于实验平台的GPU性能以及GPU、CPU硬件性能对比,在本机实验平台下实现原始HOG结合LBP算法,INRIA数据集上12.18的加速比,NICTA数据集上13.49的加速比;原始HOG算法INRIA数据集上4.10的加速比,优于文献[17]的加速比,实现良好的效率提升。

3 结论

行人检测面临着诸多挑战,包括时间、光照、背景、遮挡等。已有的行人检测大多是基于HOG、LBP特征进行的,但是HOG特征的提取往往统一规格化造成样本变形,并且处理遮挡有限,而LBP特征易受光照干扰;计算量方面,特征提取计算量大、检测耗时也是亟待解决的问题。本文算法结合多尺度思想提出1种改进的HOG、SILTP特征,并通过CPU、GPU协同处理加速的算法,在背景干扰以及遮挡方面,利用canny算子预处理,并按人体运动特点将行人样本分成6个区域。其中纹理特征为3个尺度下并行提取的SILTP特征;HOG特征是按行人样本的6个区域分别进行提取,方向量化为10个区间,提取后与6个区域上行人轮廓的梯度方向分布特性进行加权,得到改进后的梯度信息。本文算法有效地提高检测精度、降低时间,具有实际意义。但是本文算法中GPU并行是针对数据集上的样本提取特征,减少了主机与设备的数据交互,对大量CPU、GPU交互的多级分类器行人检测的加速具有一定难度,且实际摄像机复杂场景下的检测精度仍有待进一步提高。未来可以利用GPU并行计算加速背景处理,实现实际复杂场景下的实时行人检测。

参考文献

  • [1] Luo R C, Chen O. Wireless and pyroelectric sensory fusion system for indoor human/robot localization and monitoring[J]. IEEE/ASME Transactions on mechatronics, 2013, 18(3): 845–853. [DOI:10.1109/TMECH.2012.2188300]
  • [2] Geronimo D, López A M, Sappa A D, et al. Survey of pedestrian detection for advanced driver assistance systems[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2010, 32(7): 1239–1258. [DOI:10.1109/TPAMI.2009.122]
  • [3] Marín J, Vázquez D, López A M, et al. Random forests of local experts for pedestrian detection[C]//Proceedings of 2013 IEEE International Conference on Computer Vision. Sydney, Australia: IEEE, 2013: 2592-2599. [DOI: 10.1109/ICCV.2013.322]
  • [4] Dalal N, Triggs B. Histograms of oriented gradients for human detection[C]//Proceedings of 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. San Diego, CA, USA: IEEE, 2005, 1: 886-893. [DOI: 10.1109/CVPR.2005.177]
  • [5] Hu Y X, Zeng Z H, Yin L J, et al. Multi-view facial expression recognition[C]//Proceedings of the 8th IEEE International Conference on Automatic Face & Gesture Recognition. Amsterdam, Netherlands: IEEE, 2008, 1-6. [DOI: 10.1109/AFGR.2008.4813445]
  • [6] Mu Y D, Yan S C, Liu Y, et al. Discriminative local binary patterns for human detection in personal album[C]//Proceedings of 2008 IEEE Conference on Computer Vision and Pattern Recognition. Anchorage, Alaska, USA: IEEE, 2008: 1-8. [DOI: 10.1109/CVPR.2008.4587800]
  • [7] Liu Y C, Huang S S, Lu C H, et al. Thermal pedestrian detection using block LBP with multi-level classifier[C]//Proceedings of 2017 International Conference on Applied System Innovation. Sapporo, Japan: IEEE, 2017: 602-605. [DOI: 10.1109/ICASI.2017.7988495]
  • [8] Liao S C, Zhao G Y, Kellokumpu V, et al. Modeling pixel process with scale invariant local patterns for background subtraction in complex scenes[C]//Proceedings of 2010 IEEE Conference on Computer Vision and Pattern Recognition. San Francisco, USA: IEEE, 2010: 1301-1306. [DOI: 10.1109/CVPR.2010.5539817]
  • [9] Cosmo D L, Salles E O T, Ciarelli P M. Pedestrian detection utilizing gradient orientation histograms and color self similarities descriptors[J]. IEEE Latin America Transactions, 2015, 13(7): 2416–2422. [DOI:10.1109/TLA.2015.7273807]
  • [10] Liu Y P, Li Y B, Ma X, et al. Facial expression recognition with fusion features extracted from salient facial areas[J]. Sensors, 2017, 17(4): 712. [DOI:10.3390/s17040712]
  • [11] Wang X Y, Han T X, Yan S C. An HOG-LBP human detector with partial occlusion handling[C]//Proceedings of the 12th IEEE International Conference on Computer Vision. Kyoto, Japan: IEEE, 2009: 32-39. [DOI: 10.1109/ICCV.2009.5459207]
  • [12] Zheng C H, Pei W J, Yan Q, et al. Pedestrian detection based on gradient and texture feature integration[J]. Neurocomputing, 2017, 228: 71–78. [DOI:10.1016/j.neucom.2016.09.085]
  • [13] Zeng C B, Ma H D. Robust head-shoulder detection by PCA-based multilevel HOG-LBP detector for people counting[C]//Proceedings of 20th International Conference on Pattern Recognition. Istanbul, Turkey: IEEE, 2010: 2069-2072. [DOI: 10.1109/ICPR.2010.509]
  • [14] Wei H H, Cao G, Jin T, et al. Improved pedestrian detection based on modified star-cascade DPM model[J]. Journal of Image and Graphics, 2017, 22(2): 170–178. [韦皓瀚, 曹国, 金挺, 等. 改进星型级联可形变部件模型的行人检测[J]. 中国图象图形学报, 2017, 22(2): 170–178. ] [DOI:10.11834/jig.20170204]
  • [15] Qian Y Q, Yang M, Wang C X, et al. Self-adapting part-based pedestrian detection using a fish-eye camera[C]//2017 IEEE Conference on Intelligent Vehicles Symposium. Los Angeles, CA, USA: IEEE, 2017: 33-38. [DOI: 10.1109/IVS.2017.7995695]
  • [16] Campmany V, Silva S, Espinosa A, et al. GPU-based pedestrian detection for autonomous driving[J]. Procedia Computer Science, 2016, 80: 2377–2381. [DOI:10.1016/j.procs.2016.05.455]
  • [17] Lai C Q, Teoh S S. An efficient method of hog feature extraction using selective histogram bin and PCA feature reduction[J]. Advances in Electrical and Computer Engineering, 2016, 16(4): 101–108. [DOI:10.4316/AECE.2016.04016]
  • [18] Benenson R, Mathias M, Timofte R, et al. Pedestrian detection at 100 frames per second[C]//Proceedings of 2012 IEEE Conference on Computer Vision and Pattern Recognition. Providence, RI, USA: IEEE, 2012: 2903-2910. [DOI: 10.1109/CVPR.2012.6248017]
  • [19] Wu B, Nevatia R. Detection of multiple, partially occluded humans in a single image by Bayesian combination of edgelet part detectors[C]//Proceedings of the Tenth IEEE International Conference on Computer Vision. Beijing, China: IEEE, 2005: 90-97. [DOI: 10.1109/ICCV.2005.74]
  • [20] Gan L, Zou K Z, Liu X. Pedestrian detection based on PCA dimension reduction of multi-feature cascade[J]. Computer Science, 2016, 43(6): 308–311. [甘玲, 邹宽中, 刘肖. 基于PCA降维的多特征级联的行人检测[J]. 计算机科学, 2016, 43(6): 308–311. ] [DOI:10.11896/j.issn.1002-137X.2016.6.061]