具体实施方式
由于汽车的类内距离很大,不同车辆之间颜色、形状等差别很大,因而本发明实施例采用能够体现汽车和背景间边缘轮廓信息的边缘方向直方图(HOG)特征,并且采用快速且易于实现的层次型自适应增强(AdaBoost)分类器,快速且准确地实现汽车检测和跟踪。为了进一步提高汽车检测速度,本发明实施例将运动信息结合到汽车检测中。同时,利用汽车的位置信息和颜色信息等进行汽车匹配,获得汽车跟踪信息,并采用汽车跟踪信息对公路上行驶的汽车进行计数,以统计交通流量。
下面结合附图,对本发明实施例提供的技术方案进行详细介绍。
参见图1,为了提高汽车检测的速度和效果,本发明实施例提供的采用将层次型Adaboost和HOG特征相结合的方式来检测汽车的方法包括:
S101、分别确定采集到的图像的水平方向和垂直方向的边缘。
S102、计算离散化的边缘的方向,并且,计算边缘强度。
S103、采用直方图方式计算边缘直方图HOG。
S104、采用汽车图片为正样本,其它非汽车图片为反样本,训练基于层次型Adaboost和HOG的快速汽车分类器。
S105、采用基于层次型Adaboost和HOG的快速汽车分类器,确定输入图像中的汽车位置。
参见图2,层次型Adaboost结构如图1所示,对于所有候选窗口,先采用第一层分类器进行判断,如果能通过第一层分类器,则采用第二层分类器继续进行判断,否则,直接拒掉。同理,进行后续各层处理,将能够通过所有层分类器的矩形区域作为候选汽车区域(简称候选框)。
上述各层分类器(称作强分类器)均是由多个弱分类器组成,每层强分类器中的弱分类器输出的加权和与该层强分类器的阈值进行比较所得到的结果,为该层强分类器的输出。AdaBoost强分类器构造方法有很多种,常用的如Discrete-AdaBoost、Real-AdaBoost和Gentle-AdaBoost等,都可以用来构造上述各层强分类器。每个弱分类器对应一个弱特征,弱分类器的构造方式也有很多种,都可以选用构造上述弱分类器。简单的如基于阈值的弱分类器构造方法:
其中,x为固定尺度的输入图像,gj(X)表示该图像对应的第j个弱特征值,θj是第j个弱特征对应的判决阈值,极性符号pj的值为1或-1,当pj为1时,判决器的判决符号为大于号,当pj为-1时,判决器的符号为小于号,hj(x)表示第j个弱分类器的判决输出。这样,每个弱分类器只需要进行一次的阈值比较就可以完成判决。
较佳地,在弱分类器的构造方式上,为了提高弱分类器的分类能力,本发明实施例采用双阈值的比较方式来构造弱分类器,设置每个弱分类器由两个阈值(qj 1和qj 2,且qj 1<qj 2)和一个极性符号(pj,pj的值为1或-1)组成。
当pj为1时,弱分类器定义为:
当pj为-1时,弱分类器定义为:
其中,x为固定尺度的图像,gj(X)表示图像对应第j个弱特征值,hj(x)表示第j个弱分类器的判决输出。
本发明实施例提出的弱分类器的构造方式,比现有技术提出的方式更加普适。当p
j为1,且q
j 2为正无穷大时,
转换为
中p
j=1的情况;当p
j为1,且q
j 1为负无穷小时,
转换为
中p
j=-1的情况。也就是说本发明实施例提出的双阈值方式涵括了单阈值的情况。
弱分类器训练步骤中,对当前特征gj(X),选择pj、qj 1和qj 2,使得该弱特征组成的弱分类器对所有样本的加权错误率最小。因此,本发明实施例增加了候选弱分类器的可能形式,从而使得能够选择出分类能力更强的弱分类器,从而提高强分类器乃至最终层次型AdaBoost分类器的性能。
另外,本发明实施例也可以采用现有技术中提出的查找表弱分类器构造方法构造弱分类器。
需要明确的是,本发明实施例中的弱特征指的是某矩形区域内的边缘方向直方图对应的某个累积值。其中,某区域内的边缘方向直方图,定义为该矩形区域内各个像素点在各个离散化边缘方向(假定共有DN个方向)上的累计直方图。下面介绍一下边缘方向直方图(HOG)的具体求取方法。
步骤S101中,分别求取图像上各个像素的水平边缘和垂直边缘,图像边缘的求取方法有很多,常用的是Sobel和Prewitt算子。Sobel算子在水平和垂直方向的检测模板分布为:
和
Prewitt算子在水平和垂直方向的检测模板分别为:
和
上述模板为灰度图像的边缘求取模板。本发明实施例给出了一种直接在多通道彩色图像中计算图像边缘的方法。假定当前像素点坐标为(x,y),且该像素点的所有颜色通道值对应一个向量CV(x,y),则(x,y)和(x’,y’)两个像素颜色差为两个像素对应颜色向量的差值的范数,即NORM(CV(x,y)-CV(x′,y′))。范数可以为(但不限于)1范数、2范数或无穷范数。
彩色图像的Sobel水平边缘计算方法如下:
NORM(CV(x+1,y-1)-CV(x-1,y-1))+NORM(CV(x+1,y+1)-CV(x-1,y+1))+2*NORM(CV(x+1,y)-CV(x-1,y))。
彩色图像的Sobel垂直边缘计算方法如下:
NORM(CV(x-1,y+1)-CV(x-1,y-1))+NORM(CV(x+1,y+1)-CV(x+1,y-1))+2*NORM(CV(x,y+1)-CV(x,y-1))。
彩色图像的Prewitt水平边缘计算方法如下:
NORM(CV(x+1,y-1)-CV(x-1,y-1))+NORM(CV(x+1,y+1)-CV(x-1,y+1))+NORM(CV(x+1,y)-CV(x-1,y))。
彩色图像的Prewitt垂直边缘计算方法如下:
NORM(CV(x-1,y+1)-CV(x-1,y-1))+NORM(CV(x+1,y+1)-CV(x+1,y-1))+NORM(CV(x,y+1)-CV(x,y-1))。
步骤S102中,对边缘方向进行离散化,求得离散化的边缘方向以及边缘强度具体如下:
假定求得的当前像素点的水平边缘为EH,垂直边缘为EV,进一步需要计算该像素点边缘的方向和强度,假定方向为ED,强度为EI。其中,边缘方向有两种定义方式,一种是无符号的边缘方向,即边缘方向的范围为0至180度,认为相差180度的边缘方向是同一个方向。另外一种是有符号的边缘方向,边缘方向为0至360,认为相差180度的方向为不同方向。本发明实施例中只给出无符号边缘方向的离散化方法。假定将无符号的边缘方向离散化为N个区间,当N=6时的情况如图3所示。边缘强度的一种计算公式为
,也可以为|EH|+|EV|,图3中的无符号边缘方向为
其中arccot表示求取余切函数的反函数,则离散化的边缘方向为:
但是,采用上述定义式先计算ED,然后计算NED的速度比较慢。较佳地,本发明实施例提出的一种快速计算NED的方法包括:
第一步,判断EH是否为0,如果EH为0,则设定NED为0;否则,进行第二步处理。
第三步,判断
是否小于
,如果是,则执行步骤第六步;否则,转到第四步。
第四步,i增加1。
第五步,判断i是否小于N-1,如果是,则转到第三步;否则,执行步骤第六步。
第六步,设定NED为i,退出流程。
则将某个图像区域R内的边缘方向直方图HOG定义为该区域内所有像素在各个方向上的边缘强度的累积和,即:
其中,P(x,y)表示某像素点坐标,EI(P(x,y))表示该像素点的边缘强度,ED(P(x,y))表示该像素点的边缘方向。
步骤S104训练快速汽车分类器时,首先需要采集并割取标准的汽车样本和其他非汽车样本,并归一化为固定大小(比如图像的宽度为W,高度为H),此大小是训练的汽车检测器的大小。
对于AdaBoost训练算法而言,需要为其构造候选弱特征集。一种可行的实施方案是采用预订尺度的图像区域内的设定矩形区域(称为子矩形)的边缘方向直方图在某个离散化边缘方向上的值作为弱特征。则所有存在的子矩形的边缘方向直方图对应在所有离散化方向上的值均为候选弱特征。对于宽度为W,高度为H的图像区域,子矩形集合为:
{R(left,top,right,bottom)|0≤left<right<W,0≤top<bottom<H}
其中,left、top、right、bottom分别表示子矩形的左边框、上边框、右边框、下边框的位置坐标,即在宽为W、高为H的图像范围内的任意矩形都在子矩形集合中,这些子矩形之间可以相互交叠。为了减少运算量,提高训练速度,可以限定子矩形的宽度和高度范围,以及各个子矩形左边框和上边框之间的间距。设定子矩形的宽度最小值为WMin,宽度最大值为WMax,高度最小值为HMin,高度最大值为HMax,子矩形间最小水平距离和最小垂直距离均为1,则子矩形集合包含的子矩形为:R(left,top,right,bottom),其中left从0取到W-wr,top从0取到H-hr,其中wr从WMin取到WMax,hr从HMin取到HMax。WMin可以取为1,WMax取为W,HMin可以取为1,HMax取为H。
对于上述子矩形集合中的每个子矩形而言,都存在一个方向梯度直方图Hist,这个Hist是一个向量,共含有N个元素。假定上述设定的子矩形数目为NR,则所有子矩形共有NR*N个方向直方图元素。将每个方向直方图元素视作一个弱特征,则AdaBoost算法得到共NR*N个弱特征。
对于AdaBoost算法而言,需要设置弱特征库,包括很多可以用来被选择的弱特征。本发明实施例中采用上述NR*N个方向直方图元素来设置弱特征库。
但是,直接按照公式计算方向直方图的运算量会很大,因此,本发明实施例采用积分图像快速计算边缘方向直方图HOG,即通过边缘方向积分图像计算输入图像上的候选矩形区域内的所有像素在离散化后的每个边缘方向的边缘强度和,具体如下:
假定边缘梯度方向被离散化为N个方向,则分别计算N个方向的边缘方向积分图像,假定第n个方向的边缘方向积分图像在点(x,y)的值为II(x,y,n),如图4所示,第n个方向的边缘方向积分图像在点(x,y)处的值定义为其左上角的灰色矩形区域内的所有边缘离散化方向为n的像素的边缘强度的和,即:
采用如下迭代的方式对边缘方向和边缘强度图像,从左上角的灰色矩形区域扫描一遍得到各个方向的边缘方向积分图像:
依次处理所有N个方向。假定当前处理的是第n个方向,采用rs(x,y,n)表示第y行到当前像素(x,y)为止(包括当前像素)的所有边缘方向为n的像素的边缘强度之和,即:
则采用下列公式迭代计算边缘方向积分图像:
如果NED(x,y)为n,则rs(x,y,n)=rs(x-1,y,n)+EI(x,y);否则,rs(x,y,n)=rs(x-1,y,n);进而有:II(x,y,n)=II(x,y-1,n)+rs(x,y,n)。
具体的实现方式如下:
对任意n=0,1,2...N-1,进行如下处理:
对任意y=0,1,2...H-1及x=0,1,2...W-1,设定II(-1,y,n)=0,II(x,-1,n)=0;
对图像所有行,依y=0,1,2...H-1的顺序进行如下处理:
设定rs=0表示当前行边缘方向为n的所有像素边缘强度和的初始值为0;
对图像y行中的所有像素依顺序x=0,1,2...W-1进行如下处理:
如果NED(x,y)为n,则令rs=rs+EI(x,y);
否则,保持rs不变;
进而计算:
II(x,y,n)=II(x,y-1,n)+rs;
计算完第y行的边缘方向积分图像后接着计算第y+1行的边缘方向积分图像。
对图像的所有行处理完毕后,完成边缘方向积分图像的计算。
Viola提出一种快速计算矩形区域内像素亮度和的方法,该方法可以被扩展用来计算边缘方向积分图像,对于每个边缘方向,需要W*H个s(x,y,n)来记录每列像素到当前像素为止边缘方向为n的像素的边缘强度和。而本发明实施例采用每行到当前像素为止(包括当前像素)的所有边缘方向为n的边缘强度和(即rs(x,y,n))来递推计算积分图像。本发明实施例在计算积分图像时,按照从上到下、从左到右的顺序递推计算,因此本发明实施例方法只需要保存当前像素的rs(x,y)即rs,可以大大地节省内存,对于一些内存要求较高的应用,比如芯片设计,采用本发明实施例提供的方法更具优点。
采用上述边缘方向积分图像可以快速求取矩形区域内边缘方向为n的边缘方向直方图HOG。假定矩形D(left,top,right,bottom)中,边缘方向为n的边缘方向直方图为Hist(n,D),如图5所示,其中阴影区域A、B、C、D分别表示一个矩形区域,点1、2、3、4分别对应区域A、B、C、D的右下角顶点,根据边缘方向积分图像的定义,可以根据如下公式计算:
Hist(n,D)=II(4,n)-II(2,n)-II(3,n)+II(1,n)
其中,II(1,n)、II(2,n)、II(3,n)和II(4,n)分别表示边缘方向为n的边缘方向积分图像在点1、点2、点3和点4处的值。
上述训练得到的汽车检测器只能检测到一个尺度(W*H)的汽车,为了检测到不同大小的汽车,可以按照求取金字塔型图像结构的方式检测。假定原始输入图像宽度和高度分别为IW和IH,按照放缩尺度RS计算一系列多个尺度(假定为M)的金字塔型图像,大小为(ROUND(IW*RSm),ROUND(IH*RSm)),其中ROUND为四舍五入运算,m的取值范围为从0到M-1。
参见图6,步骤S105具体包括:
S601、根据输入图像,获取金字塔型图像结构。
S602、对于每一尺度的金字塔型图像,计算该尺度图像的离散化边缘方向和边缘强度,并计算边缘方向直方图。
S603、以一定步长,在水平方向和垂直方向遍历得到该尺度图像上可能的矩形框位置。
S604、根据上述训练得到的固定尺度(W*H)的汽车检测器模型,计算检测模型所需的边缘方向直方图,并进一步计算当前矩形是否能通过汽车检测器,如果是,则执行步骤S605,否则,执行步骤S606。
S605、将候选汽车框加入汽车队列,并返回执行步骤S603,得到并处理下一个可能的矩形框,直到该尺度图像上所有可能的矩形框位置都处理完毕。
S606、拒掉没有通过验证的矩形框,并返回执行步骤S603,得到并处理下一个可能的矩形框,直到该尺度图像上所有可能的矩形框位置都处理完毕。
S607、当处理完所有尺度的金字塔型图像后,根据汽车队列中的候选汽车框,确定输入图像中的汽车位置。
较佳地,步骤S605将候选汽车框加入汽车队列的步骤包括:根据待添加的候选汽车框的大小和位置,以及已被添加到汽车队列中的候选汽车框的大小和位置,判断所述待添加的候选汽车框是否与所述已添加的候选汽车框相近,如果是,则将相近的候选汽车框合并,并将被合并的候选汽车框的个数作为合并后的候选汽车框的置信度;否则,将所述待添加的候选汽车框加入所述汽车队列中。
较佳地,步骤S607根据汽车队列中的候选汽车框,确定输入图像中的汽车位置的步骤包括:当汽车队列中的一候选汽车框包含于另一候选汽车框时,将置信度较小的候选汽车框删除;当置信度相同时,删除面积较小的候选汽车框;将经过所述合并和删除处理后的汽车队列中剩余的候选汽车框的位置确定为输入图像上的汽车位置。
虽然上述汽车检测器已经可以满足实时运行的要求,但是,在视频图像中,结合图像中的汽车的运动信息可以进一步加快汽车检测的速度,同时,还可以排除图像背景中存在的干扰,从而减少误检,提高汽车检测效果。
对于摄像头静止的情况,将当前输入图像和预先设置的背景图像做差,得到运动像素标志掩模;并且,预先为候选框设定阈值,只对运动大于一定程度的候选框进行汽车检测。本发明实施例中,定义矩形框中发生变化的像素数目为矩形框的运动能量,通过该运动能量来衡量矩形框中的像素发生变化的程度。
假定当前图像中发生变化的像素的标志掩模图像为MI,处于点(x,y)处的标志掩模图像为MI(x,y),如果像素发生变化,则MI(x,y)为非零数,假定为MF,如果该像素没有发生变化,则MI(x,y)为零。
进一步,采用矩形面积归一化发生变化的像素数目,即归一化运动能量为矩形区域内发生变化的像素数目与矩形区域面积之比。进一步,可以采用积分图像的方式快速计算归一化运动能量和运动能量。首先计算全图的运动标志积分图像,具体步骤如下:
对任意y=0,1,2...H-1及x=0,1,2...W-1,设定II(-1,y)=0,IMI(x,-1)=0;
对图像所有行,依y=0,1,2...H-1的顺序进行如下处理:
设定rs表示当前行所有发生变化的像素数目,初始化rs为0;
对图像y行中的所有像素按照x=0,1,2...W-1的顺序进行如下处理:
如果当前像素发生变化,则令rs=rs+1;如果当前像素没有变化,保持rs不变;进而当前像素(x,y)的运动标志积分图像IMI(x,y)=IMI(x,y-1)+rs;
计算完第y行的运动标志积分图像后接着计算第y+1行的运动标志积分图像。
对图像的所有行处理完毕后,完成运动标志积分图像的计算。
如图5所示,根据运动标志积分图像的定义,运动能量可以根据如下公式计算:
ME(D)=IMI(4)-IMI(2)-IMI(3)+IMI(1)
其中IMI(1)、IMI(2)、IMI(3)和IMI(4)分别表示运动标志积分图像在点1、点2、点3和点4处的值。
归一化运动能量为:
对于摄像头运动的情况,采用FN帧差的方式获取运动信息,FN可以等于2,也可以大于2,得到运动边缘像素标志掩模,为候选区域设定阈值,只对运动大于一定程度的候选区域进行汽车检测。进一步,确定矩形框中是否发生了变化,仅采用距离矩形框外边缘纵向距离小于等于DH,横向距离小于等于DW的像素来统计归一化变化像素数目,并和阈值比较确定矩形框是否发生了变化,是否需要采用汽车分类器判定是否汽车。在本发明实施例中,用来统计是否发生运动的像素为距离矩形边缘小于阈值的像素,如图7所示,采用距离边缘纵向小于DH、横向小于DW的两个矩形框之间的区域部分作为判定是否发生运动的区域,将该区域称为边缘运动区域。
结合运动能量的层次型Adaboost汽车分类器如图8所示,先判定候选框的运动能量是否大于某阈值,如果不大于,则认为不是汽车,直接拒掉;如果大于,则采用训练好的基于HOG弱特征的层次型Adaboost汽车分类器进行判定。
进一步,本发明实施例还提供了一种基于背景差的汽车跟踪方法,汽车跟踪则是根据不同帧的图像内各个汽车的位置、颜色和形状信息,确定各个汽车的对应关系,即确定图像中哪些或哪个汽车是同一汽车在不同帧的图像内的汽车,如图9所示,具体包括:
S901、初始化背景图像。
初始化背景图像的方法,可以简单选择一副没有前景的图像,也可以采用比较复杂的背景图像初始化方法。
S902、将输入图像与背景图像(即参考图像)相比较,得到输入图像的运动区域。
此处的比较,可以采用将输入图像与背景图像作差后与预先设置的阈值进行比较的方式,也可以采用混合高斯模型(GMM,Gaussian Mixture Model)和核密度估计(KDE,Kernel Density Estimation)等比较复杂的模型,得到运动区域。考虑到***的处理速度,采用前一种方式更好些。
S903、计算运动区域的积分图像,并对每个候选框,采用积分图像得到其内部发生变化的像素数目。
S904、将发生变化的像素数目与预先设置的阈值进行比较,判定当发生了显著运动时,采用基于层次型Adaboost算法的快速汽车检测器对所述运定区域进行检测,得到候选汽车框。
S905、将得到的候选汽车框添加到当前输入图像的候选汽车队列中。
S906、对所述候选汽车队列中相交叠的候选汽车位置进行合并处理。
S907、采用基于直方图匹配的方式,计算当前输入图像的候选汽车队列中的每个候选汽车框与预先设置的跟踪队列中的参考汽车框的最大匹配度。
采用基于直方图匹配的方式,计算参考汽车框与候选汽车框的最大匹配度的具体步骤包括:
计算参考汽车框与候选汽车框的直方图匹配度和尺度位置匹配度;
将所述直方图匹配度乘以所述尺度位置匹配度作为所述参考汽车框与所述候选汽车框的最大匹配度。
S908、判断候选汽车框的最大匹配度是否大于阈值TP,如果是,则认为匹配成功,确定候选汽车框与参考汽车框为同一汽车框,并采用汽车队列中的匹配成功的候选汽车框的位置信息更新跟踪队列中的相应的参考汽车框的位置信息;否则,将匹配失败的候选汽车框位置信息添加到跟踪队列,作为新的参考项;如果跟踪队列为空,即跟踪队列中没有参考汽车框,则直接将合并处理后的候选汽车框添加到跟踪队列中。
S909、根据所述更新后的跟踪队列中的参考汽车位置,确定所述输入图像上的汽车位置。
进一步,本实施例方法还包括:记录跟踪队列中的参考汽车框的出现次数,假定为n,预先设定阈值TN,如果n3 TN,则认为该参考汽车框为真实汽车框,否则认为是候选汽车框。并且,记录每一参考汽车框没有被跟踪到的帧数为nm,对于真实汽车框,如果满足nm3 TMN,认为该真实汽车已经从图像采集范围内消失,则从跟踪队列中删除该真实汽车框的位置信息,其中,TMN为预先设定的阈值;对于候选汽车框,如果满足nm3 TMPN,则认为该候选汽车消失,从跟踪队列中删除该候选汽车框的位置信息,其中,TMPN为预先设定的阈值。最终仅将出现过的真实汽车框作为有效的汽车框进行保存记录,用于分析及查询。
较佳地,本实施例方法还包括:为跟踪队列中的真实汽车分配一个唯一的编号(ID),每个新出现的真实汽车对应的编号递增,最终,总编号的数目即为出现的真实汽车的数目,从而实现对汽车的计数。
进一步,步骤S907中进行匹配时,采用候选汽车框和参考汽车框在视频中的位置信息和大小信息辅助直方图进行匹配;假定这两个汽车框分别为R1(cx1,cy1,w1,h1)和R2(cx2,cy2,w2,h2),其中cx1,cx2分别为两个矩形汽车框的中心横坐标,cy1,cy2分别为两个汽车框的中心纵坐标,w1,w2分别为两个汽车框的宽度,h1,h2分别为两个汽车框的高度;两个汽车框的中心距离为dis=sqrt((cx1-cx2)*(cx1-cx2)+(cy1-cy2)*(cy1-cy2)),则定义两个汽车框的尺度位置匹配度为 sqrt为开方运算,min为去小值运算,max为取大值运算,DR和SR为常数。本发明实施例中,两个汽车框的匹配度为直方图匹配度乘以矩形汽车框的尺度位置匹配度。
进一步,直方图匹配可以采用加权直方图的方式,即对汽车框上不同区域统计直方图时设定不同权值,比如,设定权值与各像素距离汽车框中心的距离成反比,距离中心越近,权值越大,距离中心越远,权值越小;最终得到的直方图为对各个像素加权后的直方图。
较佳地,步骤S905完成汽车检测后,不对候选汽车框进行合并相交叠矩形框的后处理操作,而是对所有候选汽车框进行下列处理:
步骤一:根据候选汽车框通过的汽车检测器的层数和每层强分类器求得的权值以及该层阈值,为每个候选汽车框确定一个置信度。
步骤二:如果跟踪队列为空,则将当前的候选汽车框进行合并相交叠矩形框的后处理操作,并将后处理后的所有候选汽车框的位置添加到跟踪队列中。
步骤三:如果跟踪队列不为空,则对跟踪队列中的每个参考汽车框,例如参考汽车框A,将其与当前输入图像对应的所有的候选汽车框进行匹配,将所有匹配度大于一定阈值的候选汽车框都保存下来,作为后处理汽车框,并进行后处理,此处的后处理过程为:
将所有后处理汽车框按照位置进行分类,将同一个位置交叠在一起的后处理汽车框分为一类,然后,对同属于一类的各后处理汽车框的匹配度相加作为该类的总匹配度;取总匹配度最大的类作为最终的匹配结果,并按照该类各后处理汽车框的置信度,求得各后处理汽车框的位置坐标的加权和作为匹配汽车框(与参考汽车框A相匹配)的位置坐标,并以该匹配汽车框的位置坐标更新跟踪队列中相应的参考汽车框A的位置坐标。并且,将当前输入图像对应的候选汽车队列中的与所述匹配汽车框的位置发生交叠的所有候选汽车框从所述候选汽车队列中删除。
然后,对跟踪队列中下一个参考汽车框进行相同处理,直到跟踪队列中所有的参考汽车框都处理完毕,再对当前输入图像的候选汽车队列中存在的候选汽车框进行合并交叠框的后处理,并将该后处理后的所有候选汽车框添加到跟踪队列中。
另外,还可以采用基于帧差的方式来获取输入图像的运动区域,并对汽车进行跟踪。获取运动区域的方法如下:
第一步,将前N帧图像作为初始化背景(参考图像)加入背景队列。
第二步,将输入图像与背景队列中的N帧背景图像相比较得到运动区域。
具体地,可以采用输入图像与每帧背景图像作差,并与阈值比较,最终将N个比较结果对应像素求或的方式获得运动区域;并且,将当前帧输入图像添加到背景队列,将背景队列最早的一帧图像删除。其中,N可以为1,也可以大于1。
另外,还可以采用将背景队列中的背景图像加权求和后,再与当前输入图像比较的方式获得运动区域。
第三步,求运动区域的积分图像,并对每个候选矩形位置,采用积分图像得到其内部发生变化的像素数目,并与阈值比较,看其是否发生了显著运动,如果是,则采用基于层次型Adaboost算法的汽车检测器,判定候选矩形框是否是候选汽车框,如果是,则将该候选汽车框添加到当前帧输入图像的汽车队列中。
下面介绍一下本发明实施例提供的装置。
本发明实施例提供的一种图像检测装置包括:
设置单元,用于通过图像的边缘方向直方图得到弱特征库,并利用该弱特征库设置基于层次型自适应增强分类器和边缘方向直方图的快速汽车分类器。
边缘方向直方图单元,用于通过输入图像的边缘方向以及边缘强度,计算所述输入图像的边缘方向直方图。
检测单元,用于采用所述快速汽车分类器,根据所述输入图像的边缘方向直方图,确定所述输入图像中的汽车位置。
本发明实施例提供的一种图像跟踪装置包括:
设置单元,用于通过图像的边缘方向直方图得到弱特征库,并利用该弱特征库设置基于层次型自适应增强分类器和边缘方向直方图的快速汽车分类器。
确定运动区域单元,用于将输入图像与参考图像相比较,得到所述输入图像的运动区域。
判定单元,用于通过所述快速汽车分类器对所述运动区域进行判定,得到所述输入图像中的汽车位置。
综上所述,本发明实施例通过将层次型AdaBoost分类器和HOG特征相结合所实现的汽车检测和跟踪的技术方案,可以快速、准确地确定汽车位置,具有很重要的实际应用价值,例如,可以应用在智能视频监控、智能交通、视频分析和检索以及图片检索等领域。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。