蔡 凡
(闽南理工学院, 工业自动化控制技术与信息处理福建省高校重点实验室, 福建 泉州 362700)
行人检测是指利用计算机视觉技术判断图像或者视频序列中是否存在行人,并对存在的行人进行精确定位。行人检测结果得出的判断是否准确、定位是否精确,这涉及多个方面的影响因素,其中对行人特征的提取和有关计算方法至关重要。一般是通过边缘特征、形状特征、统计特征或变换特征等图像的各类静态特征来描述行人[1];提取行人特征的方法主要有Haar小波特征法、HOG特征法、Edgelet特征法[2]等。本次研究,主要针对传统的HOG+SVM行人检测模型易受行人所处位置、影像大小和背景干扰等因素影响的问题,提出一种基于选择性搜索和特征学习的级联行人检测算法。利用选择性搜索算法在待检测图像上提取潜在的行人目标,将选择性搜索与AlexNet网络模型相结合,通过级联的形式逐步排除干扰目标。运用此方法,可减少计算量,提高行人检测的效率。
在检测初期,选择窗口常用滑动窗口,即通过不断改变窗口尺寸,对待检测图片进行穷举搜索[3]。这种穷举搜索方法比较简单,但存在两个问题:一是由于会产生大量非行人窗口,从而增加误检率;二是由于滑动的次数过多,会增加检测时间,影响检测效率。为克服滑动窗口技术的不足,在此提出一种选择性搜索方法,就是将密集搜索、分割搜索、随机采样搜索方法结合使用,找出可能出现的目标区域,然后进行识别。相比穷举搜索法,选择性搜索方法在对行人进行定位时,在效率和准确度上都有十分明显的优势。
近年来,出现了许多获取目标候选区域的方法,如密集搜索、分割搜索、随机采样搜索方法。这些方法主要可分为两种类型:一类是碎片融合型,就是先将图片碎片化,然后重新组合;另一类是窗口打分选择型,就是先分割出大量小窗口,然后对各窗口与行人进行比对打分,按分数高低进行排序,剔除低分窗口。文献[4]提出的选择性搜索方法,集合了分割方法和密集搜索方法,其基本思想主要是:利用图像分割算法将目标图片切成许多小的分块,记作R={r1,r2,…,rn};然后将这些小的分块利用分层分组算法予以合并,最后将它们融合成一个大的整体。但是,对小分块进行合并时,由于自然图片的颜色、纹理等特征具有多样性,计算机对它们进行识别的方法也必然存在差异。因此,在计算图像最终的相似度时,我们先将颜色、纹理、尺寸、相容性等4种特征的相似度进行组合。
s(ri,rj)=a1sc(ri,rj)+a2st(ri,rj)+
a3ss(ri,rj)+a4sfill(ri,rj)
(1)
式中:s(ri,rj)表示ri和rj这2个相邻区域图像的相似度;sc表示颜色相似度;st表示纹理相似度;ss表示尺寸的相似度;sf表示吻合(相容)相似度;权值αi∈{0,1}。
在实验中,设定不同的特征权值组合,计算图像最终的相似度。经过大量实验,获得效果较好的候选区域,然后抽取具有代表性的几组特征权值组合对应的平均召回率(见表1)进行比较。平均召回率的大小与行人候选区域的好坏具有正相关性。结合实验结果,最后将4种特征相似度的权值组合确定为sc+0.5st+0.5ss+0.4sf。
表1 相似度权值组合及其对应的平均召回率
与滑动窗口比较,选择性搜索的行人候选窗口,减少了大量非行人窗口,但仍然会产生一些非行人窗口。以图1为例,采用选择性搜索技术得到159个候选区域。在未设置行人图像尺度时,非行人的区域占了大部分。将图中行人区域的宽度和高度分别设置为1.3 m和3.5 m,结果淘汰了部分非行人的区域,最后只留下25个含行人的候选区域。
图1 行人图片
方向梯度直方图(HOG)是计算机视觉、模式识别领域常用的一种描述图像局部纹理的特征。它是通过计算图片某一区域中不同方向上梯度的值,然后进行累积而得到的直方图,可以代表这块区域。
支持向量机(SVM)是一种常见的分类判别方法。在行人检测中,可将SVM用作区分行人和非行人的分类器。如应用基于网格法的SVM,就是先采集得到正样本(行人)和负样本(非行人,如汽车、树木、路灯等),提取出样本的HOG特征,再应用SVM分类器对其进行训练,从而得到行人检测模型。将HOG特征与SVM级联结合起来,利用OpenCV中提供的计算HOG特征功能,采集HOG特征,供SVM分类使用,最终实现行人检测。
采集HOG特征的主要思想是,通过对图像进行局部区域化,然后对局部目标的表象和形状的各像素点梯度或边缘密度方向直方图进行描述,最后即可根据直方图信息描述图片特征。本次研究的选择性搜索的行人检测系统,即以“HOG+SVM”的方式,提取HOG特征,建立训练集。其检测流程如图2所示。
图2 基于选择性搜索的行人检测流程示意
AlexNet网络模型主要利用了卷积神经网络模型的概念。与传统的机器学习分类算法比较,AlexNet网络模型的准确率可达57.10%,已经相当出色。在机器学习中,该网络模型主要利用多参数层、多分类形成逻辑回归,然后通过有限的训练样本去逼近训练样本的全局分布[5],实现训练样本的正确率。在此,同样采用基于选择性搜索和AlexNet 网络模型的级联行人检测。
基于机器学习的级联行人检测主要包括以下内容:
(1) 利用HOG特征、分类器、行人数据库及评估标准等现有数据作为训练数据,准备训练集。
(2) 用Caffe框架实现卷积神经网络AlexNet模型,建立训练集,实现行人模型参数的调节[5]。
(3) 采用选择性搜索算法,在待检测图像上提取潜在的行人目标。
(4) 利用行人特有的长宽比信息,排除不合理的潜在行人目标,得到候选行人目标。
(5) 完成针对候选行人目标的区域完善。
(6) 将候选人目标输入AlexNet行人检测模型,得到行人目标,同时排除干扰目标。
(7) 利用测试数据集进行测试,计算检测的准确率和误检率。
应用以上检测方法,可有效解决行人重叠和遮挡的问题,加快检测速度,强化检测实时性。
利用ETH行人数据集来检验算法的性能,将漏检率和误检率作为检测行人的性能参数。该数据集记录了所有测试样本在不同分类器下的漏检率和误检率。
在ETH数据库中,运用不同方法对同一目标进行检测。结果显示,漏检率都是随误检率的增加而减少。以HOG特征为例,对目标候选区域先进行选择性搜索,再分别利用HOG和AlexNet进行级联分类,结果所得检测错误曲线如图3所示。
图3 2种级联分类方法在ETH数据库中的检测错误曲线
在ETH数据库中,3种分类器下目标检测的误检率和漏检率稍有差异。与传统的HOG特征法相比,当误检率均为10%时,采用选择性搜索的行人检测方法的漏检率均有所降低。其中,基于选择性搜索和HOG的检测结果,漏检率约降低3.52个百分点;基于选择性搜索和AlexNet模型的行人检测结果,漏检率约降低9.32个百分点(见表2)。采用选择性搜索产生候选窗口的方法,相以滑动窗口的行人检测系统,检测的时效性有所改善,漏检率也有所下降。
利用 Caltech 行人数据集来检验算法的性能。获得的可用于描述不同分类器性能的检测错误曲线如图4所示。所有测试样本在3种分类器下的漏检率和误检率,如表3所示。
表2 在ETH数据库中不同方法的检测结果
图4 2种级联分类方法在Caltech数据库中的检测错误曲线
表3 在Caltech数据库中不同方法的检测结果
利用 Caltech 行人数据集进行的算法实验结果表明,在误检率均为10%时,采用选择性搜索和ALexNet网络模型算法,相比传统的HOG特征法,漏检率减少11.63个百分点;相比选择性搜索和HOG算法,漏检率减少6.22个百分点。同时也表明,利用选择性搜索时,AlexNet的级联行人检测效果优于SVM的级联行人检测效果。
与传统的HOG特征算法比较,采用选择性搜索与HOG或AlexNet的级联行人检测方法,改进了选择性搜索产生的候选窗口,可以减少大量非行人窗口的数量。通过AlexNet行人模型相关参数,对AlexNet神经网络进行迭代训练,建立训练集,最终构造有效分类器。实验表明,将HOG特征和AlexNet模型相结合,可有效提高行人检测的效率,降低误检率和漏检率。