牟 亚,聂亚洲,付发威,周银平(华北电力大学,北京 昌平 102206)
基于模式识别的自适应灯具
牟亚,聂亚洲,付发威,周银平
(华北电力大学,北京昌平102206)
摘要:模式识别技术自20世纪60年代提出以来,一直都因为其巨大的发展潜力吸引了众多研究者的深入探索和研究。这些年来,模式识别在人脸识别、疲劳检测、人机交互等领域取得了巨大进展。本文研究的目的是设计一套可以自动检测人眼状态并作出相应调光反馈的灯光系统,这套系统可以最大程度上减轻视疲劳,保护眼睛。当光有微小的变化,眼睛就会做出相应的变化。当眼睛处于一个舒适的状态,光就处于一个合适的值。本文使用的软件主要是VS2013与OpenCV相结合,通过调用OpenCV库函数,建立该灯具系统。本文采用了级联Adaboost算法,用于人脸检测、人眼检测和瞳孔定位。对输入图像进行人脸检测,在人脸检测的基础上进行人眼检测并定位瞳孔,从而找到瞳孔直径以及虹膜直径。通过串口,把瞳孔直径与虹膜直径的比值按照一定的映射关系传给数模转换模块,输出不同的电压来控制LED的亮度。再辅以反馈调节机制,确保灯具发出的光照是最符合人眼需求的光照。
关键词:模式识别;级联Adaboost算法;OpenCV ;人眼检测
信息大数据时代,由于人们经常在不合适的光线下过度使用电子产品,导致眼部疾病发病率直线上升。解决问题的根源在于将不合适的光线调节为适合眼睛的光线。而目前世界上关于适合光照还没有一个公认的标准,在这种状况下,人为地界定一个光线亮度,光线被动的调节,并不能改善目前电子产品过度使用,眼部疾病发病率逐年攀升的现状。我们立足于健康生活的理念,将模式识别技术运用到灯具上,致力于研究自适应性灯具。台灯可以根据环境光线的变化和人眼的状态来自动调节,达到使人眼感到舒适的状态,从而减少对眼睛的伤害,提高眼睛的健康状况。
在实现灯光自适应调节的过程中,主要应用了模式识别领域中的Adaboost算法和级联分类器。
2.1模式识别
模式识别是一个样本的类别属性(模式类)的确定过程,即把某一个样本归属于多个类型中的某个类型,从20世纪20年代发展至今,目前它已经运用到生物认证、指纹识别、声纹识别、语音识别、数字水印等领域。模式识别技术是人工智能的基础,我们利用摄像头拍摄出的照片,通过Adaboost算法和级联分类器识别出眼睛的状态,确定眼睛对光照的需求。
2.2Haar积分图
将红外背光摄像头拍摄的照片转化为灰度图,为了得到灰度图的特征值,需要对输入图像进行逐点扫描。设i(x,y)为输入图像中像素点(x,y)的像素灰度值,那么假定一个图像,在某一点(x,y)处,求该点像素的灰度值之和,要计算纵坐标小于等于Y的所有像素点。定义该像素灰度值的和为s(x,y),利用递推公式,求取待测图像的积分图:
图1 具体点积分图
其中x和y从0开始,s(x,y-1)=0,ii(x-1,y)=0。可以通过积分图快速求得矩形特征区域内的所有像素点的灰度积分。点1处的积分图ii1为:ii1=sum(A),具体积分范围如图1所示。
根据上图可以按顺序分别计算点2,点3,点4的特征值:
根据上式,在积分图示例中计算出的每个端点处的值代表一个矩形特征值,再将每个端点处的值做加减运算。所要计算的矩形大小和位置都与计算时间无关,即这个计算时间是一个常数,这是积分图计算的最大优点。
2.3Adaboost算法与级联分类器
Adaboost算法是一种分类器算法,在1995年由Freund和Robert E.Schapire提出的,其主要思想是利用大量分类能力较弱的简单分类器(weakerclassifier)通过一定方法叠加(boost)起来,构成一个具有强分类能力的强分类器。
2.3.1由扩展的Haar特征生成弱分类器
将红外背光摄像头拍摄出的照片转化为灰度图,利用灰度图的特征值训练弱分类器。弱分类器可以使一个任何单一特征或组合特征的分类器,它的主要功能是对候选区域做二值判断。具体定义如下:
其中x为检测窗口,f(x)为计算矩形特征值的函数,θ为通过训练的弱分类器的阈值,p用来表示不等式的方向,取值为+1。对图中的每个特征f,训练得到对应的一个弱分类器h(x,f,p,θ),确定得到最优阈值,使得这个弱分类器h(x,f,p,θ)对所有的训练样本的分类误差率最低。
弱分类器训练的过程大致如下:
(1)计算每个特征f1(i=1...m为特征总数)对应的训练样本的特征值;
(2)将所有特征值排序;
(3)对排好序的每个元素:
计算全部正例的T+和权重;
计算全部负例的T_和权重;
(4)选取当前元素的特征值Fki和它前面的一个特征值Fki-1之间的值作为阈值,该分类器的分类误差为:
(5)计算最小的弱分类器误差,同时记录此时若分类器的方向符号和阈值以及分类器的矩形特征。
特别说明:在前期准备训练样本的时候,需要将样本归一化和灰度化到20*20的大小,这样每个灰度图像样本大小一致,保证了每一个Haar特征都在一个样本内。
2.3.2训练强分类器
在训练强分类器的过程中,T表示的是强分类器中包含的弱分类器的个数。当然,如果是采用级联分类器,强分类器中的弱分类器的个数可能会比较少,多个强分类器再级联起来。训练强分类器的步骤如下:
给定一系列训练样本(x1,y1).(x2,y2).....(xn,yn),其中yi=0表示负样本(非人脸),yi=1表示正样本(人脸),为总共的训练样本数。
(1)初始化权重wt,i;
(2)对t=1....T归一化权重,
(3)对每个特征f,训练一个弱分类h(x,f,p,θ):计算对应特征的若分离器的加权(q1)错误率εi。
(4)计算最小的弱分类器误差εj,并且记录此时弱分类器的方向符号p和阈值θ以及分类器的矩形特征。
经过T次迭代后,获得了T个最佳弱分类器h1(x)....hT(x),可以按照下面的方式组合为一个强分类器:
那么,这个强分类器对待一副待测图像时,相当于让所有弱分类器投票,再对投票结果按照弱分类器的错误率加权求和,将投票加权求和的结果和平均投票的结果相比较,大于则算在强分类器里,小于就排除,得到最终的结果。
平均投票结果,即假设所有的弱分类器投“赞同”票和“反对”票的概率相等,求出平均概率,
2.3.3构建级联AdaBoost算法
级联AdaBoost的核心是在算法进行T次迭代训练过程中,从每次的迭代训练过程中的弱分类器中挑选出T个弱分类器,按照一定的准则将其连接起来,构建成一个强分类器。如果弱分类器的正确率只提高一点点,那么强分类器的正确率就能够大幅提高。连续AdaBoost算法的输出值遍布整个实数域。因此,几乎能够模拟全部分类器类型的概率分布。
级联分类器是由连续AdaBoost算法每层训练的分类器组合成的强分类器,最后将选取的弱分类器按照自身的分类性能自动将他们组合在一起。
一般来讲,在对视频中的图像进行检测时,所要检测的目标只占待测图像的一个很小的部分,但在待测图像中,有很多干扰阻碍了目标的检测。需要我们极快地去除这些干扰或者非目标区域,留下大部分的时间去检测除去干扰后的目标窗口,这样不仅提高了目标检测速度,并且提高了目标检测的准确率。构建级联AdaBoost算法是我们所需要的算法。
2.4调光原理
图2 设备连接图
利用高清的红外背光摄像头,拍摄人的面部照片,借助Intel公司提供的计算机视觉库OPEN-CV,通过近来提出的具有高精度和快速特点的adaboost算法和级联分类器首先找到人脸,进一步找到眼睛,最后找到瞳孔。虹膜的大小不随光照而变化,图片中虹膜与瞳孔的相对大小不随人眼与灯光的距离而改变,因此可以用虹膜为参照物计算出瞳孔的相对大小。根据瞳孔大小和所需光照的对应关系,输出一个合适的值给电压源模块,进而改变电阻两端的电压,改变通过电阻的电流,通过三极管对电流的放大作用,实现LED台灯的合理发光。此外,为了能反映桌面的绝对光照强度,LED灯光下还有一个光敏电阻,光敏电阻感应此时的光照,会得到一个相应的电阻值,与光敏电阻并联的电压表会将这个值通过数模转换模块传给电脑,电脑判断是否达到了眼睛舒适光照的要求,如果没达到,再微调光强,直到达到最适合人眼的光照需求。
3.1数值照度关系
按照实验电路图连接好线路,在无环境光照的条件下,保持台灯到桌面距离一定,打开电脑,打开照度仪,运行相应的程序,从600-4000每隔100输入数值,记录相应数据,可以得出LED灯发出的光的强度值y/lux与输入数模转换器的数值x成正相关的关系,计算机拟合二者对应关系函数为y=361.1ln(x)-2217.8。LED灯发出光的强度值y/lux与通过LED灯珠的电流数值x/mA成正相关的关系,计算机拟合二者对应关系函数表达式为y=2.7975x+48.092。
3.2瞳孔直径与照度
瞳孔的作用就是改变通光量,而光通量是照度的函数,于是照度和瞳孔直径之间建立了联系,瞳孔直径R是眼睛处光照度L0的函数,即R=f(L0)。保持灯光与眼睛距离为50cm不变,以灯光为唯一光源,打开照度仪与瞳孔检测仪器,连续调节灯光,使瞳孔处照度从100lux-780lux按每40lux为单位递增,记录对应的瞳孔直径于表格,得到相应曲线。
从瞳孔直径与照度关系图中可以看到,瞳孔的直径与LED灯发出光的强度成负相关的关系,计算机拟合二者对应关系函数表达式为。
保持灯光与光敏电阻距离为不变,以灯光为唯一光源,打开照度仪,运行相应的程序,连续调节灯光,使光敏电阻所处照度从按每为单位递增,关系如图4所示。
从照度与数值关系图中可以看到,数值y与LED灯发出光的强度负相关,计算机拟合二者对应关系函数表达式为。
图3 瞳孔直径与照度关系图
图4 光照度与反馈数值关系
对自适应灯具的研究迈出了模式识别应用的第一步。人性化的设计让它可以根据眼部的状态实现光照强度的自动调节,适合的光照使人眼达到最舒适的状态,更好的保护眼睛,防止眼部疾病。同样的原理和算法,可以运用到电子产品的屏幕亮度控制中。目前市面上的屏幕亮度调节主要通过光敏原件和光敏感应器感应,但本论文中提出的构想可以实现了屏幕亮度针对眼部的自适应调节,是现有的产品所不能比拟的。
参考文献:
[1]杭海滨.虹膜定位与识别的算法研究与实现[D].上海交通大学,2013.
[2]田启川,潘泉,程咏梅,张洪才.基于局部边缘检测的虹膜编码算法研究[J].计算机应用研究,2005(08):230-232+257.
[3]苑玮琦,徐露,林忠华.一种基于人眼图像灰度分布特征的虹膜定位算法[J].光电子·激光,2006(02):226-230.
[4]张铮,王艳平.数字图像处理及其视觉[M].人民邮电出版社,2010.
[5]张宏林.Visual C++数字图像模式识别技术及工程实践[M].人民邮电出版社,2003.