基于肤色的图像人数统计识别算法*
2014-09-17谭艳丽
谭艳丽
(太原工业学院 电子工程系,山西 太原 030008)
0 引言
图像的人数统计在商业信息采集和公共安全监控方面具有重要意义,对人数的准确统计有利于高效地管理和组织活动的实施开展,还可与第三方软件系统进行集成,为决策提供科学的数据支持。因此,图像的人数统计识别算法的研究无论在理论上还是在实际应用领域都有着诱人的发展前景。
1 常用的人数统计方法
人数统计的基本思想是在建立生物特征模型的基础上,比较所有可能的待检测区域与人脸的特征匹配程度,并以此来判断并找出可能存在人脸的区域[1]。对人数进行统计之前,需要对人体的生物特征和外形特征进行合适的描述,如肤色、眼、鼻、口等。外形特征有相对固定的长宽比、相对固定的形状以及面部器官的几何关系等。针对不同的人脸特征描述方式,提出不同的方案。人数统计的方法大致可分为以下4类。
1.1 基本圆Hough变换人数统计方法
Hough变换是将图像空间里的像元进行聚类,这些像元具有特定的内在联系,寻找能和这些像元建立起联系的参数空间的累积对应点,从而实现了从图像空间到参数空间的映射转换关系。
1.2 基于模板匹配的方法
首先设定一些不同标准的、描述人脸的整体特征或局部特征的模板,然后根据模板与待检测图像的相似度进行匹配检测[2]。常用的模板匹配方法有预定模板匹配法、变形模板法、动态轮廓法。
1.3 基于特征的方法
首先找出人脸的稳定特征,再利用其他信息进一步检测人脸。人脸的稳定特征是指在外界环境有所改变时相对不变的特征,比如人的脸部特征、肤色、纹理以及它们的综合特征等。
1.4 基于神经网络的方法
人工神经网络是一种非线性的动力系统,这种系统可以将若干并不复杂的神经元相互连接起来,并通过调整各神经元之间相互连接的关系进行信息的处理。这种网络算法具有较强的自学习和自适应能力[3]。
2 基于肤色的图像人数统计识别算法
不同的色系中,肤色的聚类特性也不同,这种差异性主要反映在亮度上[4]。虽然肤色对光照强度较敏感,但肤色特征与人脸的细节特征相关性不是很大,因此,可以依据人的肤色特征进行人数的统计识别。在色彩空间中,肤色所占频带较窄,肤色与非肤色区域对应的颜色信息也相异。肤色检测识别,即通过寻找图像中人脸皮肤肤色信息来筛选、判断,进而统计识别人数的过程。
2.1 算法思路
首先将图像转换到YCbCr空间中,提取Cb和Cr分量后,通过计算所得阈值区分开肤色与非肤色区域,得到二值图像。对所得二值图像进行形态学处理,之后进行筛选,根据人体生物特征选取目标区域,对连通区域进行统计得出最终的人数统计结果。
2.2 算法步骤
(1) 读入原始图像。代码如下:
I=imread(‘statistics.jpg’);
%读入图像
figure,imshow(I);
%显示图像
(2) 进行颜色空间转换。不同人种的肤色区别主要受亮度信息影响,受色度信息的影响较小,而肤色在YCbCr空间的分布呈现良好的聚类特性[5]。所以将原图像从RGB色彩空间转化到YCbCr色彩空间,且直接考虑CbCr分量。代码如下:
I-YCbCr=RGB2YCbCr(I);
%将原图从RGB色彩空间转换到YCbCr空间
I-Cb=I-YCbCr(:,:,2);
%提取Cb分量
I-Cr=I-YCbCr(:,:,3);
%提取Cr分量
(3) 建立肤色模型,提取相应人体肤色区域,生成二值化图像。利用高斯肤色归一化概率模型,把静态图像中的每个像素限定在0至1范围内。利用所得阈值区分肤色与非肤色区域,形成二值图像。代码如下:
U=(I-cb>=77)&(I-cb<=
127)&(I-cr>=133)&(I-cr<=173);
%提取肤色,得二值图像
(4) 对二值化图像进行形态学处理。形态学的腐蚀操作能够消除颗粒噪音,使图像的区域缩小。开运算能够使图像的轮廓变的更加光滑,可以极大可能地滤除由噪声或其他原因引入的误判的肤色区域,可以为后续人头统计带来极大的便利,减少了工作量,提高检测速度[6]。代码如下:
se=strel(‘square’,3);
%构造结构元素
U=imopen(U,se);
%开运算
U=imclose(U,se);
%闭运算
U=imfill(U,‘hole’);
%填洞
figure,imshow(U);
%显示形态学处理结果
se1=strel(‘square’,8);
U=imerode(U,se1);
U=imdilate(U,se1);
%区域连通
figure,imshow(U);
(5) 基于人头特征对连通区域进行筛选。其步骤为:
(ⅰ) 对二值化图像进行顺序标记,准确地标记出二值化图像中各种形状的连通区域;
(ⅱ) 计算出每个连通区域的长和宽;
(ⅲ) 判断连通区域边界处的长宽之比,根据人脸的长宽比(1.2到2.1之间)舍弃不满足条件的连通区域;
(ⅳ) 对满足条件的连通区域再次进行标记,为后续的再次筛选做铺垫;
(ⅴ) 对区域进行二次筛选,通过区域面积的大小值,排除不符合目标域的较小值[7]。代码如下:
[L,num]=bwlabel(U,4);
sum=0
for i=1:num;
[r,c]=find(L==i);
r-temp=max(r)-min(r);
%脸部区域长度
c-temp=max(c)-min(c);
%脸部区域宽度
temp=size(r);
sum=sum+temp;
if(r-temp/c-temp<1.2)|(r-temp/c-temp>2.1);
%判断是否符合长宽比范围
for k=1:temp;
L(r(k),c(k))=0;
%非人脸剔除
end
else
continue;
end
end
figure (1)
imshow(L)
(6) 对连通区域进行统计得出最终的人数统计结果。代码如下:
[l,n]=bwlabel(bw2,8);
figure (3)
imshow(‘face7.jpg’)
title([‘人数检测结果为’ num2str(n)])
3 仿真结果
以一副不同肤色的人数图像为仿真对象,依据本文算法,用Matlab软件进行仿真。首先,对原始图像进行肤色提取,得二值化图像,见图1;接着对所得二值图像进行开运算操作,得到闭合连通域图像,见图2;再对闭合连通域图像进行形态学处理,得形态学处理后图像,见图3;接着根据人体头部长宽比特征进行一次目标筛选,筛选结果见图4;再进行二次筛选,通过对连通域面积的大小进行筛选,排除不符合目标域的较小的值,选出目标区域,筛选结果见图5;最后统计图像中目标连通域的个数,得出最终人数统计结果,如图6所示。
图1 肤色提取后的二值化图
图2 形成闭合的连通域
图3 形态学处理结果
图4 生物特征筛选结果
图5 二次筛选结果
图6 人数统计结果
4 结束语
本文提出了基于肤色的图像人数统计识别算法。仿真结果表明,该算法在YCbCr模型中,能够很好地区分肤色与非肤色的区域,最终实现了图像的人数自动统计识别。本算法运算速度快,具有较好的实时性。
参考文献:
[1] SCHOFER J, USHPIZ A, POLUS A. Pedestrian flow and level of service[J]. Journal of Transportation Engineering, 2010, 109(1): 46-56.
[2] KAYO O. Locally linear embedding algorithm: extensions and applications[D]. Oulu: University of Oulu, 2006.
[3] BELKIN M, NIYOGI P. Laplacian eigenmaps for dimensionality reduction and data representation[J]. Neural Computation, 2003, 15(6): 1373-1396.
[4] 杨帆,赵春晖,梅小丹,等.数字图像处理与分析[M].北京:北京航空航天大学出版社,2010:92-142.
[5] 林庆,罗敏.基于颜色和几何关系的人脸检测方法[J].计算机工程与设计,2008,29(7):3396-3398.
[6] 李尚国.基于肤色和人脸特征的人脸检测和人眼定位方法研究[D].重庆:重庆师范大学,2010.
[7] 王映辉.人脸识别原理、方法与技术[M].北京:科学出版社,2010.