基于分类器的目标检测方法及装置
技术领域
本发明涉及智能视频监控技术领域,特别是涉及一种基于分类器的目标检测方法及装置。
背景技术
分类器算法是智能视频分析领域中常用的目标检测算法。最常见的分类器如Adaboost分类器,由Freud和Shapire等人提出。Adaboost算法通过学习标记为正负的样本,提取目标概念的知识,从而泛化为其它未见过的检测过程中。
在传统的目标检测过程中,大致分为两部分。一是将图像的分辨率进行不断缩放,形成图像金字塔。如图1所示,缩放比例δ<1为缩放因子,图层0为原始图像,图层1、图层2为原始图像缩放1次、2次后得到的图像……。二是在图像金字塔中每一图层中利用固定大小的滑动窗口进行遍历采样,利用Adaboost分类器对采样图像进行判定,当判定的输出结果为1为所要检测的目标,当输出结果为0则为非目标。
综上,传统技术中,虽然Adaboost分类器虽然对采样图像的判定时间很短(微秒级),但由于是对各个图层进行遍历采样,采样总数目(通常会达到数百万)比较庞大,这样目标检测所需要的时间就比较长。此外,由于Adaboost分类器对采样图像进行二值化判定,检测结果就非常依赖于分类器的性能,如果预先训练的Adaboost性能较高(例如训练采用的正负样本多等),检测结果就比较准确,而当Adaboost分类器不是最优,检测结果就会出现过多的虚警。
发明内容
基于此,有必要针提供一种基于Adaboost分类器的目标检测方法和装置,能够提高目标检测的速度,并且降低虚警。
一种基于分类器的目标检测方法,包括:
根据预设的缩放因子,由原始图像建立图像金字塔;
提取所述图像金字塔的中间X个图层,利用固定的滑动窗口进行遍历采样,对采样图像用分类器计算对应的置信度,得到每个图层中置信度最高的Y个采样图像对应的置信采样点,其中X、Y为正整数;
将所提取的X个图层中共计XY个置信度最高的采样图像对应的置信采样点映射到所述图像金字塔各图层中的对应点,并将每个所述置信采样点及对应点组成一条采样链;
对每条所述采样链中各点利用所述滑动窗口提取对应图层的窗口图像,再对各窗口图像用分类器计算对应的置信度,得到每条采样链中置信度最高的窗口图像;
将各条采样链中置信度最高的窗口图像映射到原始图像中的检测结果窗口;
合并所述原始图像中的检测结果窗口。
在其中一个实施例中,所述对采样图像用分类器计算对应的置信度,包括:对采样图像利用级联Adaboost分类器计算对应的置信度;
所述对各窗口图像用分类器计算对应的置信度,包括:对各窗口图像用级联Adaboost分类器计算对应的置信度;
其中,所述级联Adaboost分类器为预先训练的分类器,包括多个级联的强分类器,每个所述强分类器包含多个弱分类器;
所述对采样图像/窗口图像用级联Adaboost分类器计算对应的置信度,包括:
S1:将置信度初始值设置为0;
S2:按强分类器的级次,执行下列循环:
利用强分类器中所包含的弱分类器分别计算所述采样图像/窗口图像的分值,并将各弱分类器的分值累加作为强分类器分值;
若强分类器分值小于阈值,则未通过强分类器检测,计算强分类器的第一归一化分值,用置信度的当前值减去第一归一化分值作为更新后的置信度,并退出所述循环;否则,通过强分类器检测,计算强分类器的第二归一化分值,用置信度的当前值加上第二归一化分值作为更新后的置信度,并继续执行所述循环。
在其中一个实施例中,所述X=3,所述Y=8。
在其中一个实施例中,在所述合并所述原始图像中的检测结果窗口的步骤之前,所述方法还包括:
对所述检测结果窗口进行滤除处理,滤除置信度小于预值或没有通过所有强分类器检测的窗口图像对应的检测结果窗口。
在其中一个实施例中,合并所述原始图像中的检测结果窗口的步骤,包括:
将原始图像中任意两个相重叠的检测结果窗口按照下列公式进行合并:
R=(Ri×wi+Rj×wj)/(wi+wj),其中Ri=(xi,yi,ai,bi),Rj=(xj,yj,aj,bj)为两重叠的检测结果窗口,(xi,yi)、(xj,yj)分别为检测结果窗口的顶点,ai、aj分别为检测结果窗口的长,bi、bj分别为检测结果窗口的宽,wi、wj分别为对应的置信度。
一种基于分类器的目标检测装置,包括:
图像金字塔建立单元,用于根据预设的缩放因子,由原始图像建立图像金字塔;
置信采样点分析单元,用于提取所述图像金字塔的中间X个图层,利用固定的滑动窗口进行遍历采样,对采样图像用分类器计算对应的置信度,得到每个图层中置信度最高的Y个采样图像对应的置信采样点,其中X、Y为正整数;
采样链组建立单元,用于将所提取的X个图层中共计XY个置信度最高的采样图像对应的置信采样点映射到所述图像金字塔各图层中的对应点,并将每个所述置信采样点及对应点组成一条采样链;
采样链分析单元,对每条所述采样链中各点利用所述滑动窗口提取对应图层的窗口图像,再对各窗口图像用分类器计算对应的置信度,得到每条采样链中置信度最高的窗口图像;
原始图像还原单元,用于将各条采样链中置信度最高的窗口图像映射到原始图像中的检测结果窗口;
检测结果合并单元,用于合并所述原始图像中的检测结果窗口。
在其中一个实施例中,所述置信采样点分析单元用于对所述采样图像利用级联Adaboost分类器计算对应的置信度;
所述采样链分析单元用于对各窗口图像用级联Adaboost分类器计算对应的置信度。
在其中一个实施例中,所述X=3,所述Y=8。
在其中一个实施例中,所述装置还包括过滤单元,用于对检测结果窗口进行滤除处理,滤除置信度小于预值或没有通过所有强分类器检测的窗口图像对应的检测结果窗口。
在其中一个实施例中,所述检测结果合并单元,用于将原始图像中任意两个相重叠的检测结果窗口按照下列公式进行合并:
R=(Ri×wi+Rj×wj)/(wi+wj),其中Ri=(xi,yi,ai,bi),Rj=(xj,yj,aj,bj)为两重叠的检测结果窗口,(xi,yi)、(xj,yj)分别为检测结果窗口的顶点,ai、aj分别为检测结果窗口的长,bi、bj分别为检测结果窗口的宽,wi、wj分别为对应的置信度。
上述基于分类器的目标检测方法和装置,只对图像金字塔中的中间X各图层进行遍历采样,计算得到置信度最高的XY个采样图像对应的置信采样点,再由置信采样点及其在各图层中相应的点建立采样链,再由每条采样链置信度最大的窗口图像映射到原始图像中的检测结果窗口,最后合并检测结果窗口作为检测的目标,相比于传统技术对图像金字塔中的所有图层进行遍历采样,减少了采样数目,从而提高了目标检测的速度,并且所用的分类器的输出为连续的置信度,而不是二值化的0或1,由此目标检测的精确度对分类器的依赖性大大降低,降低了目标检测的虚警。
附图说明
图1为图像金子塔示意图;
图2为一个实施例中的基于分类器的目标检测方法的流程示意图;
图3为一个实施例中采用基于分类器的目标检测方法进行目标检测的示意图;
图4为一个实施例中的基于分类器的目标检测装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参见图2,在一个实施例中提供了一种基于分类器的目标检测方法。该方法包括:
步骤202,根据预设的缩放因子,由原始图像建立图像金字塔。
具体的,在视频监控领域中,图像由图像传感装置获取,该图像传感装置可以是基于CMOS或CCD等工艺技术,原始图像可以是图像传感装置直接获取的图像或者经过灰度化等手段处理过的图像,在此并不限定。由本实施例中的原始图像建立图像金字塔的过程可以参考传统技术。以图3为例,图层0为原始图像,其分辨率可以为1280×720等,缩放因子δ=1/1.1,即图像金字塔中每一图层的分辨率为其上层的1.1倍。在图3中最顶层图层为图层10。
步骤204,提取图像金字塔的中间X个图层,利用固定的滑动窗口进行遍历采样,对采样图像用分类器计算对应的置信度,得到每个图层中置信度最高的Y个采样图像对应的置信采样点。
具体的,建立图像金字塔后,按图层编号提取图像金字塔中的最中间的X个图层进行遍历采样,其中X为正整数,可以根据计算量和准确度的需求进行调整。在图3中,X可以但不限于为3,相应取图层4、图层5和图层6进行遍历采样。提取图像金字塔的中间X个图层也可以是均匀提取图层编号中的X个图层,例如图层编号为0至10,可以提取图层2、图层5和图层8。遍历采样是指通过固定大小的滑动窗口在中间X个图层中由左至右、由上至下地提取图层中的采样图像,并用分类器计算采样图像对应的置信度,最后得到每个所提取的每个图层中置信度最高的Y个采样图像对应的置信采样点。在图3中,滑动窗口302的大小可以预先设置,例如可以设置为检测目标的最小图像尺寸,如40×40等。Y为正整数,可以进行设定,例如在图3中,Y=8。当在图层5中进行遍历采样时,假设图层5中滑动窗口位于5max位置处,其采样图像的置信度为图层5中置信度排序前8的位置之一,则记录5max位置处的置信采样点。置信采样点可以定义为滑动窗口(矩形)的左上角像素点、中心像素点等等。
在本实施例中,分类器为根据目标检测正负样本而预先训练的分类器。当分类器获取采样图像后就会相应输出一个置信度的值。置信度取值在一个连续范围内。
在一个实施例中,分类器可以是预先训练的级联Adaboost分类器,级联Adaboost分类器包括多个级联的强分类器,每个强分类器中又包含多个弱分类器。由此,可以对滑动窗口进行采样的采样图像利用级联Adaboost分类器计算对应的置信度,其一般处理过程包括:
S1:将置信度初始值设置为0。
S2:按强分类器的级次,执行下列循环:
利用强分类器中所包含的弱分类器分别计算采样图像的分值,并将各弱分类器的分值累加作为强分类器分值。
若强分类器分值小于阈值,则未通过强分类器检测,计算强分类器的第一归一化分值,用置信度的当前值减去第一归一化分值作为更新后的置信度,并退出循环;否则,通过强分类器检测,计算强分类器的第二归一化分值,用置信度的当前值加上第二归一化分值作为更新后的置信度,并继续执行循环。
其用计算机代码实现的算法及注释如下:
步骤206,将所提取的X个图层中共计XY个置信度最高的采样图像对应的置信采样点映射到图像金字塔各图层中的对应点,并将每个置信采样点及对应点组成一条采样链。
具体的,在提取的X各图层中,每个图层计算得到置信度最高的Y个采样图像对应的置信采样点,则共计有X×Y个置信采样点。根据图像金字塔的缩放比例关系,将XY个置信采样点映射到图像金字塔中各个图层中的对应像素点,并将这些具有对应关系的像素点形成一条采样链。以图3为例,像素点A5为图层5中计算置信度最高的采样图像的一个置信采样点(图层5中其它置信像素点未示出),则根据图层之间的缩放比例,将A5和A5在各图层中的对应点A0、…A4…A10组成一条采样链。
步骤208,对每条采样链中各点利用滑动窗口提取对应图层的窗口图像,再对各窗口图像用分类器计算对应的置信度,得到每条采样链中置信度最高的窗口图像。
具体的,每条采样链在各个图层中包含一个像素点,以该像素点为基础(例如作为左上角像素点或中心像素点等)利用滑动窗口提取对应图层中的窗口图像,并对窗口图像用分类器计算对应的置信度,得到每条采样链对应置信度最高的窗口图像。其中,对窗口图像用分类器计算对应的置信度,可以是对窗口图像用级联Adaboost分类器计算对应的置信度,处理过程与前述计算采样图像的置信度类似,在此不再赘述。参见图3,A0、…A4…A10组成了一条采样链,以该采样链中每个像素点为基础,在对应图层中用滑动窗口提取窗口图像,并用级联Adaboost分类器计算置信度,得到置信度最高的窗口图像,例如置信度最高的窗口图像可以是位于图层4的chain_max位置处滑动窗口所提取的窗口图像。由此,在本实施例中,一共可以计算得到XY个窗口图像。
步骤210,将各条采样链中置信度最高的窗口图像映射到原始图像中的检测结果窗口。
具体的,窗口图像的大小都是固定的,与滑动窗口的大小一致,根据窗口图像所在不同图层的编号,以及图层间的缩放关系,将上述XY个窗口图像映射到原始图像(图层0)中的检测结果窗口。在图3的例子中,图层4中的chain_max位置处的窗口图像的置信度最高,将其映射到原始图像中,其图像大小相应会根据图层4与图层0的缩放关系会进行放大,最终为图层0中的区域304。
步骤212,合并原始图像中的检测结果窗口。
具体的,经过前述步骤,会得到XY个检测结果窗口,将XY个检测结果窗口进行合并就得到所要检测的目标。当检测结果窗口为孤立的,就可以直接作为一个检测的目标。而当检测结果窗口存在重叠时,按照公式:R=(Ri×wi+Rj×wj)/(wi+wj)进行合并,其中Ri=(xi,yi,ai,bi),Rj=(xj,yj,aj,bj)为两重叠的检测结果窗口,(xi,yi)、(xj,yj)分别为检测结果窗口的顶点,ai、aj分别为检测结果窗口的长,bi、bj分别为检测结果窗口的宽,wi、wj分别为对应的置信度。
在一个实施例中,在对XY个检测结果窗口进行合并之前,还可以对检测结果进行滤除处理,滤除置信度小于预值Th(Th可以依据监控场景而设定)或没有通过所有强分类器检测的窗口图像对应的检测结果窗口。这样根据不同监控场景的虚警度要求,可以滤除XY个检测窗口结果中的部分结果,降低虚警度。
上述实施例所提供的目标检测方法是基于如下实验事实:当用滑动窗口在图像金子塔中进行采样时,对采样图像用分类器计算得到的置信度存在连续性,同一图层中相邻位置的采样图像的置信度的差值在一定范围内,并且相邻图层的相近位置的采样图像的置信度差值也在一定范围内。由此可以通过少数几个图层中置信度较高的采样图像来获知原始图像中的检测目标,而不必对图像金字塔的所有图层进行遍历采样。
上述基于分类器的目标检测方法,只对图像金字塔中的中间X各图层进行遍历采样,计算得到置信度最高的XY个采样图像对应的置信采样点,再由置信采样点及其在各图层中相应的点建立采样链,再由每条采样链置信度最大的窗口图像映射到原始图像中的检测结果窗口,最后合并检测结果窗口作为检测的目标,相比于传统技术对图像金字塔中的所有图层进行遍历采样,减少了采样数目,从而提高了目标检测的速度,并且所用的分类器的输出为连续的置信度,而不是二值化的0或1,由此目标检测的精确度对分类器的依赖性大大降低,降低了目标检测的虚警。
参见图4,在一个实施例中,提供了一种基于分类器的目标检测装置。该装置包括:
图像金字塔建立单元402,用于根据预设的缩放因子,由原始图像建立图像金字塔。
置信采样点分析单元404,用于提取图像金字塔的中间X个图层,利用固定的滑动窗口进行遍历采样,对采样图像用分类器计算对应的置信度,得到每个图层中置信度最高的Y个采样图像对应的置信采样点。
采样链组建单元406,用于将所提取的X个图层中共计XY个置信度最高的采样图像对应的置信采样点映射到图像金字塔各图层中的对应点,并将每个置信采样点及对应点组成一条采样链。
采样链分析单元408,对每条采样链中各点利用滑动窗口提取对应图层的窗口图像,再对各窗口图像用分类器计算对应的置信度,得到每条采样链中置信度最高的窗口图像。
原始图像还原单元410,用于将各条采样链中置信度最高的窗口图像映射到原始图像中的检测结果窗口。
检测结果合并单元414,用于合并原始图像中的检测结果窗口。
在一个实施例中,置信采样点分析单元404可以对采样图像利用级联Adaboost分类器计算对应的置信度。而采样链分析单元408可以对各窗口图像用级联Adaboost分类器计算对应的置信度。其计算原理参见前文。
在一个实施例中,根据计算量的大小以及预期检测目标的个数,可以取X=3,Y=8。则总计会需要对3个图层进行遍历采样,并且得到24条采样链及对应的检测结果窗口。
在一个实施例中,本装置还可以包括过滤单元414,对检测结果窗口进行滤除处理,滤除置信度小于预值Th或没有通过所有强分类器检测的窗口图像对应的检测结果窗口,以适应不同虚警度要求的监控场景。
检测结果合并单元414对检测结果窗口进行合并得到检测目标,具体的,当检测结果窗口为孤立的,就可以直接作为一个检测的目标。而当检测结果窗口存在重叠时,按照公式:R=(Ri×wi+Rj×wj)/(wi+wj)进行合并,其中Ri=(xi,yi,ai,bi),Rj=(xj,yj,aj,bj)为两重叠的检测结果窗口,(xi,yi)、(xj,yj)分别为检测结果窗口的顶点,ai、aj分别为检测结果窗口的长,bi、bj分别为检测结果窗口的宽,wi、wj分别为对应的置信度。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。