基于肤色分割和匹配的人脸识别_第1页
基于肤色分割和匹配的人脸识别_第2页
基于肤色分割和匹配的人脸识别_第3页
基于肤色分割和匹配的人脸识别_第4页
基于肤色分割和匹配的人脸识别_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于肤色分割和匹配的人脸识别020316班 07036049 张伟1将RGB空间转换为YCbCr空间: 为了把人脸区域从非人脸区域分割出来,需要使用适合不同肤色和不同光照条件的可靠的肤色模型。常用的RGB 表示方法不适合于皮肤模型,在RGB 空间,三基色( r、g、b)不仅代表颜色,还表示了亮度。由于周围环境光照的改变,亮度可能使人脸的检测变得更加复杂,在皮肤的分割过程中是不可靠的。为利用肤色在色度空间的聚类性,需要把颜色表达式中的色度信息与亮度信息分开,将R、G、B 转换为色度与亮度分开的色彩表达空间可以达到这个目的。颜色空间的转换常用的颜色模型主要有:YCrCb、HSV、YIQ等。在本文的

2、实验中选用YCrCb 空间作为肤色分布统计的映射空间,该空间的优点是受亮度变化的影响较小,而且是两维独立分布,能较好地限制肤色分布区域。 使用函数为:YCBCR = rgb2ycbcr(RGB);2 将彩色图像转换为灰度图像,实验证明,不同的肤色具有相同的2D模型G(m,V2)。灰度值对应属于皮肤区域的可能性,同过设定门限,就可以转换为二值图像,1,0分别表示皮肤和非皮肤区域。皮肤颜色在ycbcr色度空间的分布范围为:100<=cb<=127,138<=cr<=170,可以将彩色图像转换为二值图像:f_cb=f(:,:,2);f_cr=f(:,:,3);f = (f_c

3、b>=100) & (f_cb<=127) & (f_cr>=138) &(f_cr<=170) ;figure; imshow(f);3转换后不可避免出现了噪声,有背景的噪声影响,以及人的衣服和裤子引起的噪声点,使用开闭运算的方法消除噪声:se=strel('square',3);f=imopen(f,se);f=imclose(f,se);figure(2),imshow(f);4.对图像做填孔处理f=imfill(f,'holes'); figure(3),imshow(f);5.对图像进行重构,即利用重构进

4、行开运算,可准确恢复腐蚀后的对象形状.fe=imerode(f,ones(8,7);fo=imopen(f,ones(8,7);f=imreconstruct(fe,f); figure(4),imshow(f);6.相关匹配,实际作用效果不大,可以注释掉.%w=ones(3);%f=imfilter(f,w);%figure(5),imshow(f);% M,N=size(f);% f=fft2(f);% w=conj(fft2(w,M,N);% g=real(ifft2(w.*f);% gs=gscale(g);% figure,imshow(gs);7.人脸候选区筛选时,由于头部部分重合

5、,以及头部与其他部分,例如衣服等的连接,对筛选造成了困难,故应先利用闭运算操作,断开连接,再进行处理.se1=strel('square',8);f=imerode(f,se1);f=imdilate(f,se1);figure(6),imshow(f);8. 利用人脸候选区筛选,进一步确定人脸区域(判断规则如下):(1)若目标高宽比小于0.8而大于2.0,则认为不是人脸区域,删除此区域。(2)区域面积过大或过小,认为不是人脸区,删除此区域。矩形面积area_sq =目标区长度*宽度,目标区面积为area,若area / area_sq <0.6,则认为不是人脸区域。其中

6、条件1限定了要检测的人脸区域的比例大小,排除了一些颜色类似皮肤但长宽不符合要求的区域。(如颜色与皮肤接近的衣物)条件2排除一些不规则但色调和皮肤接近的物体,同时也可排除人体其他的非脸部区域,如四肢等。L,num=bwlabeln(f,4);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(1); area_sq=r_temp*c_temp; area=size(find(L=i),1); ratio=area/area_sq; if (r_temp/

7、c_temp<0.8)|(r_temp/c_temp>2)|temp(1)>2000|temp(1)<200 |ratio<0.6 %脸部区域<200的去掉,一般为手或其他干扰. %利用脸部宽长比的大概上下限来确定一个模板范围. %矩形面积s=目标区长度*宽度,目标区面积为ss,若ss/s<0.6,认为不是 %人脸区,删除之. for j=1:temp(1); L(r(j),c(j)=0; end else continue; endend9. 利用边缘检测,检测出人脸;利用得到的边缘,对原图像进行处理,就可以在原图中画出人脸区域的框图.可以看出,由于

8、人手交叉放置,所以不管从肤色还是形状以及面积比上,都很难将其识别和删除,所以出现了两个错误检测,这也是本程序应改进的地方.L=bwperim(L,8); %边缘检测,检测出人脸的边缘区域L=uint8(L);z=find(L(:)>0);L(z)=255;% ave=sum/num;%ave=696.figure(7),imshow(L);L_r=L;L_g=L;L_b=L;L_rgb=cat(3,L_r,L_g,L_b); %在原图上加框% figure,imshow(L_rgb);img1_r=min(L_r+img(:,:,1),255);img1_g=min(L_g+img(:,

9、:,2),255);img1_b=min(L_b+img(:,:,3),255);img1=cat(3,img1_r,img1_g,img1_b);figure(8),imshow(img1);附录:完整程序清单:function facedetec()sum=0;% clc,close all;iptsetpref('ImshowBorder', 'tight')f=imread('faces.jpg');Ori_Face=f;copy=f;img=f;% figure,imshow(f);f=rgb2ycbcr(f);%rgb转换为ycbcr

10、% figure,imshow(f);f_cb=f(:,:,2);f_cr=f(:,:,3);f= (f_cb>=100) & (f_cb<=127) & (f_cr>=138) &(f_cr<=170) ;%皮肤颜色在ycbcr色度空间的分布范围为:100<=cb<=127,138<=cr<=170figure(1); imshow(f);%K=medfilt2(f,5 5);%5×5中值滤波,去除噪声%figure,imshow(f);%利用开闭运算的方法消除噪声se=strel('square

11、9;,3);f=imopen(f,se);f=imclose(f,se);figure(2),imshow(f);%填孔处理f=imfill(f,'holes'); figure(3),imshow(f);%重构法fe=imerode(f,ones(8,7);fo=imopen(f,ones(8,7);f=imreconstruct(fe,f); figure(4),imshow(f);%相关匹配,作用不大,可注释掉%w=ones(3);%w为模板大小.%f=imfilter(f,w);%figure(5),imshow(f);% M,N=size(f);% f=fft2(f)

12、;% w=conj(fft2(w,M,N);% g=real(ifft2(w.*f);% gs=gscale(g);% figure,imshow(gs);%人脸候选区筛选时,由于头部部分重合,以及头部与其他%部分,例如衣服等的连接,对筛选造成了困难,故应先利用%闭运算操作,断开连接,再进行处理.se1=strel('square',8);f=imerode(f,se1);f=imdilate(f,se1);figure(6),imshow(f);%区域连通L,num=bwlabeln(f,4);for i=1:num; r,c=find(L=i); r_temp=max(r)

13、-min(r); c_temp=max(c)-min(c); temp=size(r); sum=sum+temp(1); area_sq=r_temp*c_temp; area=size(find(L=i),1); ratio=area/area_sq; if (r_temp/c_temp<0.8)|(r_temp/c_temp>2)|temp(1)>2000|temp(1)<200|ratio<0.6 %脸部区域<250的去掉,一般为手或其他干扰. %利用脸部宽长比的大概上下限来确定一个模板范围. %矩形面积area_sq=目标区长度*宽度,目标区面积为area,若area/area_sq<0.6,认为不是人脸区,删除之. for j=1:temp(1); L(r(j),c(j)=0; end else continue; endendL=bwperim(L,8);%边缘检测,检测出人脸的边缘区域L=uint8(L);z=find(L(:)>0);L(z)=255;% ave=sum/num;%ave=696.figure(7),imshow(L);L_r=L;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论