基于多尺度特征估计和高阶BING特征的目标检测方法转让专利

申请号 : CN201610659122.0

文献号 : CN106326916B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 解梅朱倩王建国周扬

申请人 : 电子科技大学

摘要 :

本发明提供一种基于多尺度特征估计和高阶BING特征的目标检测方法,首先利用现有的多尺度方向梯度直方图近似算法对原图构造图像特征金字塔。接着在每一个方向梯度直方图上提取高阶BING特征,然后利用两级线性SVM对滑动窗口中的每一个窗口进行判断,最后得到该窗口中是否包含目标。本发明将BING特征从简单的梯度特征扩展到能够表现更多特征细节的方向梯度直方图上,提取到高阶的统计信息,使特征表达更为丰富。在计算特征金字塔的时候使用多尺度方向梯度直方图近似算法,在几乎不增加计算量的条件下得到更为精细的特征金字塔,使得检测到的目标的位置更为精确。

权利要求 :

1.基于多尺度特征估计和高阶BING特征的目标检测方法,其特征在于,包括以下步骤:

1)训练步骤:

1-1)对样本图像进行标注,用矩形框将目标区域标注为正样本,标注类别标签为+1,在非目标区域随机采样大于正样本数量的负样本,标注类别标签为-1,得到全部样本的类别标签yn,n为样本总数;

1-2)对标注的正负样本构造图像金字塔;

1-3)对各标注的正负样本在不同尺寸下进行滑窗提取方向梯度直方图,得到方向梯度直方图特征金字塔;

1-4)使用多尺度方向梯度直方图近似算法得到的特征金字塔的相邻两个方向梯度直方图之间再插入4个尺度均匀分布的方向梯度直方图,从而最终的方向梯度直方图特征金字塔;

1-5)使用二进制近似算法计算方向梯度直方图特征金字塔中的每一个方向梯度直方图中每一个窗口的高阶BING特征g;

1-6)输入高阶BING特征g与对应的类别标签yn训练该尺度对应的第一级SVM分类器g1(x)=,<·>表示向量的内积,得到分类器的模型参数w1;

1-7)对第一级SVM分类器训练完成后,对样本图像的图像金字塔上进行窗口滑窗提取高阶BING特征g,将高阶BING特征g输入第一级SVM分类器得到分数Sl;

1-8)使用分数Sl和对应的类别标签yn来训练第二级SVM分类器 得到第二级SVM分类器的模型参数vm和tm;

2)检测步骤:

2-1)对检测图像构造图像金字塔;

2-2)对检测图像在不同尺寸下进行滑窗提取方向梯度直方图,得到方向梯度直方图特征金字塔;

2-3)使用多尺度方向梯度直方图近似算法得到的特征金字塔的相邻两个方向梯度直方图之间再插入4个尺度均匀分布的方向梯度直方图,从而最终的方向梯度直方图特征金字塔;

2-4)使用二进制近似算法计算方向梯度直方图特征金字塔中的每一个方向梯度直方图中每一个窗口的高阶BING特征g;

2-5)将高阶BING特征g输入第一级SVM分类器得到分数Sl;

2-6)将从第一级分数SVM分类器输出对检测图像的图像金字塔的分数Sl输入第二级SVM分类器得到分数Ol;

2-7)对检测图像中所有窗口的得分Ol进行排序,取前面K个窗口作为候选的目标窗口,最后使用非极大值抑制消除多余的候选窗口,找到目标的位置。

2.如权利要求1所述基于多尺度特征估计和高阶BING特征的目标检测方法,其特征在于,步骤1-5)中每一个窗口的高阶BING特征g的特征提取步骤为:对于一幅大小为(w,h)图像,在每一个不重叠的4*4像素大小的窗口计算9个方向的方向梯度直方图得到9维的向量,并将这个9维的向量排列成3*3大小的矩阵,计算完所有的窗口,就得到大小为 的特征图;

对特征图中每一个6*6大小的窗口,使用二进制近似算法,得到一个36维的高阶BING特征g, bk是一个6*6大小的二进制矩阵,bk中的元素为0或者1;其中,Ng表示用Ng个二进制的6*6大小的二进制矩阵bk来近似特征图中每一个6*6大小的窗口,k=1,

2,…,Ng,Ng=6;

对于整幅特征图,根据前后窗口之间的关系,后一个窗口的高阶BING特征根据前一个窗口的高阶BING计算bk,i,j=(bk,i-1,j<<16)|rk,i,j,其中,<<16表示左移16位,|表示或运算;

bk,i,j表示图像中第i行j列的窗口对应的二进制矩阵bk,rk,i,j表示6*6大小的二进制矩阵bk的后面3行,rk,i,j通过二进制近似算法求得。

说明书 :

基于多尺度特征估计和高阶BING特征的目标检测方法

技术领域

[0001] 本发明属于模式识别领域,涉及目标检测技术。技术背景
[0002] 目标检测技术作为计算机视觉的最底层技术,一直是计算机视觉领域里的前沿研究方向之一,上层算法对检测的结果做进一步的分析和处理,来实现对目标的跟踪和识别等应用。近年来有很多新的目标检测算法被提出来,比如基于boosting思想的FPDW算法,基于BING特征的显著性检测方法,基于深度学习的fast-cnn算法,但是它们在检测精度和检测速度上都不能兼得。FPDW算法有较高的检测精度,但检测速度只有15fps;BING算法的检测速度能到300fps,但检测精度很低,只能用作对目标位置的粗略估计;fast-cnn算法是基于深度学习的检测算法,对硬件的需求很高。所以目标检测算法在检测精度和检测速度方面仍然需要更加深入的研究。

发明内容

[0003] 本发明所要解决的技术问题是,提供一种在精度和速度上达到更好的平衡的目标检测方法。
[0004] 本发明为解决上述技术问题所采用的技术方案是,基于多尺度特征估计和高阶BING特征的目标检测方法,包括以下步骤:
[0005] 1)训练步骤:
[0006] 1-1)对样本图像进行标注,用矩形框将目标区域标注为正样本,标注类别标签为+1,在非目标区域随机采样大于正样本数量的负样本,标注类别标签为-1,得到全部样本的类别标签yn,n为样本总数;
[0007] 1-2)对标注的正负样本构造图像金字塔;
[0008] 1-3)对各标注的正负样本在不同尺寸下进行滑窗提取方向梯度直方图,得到方向梯度直方图特征金字塔;
[0009] 1-4)使用多尺度方向梯度直方图近似算法得到的特征金字塔的相邻两个方向梯度直方图之间再插入4个尺度均匀分布的方向梯度直方图,从而最终的方向梯度直方图特征金字塔;
[0010] 1-5)使用二进制近似算法计算方向梯度直方图特征金字塔中的每一个方向梯度直方图中每一个窗口的高阶BING特征g;
[0011] 1-6)输入高阶BING特征g与对应的类别标签yn训练该尺度对应的第一级SVM分类器g1(x)=〈w1,g〉,〈·〉表示向量的内积,得到分类器的模型参数w1;
[0012] 1-7)对第一级SVM分类器训练完成后,对样本图像的图像金字塔上进行窗口滑窗提取高阶BING特征g,将高阶BING特征g输入第一级SVM分类器得到分数Sl;
[0013] 1-8)使用分数Sl和对应的类别标签yn来训练第二级SVM分类器得到第二级SVM分类器的模型参数vm和tm;
[0014] 2)检测步骤:
[0015] 2-1)对检测图像构造图像金字塔;
[0016] 2-2)对检测图像在不同尺寸下进行滑窗提取方向梯度直方图,得到方向梯度直方图特征金字塔;
[0017] 2-3)使用多尺度方向梯度直方图近似算法得到的特征金字塔的相邻两个方向梯度直方图之间再插入4个尺度均匀分布的方向梯度直方图,从而最终的方向梯度直方图特征金字塔;
[0018] 2-4)使用二进制近似算法计算方向梯度直方图特征金字塔中的每一个方向梯度直方图中每一个窗口的高阶BING特征g;
[0019] 2-5)将高阶BING特征g输入第一级SVM分类器得到分数Sl;
[0020] 2-6)将从第一级分数SVM分类器输出对检测图像的图像金字塔的分数Sl输入第二级SVM分类器得到分数Ol;
[0021] 2-7)对检测图像中所有窗口的得分Ol进行排序,取前面K个窗口作为候选的目标窗口,最后使用非极大值抑制消除多余的候选窗口,找到目标的位置。
[0022] 本发明首先利用现有的多尺度方向梯度直方图近似算法对原图构造图像特征金字塔。接着在每一个方向梯度直方图上提取高阶BING特征,然后利用两级线性SVM对滑动窗口中的每一个窗口进行判断,最后得到该窗口中是否包含目标。
[0023] 本发明的有益效果是,将BING特征从简单的梯度特征扩展到能够表现更多特征细节的方向梯度直方图上,提取到高阶的统计信息,使特征表达更为丰富。在高阶BING特征上可以明显减少滑窗的数量,将高阶BING特征的计算量巧妙的转移到特征金字塔的计算上,而特征金字塔的计算可以利用多尺度方向梯度直方图近似算法,从而减少特征的计算时间。在计算特征金字塔的时候使用多尺度方向梯度直方图近似算法,在几乎不增加计算量的条件下得到更为精细的特征金字塔,使得检测到的目标的位置更为精确。

附图说明

[0024] 图1为系统流程图。
[0025] 图2为实施例在特征金字塔的相邻两个方向梯度直方图之间再插入4个尺度均匀分布的方向梯度直方图从而得到更为精细的方向梯度直方图特征金字塔的示意图。

具体实施方式

[0026] 为了方便描述本发明的内容,首先对一些操作步骤和术语进行说明定义。
[0027] 1:图像金字塔,一种常用图像处理技术。对于一幅大小为(w,h)的输入图像,进行M次缩小或者放大操作,得到M个不同尺寸的图像,它们的尺寸为{(wo,ho)},以M=64为例,wo,ho∈{8,16,32,64,126,256,512,1024}。
[0028] 2:方向梯度直方图,一种图像中常用的特征提取方法。在原图中用滑窗从上到下、从左到右依次滑过,对于每一个窗口,如下式所示,分别计算x方向和y方向上的梯度和梯度方向θ,统计每一个窗口中的9个方向的梯度方向直方图,即每一个窗口对应一个9维的向量,并将这个9维的向量转化为3*3的矩阵;
[0029]
[0030] θ(i,j)表示图像中第i行j列处像素的梯度方向, 表示第i行j列处像素在y方向的微分,也就是y方向的梯度; 表示第i行j列处像素在x方向的微分,也就是x方向的梯度。
[0031] 3:多尺度方向梯度直方图近似算法,一种已有的直方图近似算法。如下式所示,该算法是Dollar等人在“The Fastest Pedestrian Detector in the West”中提出的一种利用一个尺度的梯度直方图去逼近另一个尺度的梯度直方图的方法,以此来避免计算精细采样图像金字塔的梯度。
[0032] f(I,s)≈f(I,0)e-λs
[0033] I表示图像金字塔中的原图,没有被放缩的那张图片。f(I,s)表示图像金字塔中第s个尺度的那张图片所对应的梯度直方图特征。f(I,0)表示图像金字塔中原图所对应的梯度直方图特征。λ是一个常数,用来拟合这种近似的关系,通过实验得到,实施例设置λ=1.099。
[0034] 4:二进制近似算法,一种现有算法。二进制近似算法是Sam  Hare等人在“Efficient Online Structured Output Learning for Keypoint-Based Object Tracking”中提出的利用多个二进制向量的加权和来近似表示一个一般向量的算法,可以加快内积的计算。算法的具体步骤可见论文中的“Algorithm 1Binary approximation of wj”:对于需要近似的向量w∈R36,使用多尺度方向梯度直方图近似算法可以得到其中,R36表示36维的向量,Nw表示用Nw个二进制向量来近似向量w,aj是只包含-1或者+1的向量,aj∈{-1,1}36,βj是向量aj的加权系数。进一步,aj可以使用一个向量和它的补向量表示,也就是向量aj可以用 和 的补向量 表示,即 其中
的36个维度中每一个维度的值是0或者1, 就是二进制的,用 的加权和
就能表示w向量。通过论文“Efficient Online Structured Output Learning for Keypoint-Based Object Tracking”可以知道,此时我们可以使用位操作AND和COUNT快速的计算一个二进制向量b和一个一般的向量w的内积〈·〉表示内积,|b|表示二进制向量b中1的个数,向量w的
第j个维度wj, ai,j表示ai这个二进制向量的第j个维度。
[0035] 5:BING特征。BING特征是Ming-Ming Cheng等人在“BING:Binarized Normed Gradients for Objectness Estimation at 300fps”中提出的一种基于简单梯度的特征。
[0036] 6:高阶BING特征。本发明在现有BING特征的基础上进行了改进,提出的高阶BING特征的提取方法,并在特征计算上引入二进制近似算法,加快计算速度。
[0037] 将BING特征从简单的梯度特征扩展到能够表现更多特征细节的方向梯度直方图上,提取到高阶的统计信息,使特征表达更为丰富。在方向梯度直方图上使用提取BING特征的方法,得到高阶BING特征,其具体的特征提取步骤如下:
[0038] (1)计算一个窗口的高阶BING特征。对梯度方向直方图使用二进制近似算法:在一幅图像中,每一个4*4像素大小的窗口对应3*3大小的梯度方向直方图构成的矩阵,对于8*8像素大小的窗口(大窗口)对应6*6像素大小的梯度方向直方图构成的矩阵。6*6大小的梯度方向直方图中,使用二进制近似算法,用Ng个二进制的6*6大小的二进制矩阵bk来近似这个6*6大小的梯度梯度方向直方图矩阵,k=1,2,…,Ng,此处使用Ng=6,二进制矩阵bk中的元素为0或者1。一个36维的高阶BING特征g, 其中26-kbk表示26-k与bk的数
乘。
[0039] (2)对于整幅图像,根据前后窗口之间的关系,后一个窗口的高阶BING特征可以根据前一个窗口的高阶BING特征快速的计算出来,而不用每个窗口单独计算。对于一幅图像,首先计算出W×H大小的方向梯度直方图。在整个W×H大小的方向梯度直方图上,把3*3大小的梯度方向直方图构成的矩阵看做是一个单元,使用大窗口从上到下、从左到右,步长为1个单元,依次滑过整个梯度直方图,每个大窗口计算一次高阶BING特征,而下一个窗口跟上一个窗口有一半是重合的(左右方向的两个窗口也是类似的有一半是重合的),如下式所示,可以利用前一个窗口的信息进行更加快速的计算。其中bk,i,j表示图像中第i行j列的窗口对应的二进制矩阵bk,rk,i,j表示bk,i,j这个6*6大小的二进制矩阵的后面3行。rk,i,j通过二进制近似算法求得。也就是说这一个步骤利用前后两个窗口部分重叠的关系减少了对bk,i,j前3行的近似,下一个窗口的前3行就是上一个窗口的后3行。
[0040] bk,i,j=(bk,i-1,《j 16)|rk,i,j
[0041] 那么对于两个向量的内积
[0042] 7:支持向量机SVM算法(Support Vector Machine)。SVM算法是Cortes和Vapnik于1995年首先提出的,它在解决非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中,是一种常用的分类算法,它能够最大化两个类别之间的距离,以此来得到更好的分类效果。对于线性的SVM算法,它能够得到下式所示的线性模型的模型参数w。w表示模型参数,x表示训练样本的特征,<·>表示内积。
[0043] g(x)=
[0044] 8:非极大值抑制,一种现有数据搜索方法。非极大值抑制(Non-Maximum Suppression,NMS)主要目的是为了消除多余的候选框,可以被理解为局部最大搜索。主要步骤如下:(1)将初始检测窗口按照检测分数从高到低排序;(2)将第1个初始检测窗口作为当前的抑制窗口;(3)将所有检测分数比当前抑制窗口低的初始窗口作为被抑制窗口。计算当前抑制窗口与被抑制窗口的重合面积比率:面积的交/面积的并。剔除重合面积比率高于设定阈值的窗口;(4)如果只剩最后一个初始检测窗口则结束,否则按照排好的顺序,取下一个未被抑制的窗口作为抑制窗口,转到步骤(3)。
[0045] 具体实施步骤:
[0046] 1)训练步骤:
[0047] 1-1)对样本图像进行标注,用矩形框将目标区域标注为正样本,标注类别标签为+1,在非目标区域随机采样大于正样本数量的负样本,标注类别标签为-1,得到全部样本的类别标签yn,n为样本总数;
[0048] 1-2)对标注的正负样本构造图像金字塔,对正负样本进行64次缩小或者放大操作,得到64个不同尺寸的图像;
[0049] 1-3)对各标注的正负样本64个不同尺寸图像进行滑窗提取方向梯度直方图,滑窗大小8*8,以4*4的小块计算大小为6*6的方向梯度直方图,得到方向梯度直方图特征金字塔,这个特征金字塔包含64个方向梯度直方图;
[0050] 1-4)使用多尺度方向梯度直方图近似算法得到的特征金字塔的相邻两个方向梯度直方图之间再插入4个尺度均匀分布的方向梯度直方图,从而得到更为精细的方向梯度直方图特征金字塔,如图2所示,此时插入了4*7*8=224个尺度,加上原来的64个尺度,图像特征金字塔共有288个尺度;
[0051] 1-5)使用二进制近似算法和高阶BING特征来计算方向梯度直方图特征金字塔中的每一个方向梯度直方图中每一个窗口的高阶BING特征g;
[0052] 对于一幅大小为(w,h)图像,在每一个不重叠的4*4像素大小的窗口计算9个方向的方向梯度直方图得到9维的向量,并将这个9维的向量排列成3*3大小的矩阵,计算完所有的窗口,就得到大小为 的特征图;
[0053] 对特征图中每一个6*6大小的窗口,使用二进制近似算法,得到一个36维的高阶BING特征g, bk是一个6*6大小的二进制矩阵,bk中的元素为0或者1;其中,Ng表示用Ng个二进制的6*6大小的二进制矩阵bk来近似特征图中每一个6*6大小的窗口,k=1,2,…,Ng,Ng=6;
[0054] 对于整幅特征图,根据前后窗口之间的关系,后一个窗口的高阶BING特征根据前一个窗口的高阶BING计算bk,i,j=(bk,i-1,《j 16)|rk,i,j,其中,《16表示左移16位,|表示或运算;
[0055] bk,i,j表示图像中第i行j列的窗口对应的二进制矩阵bk,rk,i,j表示6*6大小的二进制矩阵bk的后面3行,rk,i,j通过二进制近似算法求得
[0056] 1-6)在各尺度(wo,ho)下,输入高阶BING特征g与对应的类别标签yn训练该尺度对应的第一级SVM分类器 得到分类器36
的模型参数w1∈R ;)由于每一个尺寸(wo,ho)中出现目标的可能性并不相同,所以对方向梯度直方图特征金字塔中每一个尺度训练一个SVM分类器,共64个第一级SVM分类器;
[0057] 1-7)对第一级SVM分类器训练完成后,对样本图像的图像金字塔的各尺寸(wo,ho)的图片上进行窗口滑窗,计算尺寸(wo,ho)下每一个高阶BING特征g,将高阶BING特征g输入第一级SVM分类器得到尺寸(wo,ho)下的分数Sl,Sl=,其中<·>表示向量的内积;
[0058] 1-8)使用分数Sl和对应的类别标签yn来训练第二级SVM分类器得到第二级SVM分类器的模型参数vm和tm,第二级SVM分类器共
有288个,即m=1,2,…,288;
[0059] 2)检测步骤:
[0060] 2-1)对检测图像构造图像金字塔,对检测图像进行64次缩小或者放大操作,得到64个不同尺寸的图像;
[0061] 2-2)对检测图像的图像金字塔的各尺寸(wo,ho)∈{8,16,32,64,126,256,512,1024}的图片上进行窗口滑窗,滑窗大小8*8,以4*4的小块计算大小为6*6的方向梯度直方图,得到方向梯度直方图特征金字塔,这个特征金字塔包含64个方向梯度直方图;
[0062] 2-3)使用多尺度方向梯度直方图近似算法得到的特征金字塔的相邻两个方向梯度直方图之间再插入4个尺度均匀分布的方向梯度直方图,从而得到更为精细的方向梯度直方图特征金字塔,此时插入了224个尺度,共有288个尺度;
[0063] 2-4)使用二进制近似算法得到的方向梯度直方图特征金字塔中的每一个方向梯度直方图中每一个窗口的高阶BING特征g
[0064] 2-5)将高阶BING特征g输入第一级SVM分类器得到尺寸(wo,ho)下的分数Sl;Sl表示属于正负样本的可能性,若Sl>0,那么Sl越接近+1越可能属于正样本;若Sl<0,那么Sl越接近-1越可能属于负样本;
[0065] 2-6)将从第一级分数SVM分类器输出对检测图像的图像金字塔的分数Sl输入第二级SVM分类器得到分数Ol,分数Ol表示目标的可能性,Ol∈[-1,+1],Ol越大则越有可能为目标;虽然第二级的SVM有288个,但是对于一个特定的尺度,只会使用该尺度对应的那一个SVM,这并不会增加计算的复杂性;
[0066] 2-7)对检测图像中所有窗口的得分Ol进行排序,取前面K个窗口作为候选的目标窗口。最后使用非极大值抑制消除多余的候选窗口,找到目标的位置。此处K的取值为200。