具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
图1示出了本发明实施例提供的基于图像的目标检测方法的实现流程,详述如下:
在S101中,生成由多棵二叉树构成的级联结构的分类器,所述二叉树以像素强度对比为特征。
在本发明实施例中,使用的分类器采用了一组具有级联筛选机制的最优决策树,该分类器采用多层级联结构,每层由多棵二叉树组成,同时,该分类器的特点在于,其中的二叉树并非采用了计算积分图像得到的Haar特征,而是以像素强度对比(Pixel IntensityComparisons,PIC)为特征,Pic特征的采用使得分类器对目标检测的准确率更高,速度更快。
接下来,对构成分类器的多棵二叉树的训练过程进行说明,首先,对训练数据{(Is,vs,ws),s=1,2,...,S}进行说明:该训练数据是一组样本图像,vs是样本图像Is的类标签,vs∈{-1,+1},当vs为-1时,表明对应的样本图像中不包含检测目标,当vs为1时,表明对应的样本图像中包含检测目标。如图2所示,对二叉树的训练过程如下:
在S201中,对于训练数据中的每一幅样本图像Is,将其对应的权重ws初始化为其中,P为所述训练数据中正样本的数量,N为所述训练数据中负样本的数量。
在S202中,计算每一幅样本图像Is的Pic特征。
对于一幅图像I,在任意两个点l1和l2处,其像素强度对比计算公式如下:
其中,I(l1)是点l1处的像素强度,I(l2)是点l2处的像素强度,在此,点l1和l2是归一化坐标,即它们来自区域[-1,+1]×[-1,+1],而Pic即为像素强度对比特征。
在S203中,根据挑选二叉树的节点,以生成所述多棵二叉树{Tk,k=1,2,...,K},其中,WMSEmin即最小化的权重均方误差(Minimize the Weighted Mean Squared Error),C0和C1是聚类中心分别为0和1的特征值集合,和分别是Pic特征的特征值(0和1)集合中样本图像对应标签的加权平均值。
在本发明实施例中,以Pic特征作为分类器中每棵二叉树的节点,将生成的多棵二叉树进行级联,以得到分类器。在对图像进行目标检测时,如图3所示,将待检测的图片的Pic特征输入该分类器,并逐级通过每一棵二叉树,通过二叉树时,将待检测的图片的Pic特征与该二叉树对应的Pic特征进行比较,若两个特征不相符,则输出该图像中不包含目标(在图3中,目标为人脸)的判定结果,若两个特征相符,则将输出的分类结果与待检测的图片的Pic特征一起输入到下一级的二叉树中,重复以上步骤,直至从分类器的最后一级二叉树输出,若最终输出的分类结果不小于预设阈值,则判定该图像中包含检测目标。
在S204中,根据ws=ws exp(-csTk(Is))更新样本图像的权重,并将更新后的权重归一化,使所有样本图像的权重之和等于1,其中,Tk(Is)为二叉树Tk对样本图像Is的分类结果,此分类结果为实数。
在本发明实施例中,生成多棵二叉树并建立分类器后,还要对分类器进行训练,不断地对样本图像进行权重更新,以提高分类器的检测精度,降低误检率。在训练级联决策树的过程中,如果每层的检测率和误检率没有达到预先设置的训练目标,那么就会继续添加新的Pic特征进行训练。如果级联决策树总体的检测率和误检率没有达到训练要求,那么就会增加新的二叉树进行训练,这样重复上述步骤,直至级联决策树总体的检测率和误检率达到训练要求,对分类器的训练完成。
为了高效快速去除图像中的非目标区域,在本发明实施例中,分类器采用将多棵二叉树按照结构复杂度由简单到复杂排列的级联结构,使每棵决策树都有较高的检测率及较低的误检率。比如,级联结构有20层,每层的检测率要求为0.999,则总检测率为0.999的20次方,约等于98%,而误检率也仅为0.5的20次方,约等于0.0001%。此外,将结构简单且辨识能力较强的决策树部署在级联结构的前几层,能够快速地排除图像中的大量非目标区域,而在级联结构的后几层,使用分类能力更强的决策树,能够筛选出图像中的目标区域。
在S102中,通过滑动窗口对图像进行遍历,得到多个窗口图像。
优选地,在本发明实施例中,可以通过不同尺寸的滑动窗口分别对图像进行遍历,这样得到多个窗口图像。
在S103中,将所述多个窗口图像的像素强度对比特征分别输入所述分类器。
在S104中,若存在所述窗口图像通过了所述分类器且输出的分类结果不小于预设阈值时,判定该窗口图像包含检测目标。
在S105中,若所述窗口图像在所述分类器中的任一级输出的分类结果小于所述预设阈值,判定该窗口图像不包含检测目标。
在本发明实施例中,在进行目标检测时,通过将滑动窗口不断地移动与放大来实现对整幅图像的遍历。对于每一个滑动窗口对应的窗口图像,使其先通过级联结构的前几层,每通过一棵二叉树便会得到一个分类结果,这个分类结果在通过每级二叉树的过程中不断迭代,当某一级二叉树输出的分类结果小于预设阈值时,则拒绝该窗口图像,并判定其不包含检测目标。若该窗口图像通过了级联结构的所有层,且分类结果大于预设阈值,则接受该窗口图像,判定其包含检测目标,且该分类结果就为检测目标的置信度。当完成对图像的遍历之后,对窗口图像进行一次聚类,假如存在两个被判定为包含检测目标的窗口图像,其图像交集与图像并集的比值大于预设比值(例如,大于0.3),则判定这两个窗口图像包含的检测目标为同一个,将该检测目标的置信度确定为这两个窗口图像对应的分类结果累加出的置信度。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
本发明实施例采用了具有级联筛选机制结构的分类器,且分类器中的二叉树使用了像素强度对比特征作为节点,使得基于图像的目标检测准确率更高,速度更快。
接下来,以人脸检测为例,对本发明实施例提供的目标检测方法的检测效果进行说明:在训练数据中,正负样本各取了2万幅图像,通过对每个正负样本各进行15次随机扰动和尺度变化采样,从而在分类器的每层二叉树的训练中聚集了60万的正负样本。为了节省资源和加快训练速度,对分类器的层数和每层树的数量加了限制,同时,在测试中发现每棵树的二叉节点为256个时,检测效果最好。
在图像尺寸为640×480的含有5917幅图像的红外face3数据库上,每幅图像中的人脸的图像尺寸都大于100×100。从表1可以看出,本发明实施例提供的目标检测方法的平均人脸检测时间比Viola-Jones和基于LBP特征的方法都要少:
表1
在包含3500幅图像的GENKI-SZSL数据库(每幅图像只含1张人脸)上,上述三种检测方法的效果如图4所示,其中,横坐标代表误检数量(Number of false positives),纵坐标表示检测率(Detection rate),从图中可以看出本发明实施例(Our detector)的检测效果是最好的。
在性能提升上,基于本发明实施例提供的目标检测方法对人脸检测效果进行增强,主要是通过改进训练方法来提高人脸检测率,以降低误检率,同时尽可能提高检测速度。改进的原则是控制分类器的层数和每层二叉树的数量,并限制每棵树的深度,重点是设置前三层的训练参数,即降低TPR值,减少层数和二叉树的数量,在后面层级中,提高TPR值和降低FPR值,以加快去除非人脸区域的速度,增强分类器辨识能力。
按照上面的训练方法,实验中训练了4种人脸检测分类器,分别命名为:Learned-10-6-15、Learned-15-6-15、Learned-15-le8-15和Learned-15-le7-15,其名称含义,以Learned-10-6-15-s0.7为例,表明该分类器有10层,每层最多为15颗树,每颗树最大深度为6,待检测图像缩小到0.7倍,le7表示整个级联二叉树的FPR不大于10 ̄7,Original-Pico分类器是原始参考。在3个不同的数据库上,上述4种人脸检测分类器的测试情况如下:
1、face3数据库:
4种分类器在face3红外数据库上的人脸检测情况如表2所示,具体检测效果如图5所示:
表2
其中,耗时是指检测每幅图像所需的平均时间。
通过表2所示,Learned-15-le7-15分类器的TPR最高,达到99.66%,它的FPR也最小,达到20.92%,在4种分类器中,其检测速度是最快的,而耗时比Original-Pico的多了1.46倍。通过图5的ROC曲线所示,检测率大于95%以后,Learned-15-le7-15分类器比其它3种训练的分类器,在face3数据库上的人脸检测效果要好。
2、FDDB数据库:
4种分类器在FDDB(wild)数据库上的人脸检测情况,如表3所示,具体检测效果如图6所示:
表3
通过表3所示,Learned-15-le7-15分类器的真正率(True Positive Rate,TPR)最高,达到97.25%,它的假正率(.False Positive Rate,FPR)是32.24%,比最小的FPR多了0.76%,而耗时在4种分类器中,是最少的,只比Original-Pico的多了0.85倍。在图6中,图6(a)表示4种分类器与Original-Pico的ROC曲线,图6(b)表示4种分类器的局部ROC曲线,当检测率大于95%以后,Learned-15-le7-15分类器比Learned-10-6-15分类器的检测效果好,当检测率大于96.80%以后,它的检测性能优于Learned-15-le8-15分类器,而当检测率大于96.93%以后,它的检测效果又强于Learned-15-6-15分类器,因此,Learned-15-le7-15分类器在FDDB(wild)数据库上的人脸检测效果要优于其它3种训练的分类器。
3、scenery数据库:
4种分类器在scenery数据库(不含人脸)上的人脸拒识情况,如表4所示,具体拒识效果如图7所示:
表4
通过表4所示,Learned-15-le8-15分类器的拒识率最高,达到100.00%,它的误检率也最小,达到0.00%,但耗时比Original-Pico的多了0.71倍,而Learned-15-le7-15分类器虽然误检了一个,但耗时比另外3种分类器都要少,只比Original-Pico的多了0.43倍。
如图7所示,Learned-15-le8-15分类器在scenery非人脸数据库上,对非人脸图像的拒识效果要优于其它3种训练的分类器,但Learned-15-le7-15分类器的拒识效果也相对较好。
综上所述,Learned-15-le7-15分类器在以上具有开放环境和光照变化,以及人脸姿态多样和部分遮挡情况的两种人脸数据库的检测效果是最优的,它在非人脸数据库上的拒识效果也相对较好,所以,此分类器较其它3种鲁棒。
与Original-Pico分类器比较,虽然人脸检测率有较大提高,但仍有不足之处,一方面是FRP较高,这个可以借助肤色信息,去除部分非人脸区域,以降低FPR,另一方面是人脸检测速度稍慢,这个可以通过减少扫描图像区域的策略实现。
对应于上文实施例所述的基于图像的目标检测方法,图8示出了本发明实施例提供的基于图像的目标检测装置的结构框图,为了便于说明,仅示出了与本实施例相关的部分。
参照图8,该装置包括:
生成单元81,生成由多棵二叉树构成的级联结构的分类器,所述二叉树以像素强度对比为特征;
遍历单元82,通过滑动窗口对图像进行遍历,得到多个窗口图像;
输入单元83,用于将所述多个窗口图像的像素强度对比特征分别输入所述分类器;
第一判定单元84,若存在所述窗口图像通过了所述分类器且输出的分类结果不小于预设阈值时,判定该窗口图像包含检测目标;
第二判定单元85,若所述窗口图像在所述分类器中的任一级输出的分类结果小于所述预设阈值,判定该窗口图像不包含检测目标。
可选地,所述生成单元81包括:
生成子单元,生成所述多棵二叉树;
排列子单元,将所述多棵二叉树按照结构复杂度由简单到复杂进行级联排列。
可选地,所述生成单元81用于:
对于训练数据中的每一幅样本图像Is,将其对应的权重ws初始化为其中,P为所述训练数据中正样本的数量,N为所述训练数据中负样本的数量,vs是样本图像Is的类标签,当vs为-1时,表明样本图像Is中不包含检测目标,当vs为1时,表明样本图像Is中包含检测目标;
计算每一幅样本图像Is的像素强度对比特征;
根据挑选二叉树的节点,以生成所述多棵二叉树{Tk,k=1,2,...,K},其中,WMSEmin为最小化的权重均方误差,C0和C1是聚类中心分别为0和1的特征值集合,和分别是像素强度对比特征的特征值集合中样本图像对应标签的加权平均值;
根据ws=ws exp(-csTk(Is))更新样本图像的权重,并将更新后的权重归一化,使所有样本图像的权重之和等于1,其中,Tk(Is)为二叉树Tk对样本图像Is的分类结果。
可选地,所述遍历单元82具体用于:
通过不同尺寸的滑动窗口分别对所述图像进行遍历。
可选地,所述装置还包括:
聚类单元,用于若存在两个包含所述检测目标的所述窗口图像,其图像交集与图像并集的比值大于预设比值,将这两个所述窗口图像的分类结果进行累加。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。