欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    简单Matlab人脸检测.docx

    • 资源ID:4196223       资源大小:517.34KB        全文页数:14页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    简单Matlab人脸检测.docx

    1、简单Matlab人脸检测 创新性实验研究报告实验项目名称 matlab人脸识别一、实验摘要 本实验主要利用高斯肤色的归一化概率模型,将静态图像中的每一个像素限定在0到1的范围内。利用人工阈值法将肤色与非肤色区域分开,形成二值图像。对上述图像进行开闭运算,腐蚀膨胀等操作,弱化细节。通过脸部几何特征选取脸部区域,排除非脸部区域。后利用脸部区域最大最小行列坐标得到最小外接矩形。进一步分析可得两眼,嘴部坐标,以3点为基础画椭圆。最终圈定脸部区域。二、实验目的 在一幅静态图片中找到人的脸部区域。三、实验场地及仪器、设备和材料:实验场地:J11-428实验室;仪器:PC机一台;材料:Matlab软件、待检

    2、测图片四、实验内容1、实验原理高斯肤色概率模型:由于统计表明不同人种的肤色区别主要受亮度信息影响,而受色度信息的影响较小,所以直接考虑YCbCr空间的CbCr分量,映射为CbCr空间,在CbCr空间下,受亮度变化的影响少,且是两维独立分布。通过实践,选取大量肤色样本进行统计,发现肤色在CbCr空间的分布呈现良好的聚类特性。 统计分布满足:77Cb127 并且满足:133Cr173根据肤色在色度空间的高斯分布,对根据肤色在色度空间的高斯分布,对于彩色图像中每个像素,将其从RGB色彩空间转换到YCbCr空间后,就可以计算该点属于皮肤区域的概率,即根据该点离高斯分布中心的远近得到和肤色的相似度,将彩

    3、色图像转化为灰度图,其中每个像素的灰度对应该点与肤色的相似度,相似度的计算公式如下:其中m为均值,m=E(x),C为协方差矩阵,,肤色分布的2D高斯模型G(m,V2)也可表示为 其中,为相应的平均值,为协方差矩阵。为了利用肤色在色度空间的聚类性,选取YCbCr色彩空间进行肤色提取。首先将彩色图片颜色空间转换到YcbCr空间,然后对该区域的CbCr值进行统计处理。处理的方法就是采用高斯模型。m=E(x) ,,C为协方差矩阵,。通过这个肤色高斯分布可得到待检测彩色图像中任意一个像素点属于皮肤的概率。对于某像素点s,从RGB空间转换到YCbCr色彩空间得到色度值(Cb,Cr)则该像素的肤色概率密度可

    4、由下式计算得到:式中:。通过计算,得到m和C的值如下: m=117.4316 148.5599;(1)YCbCr色彩空间是数字视频常用的色彩模型。在模型中,亮度信息单独储存在Y中,色度信息储存在Cb和Cr中。Cb和Cr分别表示蓝色分量和红色分量相对的参考值。Matlab中实现YCbCr色彩空间的转换函数为rgb2ycbcr。YCbCr色彩空间是人脸检测非常好的选择。因为其受亮度变化的影响小,能较好地限制肤色分布区域,而且在YCbCr色彩空间中肤色聚类特性比较好。因此我们采用构建YCbCr色彩空间的肤色模型来得出肤色概率谱,计算出每一个像素与肤色的相似度,并将每一点的灰度值与其为肤色的概率关联起

    5、来,得到肤色似然图。越靠近肤色灰度值越高,无关部分灰度值会较低。(2)阈值化是人脸检测中非常重要的一步。上一步操作得到肤色似然图后,由于近似肤色部分灰度值比较高,无关部分灰度值比较低,因此,选定合适的阈值后进行阈值分割,得到的二值图像可以有效地将近似肤色区域和无关部分分割开,无关部分将作为黑色背景色。便于下一步的操作。经过测试,阈值在0.5-0.6都能满足实验要求。(3)因为要考虑到原图像的多样与复杂性,非肤色区域中依然有可能有部分区域颜色与肤色相近,所以阈值分割后的图像依然存有部分假肤色区域,经过开闭操作、填洞操作、腐蚀膨胀操作可以有效地去掉毛刺、假肤色区域等,从而得到一个较为纯净的肤色区域

    6、。(4)得到的肤色区域可能含有较多的人体信息,包括人脸、手臂、手掌、腿部等等。由于实验目标是人脸检测,所以需要做面部特征定位把人脸和其他肤色区域区分开来。因为待检测图片中的人物信息都是着装的,所以人脸或者人脸包括颈部和身体的其他部分区域可以被衣服隔开,一般都是非联通的。因此本次实验使用的方法为对每个区域进行扫描,通过限制长宽比、区域的像素个数(等同于限制区域大小)和矩形度可以有效地将人脸部分从肤色区域中筛选出来,非人脸区域可以全赋值为0融入背景色。同时得到结果与阈值化图像相与,得到眼嘴特征。(若有)(5)最终得到的区域即为人脸区域,对其扫描后可以得到其长宽的最大最小值坐标,从而可以轻易画出此区

    7、域的最小外接矩形,在原待测图片上按照相同坐标画出矩形后,矩形框内即为人脸;而对有眼嘴特征的图像,则扫描定位眼睛和嘴巴的位置,用“*”号标注,以这三点为基准画出更贴近人脸的椭圆。这两种方法都能达到返回人脸位置大小的目的。2、实验内容实例一:(1)通过肤色概率模型得到源图像概率图:(2)人工阈值得二值化图像:(3)选定脸部区域: (4) 将2,3所得图像做and运算: (5) 通过眼嘴确定人脸区域:实例二:通过肤色概率模型得到源图像概率图: (2) 人工阈值得二值化图像: (3)选定脸部区域: (4)将2,3所得图像做and运算: (5)通过脸部区域坐标确定人脸区域:3、实验步骤 根据课题要求 ,

    8、查阅相关书籍; 根据课题条件,设计算法流程;算法步骤如下: 寻找合适的肤色概率模型。 对概率模型进行阈值选择。形成二值化图像 将上述的二值化图像进行几何辨识,筛选出脸部区域。 对脸部区域特征扫描,找到眼,嘴坐标,若未扫描到眼,跳至(6)。 对所得3点坐标为基准画椭圆,确定出脸部区域。 将(3)得到的脸部区域图加上最小外界矩形,可粗略确定出脸部区域。 在matlab环境中运行根据算法编写的程序; 测试程序; 调试; 进一步优化算法,优化程序。五、实验结果与分析1、实验现象、数据记录本次人脸检测实验采用了2种圈定人脸的方法(椭圆和最小外接矩形),如果静态图片人脸检测成功,将显示类似如下结果:(其中

    9、最小外接矩形在扫描不出人眼时作为备用圈定人脸的方案) 图1 椭圆圈定人脸 图2 矩形圈定人脸另外,程序中还有在图片中定位眼嘴的语句,以方便程序后期调试,现象类似如下:图3 人脸特征标记2、对实验现象、数据及观察结果的分析与讨论:本次实验程序对正面人脸的检测率基本能满足快速检测出图片中人脸的需要,检测率也比较让人满意。实现方法简便有效,如果能进一步增加滤波、光照补偿等步骤,将可以在满足实验要求的前提下进一步提高检测率和检测精度。3、关键点:本次实验实现人脸检测的方法为利用人脸的明显特征,肤色,过程是把人脸图像视为一个高维向量,从而将人脸检测问题转化为高维空间中分布信号的检测问题,这个转化的数学形

    10、态学思想实现起来较为简便,不仅省去了训练的过程,而且对人脸的表情、脸部细节容差也比较大,在符合本次实验目的的前提下选用这种方法是很适合的,而这种方法所带来的肤色模型、肤色采集、阈值分割等问题,也成为了这次创新性实验的关键。六、实验结论这次基于肤色的人脸检测肤色分割方法本身就是一种较为基础的基于特征的静态人脸检测方法,如果要求更高,还需要更高级的算法,因为要考虑到待测图片的多样性和复杂性,由于人的姿态、人种肤色、光照、噪声等等都有可能影响到图片质量或者图片色度,这个人脸检测程序还需要进一步的完善才能满足更高的要求。七、指导老师评语及得分: 签名: 年 月 日附件:源程序等。clc;clear a

    11、ll;close all;x=imread(f.jpg);y=rgb2ycbcr(x);a b c=size(y);cb=double(y(:,:,2);cr=double(y(:,:,3);for i=1:a; for j=1:b w=cb(i,j) cr(i,j); m=117.4316 148.5599; n=260.1301 12.1430;12.1430 150.4574; p(i,j)=exp(-0.5)*(w-m)*inv(n)*(w-m); endendz=p./max(max(p);%-complextion probabilityimshow(z)%figure;imsho

    12、w(x);th=0.5;for i=1:a for j=1:b if(z(i,j)th) z(i,j)=1; else z(i,j)=0; end endendfigure;imshow(z);title(Set threshold)%-thresholdse=strel(square,3); f=imopen(z,se); f=imclose(f,se); %figure,imshow(f);%open and close processing; f=imfill(f,holes); %figure,imshow(f);%fill holes in the Img se1=strel(squ

    13、are,8); f=imerode(f,se1); f=imdilate(f,se1); %figure,imshow(f);%-erosion and expansion;L,num=bwlabel(f,4); for i=1:num;%region loop; r,c=find(L=i); len=max(r)-min(r)+1; wid=max(c)-min(c)+1; area_sq=len*wid; area=size(r,1); for j=1:size(r,1)%pixel loop; if(len/wid2.4)|size(r,1)200|area/area_sq0.55 L(

    14、r(j),c(j)=0;%not zero pixel =0; else continue; end end end figure;imshow(L);title(Face Region)%-eliminate NOT face rengion; w=L&z; figure;imshow(w);title(Face and Features)%-recover the features of face r c=find(L=0); r_min=min(r);r_max=max(r); c_min=min(c);c_max=max(c); figure;imshow(x); hold on %p

    15、lot(round(.5*(c_max+c_min),round(.5*(r_max+r_min),+) flg=0; for i=round(.5*(r_min+r_max):-1:round(1/3*(r_max-r_min)+r_min) for j=round(.5*(c_max+c_min):-1:round(1/3*(c_max-c_min)+c_min) if(w(i,round(j)=0) flg=1; break; end end if(flg=1),break,end end w(i,j) if(w(i,j)=0) e1_x=j;e1_y=i; %plot(j,i,*)%-

    16、Note left eye flg=0; for i=round(.5*(r_min+r_max):-1:round(1/3*(r_max-r_min)+r_min) for j=round(.5*(c_max+c_min):round(2.2/3*(c_max-c_min)+c_min) if(w(i,j)=0)flg=1;break;end end if(flg=1)break,end; end w(i,j) e2_x=j;e2_y=i; %plot(j,i,*)%-Note right eye for i=round(1/2*(r_max+r_min):round(r_min+2/3*(

    17、r_max-r_min) if(w(round(i),round(.5*(c_max+c_min)=0),break,end end w(i,round(.5*(c_max+c_min) m_x=.5*(c_max+c_min);m_y=i; %plot(round(.5*(c_max+c_min),i,*)%-Note mouth ox=(e1_x+e2_x+m_x)/3;oy=(e1_y+e2_y-e1_x+e2_x)/2; a=2*(e2_x-e1_x);c=(e1_y+e2_y)/2-m_y;b=(a*a-c*c)0.5; t=0:.01:2*pi; x=ox+.65*b*cos(t);y=oy+.8*a*sin(t); plot(x,y,.) else rectangle(Position,c_min r_min c_max-c_min r_max-r_min,EdgeColor,r); title(Test Face Rec-ed)%-test the face region end


    注意事项

    本文(简单Matlab人脸检测.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开