数字图像处理课程设计.docx
- 文档编号:12059627
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:24
- 大小:223.17KB
数字图像处理课程设计.docx
《数字图像处理课程设计.docx》由会员分享,可在线阅读,更多相关《数字图像处理课程设计.docx(24页珍藏版)》请在冰豆网上搜索。
数字图像处理课程设计
课程设计说明书
题目:
图像人脸区域隐私保护系统设计
课程:
数字图像处理课程设计
院(部):
信息与电气工程学院
专业:
班级:
学生姓名:
学号:
指导教师:
完成日期:
2013年12月
摘要
人脸是准确鉴定一个人的身份,推断出一个人的种族、地域,地位等信息的重要依据。
科学界从图像处理、计算机视觉等多个学科对人脸进行研究。
人脸识别在满足人工智能应用和保护信息安全方面都有重要的意义,是当今信息化时代必须解决的问题.
本设计用MATLAB对图像的读取,在识别前,先对图像进行处理,再通过肤色获得可能的脸部区域,最后根据人脸固有眼睛的对称性来确定是否就是人脸,同时采用高斯平滑来消除图像的噪声,再进行二值化,二值化主要采用局域取阈值方法,接下来就进行定位、提取特征值和识别等操作。
经过测试,图像预处理模块对图像的处理达到了较好的效果,提高了定位和识别的正确率。
为保护当事人或行人的隐私权,需要将图像中当事人的人脸区域作模糊,实现图像中人脸区域隐私保护。
关键词:
人脸识别;图像处理;图像模糊
1设计目的
近年来随着科技和人们的生活水平的提高,生物特征识别技术在近几十年中飞速发展。
随着社会的发展和技术的进步,特别是近年来计算机在软硬件方面性能的飞速提升,各应用领域对快速高效的身份验证的要求日益迫切。
由于生物特征是人的内在属性,具有很强的自身稳定性和个体差异性,因此成为身份验证的最理想依据。
其中,利用人脸特征进行身份验证又是最自然最直接的手段.人脸识别系统与指纹、虹膜、掌纹等其他人体生物特征识别系统相比,更加友好、方便,更易于为用户所接受。
作为人的一种内在属性,并且具有很强的自身稳定性及个体差异性,生物特征成为了自动身份验证的最理想依据。
人脸识别由于具有直接,友好,方便的特点,使用者易于为用户所接受,从而得到了广泛的研究与应用。
除此之外,我们还能够对人脸识别的结果作进一步的分析,得到有关人的性别,表情,年龄等诸多额外的丰富信息,扩展了人脸识别的应用前景.
所谓人脸识别(FaceRecognition),分析人脸图像,从中提取有效的识别信息,用来辨别身份的一门技术。
即,对己知人脸进行标准化处理后,通过某种方法和数据库中的人脸标本进行匹配,寻找库中对应人脸及该人脸的相关信息。
人脸识别技术应用背景十分广泛,可用于公安系统刑侦破案的罪犯身份识别、身份证及驾驶执照等证件验证、银行及海关的监控、自动门卫系统、视频会议、机器人的智能化研究以及医学等方面。
人身辨别方法主要是通过人身标识物品和人身标识知识两种方式来实现的。
常见的人身标示物品有钥匙、证件等各种标识,人身标示知识有用户名、密码等.众周知,像钥匙、证件标识等人身标识物品很容易丢失或被伪造,而标识知识容易遗忘或记错,更为严重的是传统身份识别系统往往无法区分标识物品真正的拥有者和取得标识物品的冒充者,一旦他人获得标识物品,也可以拥有相同的权力,电视采访、街景地图等应用中,为保护当事人或行人的隐私权,需要将图像中当事人的人脸区域作模糊或马赛克处理。
因此具有广阔的应用前景和商业价值.
2设计要求
1、读取人物图像。
2、对图像进行数字图像处理.
3、对人脸识别。
4、对人脸进行模糊或者马赛克处理.
3人脸识别系统概述
3.1当前现状
自动人脸识别技术的研究开始于20世纪60年代末期。
20世纪90年代后期以来,一些商业性的人脸识别系统逐渐进入市场。
近几年,人脸识别作为计算机安全技术在全球范围内迅速发展起来,特别是美国遭遇恐怖袭击后,这一技术引起广泛关注。
人脸识别技术具有广泛的应用前景,在国家安全、军事安全和公共安全领域,智能门禁、智能视频监控、公安布控、海关身份验证、司机驾照验证等是典型的应用;在民事和经济领域,各类银行卡、金融卡、信用卡、储蓄卡的持卡人的身份验证、社会保险人的身份验证等具有重要的应用价值;在家庭娱乐等领域,人脸识别也具有一些有趣有益的应用,比如能够识别主人身份的智能玩具、家政机器人、具有真实面像的虚拟游戏玩家等等.
人脸识别作为一种人体生物特征识别技术,它涉及人工智能、模式识别、计算机视觉、图像处理和分析、图像编码、计算机图形学等众多学科领域,依据视觉通道的输入信息,在人脸检测和跟踪得到输入人脸图像
模式的基础上,定位人面的主要生理特征区域(眼睛、鼻子、下巴等)并给出其形状特征,实现输入人脸模式的识别,达到确定使用者身份的目的。
3。
2系统概述
人脸识别包括人脸检测、人脸图像预处理、人脸特征提取和人脸识别等过程。
人脸检测是指在输入图
像中确定人脸的位置与大小.人脸检测的质量影响人脸识别的其他过程以及整个人脸识别的效果,在人脸识别过程中显得尤为重要。
近年来,电子商务等网络资源的利用使得可视电话、视频会议、多媒体教学等快捷便利的交流方式成为时尚,如何实时实现复杂背景下对人脸检测和识别已成为人脸识别研究的热点[1]。
目前,已有神经网络算法、基于Hough变换或可适应的Hough变换逼近、小波变换、镶嵌图方法、颜色纹理
规则等多种人脸检测方法[2~
6]。
这些方法是针对静态图像的基于人脸特征的统计与结构分析方法,虽具有一般性,但分析计算量大,对噪声敏感,性能不稳定,难以实时检测。
3.3人脸识别的常用方法
1、基于几何特征的人脸正面图像识别方法
通过人脸面部拓扑结构几何关系的先验知识,利用基于结构的方法在知识的层次上提取人脸面部主要
器官特征,将人脸用一组几何特征矢量来表示,识别归结为特征矢量之间的匹配,基于欧氏距离的判决是最常用的识别方法。
2、基于统计的人脸正面自动识别方法
基于统计的人脸正面自动识别方法包括特征脸方法和隐马尔科夫模型方法。
统计的识别方法将人脸用代数特征矢量来表示。
代数特征是由Hong等首先提出的,由图像本身的灰度分布决定,它描述了图像的内存信息,它是通过对图像灰度进行各种代数变换和矩阵分解提出的.
将人脸看作一个二维的灰度变化的模板,从整体上捕捉和描述人脸的特征,所运用的主要是一些标准的数据统计技巧,运算比较复杂
4设计内容
4.1系统方案设计
图1系统总设计方框图
4.2软件模块设计
4.2.1图像输入设计
可以通过摄像头来获取,也可以通过图像库来获取。
在图像获取以后,将图像显示出来,同时记录下图像在内存的地址,以便在图像处理中使用。
RGB=imread(’face06。
jpg’);%face02,04,06
YCbCr=rgb2ycbcr(RGB);%将RGB色彩值变换为YcbCr色彩空间(将RGB真彩色图像转化为YcbCr色彩空间中相等的图像)
Y=YCbCr(:
:
,1);%这三行分别是Ycbcr空间的y,cb,cr对应矩阵
Cb=YCbCr(:
,:
,2);
Cr=YCbCr(:
,:
3);
imshow(RGB);title(’原始图像RGB');%原始图像
figure,imshow(YCbCr);
title(’YcbCr色彩空间的图像');%进行将RGB色彩值变换为YcbCr色彩空间的图像
如图2所示:
原始图像
YCbCr图
图2原图像与YCbCr图
4。
2。
2图像肤色区分设计
人脸定位是完成对需定位的人脸运动区域进行肤色检测.在肤色分割阶段,采用YCrCb色度空间,能较好地获取肤色区域,排除一些类似人脸肤色的非人脸区域,并使用投影法正确标记人脸。
人脸定位过程包括5个步骤。
1) 相似度计算,方法是定义)/(BGRRr++=和)/(BGRBb++=,把三维RGB降为二维,在二维平面上,肤色的区域相对集中,根据肤色在色度空间的高斯(Gauss)分布,将彩色图像中的某个像素从RGB色彩空间变换到YCbCr空间,可以计算出该像素点属于肤色区域的概率,即根据该像素点离高斯分布中心的远近程度得到一个与肤色的相似度(图2a是待检测区域的相似度),相似度计算公式为:
)]()(5.0exp[),(1mxCmxbrPT−−−=− (5) 式中 M为均值;C为方差。
2) 选择适当的阈值,对图像中的待检测区域进行二值化处理。
3) 对二值图像作形态学处理,利用圆形结构元素作膨胀变换,抹掉细节,使图像平滑。
4) 用直方图方式对二值图像进行垂直投影和水平投影,如图2b和图2c所示。
图像中人脸区域的获取,根据肤色来获取,通过肤色非线形分段色彩变换来实现。
对图像进行图像灰度化、高斯平滑处理、对比度增强、二值化等一系列的图像处理之后,可以根据人的两个眼睛具有对称、眼睛下面有鼻子、再往下有嘴巴的特点,来确定划分的区域是否就是人脸区域
代码:
I=RGB;
W=size(YCbCr,1);%y对应矩阵宽大小
H=size(YCbCr,2);%y对应矩阵高大小
k=(2。
53/180)*pi;
m=sin(k);n=cos(k);%正余弦噪声
%%%111111*********111111111111
cx=109。
38;cy=152.02;ecx=1.60;
ecy=2。
41;a=25。
39;b=14。
03;%(cb=(100,140),cr=(70,160)这是阈值,这个阈值应该是人脸肤色的范围
fori=1:
W
forj=1:
H
ifY(i,j)〈110
I(i,j,:
)=0;
elseif(Y(i,j)〈=200&&Y(i,j)>=110)
x=(double(Cb(i,j))-cx)*n+(double(Cr(i,j))—cy)*m;
y=(double(Cr(i,j))-cy)*n—(double(Cb(i,j))-cx)*m;
if((x—ecx)^2/a^2+(y—ecy)^2/b^2)<=1
I(i,j,:
)=255;
elseI(i,j,:
)=0;
end
elseifY(i,j)>200
x=(double(Cb(i,j))—cx)*n+(double(Cr(i,j))-cy)*m;
y=(double(Cr(i,j))-cy)*n—(double(Cb(i,j))-cx)*m;
if((x-ecx)^2/(1.1*a)^2+(y-ecy)^2/(1。
1*b)^2)〈=1
I(i,j,:
)=255;%肤色部分变为白色
elseI(i,j,:
)=0;%其余转成黑色
end
end
end
end
figure,imshow(I);title(’肤色区分后的图像’);%进行将肤色识别后的黑白图像
如图3所示:
图3肤色区分后的图像
4.2。
3对肤色图进行修补处理设计
se1=strel(’square’,35);%这个函数可以创建边长35的方形元素
f0=imclose(I,se1);%利用上面创建的方形元素,弥补imshow(I)中人脸中以及其他部分残留的小块黑色
figure,imshow(f0);
title(’修补漏洞后的人脸');%显示修补漏洞后的人脸
如图4所示:
图4修补漏洞后的人脸图
4。
2。
4网格标记图像设计
对人脸图像打上网格,对区域块图像做二值分析,通过像素比例来做处理,进而得到人脸区域。
在彩色图像中,颜色是人脸表面最为显著的特征之一,利用颜色检测人脸是很自然的想法.研究人员在考察了不同种族、不同个体的肤色后,认为人类的肤色能在颜色空间中聚成单独的一类,而影响肤色值变化的最主要因素是亮度变化。
因此他们采用广泛使用的RGB颜色空间,在滤去亮度值的图像中通过比较像素点的r、g值与肤色范围来推断该像素点及其邻域是否属于人脸区域.除了RGB颜色空间,还有诸如HIS,LUV,GLHS等其它颜色空间被使用。
寻找到肤色区域后,必须进行验证,排除类肤色区域。
利用肤色像素的连通性分割出区域,使用椭圆拟合各个区域,根据椭圆长短轴的比率判断是否为人脸。
BW=im2bw(f0,graythresh(f0));%二值化
figure,imshow(RGB);
title(’网格标记图像','FontWeight','Bold');
holdon;
[xt,yt]=meshgrid(round(linspace(1,size(I,1),10)),.。
。
round(linspace(1,size(I,2),10)));
mesh(yt,xt,zeros(size(xt)),’FaceColor’,。
..
'None',’LineWidth',3,。
。
。
'EdgeColor','r’);
如图5所示:
图5网格标记图像图
4。
2.5人脸识别标记
[n1,n2]=size(BW);
r=floor(n1/10);%分成10块,行
c=floor(n2/10);%分成10块,列
x1=1;x2=r;%对应行初始化
s=r*c;%块面积
fori=1:
10
y1=1;y2=c;%对应列初始化
forj=1:
10
if(y2〈=c||y2〉=9*c)||(x1==1||x2==r*10)
%如果是在四周区域
loc=find(BW(x1:
x2,y1:
y2)==0);
[p,q]=size(loc);
pr=p/s*100;%黑色像素所占的比例数
ifpr<=100
f1(x1:
x2,y1:
y2)=0;
end
end
y1=y1+c;%列跳跃
y2=y2+c;%列跳跃
end
x1=x1+r;%行跳跃
x2=x2+r;%行跳跃
end
[L,num]=bwlabel(BW,8);%区域标记
stats=regionprops(L,'BoundingBox’);%得到包围矩形框
Bd=cat(1,stats.BoundingBox);
[s1,s2]=size(Bd);
mx=0;
fork=1:
s1
p=Bd(k,3)*Bd(k,4);%宽*高
ifp〉mx&&(Bd(k,3)/Bd(k,4))〈1.8%%%如果满足面积块大,而且宽/高<1。
8
mx=p;
j=k;
end
end
figure,imshow(RGB);holdon;
rectangle(’Position',Bd(j,:
),。
。
.
'EdgeColor’,’r',’LineWidth’,3);
title('标记图像’,'FontWeight',’Bold');
如图6所示:
图6人脸识别标记图
4.2.6对原图像进行脸部模糊处理
h1=ones(40,40)/1600;
I2=imfilter(RGB,h1);%对原图像进行全部模糊
%figure,imshow(I2);
a=Bd(j,:
);%脸部标记的矩形框的四个坐标
fori=a
(2)—0.5:
a
(2)—0。
5+a(4);
forj=a
(1)-0。
5:
a
(1)-0.5+a(3);
RGB(i,j,:
)=I2(i,j,:
);%部分模糊的替换
end
end
figure,imshow(RGB);title('模糊后的人脸图像');%显示模糊后的人脸
如图7所示:
图7人脸模糊隐私保护图
总结与致谢
通过本次设计,培养了创新意识和综合素质,更好地掌握了数字图像处理设计,提高个人基本能力、实验及设计能力和独立工作能力,基本知识更加牢固,会编程调试、会查资料在设计的过程和设计说明书的撰写过程中,老师给予了我热心的帮助和大力的支持,给我提了诸多的宝贵意见,拓宽了我的思路.
人脸检测及识别算法研究近年来受到很大关注,同时也得到了很大的进展。
但是考虑到视频处理的复杂程度,大多数检测或识别率高的算法往往都要在计算上付出很大的代价而失去了使用价值。
而本文提出的一种基于差分和肤色的人脸检测算法,在计算量上大大减少,同时抑制背景噪声。
随着硬件技术的进步,采用摄像机的图像系统的成本已经不高,使得这种算法有大量应用的条件,实验表明该算法具有可行性。
这一次做的图像人脸区域隐私保护系统设计.原理看似简单,但过程让我深深感受到再简单的图像处理,理论与实际也会有一定的差入。
在参考书设计原理的基础上经过了个人的改进,让功能更完善,特别是程序的调试,花的时间最多,也是最难的一个地方。
在此我向张运楚、杨红娟、张君捧老师致以崇高的敬意和衷心的感谢!
参考文献
[1]王科俊,姚向辉.人脸图像检测与识别方法综述[J].自动化技术与应用.2004,23(12).
[2]邢藏菊,曲延锋,王守觉.静态灰度图像中的人脸快速检测[J].计算机辅助设计与图形学学报.V01.14,No.May,2002.
[3]周杰,卢春雨,张长水,等.人脸自动识别方法综述[J].电子学报,2004(4):
102—106。
[4]简(JainA。
K.)[美],韩博,徐枫著.数字图像处理基础[M].北京:
清华大学出版社,2006。
[5]冈萨雷斯.数字图像处理(MATLAB)中文版[M].北京:
电子工业出版社,2007。
[6]Castleman,K.R。
[美]著,朱志刚等译.数字图像处理[M].北京:
电子工业出版社,2002.
[7]朱虹.数字图像处理基础[M].北京:
科学出版社,2005.
[8]刘志敏,扬杰,施鹏飞.数学形态学的图像分割算法[D].计算机工程与科学,1998,20(4):
21.
[9]章毓晋.图像分割.北京:
科学出版社,2001.
[10]王树伟,杨鸲.Matlab6。
5辅助图像处理[M].电子工业出版社,2003。
附录:
系统设计程序
RGB=imread('face06。
jpg’);%face02,04,06
YCbCr=rgb2ycbcr(RGB);%将RGB色彩值变换为YcbCr色彩空间(将RGB真彩色图像转化为YcbCr色彩空间中相等的图像)
Y=YCbCr(:
:
1);%这三行分别是Ycbcr空间的y,cb,cr对应矩阵
Cb=YCbCr(:
,:
,2);
Cr=YCbCr(:
:
,3);
imshow(RGB);title(’原始图像RGB’);%原始图像
figure,imshow(YCbCr);title('YcbCr色彩空间的图像’);%进行将RGB色彩值变换为YcbCr色彩空间的图像
I=RGB;
W=size(YCbCr,1);%y对应矩阵宽大小
H=size(YCbCr,2);%y对应矩阵高大小
k=(2。
53/180)*pi;
m=sin(k);n=cos(k);%正余弦噪声
%%%111111*********111111111111
cx=109.38;cy=152.02;ecx=1.60;
ecy=2。
41;a=25。
39;b=14.03;%(cb=(100,140),cr=(70,160)这是阈值,这个阈值应该是人脸肤色的范围
fori=1:
W
forj=1:
H
ifY(i,j)〈110
I(i,j,:
)=0;
elseif(Y(i,j)〈=200&&Y(i,j)>=110)
x=(double(Cb(i,j))—cx)*n+(double(Cr(i,j))-cy)*m;
y=(double(Cr(i,j))-cy)*n—(double(Cb(i,j))—cx)*m;
if((x—ecx)^2/a^2+(y—ecy)^2/b^2)〈=1
I(i,j,:
)=255;
elseI(i,j,:
)=0;
end
elseifY(i,j)〉200
x=(double(Cb(i,j))-cx)*n+(double(Cr(i,j))-cy)*m;
y=(double(Cr(i,j))-cy)*n—(double(Cb(i,j))-cx)*m;
if((x—ecx)^2/(1.1*a)^2+(y-ecy)^2/(1。
1*b)^2)<=1
I(i,j,:
)=255;%肤色部分变为白色
elseI(i,j,:
)=0;%其余转成黑色
end
end
end
end
figure,imshow(I);title('肤色区分后的图像’);%进行将肤色识别后的黑白图像
%%%111111*********1111
%%%%%%%%%找到人脸区域并设为白色%%%%(r=35)
se1=strel('square',35);%这个函数可以创建边长35的方形元素
f0=imclose(I,se1);%利用上面创建的方形元素,弥补imshow(I)中人脸中以及其他部分残留的小块黑色
figure,imshow(f0);title(’修补漏洞后的人脸’);%显示修补漏洞后的人脸
%%%44444444444444444444444444444
BW=im2bw(f0,graythresh(f0));%二值化
figure,imshow(RGB);
title(’网格标记图像','FontWeight’,’Bold');
holdon;
[xt,yt]=meshgrid(round(linspace(1,size(I,1),10)),。
。
。
round(linspace(1,size(I,2),10)));
mesh(yt,xt,zeros(size(xt)),’FaceColor’,。
。
.
'None','LineWidth’,3,..。
'EdgeColor',’r’);
[n1,n2]=size(BW);
r=floor(n1/10);%分成10块,行
c=floor(n2/10);%分成10块,列
x1=1;x2=r;%对应行初始化
s=r*c;%块面积
fori=1:
10
y1=1;y2=c;%对应列初始化
forj=1:
10
if(y2<=c||y2〉=9*c)||(x1==1||x2==r*10)
%如果是在四周区域
loc=find(BW(x1:
x2,y1:
y2)==0);
[p,q]=size(loc);
pr=p/s*100;%黑色像素所占的比例数
ifpr<=100
f1(x1:
x2,y1:
y2)=0;
end
end
y1=y1+c;%列跳跃
y2=y2+c;%列跳跃
end
x1=x1+r;%行跳跃
x2=x2+r;%行跳跃
end
[L,num]=bwlabel(BW,8);%区域标记
stats=regionprops(L,’BoundingBox');%得到包围矩形框
Bd=cat(1,stats。
BoundingBox);
[s1,s2]=size(Bd);
mx=0;
fork=1:
s1
p=Bd(k,3)*Bd(k,4);%宽*高
ifp〉mx&&(Bd(k,3)/Bd(k,4))<1.8
%%%如果满足面积
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像 处理 课程设计