1模式识别-课程大作业实验复杂交通场景中人、车的检测与跟踪姓名:陈明学号:201208070103班级:智能1201教师:李智勇时间:2016年12月24日单位:湖南大学信息科学与工程学院23一、实验题目复杂交通场景中人、车的检测与跟踪二、实验内容2.1熟悉各种分类器(贝叶斯分类器、线性分类器、支持向量机、神经网络、Adaboost等)与各种特征(颜色特征、梯度特征、LBP特征、边缘特征、Haar-like特征以及SIFT特征等),并掌握其中的一种或多种。2.2熟悉运动目标跟踪的基本原理与一些经典、常用的运动目标跟踪算法(卡尔曼滤波算法、Camshift算法等)。2.3利用训练好的分类器对复杂交通场景视频中的人和车辆进行检测,并在视频中标定出来。2.4对视频中检测到的人和车进行实时运动目标跟踪(可选)。三、实验原理及过程3.1特征原理及分类器:选取特征:HOG特征,LBP特征选取分类器:SVM支持向量机3.1.1HOG特征HOG,即方向梯度直方图(HistogramofOrientedGradient,HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。它通过计算和统计图像局部区域的梯度方向直方图来构成特征。Hog特征结合SVM分类器已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功。需要提醒的是,HOG+SVM进行行人检测的方法是法国研究人员Dalal在2005的CVPR上提出的,而如今虽然有很多行人检测算法不断提出,但基本都是以HOG+SVM的思路为主。3.3.1.1主要思想:在一副图像中,局部目标的表象和形状(appearanceandshape)能够被梯度或边缘的方向密度分布很好地描述。(本质:梯度的统计信息,而梯度主要存在于边缘的地方)。3.3.1.2具体的实现方法是:首先将图像分成小的连通区域,我们把它叫细胞单元。然后采集细胞单元中各像素点的梯度的或边缘的方向直方图。最后把这些直方图组合起来就可以构成特征描述器。3.3.1.3提高性能:4把这些局部直方图在图像的更大的范围内(我们把它叫区间或block)进行对比度归一化(contrast-normalized),所采用的方法是:先计算各直方图在这个区间(block)中的密度,然后根据这个密度对区间中的各个细胞单元做归一化。通过这个归一化后,能对光照变化和阴影获得更好的效果。3.3.1.4优点:与其他的特征描述方法相比,HOG有很多优点。首先,由于HOG是在图像的局部方格单元上操作,所以它对图像几何的和光学的形变都能保持很好的不变性,这两种形变只会出现在更大的空间领域上。其次,在粗的空域抽样、精细的方向抽样以及较强的局部光学归一化等条件下,只要行人大体上能够保持直立的姿势,可以容许行人有一些细微的肢体动作,这些细微的动作可以被忽略而不影响检测效果。因此HOG特征是特别适合于做图像中的人体检测的。3.3.1.5HOG特征提取算法的实现过程:大概过程:HOG特征提取方法就是将一个image(你要检测的目标或者扫描窗口):1)灰度化(将图像看做一个x,y,z(灰度)的三维图像);2)采用Gamma校正法对输入图像进行颜色空间的标准化(归一化);目的是调节图像的对比度,降低图像局部的阴影和光照变化所造成的影响,同时可以抑制噪音的干扰;3)计算图像每个像素的梯度(包括大小和方向);主要是为了捕获轮廓信息,同时进一步弱化光照的干扰。4)将图像划分成小cells(例如6*6像素/cell);5)统计每个cell的梯度直方图(不同梯度的个数),即可形成每个cell的descriptor;6)将每几个cell组成一个block(例如3*3个cell/block),一个block内所有cell的特征descriptor串联起来便得到该block的HOG特征descriptor。7)将图像image内的所有block的HOG特征descriptor串联起来就可以得到该image(你要检测的目标)的HOG特征descriptor了。这个就是最终的可供分类使用的特征向量了。53.1.2LBP特征:3.2.1.1背景介绍局部二值模式(Localbinarypatterns,LBP)是机器视觉领域中用于描述图像局部纹理特征的算子,具有旋转不变性和灰度不变性等显著的优点。它是由T.Ojala,M.Pietikäinen,和D.Harwood[1][2]在1994年提出,LBP在纹理分类问题上是一个非常强大的特征;如果LBP与HOG结合,则可以在一些集合上十分有效的提升检测效果。LBP是一个简单但非常有效的纹理运算符。它将各个像素与其附近的像素进行比较,并把结果保存为二进制数。由于其辨别力强大和计算简单,局部二值模式纹理算子已经在不同的场景下得到应用。LBP最重要的属性是对诸如光照变化等造成的灰度变化的鲁棒性。它的另外一个重要特性是它的计算简单,这使得它可以对图像进行实时分析。本节介绍相关LPB算法特征提取知识。3.2.1.1.2基本理论局部二值模式是广泛用于图像分类的一种图像特征,它的特点是,在图像发生光照变化时,提取的特征仍然能够不发生大的改变。提取LBP的过程首6先是将原始图像转换为LBP图,然后统计LBP图的LBP直方图,并以这个向量形式的直方图来表示原始的图像。LBP的基本思想是定义于像素的8邻域中,以中心像素的灰度值为阈值,将周围8个像素的值与其比较,如果周围的像素值小于中心像素的灰度值,该像素位置就被标记为0,否则标记为1.每个像素得到一个二进制组合,就像00010011.每个像素有8个相邻的像素点,即有2^8种可能性组合.如下图所示。因此,LBP操作可以被定义为:其中是中心像素,亮度是;而则是相邻像素的亮度。s是一个符号函数:这种描述方法使得你可以很好的捕捉到图像中的细节。实际上,研究者们可以用它在纹理分类上得到最先进的水平。正如刚才描述的方法被提出后,固定的近邻区域对于尺度变化的编码失效,所以,使用一个变量的扩展方法。主意是使用可变半径的圆对近邻像素编码,这样可以捕捉到如下的近邻:进行对一个给定的点,他的近邻点可以由如下计算:其中,R是圆的半径,而P是样本点的个数。这个操作是对原始LBP算子的扩展,所以有时被称为扩展LBP(又称为圆形LBP)。如果一个在圆上的点7在图像坐标上,我们使用他的内插点。计算机科学有一堆聪明的插值方法,而OpenCV使用双线性插值。对LBP特征向量进行提取的步骤,:(1)将检测窗口划分为16×16的小区域(cell);(2)对于每个cell中的一个像素,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于中心像素值,则该像素点的位置被标记为1,否则为0。这样,3*3邻域内的8个点经比较可产生8位二进制数,即得到该窗口中心像素点的LBP值;(3)然后计算每个cell的直方图,即每个数字(假定是十进制数LBP值)出现的频率;然后对该直方图进行归一化处理。(4)最后将得到的每个cell的统计直方图进行连接成为一个特征向量,也就是整幅图的LBP纹理特征向量;然后便可SVM或者其他机器学习算法进行分类了。3.1.2SVM支持向量机:所谓支持向量机,顾名思义,分为两个部分了解:一,什么是支持向量(简单来说,就是支持或支撑平面上把两类类别划分开来的超平面的向量点,下文将具体解释);二,这里的“机(machine,机器)”便是一个算法。在机器学习领域,常把一些算法看做是一个机器,如分类机(当然,也叫做分类器),而支持向量机本身便是一种监督式学习的方法,它广泛的应用于统计分类以及回归分析中。支持向量机的基本思想是:首先,在线性可分情况下,在原空间寻找两类样本的最优分类超平面。在线性不可分的情况下,加入了松弛变量进行分析,通过使用非线性映射将低维输入空间的样本映射到高维属性空间使其变为线性情况,从而使得在高维属性空间采用线性算法对样本的非线性进行分析成为可能,并在该特征空间中寻找最优分类超平面。其次,它通过使用结构风险最小化原理在属性空间构建最优分类超平面,使得分类器得到全局最优,并在整个样本空间的期望风险以某个概率满足一定上界。3.1.2.1学习问题xxy_yGSLM8(1)产生器(G),随机产生向量,它带有一定但未知的概率分布函数F(x)(2)训练器(S),条件概率分布函数F(y|x),期望响应y和输入向量x关系为y=f(x,v)(3)学习机器(LM),输入-输出映射函数集y=f(x,w),wW,W是参数集合(4)学习问题就是从给定的函数集f(x,w),wW中选择出能够最好的逼近训练器响应的函数。而这种选择是基于训练集的,训练集由根据联合分布F(x,y)=F(x)F(y|x)抽取的n个独立同分布样本(xi,yi),i=1,2,…,n组成。3.1.2.2学习问题的表示学习的目的就是,在联合概率分布函数F(x,y)未知、所有可用的信息都包含在训练集中的情况下,寻找函数f(x,w0),使它(在函数类f(x,w),(wW)上最小化风险泛函:),()),(,()(yxdFwxfyLwR模式识别问题:w)f(x,y,若1w)f(x,y若,0)),(,(wxfyL3.1.2.3经验风险最小化原则(ERM)(1)最小化经验风险(训练样本错误率):NiiiempwxfdLnwR1)),(,(1)(函数集Fk={F(x,w);w∈Wk},k=1,2,…,nF1F2…FnVC维:h1≤h2≤…≤hn在使保证风险(风险的上界)最小的子集中选择使经验风险最小的函数(2)ERM的缺点用ERM准则代替期望风险最小化并没有经过充分的理论论证,只是直观上合理的想当然做法。这种思想却在多年的机器学习方法研究中占据了主要地位。人们多年来将大部分注意力集中到如何更好地最小化经验风险上。9实际上,即使可以假定当n趋向于无穷大时经验风险也不一定趋近于期望风险,在很多问题中的样本数目也离无穷大相去甚远,如神经网络。3.1.2.4Vapnik-Chervonenkis(VC)维(1)定义:VC维是对由学习机器能够实现的分类函数族的容量或表达力的测度。分类函数集={f(x,w):w∈W}的VC维是能被机器对于分类函数的所有可能二分标志无错学习的训练样本的最大数量,描述了学习机器的复杂性(2)学习机器实际风险的界)()()(hnwRwRemp其中n样本数量,h是VC维,Φ是递减函数两种方法:神经网络:保持置信范围固定(通过选择一个适当构造的机器)并最小化经验风险。支持向量机(SVM):保持经验风险固定(比如等于零)并最小化置信范围。结构风险最小化原则函数集Fk={F(x,w);w∈Wk},k=1,2,…,nF1F2…FnVC维:h1≤h2≤…≤hn3.1.2.5支持向量回归机SVM本身是针对经典的二分类问题提出的,支持向量回归机(SupportVectorRegression,SVR)是支持向量在函数回归领域的应用。SVR与SVM分类有以下不同:SVM回归的样本点只有一类,所寻求的最优超平面不是使两类样本点分得“最开”,而是使所有样本点离超平面的“总偏差”最小。这时样本点都在两条边界线之间,求最优回归超平面同样等价于求最大间隔。(1)SVR基本模型对于线性情况,支持向量机函数拟合首先考虑用线性回归函数拟合,为输入量,为输出量,即需要确定和。bxxf)(niyxii,...,2,1),,(niRxRyib10图3-3aSVR结构图图3-3b不灵敏度函数惩罚函数是学习模型在学习过程中对误差的一种度量,一般在模型学习前己经选定,不同的学习问题对应的损失函数一般也不同,同一学习问题选取不同的损失函数得到的模型也不一样。常用的惩罚函数形式及密度函数如表3-1。表3-1常用的损失函数和相应的密度函数损失函数名称损失函数表达式()ic噪声密度()ip-不敏感i1exp()2(1)i拉普拉斯i1exp()2i高斯212i21exp()22i鲁棒损失21(),if;2,otherwise;2iii