当前位置: 首页 > article >正文

基于matlab实现人脸识别检测系统

1.人脸识别流程

1.1.1基本原理

基于YCbCr颜色空间的肤色模型进行肤色分割。在YCbCr色彩空间内对肤色进行了建模发现,肤色聚类区域在Cb—Cr子平面上的投影将缩减,与中心区域显著不同。采用这种方法的图像分割已经能够较为精确的将人脸和非人脸分割开来。

1.1.2流程图

人脸识别流程图

027a0a5218434fc9386c2507f5e768ac.png


  1. 人脸识别程序
人脸和非人脸区域分割程序
function result = skin(Y,Cb,Cr)
%SKIN Summary of this function goes here
%   Detailed explanation goes here
a=25.39;
b=14.03;
ecx=1.60;
ecy=2.41;
sita=2.53;
cx=109.38;
cy=152.02;
xishu=[cos(sita) sin(sita);-sin(sita) cos(sita)];
%如果亮度大于230,则将长短轴同时扩大为原来的1.1倍
if(Y>230)a=1.1*a;b=1.1*b;
end
%根据公式进行计算
Cb=double(Cb);
Cr=double(Cr);
t=[(Cb-cx);(Cr-cy)];
temp=xishu*t;
value=(temp(1)-ecx)^2/a^2+(temp(2)-ecy)^2/b^2;
%大于1则不是肤色,返回0;否则为肤色,返回1
if value>1result=0;
elseresult=1;
end
end人脸的确认程序
function eye = findeye(bImage,x,y,w,h)
%FINDEYE Summary of this function goes here
%   Detailed explanation goes here
part=zeros(h,w);
%二值化
for i=y:(y+h)for j=x:(x+w)if bImage(i,j)==0part(i-y+1,j-x+1)=255;elsepart(i-y+1,j-x+1)=0;endend
end
[L,num]=bwlabel(part,8);
%如果区域中有两个以上的矩形则认为有眼睛
if num<2eye=0;
elseeye=1;
end
end
人脸识别主程序
clear all;
%读入原始图像
I=imread('face3.jpg');
gray=rgb2gray(I);
ycbcr=rgb2ycbcr(I);%将图像转化为YCbCr空间
heighth=size(gray,1);%读取图像尺寸
width=size(gray,2);
for i=1:heighth %利用肤色模型二值化图像for j=1:widthY=ycbcr(i,j,1);Cb=ycbcr(i,j,2);Cr=ycbcr(i,j,3);if(Y<80)gray(i,j)=0;elseif(skin(Y,Cb,Cr)==1)%根据色彩模型进行图像二值化gray(i,j)=255;elsegray(i,j)=0;endendend
end
se=strel('arbitrary',eye(5));%二值图像形态学处理
gray=imopen(gray,se);
figure;imshow(gray)
n=1;%存放经过筛选以后得到的所有矩形块
result=zeros(n,4);
figure,imshow(I);
hold on;
for i=1:num %开始筛选特定区域box=stats(i).BoundingBox;x=box(1);%矩形坐标Xy=box(2);%矩形坐标Yw=box(3);%矩形宽度wh=box(4);%矩形高度hratio=h/w;%宽度和高度的比例ux=uint16(x);uy=uint8(y);if ux>1ux=ux-1;endif uy>1uy=uy-1;endif w<20 || h<20|| w*h<400 %矩形长宽的范围和矩形的面积可自行设定continueelseif ratio<2 && ratio>0.6 && findeye(gray,ux,uy,w,h)==1%根据“三庭五眼”规则高度和宽度比例应该在(0.6,2)内;result(n,:)=[ux uy w h];n=n+1;end
end
if size(result,1)==1 && result(1,1)>0 %对可能是人脸的区域进行标记rectangle('Position',[result(1,1),result(1,2),result(1,3),result(1,4)],'EdgeColor','r');
else%如果满足条件的矩形区域大于1,则再根据其他信息进行筛选a=0;arr1=[];arr2=[]; for m=1:size(result,1)m1=result(m,1);m2=result(m,2);m3=result(m,3);m4=result(m,4);%得到符合和人脸匹配的数据if m1+m3<width && m2+m4<heighth && m3<0.2*widtha=a+1;arr1(a)=m3;arr2(a)=m4;%rectangle('Position',[m1,m2,m3,m4],'EdgeColor','r');endend%得到人脸长度和宽度的最小区域arr3=[];arr3=sort(arr1,'ascend');arr4=[];arr4=sort(arr2,'ascend');%根据得到的数据标定最终的人脸区域for m=1:size(result,1)m1=result(m,1);m2=result(m,2);m3=result(m,3);m4=result(m,4);%最终标定人脸if m1+m3<width && m2+m4<heighth && m3<0.2*widthm3=arr3(1);m4=arr4(1);rectangle('Position',[m1,m2,m3,m4],'EdgeColor','r');endend
end

(4)程序说明

人脸识别程序主要包含三个程序模块,人脸识别主程序由三部分构成。第一部分:将图像转化为YCbCr颜色空间,根据色彩模型进行图像二值化,二值化图像进行形态学处理、开运算,显示二值图像;第二部分:采用标记方法选取出图中的白色区域,度量区域属性,存放经过筛选以后得到的所有矩形块,筛选特定区域,存储人脸的矩形区域;第三部分:对于所有人脸的矩形区域,如果满足条件的矩形区域大于1则再根据其他信息进行筛选,标记最终的人脸区域。

图像分割程序中,利用肤色可以较为精确的将人脸和非人脸区域分割开来,得到较为精确的二值化图像。

人脸的确认程序,以存储的所有矩形区域作为研究对象,当区域内有眼睛存在时,才认为此区域为人脸区域

3运行结果

  1. 第一幅图



9447257307349af77bef9a0e8cc19768.png
原始图像




01e7b96d676fbf33da41892815dfcb1e.png
肤色分割的二值化图像



50dac6398b3696c1aff25dbba2e3054e.png
人脸识别图像


  1. 第二幅图




fd9e1493d7866b43a496cf13af502871.png
原始图像





f8f8d58b1b63b5db75824631e3245397.png
肤色分割的二值化图像





3628a8507bf22477150e2c20629b52de.png
人脸识别图像

http://www.lryc.cn/news/2415519.html

相关文章:

  • Visual Studio 2008 专业版
  • proto语法说明
  • 最新短视频去水印解析API接口分享
  • 三星 原生android,原生Android 4.0 三星GALAXY Nexus评测
  • java技术讨论QQ群号码:40820473
  • 无人机倾斜摄影测量技术,倾斜摄影三维建模测量技术及其应用详解
  • 数字图像基本知识
  • 全网最新最详细【2024版本】Kali Linux 渗透测试技术大全
  • python爬取网页数据步骤,python爬取网页详细教程
  • 冰峰王座完整的语音英文+中文解释!(修订版)
  • Microsoft live labs Pivot 和Google wave邀请
  • RTTSTM32开发实践1:开发环境搭建
  • Win11 预览体验计划空白无显示的一种解决方案
  • 【网页设计与制作成品】 web前端开发技术 web课程设计 网页规划与设计
  • 启动应用程序出现d3dx9_27.dll缺少问题解决
  • 最新华为鸿蒙系统升级名单,鸿蒙系统首批升级机型名单_华为鸿蒙系统升级机型名单时间表...
  • 口令
  • 好用的影子系统软件,系统辅助工具
  • ES优化实战 - 小操作节省百分之三十以上的磁盘空间
  • 计算机网络模型及协议简介
  • 用计算机唱歌弹奏china,新目标英语专题练习:句型转换(附答案)
  • identity_insert 如何改为on_如何找到模型中你想要找的所有元素
  • 无线网络监控服务器怎么,无线监控系统如何安装?
  • 为博客添加音乐播放器并保持跳转时不中断播放状态
  • ddddy
  • 斯隆奖新晋得主宋舒然:从视觉出发,打造机器人之「眼」
  • XP SP3 IIS 5.1版本安装包下载地址和XP SP3 IIS 5.1版本安装方法
  • Dubbo 负载均衡
  • HTML制作个人网页制作(简单静态HTML个人博客网页作品)
  • Windows 8 Platform (三) Windows 8 Developer Preview