人脸识别系统的matlab仿真

1.问题描述:

        人脸识别技术有着广阔的应用前景和迫切的现实需求,是当前模式识别、计算机视觉等领域里最热门的研究方向之一。而人脸识别的软件系统开发,则是联系理论和实践的最重要的环节。本文着重介绍了人脸识别软件系统开发的背景,原理以及最后的设计结果。通过本文的实验可以知道,根据人脸皮肤颜色只占颜色区域的一个小区域的特性,在HSV颜色模型建立人脸皮肤模型,再用人脸皮肤图像对其进行训练,当训练的人脸皮肤图像足够多时,这一方法能够有效的检测出人脸区域和非人脸区域。本文分别用了10幅和20幅人脸皮肤图像进行训练,再对任意图像进行检测。首先,用10幅的人脸皮肤图像进行训练,所得人脸皮肤模型,对一幅图像进行人脸检测的结果还可以,但是其有待于训练加强才能更好的得到良好的检测效果。其次,用20幅的人脸皮肤图像进行训练后,所得人脸皮肤模型进行实验的结果总的要比10幅时的要好,能够摒弃一些非人脸的区域所产生的毛刺,更完善地检测出人脸区域。这实验结果表明,要得到更完善的人脸皮肤模型需要增加人脸皮肤图像训练的数目,使人脸皮肤模型的训练逐渐达到完善,能检测出任意图像的人脸区域。一般来说,用100幅人脸皮肤图像进行训练后得到的人脸皮肤模型能够有效的对任意一幅图像(不含人体其他皮肤区域的)进行人脸检测,检测率为99%。另一方面,本文进行的实验也进一步说明了在HSV彩色模型下利用H分量对光线强弱变化的缓慢性,对人脸皮肤建立模型进行训练,得到的人脸皮肤模型受光线的变化缓慢,对人脸检测的结果影响不大。与RGB彩色模型对光线的亮暗具有明显地反应相比较,这是基于肤色的HSV彩色模型下的人脸检测的一大优点。

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/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;

    end

end

3.仿真结论:

C-10

猜你喜欢

转载自blog.csdn.net/ccsss22/article/details/114895967