肖仁锋
(济南职业学院 计算机系,山东 济南 250103)
传统的易拉罐检测系统基于超声波等传感器,但是此类传感器只能检测到有物体的存在,不能判断此物体是否即为目标物体易拉罐。但若采用视觉方法,则能在判断出有物体存在的同时,也能判断出目标物体是否为易拉罐。
本文讨论的易拉罐检测方法,是基于AdaBoost算法的思想,并使用Haar特征、LBP特征对易拉罐进行特征提取,以训练出在易拉罐处于不同形态下及不同环境中检测率都较高的易拉罐检测器。Adaboost算法,是一种迭代算法,其核心思想是针对同一个训练集训练不同的弱分类器,然后把这些弱分类器集合起来,构成一个更强的最终强分类器。Adaboost算法这种将较弱的分类方法合在一起组合成较强的分类方法的思想,可以很好的适用于分类检测这个应用上,并已在人脸检测、车牌检测等获得成效[1-3]。Haar特征及LBP特征[4],是近年来被广泛应用的检测器特征提取方法,它们各有优缺点,本文分别使用这两种特征提取方法并比较它们的训练过程及最终训练结果的差异。
2001年,Viola与Jones提出了基于Adaboost算法的目标检测方法,当时这种检测方法基于Haar特征对目标进行特征的提取。Haar特征是一种矩形特征,一般由2-4个矩形组成。在一个24*24大小的检测框中,能生成117941种Haar特征。
Haar特征可位于图像中的任意位置,大小、长宽比例也可以任意,特征原型一般分为边缘特征、线特征、环绕特征、对角线特征四种,特征值为特征原型中每一个矩形所对应的区域的所有像素点的灰度值的和的差值。如公式(1):
feature表示Haar特征值,RecSum(rt)代表矩形框内所有像素值之和,ωt代表对应矩形权重,如图1,对应边缘特征权值取为{-1,1},线特征权值为{-1,2}。
图1 HAAR特征原型
如图1,HAAR特征值为对应特征原型中白色矩形区域的所有像素点对应的灰度值的和,减去黑色矩形区域的所有像素值之和。显然,Haar特征值计算方法简单但计算量大。
近年来,为了弥补Haar特征计算上、训练上的不足,LBP特征被广泛引入视觉识别技术。LBP特征是一种具有较强纹理描述能力的特征,与Haar特征不同的是,其具有旋转不变性。在24*24大小的检测窗口中,约能生成529种LBP特征,远少于同样检测窗口大小下的Haar特征数目,因此计算特征值时计算量较小。
LBP特征一般将矩形框定义为3*3大小的窗口,再以窗口的中心点的灰度值为阈值与窗口内其他像素作比较并进行二值化处理,然后根据像素的不同位置进行加权求和得到该窗口的LBP特征值。如图2,各点像素值算出后,除中心点外,其他像素皆与中心点像素值作比较,比其大则输出1,小则输出0,最终LBP特征模式为11001011。
图2 LBP特征
除了特征的定义与计算方法不同外,Haar特征与LBP特征在基于AdaBoost算法训练检测器中,最主要的不同是正负样本判决门限的不同。
Haar特征采用阈值区分正负样本,根据某一样本对应特征值与阈值的比较来区分正负样本。LBP特征采用子集来区分正负样本,LBP特征为整数特征,特征值范围为[0,255],即共有256个特征类别,256个特征类别在训练之后,用8个子集来存储,即每个子集装32位的值表示32个特征值的存在与否。当判别某一样本是正样本或负样本时,只需将其特征值与特定子集进行比较,以是否属于这个子集来判断这个样本为正样本或是负样本。
假设有n个样本{x1,y1},.....,{xn,yn},xn代表训练样本,yn代表类标号。
样本集含正样本a个,yi均取1;含负样本b个,yi均取0。
算法流程:
(1)计算得到样本积分图;
(2)计算得到样本所有特征原型(Haar特征或LBP特征);
(3)计算所有特征原型在所有样本上的特征值;
(4)生成弱分类器(AdaBoost以生成决策树的方式生成弱分类器);
构建决策树过程:
ⅰ)若是选择HAAR特征,则是将对应HAAR特征fi在所有样本上的特征值进行排序,从而确定该决策树最佳分裂值和最佳分裂质量后,得出阈值θt和对应特征序号,其中:
split->ord.c= (values[best_i]+values[best_i+1])*0.5f;
split->ord.c代表阈值,values[best_i]最佳分裂点对应特征值;
ⅱ)若是选择LBP特征,则是先计算出特征值的响应值、权值和,以及256个特征值类别里的平均响应值(平均响应值=响应值和/权值和)。再对256个平均响应值进行升序排序,计算得到最佳分裂值和最佳分裂质量后并将256个值放入8个子集中,其中:
split->subset[idx>>5]|=1<< (idx &31);
split->subset[]代表子集,每个子集数组内放32位整数,整数值由idx决定,idx代表排序前的特征值。
(5)得到弱分类器集;
(6)初始化样本权值;
对负样本,初始化权重Wt,i为1/2a;
对正样本,初始化权重Wt,i为1/2b。
(7)循环1,....,T次直至满足条件(t为执行的次数)
ⅰ)归一化样本权重
ⅱ)计算所有弱分类器错误率j
ⅲ)选取当前错误率εt最小弱分类器ht
ⅳ)更新样本权重
当训练样本被正确分类时ei=0,反之ei=1,βt=βt/1—εt
(旨在降低被正确分类的样本的权重,在下一次循环中更关注被分类错误的样本)
ⅴ)得到强分类器及其权值
其中αt=log1/βt
(8)强分类器组建级联分类器 ,即当强分类器未低于某层指定虚警率或未达指定强分类器数目时,再次执行(6)(7)。
实验利用OpenCV2.3开发工具,OpenCV是由Intel建立的一个基于开源开发的跨平台计算机视觉库,实现图像处理和计算机视觉方面的通用算法。实验得出的各检测器效果检测结果如图3:
图3 检测器检测易拉罐结果
具体实验结果参数如表1:
表1 两种不同特征的参数比较
其中,漏检的情况多出于图片中,易拉罐所处形态的颜色与实验室地板颜色相近时;误检多出于误将地板判断为目标物体易拉罐。
本文使用了基于视觉的方法对易拉罐进行检测,基于AdaBoost算法,使用Haar特征及LBP特征对易拉罐进行特征提取。实验结果表明,将Adaboost应用到易拉罐的检测与定位的方法具有准确率较高,检测速率快的优点。
[1] 潘石柱,殳伟群,王令群.基于 AdaBoost的汽车牌照快速定位[J].计算机工程,2006,32(12):187-214.
[2] 盛曦,吴炜,杨晓敏等.一种基于 AdaBoost的车牌定位算法[J].四川大学报(自然科学版),2007,44(3):535-539.
[3] Hjelmas E.,Low B.K.Face Detection.Computer Vision and Image Understanding[J],2001.
[4] Zhe Wei,Yuan Dong,Xiaofu C.Face Verification Using LBP and SVM on Image Sets.Intelligent Computing and Intelligent Systems[J],2011