APP下载

基于并行交叉PCANet车辆检测算法

2018-10-24朱世懂姜丽芬孙华志马春梅

关键词:特征提取分类器滤波器

朱世懂,姜丽芬,孙华志,马春梅

(天津师范大学计算机与信息工程学院,天津300387)

随着我国经济不断发展,车辆不断增多,给交通管理带来了巨大的挑战.在现实的交通管理过程中,车辆检测技术发挥着重要的作用,其在高速公路收费站、城市道路管理、城市交叉路口和停车场中都得到了广泛的应用,为车辆管理提供了基础支持[1].

近年来,随着计算机和图像处理技术的不断发展,机器视觉检测方法已经取代传统方法成为现代智能交通系统的一个重要组成部分[2].如何设计高效的车辆检测算法,提高检测准确率是目前人们最关注的问题.早期的机器视觉检测方法,主要利用车辆相对于静态背景都是运动的这一特性,如,帧间差分法[3]利用视频中相邻帧之间的关系来判断车辆的位置从而进行检测,背景差分法[4]将待检测图像与背景图像相减判断对应像素是否为车辆,还有基于光流法的车辆检测方法[5]等,而这些方法对于场景光照、运动速度等外在因素的变化有一定的要求,因此准确率和鲁棒性不高.

随着机器学习的不断发展与应用,以机器学习理论为基础的检测算法成为当前车辆检测领域研究的热点,当前比较成熟的车辆检测方法主要基于车辆特征结合分类器的模式,如,基于梯度方向直方图特征和支持向量机的车辆检测方法[6],使用Adaboost结合Haar-like特征进行车辆检测的方法[7]等,但这类方法对于复杂背景下的车辆检测效率不高.卷积神经网络在车辆检测方面的精度很高[8],但是需要的网络层数较多,复杂度较高,训练时间较长,并不适用于现阶段的车辆检测任务.文献[9]提出了一个通过PCA技术组成的简单的深度学习网络:PCANet,有研究表明它对于手写数字识别以及人脸识别[10]都有良好的效果,但其要求图像质量较高,图像中的噪声必须很小,当目标物体周围的背景过多时,其提取特征的效果不是很好.

针对单支PCANet的局限性,本文尝试使用2条PCA数据变换流,建立并行网络提取车辆轮廓特征和纹理特征,用2种车辆数据集训练网络,经过融合实现并行网络的同步学习,进而对车辆进行检测.

1 车辆检测模型

车辆检测任务是根据输入的图像信息,提取各区域的图像特征,通过分类来判断图像是否为车辆.

本文的车辆检测模型结构如图1所示,主要用2个PCANet对车辆图像进行特征提取,将得到的特征进行加权融合,训练一个SVM分类器,用于车辆图像的分类.

图1 基于PCANet的车辆检测模型结构Fig.1 PCANet-based vehicle detection model

选取车辆图片构成原图像数据集,使用卷积神经网络提取的轮廓图片作为轮廓数据集,分别对特征提取网络进行训练,得到2个特征提取器.对实际场景进行检测时,使用多尺度选择框,实现对图像中不同大小的车辆进行检测.

1.1 特征提取网络模型

特征提取网络使用两阶段的PCANet架构,网络结构如图2所示.

图2 特征提取网络结构Fig.2 Network structure of feature extraction

假设有N张像素大小为m×n的车辆图片样本{Xi}Ni=1,对图像进行块采样,假设采样块大小为k1×k2,第 i张图片的所有采样向量为 xi,1,xi,2,…,xi,mn∈Rk1k2,其中xi,j表示图像Xi的第j个采样向量.然后对每个向量进行去均值化,即每个采样向量减去向量的平均值,得到表示去均值化后的向量.为所有输入的车辆图像构造相同的矩阵并把它们结合在一起,得到

在第一阶段,使用X作为输入来学习L1个PCA滤波器,得到 W1l,l=1,2,…,L1,然后读取车辆图像矩阵 Ii,i=1,2,…,N,用得到的滤波器对图像进行卷积运算

其中:“*”表示二维卷积;W1l为第一阶段的滤波器;Ili为第i张图像第l个滤波器的输出.

在第二阶段,重复和第一阶段相同的过程,对第一阶段的输出向量进行去均值化等操作,进而得到第二阶段的 L2个滤波器 W2k,k=1,2,…,L2,使用第一阶段的输出Ili作为第二阶段的输入,对于每个输入Ili,将有L2个输出,将Ili与W2k做卷积运算

Oli为第i张图像对应于第一阶段的第l个输出的第二阶段的输出,其中包含了L2个卷积结果,第二阶段每张图像输出总数为L1L2,然后对这些输出进行二值化,H()是一个 Heaviside函数,将每个像素值置为正数或零,然后将每个二进制值编码为(0,2L2-1)之间的十进制数,最后,将每一个输入Ili得到的L2个输出合并为一个矩阵

最终每张图像得到L1个输出Tli,将每个Tli按照重叠分块模式分为B块,统计每个块的直方图信息,然后将各个块的直方图特征进行级联,最终得到每张图片的特征向量fi,即图像的特征表示

1.2 图像特征融合

采用2类数据集作为输入分别训练2个特征提取器,这2类数据集分别为车辆图片构成的数据集和用卷积神经网络提取的车辆轮廓的数据集,图像数据经过PCANet网络处理后会得到2类图像特征,为了降低复杂度,更有效地训练SVM分类器,将其进行融合,融合公式为

其中:fli为第i张图片的第l个特征,n为特征提取器个数,Fi为融合后的图像特征.

1.3 多尺度检测

在用实际场景图像进行车辆检测时,由于拍摄角度问题,车辆图像的大小可能不一致,如果定义同一种尺寸大小的选择区域可能会丢失车辆信息,出现漏检或多辆车在同一检测框中的现象,因此本文选择不同尺寸的检测框,对实际场景图进行检测,再将检测结果合并.

合并检测框的方法是,每个检测框都有一个中心点,计算任意2个检测框中心点的距离,如果距离小于某一阈值,那么就将其合并为一个检测框.距离约束公式为:

其中:(xi,yi)、(xj,yj)为任意2个检测框的中心点坐标,α为距离阈值.

1.4 图像分类

在特征融合之后需要判断这些特征的类别,也就是对图像进行分类,本文使用SVM(支持向量机)[11]分类器来分类,SVM是一种机器学习算法,可以进行数据分析和模式识别,也可以用于分类和回归分析,SVM分类器通过一个非线性映射将作为学习样本的特征向量映射到一个高维的特征空间中,在这个空间中构造最优分类面,从而将提取的图像特征进行正确的分类.本文选取径向基函数将车辆特征属性在低维空间的非线性问题映射成高维特征空间的线性问题,径向基函数为

然后在新空间中求解最优分类面,通过最大化分类间隔找出最优分类超平面,最终转化为二次最优规划问题,进行图像分类.

2 样本库建立

本文使用公开的VehicleID数据库[12],从中抽取8 000张车辆图片作为正样本集,8 000张背景图片作为负样本集,并将图像的大小归一化为64×64,对其进行标注,作为原图像数据集.部分正负样本见图3.

由于PCANet对噪声较大的车辆图像训练效果较差,因此设计了一个3层的简单卷积神经网络,经过训练,对正、负样本进行轮廓提取,形成轮廓图像数据集,部分轮廓图像见图4.

图3 正负样本Fig.3 Positive and negative samples

图4 样本轮廓Fig.4 Outline of samples

从原图像数据集中随机抽取80%的正负样本作为原图像训练集D1,剩余20%作为测试集T,从轮廓图像数据集中随机抽取80%的正负样本作为轮廓图像训练集D2.

3 实验结果与分析

用数据集D1和数据集D2分别训练并行的PCANet,得到2个特征输出,将这2个特征融合后输入到SVM中,训练SVM分类器.用测试集T对模型进行测试,实验了不同滤波器尺寸对实验测试集准确率的影响,准确率为检测到的车辆图片占测试集图片总数量的比例.根据文献[9]中网络的初始设置得出经验,将2阶段的滤波器个数预先定为8,可以在未知实验结果的情况下保证最小误差.滤波器尺寸从1×1依次变化到9×9,实验结果见图5.结果显示滤波器尺寸大小为3×3时准确率最高,这是因为当滤波器尺寸足够小时,对车辆特征的提取也就更加精确.

将滤波器尺寸固定为3×3,由于滤波器数量太少会增大计算复杂度,降低效率,所以设滤波器数量最小值为4,因为滤波器尺寸为3×3,根据主成分分析原理,滤波器数量最多为9,因此对滤波器数量从[4,4]到[9,9]进行了实验,结果见图 6.实验结果显示当滤波器数量为[8,7]时测试准确率最高,这是因为随着滤波器数量的增加,提取的车辆特征维度增高,对车辆的识别也就更加精确.

图5 不同滤波器尺寸准确率Fig.5 Accuracy of different sizes of filter

图6 不同滤波器数量准确率Fig.6 Accuracy of different numbers of filter

实验得到的网络最优参数为滤波器尺寸3×3,滤波器数量[8,7],使用本文算法对2个公开的车辆数据集进行了测试,分别为Stanford-Cars[13]和PKU-VD[14],Stanford-Cars数据集覆盖多种规格(如轿车、轿跑车、敞篷车、两厢车和货车等)的车辆,实验选取了其中3 000张车辆图片作为测试集,PKU-VD数据集中共有221 519辆车(共约140万张图像),实验选取了其中3 000张车辆图片作为测试集.实验结果见表1,使用分类常用指标精确度P(precision)和召回率R(recall)对算法进行评估,结果表明本文算法具有良好的分类效果.

精确度P的计算公式为:

其中:TP为检测到的车辆实际为车辆的图片数量,FP为检测出的车辆实际为非车辆的图片数量.召回率R的计算公式为:

其中FN为检测到的非车辆实际为车辆的图片数量.

表1 不同数据集测试结果Tab.1 Test results for different datasets

使用上述最优网络参数将单一PCA网络和并行PCA网络进行比较,实验结果见图7,以图片数量作为因变量,由图7可见,并行网络结构对于车辆的识别准确率明显优于单一网络.

图7 单、并行网络架构对比实验准确率Fig.7 Accuracies of comparison experiments between single and parallel network architectures

为了验证本文方法的有效性,将其与传统机器学习方法进行了对比,重现了3种基于传统机器学习的车辆检测方法,分别是基于PCA+LDA+SVM的车辆检测方法[15],利用SVM分类器对车辆的Haar特征进行分类的车辆检测方法[16],利用Adaboost实现的在线车辆检测算法[17].对实际场景图中的车辆进行检测,共检测3 000张图片.由于训练图片大小为[64,64],因此将滑动窗口大小与图片大小成比例的设置为[128,128]、[64,64]、[32,32]、[16,16],对应滑动步长设置为[64,32,16,8],这样有助于和车辆图像进行匹配,减少计算量.将多尺度检测框合并阈值α从1依次递增到10,实验得出阈值α的最优值为4.最终得到车辆识别的统计结果见表2,其中DR(detection rate)为算法的车辆检测率,即检测到实际场景图中车辆的数量与图中车辆总数的比值,FDR(false drop rate)为车辆误检率,即检测到错误车辆的数量与检测出的车辆总数的比值.由表2可见,本文的并行交叉PCANet车辆检测算法在检测率方面优于前2种传统方法,相比于第3种优势不明显,但是在误检率方面要明显优于第3种方法,综合比较本文方法更加适合复杂场景下的车辆检测任务.

表2 车辆检测方法对比实验结果Tab.2 Experimental results of vehicle detection methods

4 结论

本文提出并行交叉PCANet进行特征提取和支持向量机分类的车辆检测方法,用2条简单深度学习网络PCANet,以并行方式对车辆进行特征提取,提高了算法的学习能力,训练支持向量机分类器具有更好的分类能力,可有效对车辆进行检测.实验结果表明,本文的车辆检测方法在复杂场景下的检测率和误检率优于传统方法,具有较好的应用前景.但是该算法在部分遮挡较为严重的场景下的车辆定位还不够精确,因此在本文工作的基础上还应改进算法对遮挡车辆的检测效果.

猜你喜欢

特征提取分类器滤波器
基于特征选择的SVM选择性集成学习方法
基于Gazebo仿真环境的ORB特征提取与比对的研究
从滤波器理解卷积
基于Daubechies(dbN)的飞行器音频特征提取
基于深度优先随机森林分类器的目标检测
开关电源EMI滤波器的应用方法探讨
一种微带交指滤波器的仿真
基于差异性测度的遥感自适应分类器选择
Bagging RCSP脑电特征提取算法
一种基于LBP 特征提取和稀疏表示的肝病识别算法