基于纠错输出编码的车型识别方法与流程

文档序号:12040717阅读:366来源:国知局
基于纠错输出编码的车型识别方法与流程
本发明属于车型识别技术领域,涉及一种基于纠错输出编码的车型识别方法。

背景技术:
车型识别技术是一门集计算机图像处理技术、模式识别、工业测控技术、人工智能、系统工程等技术于一体的综合技术。目前大部分的车型识别技术主要是为了解决特定的问题而提出的,但不具有通用性,尤其应用到实际道路环境中其效果更是差强人意。车型识别问题是典型的多类分类问题,而当前处理该问题的典型做法是,收集一定量的提供类别标记的样本点作为训练集,通过对训练样本及其类别标记之间的统计模式关系的分析得到分类器,进而对未知类别标记的数据进行分类。但是在某些分类实例中,存在模型建立困难、缺乏有效的理论支持,及训练复杂度大等问题。

技术实现要素:
本发明的目的在于提供一种基于纠错输出编码的车型识别方法,解决现有技术存在的模型建立困难,训练复杂度高的问题。本发明的技术方案是,基于纠错输出编码的车型识别方法,包括车型特征提取、车型分类和分类结果评价。本发明的特点还在于:车型特征提取包括构建训练样本集、图像处理和特征提取;车型分类包括编码、分类训练和译码。上述特征提取包括:1、图像归一化处理;2、边缘检测和提取;3、基于梯度幅值的方向权重投影;4、图像梯度方向直方图(HOG)结构的中块的特征向量归一化;5、求解图像梯度方向直方图的最终特征向量。上述图像归一化处理是将整个图像转化为灰度图,即通过Gamma标准式(1)转化;I(x,y)=I(x,y)gamma(1)其中,I(x,y)表示图像中的像素点颜色信息。上述边缘检测和提取为通过索贝尔(sobel)算法实现边缘检测和提取:首先,通过式(2)计算梯度幅值G;其中Gx(x,y)和Gy(x,y)分别表示x和y方向的梯度;然后,通过式(3)计算计算梯度方向θ;式(3)中,将θ(pi,j)的取值范围分成8个等分,以便将θ(pi,j)量化,Pi,j表示样本的像素点;最后,通过式(4),求以θ(pi,j)为直方图的横坐标生成直方图Ht;在式(4)中,上述基于梯度幅值的方向权重投影,将图像窗口分成若干个小区域,这些区域被称为“单元格”;然后将每个单元格中所有象素的一维梯度直方图或者边缘方向累加到其中;最后将这个基本的方向直方图映射到固定的角度上,就形成了最终的特征。上述图像梯度方向直方图(HOG)结构的中块的特征向量归一化,为使得块内特征向量空间对光照,阴影和边缘变化具有鲁棒性需通过归一化实现,其归一化通过式(5)实现;其中v表示一个还没有被归一化的向量,它包含了给定区间的所有直方图信息;||v||k表示v的k阶范数,k取1、2;ε表示一个趋近于0的很小的常数;ε是个很小的常值,避免分母为0。上述求解图像梯度方向直方图的最终特征向量,HOG结构的基本单位都是块(Block),每个块(Block)都由若干单元(Cell)组成,一个单元都又由若干个像素点(Pixel)组成;将检测窗口中所有重叠的块进行HOG特征的收集,并将它们结合成最终的特征向量,即由cell中直方图通道的数目、block的数目及block中cell的数目组成的高维向量供分类使用。本发明具有如下有益效果:1、本发明通过将传统的纠错输出编码与分类器结合应用到车型分类中,通过编码的形式纠正由单分类器引起的偏差,以提高在多类问题中有监督方法的分类精度,将车型多类分类问题转换分解成多个两类分类问题进行求解。不仅提高了车型识别的实用性和通用性,而且也为车型识别提出了一个新的解决思路,具有较高理论和实用价值。2、本发明不仅解决了现有技术存在的模型建立困难,理论支撑少,而且训练复杂度大等问题,而且还保证分类精度。3、本发明的车型识别率都在99%以上,使得车型的平均识别率比单独使用分类器的识别效果有明显的提高。附图说明图1是本发明基于纠错输出编码的车型识别方法中车型识别流程图图2是本发明基于纠错输出编码的车型识别方法分类结果投票图;图3是本发明基于纠错输出编码的车型识别方法中HOG提取特征流程图;图4是本发明基于纠错输出编码的车型识别方法中归一化函数效果图;图5是本发明基于纠错输出编码的车型识别方法中ECOC方法框架;图6是本发明基于纠错输出编码的车型识别方法中基于ECOC的车型识别方法平均识别率。具体实施方式下面结合附图和具体实施方式对本发明进行详细说明。基于纠错输出编码的车型识别方法,包括车型特征提取、车型分类和分类结果评价。车型特征提取包括构建训练样本集、图像处理和特征提取;车型分类包括编码、分类训练和译码。特征提取包括:1、图像归一化处理。将整个图像转化为灰度图,即通过伽马(Gamma)标准式(1)转化。I(x,y)=I(x,y)gamma(1)其中,I(x,y)表示图像中的像素点颜色信息;2、通过索贝尔(sobel)算法实现边缘检测和提取:首先,计算梯度幅值G。通过式(2)计算计算梯度幅值G。其中Gx(x,y)和Gy(x,y)分别表示x和y方向的梯度。其次,计算梯度方向θ。通过式(3)计算计算梯度方向θ。(3)式(3)中,将θ(pi,j)的取值范围分成8个等分,以便将θ(pi,j)量化,。Pi,j表示样本的像素点。最后,求θ(pi,j)的直方图Ht。通过式(4),求以θ(pi,j)为直方图的横坐标生成直方图Ht。在式(4)中,3、基于梯度幅值的方向权重投影;将图像窗口分成若干个小区域,这些区域被称为“单元格”。然后将每个单元格中所有象素的一维梯度直方图或者边缘方向累加到其中。最后将这个基本的方向直方图映射到固定的角度上,就形成了最终的特征。4、图像梯度方向直方图(HOG)结构的中块的特征向量归一化。为使得块内特征向量空间对光照,阴影和边缘变化具有鲁棒性需通过归一化实现,其归一化通过式(5)实现。(ε是个很小的常值,避免分母为0)(5)其中v表示一个还没有被归一化的向量,它包含了给定区间的所有直方图信息。||v||k表示v的k阶范数,这里的k取1、2。用ε表示一个趋近于0的很小的常数。5、求解图像梯度方向直方图的最终特征向量。HOG结构的基本单位都是块(Block),每个块(Block)都由若干单元(Cell)组成,一个单元都又由若干个像素点(Pixel)组成。将检测窗口中所有重叠的块进行HOG特征的收集,并将它们结合成最终的特征向量(即由cell中直方图通道的数目、block的数目及block中cell的数目组成的高维向量)供分类使用。编码为:首先定义一个编码矩阵Mk×n。其中M中每个元素的取值为{1,0,-1},k代表类别空间S的大小,n为分类器的个数。M中的每一行对应一个类别,而每一列则对应于一个单分类器。N个分类器分别记为h1(x),h2(x),...,hn(x)。分类训练为:每一个单分类器对应编码矩阵Mk×n的每一列,按照编码矩阵的划分性质,每一列均可看作是对样本空间的二元切分。如果Mj×δ=-1,把所有第j类的样本都划分为第δ个分类器hδ(x)的负例;如果Mj×δ=1,把所有第j类的样本都划分为第δ个分类器hδ(x)的正例;如果Mj×δ=0,把所有第j类的样本在第δ个分类器hδ(x)的训练忽略。然后各个单分类器就按照这些新划分的样本集进行训练。译码为首先,把预测样本x送至各个单分类器,得到一个输出向量H(x)=(h1(x),h2(x),...,hn(x))然后,计算H(x)与编码矩阵Mk×n的每一个行向量Mj(j=1,2,...,k)之间的距离D(Mj,H(x)),通常采用汉明距离;取最小距离,作为预测的输出。最后,对于编码矩阵Mk×n,M中每个元素的取值为{1,0,-1},训练时,当s=1,2,...,n,根据训练样本数据和编码矩阵(xi,M(yi,s)),i=1,2,...,k,得到n个二元分类器fs({f1,f2,...,fn}),对未知输入x,产生预测向量f(x)={f1(x),f2(x),...,fn(x)}。设ρ为样本的边界函数,那么带有编码m(yi,s)∈{-1,1}的样本xi在二元分类器f(x)的损失就是ρ(m(yi,s)fs(xi)),其中m(yi,s)=0的情况被忽略。如果预测样本被认为是第r类,则(x,r)应该造成的总损失最小。即将总损失作为一种距离公式:M(r)代表码本矩阵M中的第r行码字。预测样本x的预测标签如式9所示:其中M(r)代表码本矩阵M中的第r行码字,预测向量m(yi,s)∈{-1,1}。参照图1,本发明的基于纠错输出编码(ECOC)的车型识别方法,按照以下步骤实施:步骤1、车型特征提取1.1)构建训练样本集:建立数据集(采集样本信息形成样本数据库)。1.2)图像处理:图像处理主要是进行滤波、去噪等处理。1.3)特征提取:当进行车辆特征的提取时,由于无法保证进行车型识别的车辆图像都是在同一几何和光照条件下成像,所以如果能够在多个几何和光照条件下进行特征提取或者所采用的特征提取方法受几何和光照条件影响小,就可以尽可能提取出准确的特征,提高最终的识别效果。由于HOG具有对几何和光照的旋转不变性,故本发明采取HOG进行车型特征提取,HOG提取车型特征的步骤如下:1.3.1)图像归一化,为了减少光照因素的影响,首先需要将整个图像进行规范化。在图像的纹理强度中,局部的表层曝光贡献的比重较大,所以,这种压缩处理能够有效地降低图像局部的阴影和光照变化。因为颜色信息作用不大,通常先转化为灰度图。伽马(Gamma)标准转化公式如式(1)所示:I(x,y)=I(x,y)gamma(1)其中,I(x,y)表示图像中的像素点颜色信息。我们针对几种图像像素点表示方法进行了评估,评估方法包括:灰度信息、RGB和SHV颜色空间信息,并选择性地进行降幂处理。本文尝试两种不同方式的Gamma标准化:平方根和Log压缩。这两种方式都需在每个颜色空间的通道上进行。经过试验证明,平方根压缩对于刚体对象(小汽车、公交车和面包车等)表现尤为优越。1.3.2)索贝尔(sobel)算法来进行边缘检测和提取1.3.2.1)计算梯度幅值G:通过式(2)计算计算梯度幅值G。其中Gx(x,y)和Gy(x,y)分别表示x和y方向的梯度。1.3.2.2):计算梯度方向θ:通过式(3)计算计算梯度方向θ。式(3)中,将θ(pi,j)的取值范围分成8个等分,以便将θ(pi,j)量化,Pi,j表示样本的像素点。1.3.2.3):求θ(pi,j)的直方图Ht通过式(4),求以θ(pi,j)为直方图的横坐标生成直方图Ht。在式(4)中,1.3.3)基于梯度幅值的方向权重投影:将图像窗口分成若干个小区域,这些区域被称为“单元格”。然后将每个单元格中所有象素的一维梯度直方图或者边缘方向累加到其中。最后将这个基本的方向直方图映射到固定的角度上,就形成了最终的特征。1.3.4)对block块内特征向量的归一化使得特征向量空间对光照,阴影和边缘变化具有鲁棒性。归一化主要是针对每一个block进行的,一般采用的归一化函数有以下四种:a)(ε是个很小的常值,避免分母为0)(5)b)L2-Hys(6)(方法同上,只是限制v的最大值到0.2,然后再次重新标准化)L1-norm,v←v/||v||1+ε(7)其中v表示一个还没有被归一化的向量,它包含了给定区间(block)的所有直方图信息。||v||k表示v的k阶范数,这里的k取1、2。用ε表示一个很小的常数。第一种归一化函数即的效果最佳,故本文选取进行车型特征向量归一化。1.3.5)得出HOG最终的特征向量:将检测窗口中所有重叠的块进行HOG特征的收集,并将它们结合成最终的特征向量(即由cell中直方图通道的数目、block的数目及block中cell的数目组成的高维向量)供分类使用。步骤2、车型分类:车型分类主要由构造分类器和车型分类组成,具体描述为:车型分类的过程可以简单的分为训练阶段和分类阶段,训练阶段主要是分类器的学习阶段,即构造分类器;分类阶段则是用训练过程得到的分类器对测试样本进行分类,即车型分类。分类过程主要是输入测试样本、对待分类的样本进行自动的分类,为其确定所属的正确的类别。构造分类器的其实就是一种将多类分类问题转换分解成多个二类分类问题来求解的典型代表。其主要思路是根据给定的样本编码矩阵,定义若干个二元切分,用多个二类的单分类器对每个切分进行独立求解,在预测阶段再综合各个单分类器的输出和编码矩阵的距离来判断样本的类别,具体步骤如下:2.1)编码阶段:首先定义一个编码矩阵Mk×n。其中M中每个元素的取值为{1,0,-1},k代表类别空间S的大小,n为分类器的个数。M中的每一行对应一个类别,而每一列则对应于一个单分类器。N个分类器分别记为h1(x),h2(x),...,hn(x)。一个好的一个好的纠错输出编码必须满足以下三个条件:①编码矩阵的行之间不相关。尽量使行与行之间的汉明距离最大,以便使纠错码有更强的纠错能力;②编码矩阵的列之间不相关且不互补。尽量使列与列、各列的补集的汉明距离最大,以此来削弱分类器间的相关性,当列与列之间的距离相似或相同时,对应的分类器也会相似或相同,当出错时它们就会同时产生相似或相同的错误,而ECOC纠错能力有限,如果同时有很多错误,ECOC将无法对其修正。之所以还要强调列的补集,是因为对于很多二元分类器而言,根据某个码字训练得到的分类器和根据此码字的补集训练得到的分类器是一样的。③对于K类分类问题,编码长度N必须满足log2k<N<2k-1-1。④如果一组ECOC码本的最近汉明距离为d,那么它可以至少纠正位错误。也就是说即使有个分类器的判别结果出现错误,该分类系统最后还是能给出正确的分类结果。显然,ECOC码本的好坏直接与行的分离程度有关。而对列分离的好处并不那么明显。以一个10类分类问题为例,取码长为15,纠错码编码矩阵如表1所示。表110个类别的15位纠错码本2.2)、分类训练阶段:每一个单分类器对应编码矩阵Mk×n的每一列,按照编码矩阵的划分性质,每一列均可看作是对样本空间的二元切分。如果Mj×δ=-1,把所有第j类的样本都划分为第δ个分类器hδ(x)的负例;如果Mj×δ=1,把所有第j类的样本都划分为第δ个分类器hδ(x)的正例;如果Mj×δ=0,把所有第j类的样本在第δ个分类器hδ(x)的训练忽略。然后各个单分类器就按照这些新划分的样本集进行训练。训练样本集的步骤如下:2.2.1)对待分类样本的类别(Label)进行编码,把所有的目标分类随机划分为A、B两部分,把划分到A的那些实例的标号改成0,其它实例的标号改成1,构造表2所示的编码矩阵表;2.2.2)把编码矩阵中的每一列作为输入,对于第j列,将该列中码“0”对应的所有类别的数据归为一类,码“1”对应的所有类别的数据归为一类,以此来构造一个二元分类器。用更改标号以后的训练集来训练该二值分类器。重复这个过程10次则产生了10个不同的二值分类器,实验过程中分别用KNN和RF这二种分类器来对样本进行训练;2.2.3)对分类结果采取投票的方式,即分类结果如果是1,则将划分到对应分类器的B部分的目标分类投一票,最后目标分类票数最高的作为最终的分类结果。表25×10编码矩阵待检测图像的分类识别过程如下:对将待识别的目标提取HOG特征,对于其提取出的特征向量依次输入到10个分类器中得到一组编码,对该编码进行投票。这里以KNN分类器为例,其方法如下:对于输出结果按照表1进行投票,即:如果KNN1输出的结果为1,则对对应的类标(类4、类5)加1票,否则对其余三类加1票;如果KNN2输出的结果为1,则对对应的类标(类1、类5)加1票,否则对其余三类加1票;依次类推,最终五个类标中票数最高的类就是该图像的分类结果。具体分类投票过程如图2所示2.3)译码阶段:由ECOC框架图5可知,分类的过程可以看作是一个译码操作,目前所使用的译码器有基于汉明距离译码和基于损失策略译码。2.3.1)基于汉明距离译码描述如下:2.3.1.1)把预测样本x送至各个单分类器,得到一个输出向量H(x)=(h1(x),h2(x),...,hn(x));2.3.1.2)计算H(x)与编码矩阵Mk×n的每一个行向量Mj(j=1,2,...,k)之间的距离D(Mj,H(x)),通常采用汉明距离;2.3.1.3)取最小距离,作为预测的输出。2.3.2)最小汉明距离法完全忽略了预测H(x)的可信度,采用基于损失策略译码方法不但将可信度考虑在内,同时使用了汉明距离中忽略的损失函数。对于编码矩阵Mk×n,M中每个元素的取值为{1,0,-1},训练时,当s=1,2,...,n,根据训练样本数据和编码矩阵(xi,M(yi,s)),i=1,2,...,k,得到n个二元分类器fs({f1,f2,...,fn}),对未知输入x,产生预测向量f(x)={f1(x),f2(x),...,fn(x)}。设ρ为样本的边界函数,那么带有编码m(yi,s)∈{-1,1}的样本xi在二元分类器f(x)的损失就是ρ(m(yi,s)fs(xi)),其中m(yi,s)=0的情况被忽略。如果预测样本被认为是第r类,则(x,r)应该造成的总损失最小。即将总损失作为一种距离公式:M(r)代表码本矩阵M中的第r行码字。预测样本x的预测标签如式9所示:(9)其中M(r)代表码本矩阵M中的第r行码字,预测向量m(yi,s)∈{-1,1}步骤3、分类结果评价:分类结果评价是通过计算分类精度并用分类评估函数对分类的结果进行评价.本发明通过将传统的纠错输出编码与分类器结合应用到车型分类中,通过编码的形式纠正由单分类器引起的偏差,以提高在多类问题中有监督方法的分类精度,将车型多类分类问题转换分解成多个两类分类问题进行求解。不仅解决了某些分类实例中,存在模型建立困难,理论支撑少,而且训练复杂度大等问题而且还保证分类精度。实施例中选取小轿车及SUV车辆图像各50幅,外加卡车、面包车及大巴车图像各20幅,分别对基于ECOC-KNN分类方法和基于ECOC-RF分类方法进行100次迭代,其分类正确率曲线如图6所示。图6表示了ECOC-KNN方法在100次迭代后的识别率统计曲线,由图6可看出,使用ECOC与分类器结合使用的方法,对车型的平均识别率比单独使用分类器的识别效果有明显的提高,不论是ECOC-KNN还是ECOC-RF的车型识别率都在99%以上。表3表示了该方法对车型进行识别所耗费的平均时间及识别率。表3、基于ECOC-KNN的车型识别方法所耗费的平均时间及平均识别率方法耗费时间平均值(s)识别率(%)ECOC-KNN0.006599.64ECOC-RF0.812399.21对于常用的分类器方法和本发明进行比较,表4是这两种方法在平均识别率和耗费平均时间这两种性能对照表。表4、不同方法识别所耗费的平均时间及平均识别率的对比表4列出了本文改进的基于ECOC方法和传统基于分类器方法在不同的分类器条件下进行车型识别所耗费的平均时间和平均识别率。从表4可以看出,本文采用的改进后方法的平均识别率要高于传统方法;在耗费平均时间上,除了RF(由于RF每一次地迭代都需要获取其叶子节点、根节点等做递归,所以耗费时间较长)外都低于传统方法。本发明首先采用图像梯度直方图(HOG)进行图像特征提取,然后将纠错输出编码(ErrorCorrectingOutputCoding,ECOC)应用到分类器分类中,将多类分类问题转化成多个两类分类问题。此方法不仅在车型识别的实用性以及通用性上有所提高,同时也为车型识别的难题提出了一个新的解决思路,具有较高理论和实用价值。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1