1.1 研究背景及意义:
由于现实世界中的物体(尤其是行人)、场景存在多变性,使其很难用一个统一的方法进行研究。目前目标检测所遇到的主要问题有:如何准确快速分割目标、尽量减小复杂背景对目标检测的影响以及如何降低因目标尺度、大小和形状发生变化引起的目标检测精确度下降的问题。
此外,在目标检测系统中,系统的鲁棒性与实时性这两方面的性能存在矛盾。鲁棒性对目标检测系统,特别是行人检测系统十分重要,因为行人检测系统通常需要自动、连续的工作,对噪声、光照、天气等因素的影响不能太敏感;实时性是系统必须满足的要求,这也就说明系统采用的图像处理算法不能太复杂。
1.2 国内外研究现状:
基于静态图片的目标检测的难点主要在于图片中的目标会因光照、视角以及目标内部等变化而产生变化。针对以上的难点,国内外学者进行了很多尝试。目前提出的方法主要分为基于形状轮廓的目标检测算法和基于目标特征的检测方法。
在行人目标检测中,形状是人体明显的一个特征,例如头肩部呈“Ω”形,躯干部分呈竖直型等。
基于特征及机器学习的方法是通过对目标进行特征提取、特征学习和检测等过程实现目标检测。人体特征一般通过统计图像的局部亮度变化,用该变化近似表达人体。常见的人体特征有Haar小波特征、HOG特征、Edlgelet特征(小边特征)和混合特征。
Haar小波特征由Papageorgiou和Poggio等人提出,该特征使用检测窗口中指定位置的相邻矩形,计算每一个矩形的像素和并取其差值,然后用这些差值对图像的子区域进行分类。Haar特征最初用于人脸目标检测;然后Viola使用积分图计算Haar特征,积分图是一个与原始图像一样尺寸的二维矩形的查找表,每一个元素是原始图像在对应位置左上角所有像素和,可以使用查表的方法快速找出指定区域的Haar特征。Viola将该方法用于行人检测,取得了较好的检测效果,为行人检测技术的发展奠定了基础。研究人员提出了大量基于Haar小波特征的改进算法进行行人检测。
Dalal等人首先提出了使用梯度方向直方图进行行人检测,梯度方向直方图将图像分成小的连通区域,采集连通区域中各像素点的梯度的边缘或边缘的方向直方图,最后将这些直方图组合起来构成特征描述。HOG描述器对图像几何和光学的变化都能保持较好的不变性,而且在粗空间采样、精细方向抽样和较强的光学归一化等条件下,行人保持站立的姿态做一些轻微的肢体动作,这些肢体动作可以忽略而不影响检测效果。综上所述,HOG特别适合于做图像的行人检测。随后HOG成为了使用最广泛的行人特征描述子。Zhu等人使用积分直方图计算HOG特征,加速了HOG特征的提取速度,然后训练了多个不同尺度的分类器,构成了一个级联分类器用于检测行人;Qu等人在检测视频中的行人时,将行人与背景分离出来后提取行人的HOG特征,减少了背景对目标HOG的影响,又加快了HOG特征的提取速度。
Edgelet特征对光照变化的鲁棒性强;只存储位置和方向信息用来计算,匹配计算简单快速;对行人的遮挡、视角和姿态的变化不敏感。但是Edgelet特征是依靠人工进行标定,工作量比较大,且标定完全符合人体曲线的Edgelet特征十分困难。
Tuzel等人使用各种不同特征的协方差矩阵描述行人的局部区域,将协方差矩阵视为联通的黎曼流,在黎曼几何空间中对行人分类。Watanabe等人提出了共生梯度方向直方图特征(Co-occurrence Histograms of Oriented Gradients),该特征类似灰度共生矩阵,能更好的描述梯度空间的分布,但是向量维数太高。Dollar等人使用积分图的技术对图像各特征通道(线性或非线性变换后的图像)进行快速计算,提出了积分通道特征。该特征不仅可以将多种特征有机的结合起来,且解决了融合计算较慢的缺点。
1.3 本文主要内容及结构安排
2 相关基础知识
2.1 行人目标检测算法原理:
目前最流行的行人检测方法是通过特征加机器学习的方式进行,有大量的研究对行人特征和机器学习算法进行了优化和创新。优秀的行人检测算法一般以获得更快的检测速度以及更高的准确率为目标。检测算法的挑战:
1)外形特征不固定
2)环境变化多样
3)视频监控中对实时性的要求高
当前的主流行人检测算法分为基于模板匹配的行人检测算法和基于分类的检测算法。基于模板匹配的行人检测算法通过建立行人模板库,提取待捡图片模板与模板库中行人匹配,根据匹配结果判断是否为行人;基于分类的行人检测算法需要准备大量包含行人的正样本和不包含行人的负样本,提取样本图像中行人特征,使用该特征训练分类器,根据训练好的分类器判断待捡图像是否存在行人。
2.1.1 基于模板匹配的检测算法:
根据所使用的模板类型可以分为基于整体模板的行人检测算法和基于局部模板的的行人检测算法。行人轮廓是最常用的基于整体的模板。人体的头肩部、躯干和四肢三个类型的模板属于局部模板。
基于行人整体模板行人检测算法具有较快的检测速度,但是在行人存在遮挡情况下检测率不佳;与此相反,基于局部模板的匹配算法由于复杂的计算过程导致检测速率较慢,但是其在行人存在遮挡的情况下仍然可以获得较好的检测效果。
基于模板匹配的行人检测算法能够较好的处理行人拥挤,相互遮挡的情况。其缺点是精度和速度受模板库的影响较大,由于需要将特征模板与模板库中每一个模板进行一一对比,模板太小影响精度,太大又影响检测速度。并且每一个模板只能对应一种姿态的行人,扩展性低,无法适应各种各样的行人姿态。
2.1.2 基于分类的检测算法:
基于机器学习的行人检测算法是当前的主流行人检测算法,其核心思想是提取描述行人的主要特征,使用这些特征训练一个分类器用作二分类判断,即通过该分类器判断输入的特征是否为行人相关特征。这类算法的基本步骤如图2-2
所示。由图2-2可知,该类算法的核心部分是特征提取和分类器设计。
用于描述行人的图像特征主要分为三类:
1)基于局部像素值的特征:非自适应Haar小波特征是行人检测领域经常使用的基于像素基于局部像素值的特征,通过计算图像相邻区域不同位置、不同方向和不同大小的矩形区域内像素总和值的差值得到。完备的Haar特征集合特征数量特别庞大,选定特定
的Haar特征有两种方法:①手动指定有针对性的Haar特征;②使用基于Adaboost算法的特征选取方法,自动从Haar特征集合中选取出部分最优的Haar特征。
2)基于局部边缘的特征:基于物体局部边缘特征中使用较多的是梯度方向直方图(Histogram of Gradients,梯度方向直方图)特征。HOG特征适用于构建稠密特征空间与构建稀疏特征空间描述行人。通过对图像进行预处理找到感兴趣的区域,在该区域计算
HOG特征,产生的特征空间称为稀疏特征空间;在图像中以一个像素为移动距离,通过矩形框遍历整个图像,计算矩形框中的HOG特征产生的特征空间为稠密型特征空间。
3)基于运动信息的特征:行人的步态特征这类基于空间运动信息的特征也是一类广泛采用的行人描述特征。例如文献[30]提出的对计算图像间光流变换的HOG特征来描述行人的运动信息。该类型的特征的优点是可以在使用较小的训练样本的情况下仍然具有较高的检测准确率;缺点是往往需要较大的计算量,运算比较耗费时间。
获取到所需要的特征后,选择合适的分类器算法进行样本的分类。行人检测算法的分类器主要目标是在特征空间中寻找一个能将行人特征和非行人特征划分的最优分割平面。
在模式识别、分类回归领域使用最广泛的分类器是支持向量机(Support Vector Machine,SVM)。其思想是通过最大化分割平面与超平面之间的距离来确定最优特征空间分割平面,产生最佳的分类判断。常见的SVM分类器分为线性分类器和非线性分类器。线性分类器的优点是结构简单,计算速度快,可以与多个比较复杂的非线性特征集合联合使用以提高分类器的准确性;非线性分类器将特征空间映射到更高维来实现分类判断,但在提高分类性能的同时需要进行复杂的数学计算。
使用Adaboost算法不仅可以实现最优特征选择,并且可以用来构建性能较强的线性分类器。其思想是通过多个最优分类特征构建弱分类器,将这些弱分类器赋予不同的权重构成分类性能较强的强分类器。Viola Paul等人提出的级联分类器提高Adaboost分类器处理非线性分类问题的能力以提高Adaboost分类器整体分类性能。由于基于特征+分类器的行人目标检测算法一般需要通过滑动窗口滑动整幅图像以检测行人,滑动窗口在滑动时将产生大量的非行人窗口图像,使用Adaboost分类器构成的级联分类器能够尽早排除非相认窗口以提高检测的速率及准确性。
2.2 典型的人体特征:
比较常见的基于机器学习的行人检测特征有:Haar-like特征、HOG(Histogram of Oriented Gradient)特征、SIFT(Scale Invariant Feature Transform尺度不变特征变换)特征以及融合多种特征的混合特征。
2.2.1 Harr-like特征:
Haar-like特征又称为矩形特征,由于其算法思想与Haar小波变化有相似之处而得名。目前常用的Haar特征主要有边缘特征、线性特征、点特征和对角线特征。特征值为白色矩形像素和减去黑色矩形像素和,反映了图像的灰度变化情况。例如脸部的一些特征就可以用这些灰度差来表示,眼睛的颜色比脸颊的深;鼻梁两侧的颜色比鼻梁深;嘴巴比周围颜色深等等。
按照Haar特征的定义计算特征值需要计算每个矩阵中的像素值,Papageorigiou等人提出的积分图像(Integral Image,新像素值等于原图中左上方像素值的和)是一种快速计算Haar特征的方法。预先计算并存储图像中每一个像素的积分图像,大幅度缩短了Haar特征的计算时间。
2.2.2 HOG特征:
HOG特征行人检测特征提取领域的另一经典算法,该特征由Dalal和Triggs在2005年CVPR上提出,使用梯度方向直方图特征来表达人体,提取人体的外形信息和运动信息,形成丰富的特征集。HOG特征提出后经过大量研究人员的扩充和改进,已经证明了该方法在行人目标检测领域为相对有效的特征,有效的提高了行人检测的精确性和鲁棒性。
HOG特征提取算法的主要思想是通过有效提取检测目标的边缘梯度信息,将各边缘梯度信息以梯度方向直方图的方式予以反映,并对各梯度方向的直方图进行综合归纳与描述来提取目标的边缘共性特征。在给定一输入图像I以后,首先需要按照一定的规则划分成若干个块状结构(记为BLOCK)。然后对每一个划分的BLOCK按照“田字格”规则均分成四个子块(记为CELL),并统计每个CELL所属区域内像素点的梯度在不同方向上的分布得到了CELL的特征。最后将分别属于四个CELL的特征组合在一起形成了BLOCK的特征向量。图2-8给出了HOG特征计算的示意图。
梯度是函数的一阶微分,是一个包含了幅值和方向的矢量。这里设(x,y)为任意一个CELL中的像素点坐标,则其水平方向的梯度为Gx(x,y)、垂直方向的梯度为Gy(x,y),梯度幅值为G(x,y),以及梯度的方向为θ(x,y)。
在对CELL中的所有像素点都按照上述公式计算完毕之后,那么这个CELL就可以用一个基于方向的直方图来表示。该直方图的横坐标表示的是梯度方向,纵坐标表示的是对应幅值的累加和。
在实际的数字图像梯度算法中,一般采用图像与梯度算子卷积来得到图像的梯度。
2.2.3 SIFT特征:
SIFT特征由Lowe在2004年首次提出的一种检测局部特征的算法。该特征具有性能优越的鲁棒性,对视频图像因外界光照、尺度、位移等产生的变化都具有良好的容忍性。整个算法分为以下几个部分:
(1)构建尺度空间:
为了模拟图像数据的多尺度特征,需要构建尺度空间。定义函数L(x,y,δ)表示图像的尺度空间,可以使用高斯核函数与图像I(x,y)进行卷积得到该尺度空间。其中,δ为标识图像平滑程度的尺度坐标。大尺度对应图像的概貌特征,小尺度对应图像的细节特征。
提出高斯差分图尺度空间,目的是为了有效的在尺度空间检测到稳定的关键点。
(2)检测尺度空间极值点:<高斯差分函数 DOG算子>
将尺度空间中每个采样点与其相邻点进行比较,取出因噪声和边缘效应产生的极值点,其余均为关键极值点。中间的检测点和它同尺度的8个相邻点和上下帧上相邻尺度对应的9*2个点共26个点比较,以确保在尺度空间和二维图像空间都检测到极值点。
(3)精确定位极值点:
通过对空间尺度函数的泰勒展开式求导,去除低对比度的关键点和不稳定的边缘响应点,以增强匹配稳定性、提高抗噪声能力。为了获得更精确的极值点,还需要进一步去除边缘效应强的点。
(4)为每个关键点指定方向参数:
为了保证极值点与其领域点的一致性,增强算子的旋转不变性。SIFT利用关键点的领域像素的梯度方向分布特性为每个关键点指定方向参数。每个关键点包含三个信息:位置、所处尺度和方向。
(5)生成SIFT特征描述符:
为了确保旋转不变性,将坐标轴旋转为关键点的方向。然后以特征点为中心取8*8的领域作为采样窗口,将采样点与特征点的相对方向通过高斯加权后归入包含8个方向直方图,最后获得2*2*8的32维特征描述子。
SIFT特征具有光照不变性、旋转不变性和尺度不变性。使用与相对复杂的图像检测中具有良好的鲁棒性和可靠性。但该特征计算量大、特征维数高,使用时必须对特征进行降维处理以提高系统的实时性。
<SIFT算法的实质是在不同的尺度空间上查找关键点(特征点),并计算出关键点的方向。SIFT所查找到的关键点是一些十分突出,不会因光照,仿射变换和噪音等因素而变化的点,如角点、边缘点、暗区的亮点及亮区的暗点等。 >
2.3 典型分类器:
优秀的分类算法可以有效的区分行人特征和非行人特征,提高行人检测效果,反之则影响检测精度。本章将详细介绍两个经典的分类算法(支持向量机和Adaboost),并分析比较这两个分类算法的不足。
2.3.1 支持向量机算法:<机表示一种算法,支持向量是指支撑分类间隙的点>
算法的思想是使用少量的支持向量代表整个样本集,并将其映射到高维空间,在高维空间中寻找一个最优分类的超平面将两类不同样本精确分开,并使得两类样本的分类空隙最大。
对于非线性问题,SVM可以通过某种非线性变换,将其映射为高维线性空间中的线性分类问题,然后使用最优超平面理论进行求解。为了克服映射过程中出现的特征维数呈指数化增长,SVM使用核函数实现非线性映射。支持向量机实现的复杂程度仅仅取决于支持向量个数,与特征维数无关。
2.3.2 AdaBoost算法:
AdaBoost算法是一种改进的Boosting(助推)算法,该算法的本质是通过自适应调整训练样本的分布来实现正负样本的有效分类。该算法在训练之前给所有的训练样本赋予相同的初始化权重,该权重值的大小反映了对应的训练样本被选入弱分类器训练集的概率值,在迭代初始时各样本选中的概率均等。在训练的过程中,样本能否被正确分类决定了样本的权重值,若样本能够被正确分类,则减小其权重值,在构建下一级分类器时该样本被选中的概率变小。弱样本不能被正确分类,增加其权重值,则在下一级分类器中它被选中的概率就会变大。权值的改变使得算法在后续的运行过程中将更关注于被错误分类的样本,有利于提高分类器的分类性能。Adaboost算法的具体训练过程如下:
(1)初始化权重
(2)开始T轮迭代训练,其中T为弱分类器个数
Adaboost
算法对弱分类器的分类性能要求较低,但是通过组合成强分类器之后,分类精度可以得到迅速提高。
2.4 深度学习:
2.4.1 深度学习概述:
传统的机器学习解决思路都是由预处理、特征提取以及特征选择这三部分组成。特征提取与特征选择概括起来为特征表达,良好的特征表达对最终算法的准确性起决定性作用,然而这部分工作在传统的机器学习中是靠人工完成的。但是手工构建特征需要研究人员具有丰富的先验知识且耗费大量的时间进行调节。
深度学习具有多层非线性映射的深层结构,可以完成复杂的函数逼近;此外深度学习理论可以获取分布式表示,即通过逐层学习算法获取输入数据的主要特征表示。
深度学习通过组合低层特征形成更加抽象的高层表示,发现数据的分布式特征表示。当前多数分类、回归等学习方法为浅层结构算法,有限样本和计算单元情况下对复杂函数的表示能力有限,针对复杂分类问题其泛化能力受到一定的制约。
2.4.2 典型的深度学习结构:
2.4.2.1 稀疏自编码器:
自编码器是一种无监督学习算法,其本身是用于降维和特征提取的神经网络。自编码器的核心思想是将输入信号进行编码,使用编码之后的信号重建原始信号,尽量让原始信号与重建信号之间的误差最小。计算机视觉中常用的K均值聚类、稀疏编码、主成分
分析等方法都可以理解为一个自编码器,他们的思想都是通过将信号编码成为另一种形式,有效提取信号中的主要信息,从而获得更简洁的表达。
2.4.2.2 深度置信网(DBN):
与传统区分型神经网络不同,DBN可获取观测数据和标签的联合概率分布,这方便了先验概率和后验概率的估计,而区分型模型仅能对后验概率进行估计。DBN解决传统BP算法训练多层神经网络的难题:a)需要大量含标签训练样本集;b)较慢的收敛速度;c)因不合适的参数选择陷入局部最优。该模型将多层神经网络分解成多个受限波兹曼机(Restricted Boltzmann Machine,RBM)的叠加,并逐层训练RBM。受限波兹曼机是一种典型的神经网络模型。限制波兹曼机中,层内无连接,可视层与隐层单元彼此互连。限制波兹曼机定义了一种基于能量的概率分布模型,具有强大无监督学习能力,能够从复杂数据中有效的获得数据信息。如果增加限制波兹曼机的隐藏层数,就可以得到深度波兹曼机;在靠近可视层的部分使用贝叶斯信念网络,在最远离可视层的部分使用限制伯兹曼机,就可以得到深度信念网。
利用无监督学习算法逐层对整个深度置信网络的参数进行初始化,然后利用BP算法对模型参数进行全局精调,完成整个深度置信网络的学习过程。深度置信网络模拟人的视觉系统对系统信息分级处理,高层特征是低层特征组合,底层到高层的特征越来越抽象。抽象层面越高,越利于识别。
2.4.2.3 卷积神经网络:
卷积神经网络是第一个真正训练多层网络结构的学习算法,该网络可以直接输入原始图像,避免了对图像进行复杂的前期预处理,因而得到了广泛的应用。
卷积神经网络主要采用了三种结构思想:局部感受野、权值共享和向下采样。
卷积神经网络是一种非全连接的神经网络结构,包含了两种特殊的结构层:卷积层和次采样层。
卷积神经网络是一个多层结构的神经网络,每层由多个平面组成,每个平面又是由多个独立神经元组成。卷积层由多个特征平面构成,卷积神经网络抽取特征的任务由卷积层完成。同一特征平面包含多个神经元,由于卷积神经网络使用了权值共享,因此这些神经元使用相同的权重进行连接。每个神经元定义了相应的局部感受野感受野,只接受从其局部感受野传输的信号。
2.5 本章小结
本章首先给出了两类行人目标检测算法:基于模板匹配的算法和基于特征+分类器的算法。基于模板的匹配算法收集了大量的行人模板库,在检测过程中将待检图片与行人模板进行对比,判断是否为行人。该算法实现简单,在空旷场所有较好的检测效果。但是该算法准确率依靠模板库的规模,而且计算量巨大,在行人存在遮挡的情况下准确率不高。基于特征+分类器的算法通过某种算法提取行人特征,用该特征训练分类器进行行人检测。根据不同的特征,可以在不同场合检测出行人。该类算法的缺点是优秀的特征提取比较困难,需要研究人员具有良好的先验知识且耗费大量时间。接着讲解了三个经典的行人特征提取:Haar-like特征、HOG特征和SIFT特征。Haar-like特征的优点是算法简单而且容易实现,并且具有一定的实时性,适宜在行人比较稀少且遮挡不严重的简单环境使用。但是其鲁棒性不高,容易受到遮挡、光照等外界因素的影响,若单独使用该特征在较为复杂的场景进行行人检测,往往很难取得满意的效果。HOG和SIFT特征的维数较高,描述行人特征的能力较强,并且有一定的适应场景变化的能力,具有较好的光照不变性和尺度不变。但是也因为其维数较高,计算起来比较复杂,在实际的应用中一般需要经过相应特征的降维处理。详细说明了支持向量机和AdaBoost算法,并给出了支持向量机和基于AdaBoost算法分类器的详细训练过程。接着详细介绍了深度学习的相关基础知识,给出了三种常用的深度学习模型:稀疏自编码器、深度置信网和卷积神经网络。
3. 基于融合特征的疑似行人窗口确认
如何对一个图像进行有效的表达是目标识别的关键问题。如果选择的表达特征能够有效的反映目标的本质,那么对于理解目标图像就会取得良好的效果。
在行人目标检测算法中,按特征的提取方法可以分为人工特征和基于学习的特征。使用人工特征进行行人检测器训练是一种半手工的训练方式,需要研究人员具有较好的先验知识,且训练出的检测器往往具有场景不可变性。随着深度学习的发展,出现了很多基于深度学习的特征,使用这些特征在图像分类时具有优异的效果。但是在图像中进行行人检测时,需要对图像进行不同尺度的滑动窗口检测,使用深度学习结构进行滑动窗口检测无法达到理想的效率。
本文使用一种传统行人检测框架与卷积神经网络级联的方法进行行人检测,与传统的行人检测算法相比,提升了检测效果,与使用单一的卷积神经网络进行行人检测相比,提升了检测速度。
本章主要目的是将待检图像中的疑是行人区域快速划分出来,主要分为以下几个步骤:
1)提取融合特征;
2)使用融合特征训练多个标准尺度级联分类器;
3)采用邻近尺度特征相似的思想求出几个标准尺度分类器邻近的分类器,构成分类器金字塔;
4)采用同分类器金字塔尺度一一对应的滑动窗口遍历整幅图像;
5)采用基于窗口重叠的方法融重叠的多个窗口;
6)将疑是包含行人的窗口输出至卷积神经网络。
3.1 提取融合特征:
对输入图像进行各种线性和非线性变换求得各类图像的通道;然后在每个通道中利用积分图原理进行积分计算,使用各个积分图获取大量图像特征。常用的变换包括图像的灰度和颜色、非线性变换、线性滤波、积分直方图和梯度方向直方图等。为了能够快速的用滑动窗口进行检测,这些通道必须具有变换不变性。若有一个输入图像I,通道为该图像对应的某种输出响应。若输入图像为灰度图,则对应的通道为其本身,即C=I。而如果输入图像为彩色图像,其每个颜色通道对应一个通道。其他类似的通道可以通过各种线性和非线性的方法计算得到。
获取通道后,可以获得海量的特征。将一个通道图像中某个矩形区域内所有像素的和定义为一阶特征,多个一阶特征的加权和为二阶特征,依次类推,低一层的加权和构成高一层的特征。低阶的特征会涉及到通道的选择、矩形框的尺寸和位置等问题,高阶的特征会涉及到如何选取低层特征的组合的。使用积分图可以快速计算出一阶特征。
本文提取了上述的各种通道特征,使用不同的特征融合作为行人的描述特征,通过实验找出最合适的特征组合作为快速找出疑似存在行人窗口检测器的描述特征。
1)灰度通道与LUV颜色通道
虽然在图像处理领域经常采用RGB色彩空间,然而研究表明,使用LUV色彩空间表征目标表明颜色时,对目标模型颜色变化比RGB颜色空间更具有鲁棒性。因此LUV色彩空间被广泛的应用于计算机彩色处理领域。
2)线性滤波变换
通过对原图进行线性滤波可以得到图像不同方面的特性,常见的线性滤波器有Gabor滤波器和DoG滤波器。
①Gabor变换属于加窗傅里叶变换,可以在频域不同尺度、不同方向上提取相关的特征。由于Gabor函数可以同时在空间域和频域达到最优局部化的特性,所以经常用作纹理识别。
<Gabor滤波器是一个用于边缘检测的线性滤波器。Gabor滤波器的频率和方向表示接近人类视觉系统对于频率和方向的表示,并且它们常备用于纹理表示和描述。在空域,一个2维的Gabor滤波器是一个正弦平面波和高斯核函数的乘积,具有在空间域和频率域同时取得最优局部化的特性,与人类生物视觉特性很相似,因此能够很好地描述对应于空间频率(尺度)、空间位置及方向选择性的局部结构信息。><DoG金字塔>
3)非线性滤波变换
具有上述变换不变性的非线性变换有很多,比如说梯度幅值、Canny边缘算子以及双阈值二值化操作。
4)梯度方向直方图(HOG)
梯度方向直方图是一个加权直方图,计算图像的梯度方向得到其内容索引,计算梯度幅值得到其权值。梯度方向直方图是行人检测的经典特征,计算方法在2.2.2已经介绍。<HoG算法介绍>
通道种类很多,在实际的行人检测中,通道数量选取越多,目标的表达特征就越好,但是计算时间会有很大的负担。同时,不同通道进行组合也会给检测器的性能带来很大的影响。因此,一般的处理方式是针对特定目标,在训练过程中通过实验结果来确定所需要的积分通道。图3-1为使用单独通道类型和不同通道结合使用时检测器的性能曲线。横坐标表示每个滑动窗口的误报率(false positives per-windows,FPPW),纵坐标表示漏检率。
考虑到目标模型中颜色的多变性,为了提高对目标颜色变化的鲁棒性,需要使用色彩通道表征目标表面的颜色,使用LUV色彩空间有较高的检测率,于是选择了该空间。然后梯度幅值含有较为全面的行人表征信息,将该通道也纳入选择;最后由于梯度方向直方图作为特征在表述行人具有最高的检测率,该通道是必不可少的。所以本文最后采用了3种类型的通道结合:LUV色彩空间、梯度幅值以及梯度方向直方图。
3.2 分类器训练
3.2.1 训练标准尺度级联分类器
级联分类器由多个状态分类器构成,从特征集中选取最优的过程即为级联分类器的构造过程。
图中每个圆圈代表一个弱分类器,多个弱分类器构成一个状态分类器,然后每个状态分类器依次串联,构成最终的级联分类器。
图3-4为使用一个训练完成的级联分类器进行分类的过程。如图3-4所示,每个数字代表一个状态分类器,输入待检测的滑动窗口依次经过各个状态分类器进行判断,若当前分类器判断该样本为负样本,则马上结束判断;否则将该窗口传入下一个分类器,直到经过所有的分类器或者后面某一个分类器将该窗口图像判断为负样本为止。
由上可以看出,级联分类器的构建可以分为三个部分:弱分类器构建、状态分类器构建以及级联分类器的构建。
(1)弱分类器构建<弱分类器训练原理>
分类准确率略高于50%的分类器被称为弱分类器(分类能力弱,仅在50%左右)。弱分类器的优点是结构简单,易于实现。本文使用决策树作为弱分类器,该分类器的结构如同二叉树,样本通过与节点特征值依次对比找到对应的分类类别。决策树的精度随着树的深度增加而增加,一般用作弱分类的决策树深度在1至3。决策树分类器的优点是不需要经过复杂的运算,简单的几次对比后就可以找到样本所对应的类别。缺点是所占的存储空间比较大,因为分类器需要保存各个节点的特征属性。选择好合适的弱分类器后,需要使用大量的正样本和负样本对分类器进行训练。本文训练采用的正样本和负样本主要收集于INRIA行人数据库以及Caltech行人数据库。
将图像用3.1节所述的方法计算每张图像的各个通道,在3.1中得知,使用LUV通道、梯度幅值通道和梯度方向直方图这三类通道组合做行人检测效果最佳。随机选择一种通道,再使用一个大小随机(最小为25像素)的矩形区域使用积分图进行像素值求和。每一张图像可以得到约5000个通道特征,这些特征构成一个特征集合,用于训练弱分类器的特征将随机从这些特征集合中选取。
特征提取完毕后,需要使用这些特征构建二阶决策树。二阶决策树中每个叶子节点为类别值,这里只有1和0,分别代表行人和非行人;非叶子节点为分类的阈值。构建二阶决策树的过程即是对每个非叶子节点,依次遍历特征池中所有特征,找出对所有训练样本进行分类所得误差最小的特征作为分类的阈值 。Error=wi*|ci-yi|
其中i为样本编号,wi为样本对应的权重,ci为决策树分类的结果,yi为样本i的标签。
<针对样本的所有特征中的每个特征寻找一个合适的阈值来分类正负样本,使对于所有正负样本分类得最准确,也就是判读(分类)误差最小。再在这所有特征中找到分类最准的那几个特征,例如F1,F2,F3,每个特征和他们的阈值就是上述的一个结点,几个结点组织在一起就是弱分类器。>
(2)使用Adaboost方法构建状态分类器
由同一个训练样本集训练得到的多个弱分类器组合成的较强的分类器称为状态分类器。
Adaboost算法的核心思想是针对同一个训练样本集,根据上一次训练结果更新样本权重,若上一次分类被错误分类,则加大该样本权重,反之则减小权重,反复迭代这个训练过程产生不同的弱分类器。
(3)使用soft-cascade构建级联分类器
多个状态分类器串联构成级联分类器,级联类器的分类准确率与状态分类器的数量呈正比。一个样本集只能产生一个状态分类器,需要新的训练样本集才能训练不同的状态分类器,因此构建级联分类器的关键就是如何自适应的采集有效的训练样本集提供给下一个状态分类器的训练。
本文训练了一个由2层状态分类器构成的级联分类器,第一层状态分类器由32个弱分类器构成,第二层状态分类器由128个弱分类器构成。
使用已完成的训练状态分类器帮助筛选样本可以使样本集尽可能有针对性。对训练样本进行滑动窗口遍历,采取通道特征集合后,将集合输入之前训练好的状态分类器中进行判断,选择通过所有状态分类器判断的窗口图像作为下一个样本集参与状态分类器的训练。重复以上过程,直到采集完成所有的样本图像。
3.2.2 快速构建邻近尺度分类器
待检测图像中可能会存在不同尺度的行人目标,为了检测出不同尺度的行人,需要对待检测图像构建图像金字塔,即对图像进行多次放缩处理,然后再用滑动窗口在每个尺度的图像中进行滑动检测。这两个过程是传统的基于滑动窗口行人检测算法中比较耗费时间的两个过程,已经成为制约行人检测的瓶颈。单独训练一个标准尺度的行人检测分类器估计需要十个小时左右的时间,为了能够检测到各个尺度大小的行人,一般需要训练55个不同尺度的分类器。
Dollar等人在文献中提出了一种使用邻近尺度特征值估计的算法,使用在标准尺度上所计算的特征值估计相邻尺度上的特征值。这样极大的减少了图像缩放次数。
3.3 滑动窗口检测
(1)滑动窗口检测:
对待检图像进行行人检测就是利用已经训练完成的行人检测分类器,对输入图像进行检测判断,分析图像中是否包含行人以及给出图像中行人所在的位置。由于本文采用了级联分类器进行行人分类,所以必须使用滑动窗口遍历整幅图像,判断这些窗口是否存在行人。
待检图像中会出现尺寸不一的行人,可以通过构造待检图像金子塔和分类器金子塔解决多尺度的问题。
(2)窗口融合:
通过滑动窗口扫描的方法进行行人检测,不同尺度的窗口和同一尺度连续的窗口会将同一行人目标多次判断为行人,如何将属于同一个行人的检测窗口融合并标注其准确位置,是行人检测算法需要解决的最后一个难题。
本文使用基于窗口重叠的方法实现窗口融合,该方法的主要是通过计算窗口重叠部分的面积,若该面积大于一个阈值则使用其平均值融合该窗口,输出这个融合的窗口。
单独使用融合进行行人检测,想要保持较高的检测率,误检率比较高,因此需要将检测窗口做进一步精细检测。
3.4 本章小结
本章主要完成快速确认疑是行人窗口,将疑是存在行人的窗口传递到卷积神经网络进行行人检测。
4 基于卷积神经网络的行人检测
由于待检测图像中行人目标尺寸大小不一,通常采用多尺度的滑动窗口进行检测。直接使用卷积神经网络进行滑动窗口检测,检测效率较低,不具备实时性。本文通过前面所述过程,快速检测出疑是存在行人的窗口,然后将窗口传入卷积神经网络进行进一步检测,具有较好的实时性和检测率。
4.1 本文所使用的卷积神经网络拓扑结构
输入层为64*64像素的图像,C1层每个像素与输入层的9*9的感受野相连接,感受野在输入图像中滑动移动遍历,由64-9+1可得C1层特征图像大小为56*56。由于权值共享,每个特征平面的权值相等,C1层总共6个特征平面,从输入层中提取了6个特征。
4.2 训练卷积神经网络
在训练网络之前,需要找到合适且数量足够的正负样本,本文使用的训练样本来源于NICTA行人数据库,该数据库是目前规模较大的静态行人数据库,由训练集和测试集构成,且每张样本图像的大小均为64*80。其中训练集中包含了42,344张包含行人的正样本图像,200,000张不包含行人的负样本图像;测试集中包含了5,878张包含行人的正样本图像,37,343张不包含行人的负样本图像。
4.3 卷积神经网络的参数调节
卷积神经网络的输入样本分辨率大小、每层特征数目、迭代次数的改变都会对最后的分类效果产生影响。
1)不同像素对分类结果的影响:随着训练样本分辨率的下降,分类识别率总体上呈下降趋势。由于在相同的参数下,图像分辨率越大,通过卷积和采样得到的特征数目越多,处理时间越长。
2)不同网络结构对分类结果的影响:
3)不同迭代次数对分类结果的影响:迭代次数越高,平均准确率会得到相应的提升。但是,训练时间也会增大,且迭代在上升到一定次数后对检测准确率的提升会减小。
4.4 行人目标检测过程
本文训练的卷积神经网络输入图像尺寸大小为64*64,通过第三章获取的疑是存在行人窗口尺寸大小不一,需要将所有的窗口尺寸调整为64*64。本文使用了双三次插值法进行图像缩放调整,该算法比占主导地位的双线性滤波算法保留更好的细节质量。
4.5 本章小结
5 实验结果及性能分析
5.1.1 行人检测评价标准:
对行人检测的评价方法主要分为基于分类器的评价和基于检测效果的评价。这两种评价方法都需要已知输入图像的正确结果,将正确结果与分类器判断的结果或行人检测器检测的结果进行对比。相关测试名词有:正样本误判为负样本的数量(True Negative,TN);负样本误判为正样本的数量(False Positive,FP);负样本正确预判为负样本的数量(False Negative,FN);正样本正确预判为正样本的数量(True Positive,TP)。漏检率和误检率的计算如下公式:
基于分类器的评价方法主要是为了评价特征表征行人的能力和分类器的学习效果。该方法优点是简单直接,缺点是统计出的分类准确率不能衡量整个检测系统的优劣情况。
基于检测效果的评价方法主要是评价整个行人检测系统的性能。输入到行人检测器的测试样本都会有标注值,值为测试样本图像中行人的位置和大小,而从行人检测器中输出的图像也会标注出行人的位置和大小。用输出的结果与图像本身的标注值进行对比,若其偏差小于某一个设定的阈值,则判断其检测正确,否则为误判。该评价方法的优点是全面评价了检测器的性能,但是手动标注图像中每一个行人的位置和大小工作量巨大,而且检测效果受阈值的影响很大。
实时性也是行人检测系统比较重要的一个评价标准,但是相同的检测系统在不同的平台上可能会有速度上的差异,目前还不存在一种方法可以忽略平台单独评价行人检测系统的检测速度。
以上的评价方法都需要某种形式展示,当前主流的展示方法为混淆矩阵和ROC曲线图。
ROC曲线是关于检测阈值的函数曲线,其X轴位误报率,Y轴位检测率,能直观的反映行人检测结果里两类指标的关系,即曲线越靠近左上角,其检测效果越好。