文档详情

人脸图像分类算法康乐乐.doc

发布:2017-02-03约3.5千字共9页下载文档
文本预览下载声明
深圳大学考试答题纸 (以论文、报告等形式考核专用) 二○ 一四 ~二○ 一五 学年度第 1 学期 课程编号 2202500001 课程名称 科学计算语言 主讲教师 刘维湘 评分 学 号 2012220001 姓名 康乐乐 专业年级 生物医学工程2012 一班 教师评语: 题目: 人脸图片的分类算法 论文要求及评分标准: 自拟题目,并根据给定的数据集,对项目相关的背景,任务和意义 进行阐述(25’); 对项目中的核心算法的原理进行说明(20’); 提供完整代码,并提供代码必要的详细注释(20); 对实验结果进行分析和讨论(20’); 列出必需的主要参考文献(15’)。 进行人脸图片分类的背景及意义: 二十一世纪是一个信息时代。在这个信息量极度膨胀的世界,我们有需要建立起一种基于计算机的信息自动归类系统。对于图片信息来说,其所表现的内容就更多了。一张图片所包含的信息量往往要多于相同存储空间的文字内容。因此图片的分析也就成了当代的热门话题。在分析图像信息之前,我们有必要先对图像信息进行分类。这就像是将浩如烟海的书籍整理排列,建成图书馆的过程。人脸图像的分类服务于人脸识别。人脸识别是新兴的一种技术。它根据人脸的不同特征,进行身份信息的验证。这项技术前景较为广阔。在信息化的社会中,我们将通过储存于计算机中的人脸图像来快速验证个人信息。如果这项技术发展成熟,那么无疑,将给安保等行业带来一场改革。人脸识别的前提就在于人脸图像的分类,这正是一项浩大工程的基础,研究人脸分类的算法自然也受到了特别的重视。 实验过程: 2.1 对实验数据的分析: 实验选择的数据来自于NYU_UMist人脸数据集。我们首先要对这组数据进行一定的理解。根据数据本身的注释行:Grayscale faces 8 bit [0-255], a few images of several different people.400 total images, 64x64 size.我们可以知道,这组数据描述了400张黑白人脸图像,每张图像的像素点为64*64=4096个; 我们将数据载入,得到如下结果: 图1. 载入数据包后 从图中可以看出,有一个名为“faces”的矩阵,它的大小为4096*400,我们可以想象,400代表着400幅人脸图像,而4096则是每幅图像的特征。因为每幅图像的像素点的确为4096个,这也刚好佐证了我们的猜想。由此可见,矩阵“faces”所表现的正是这400张人脸图像,并且通过4096个特征来刻画每一幅图像,这4096个特征对应于图像的4096个像素点。 图2. 给出的400张人脸图像 从图片可以看出,400张图像描述的是40个不同的人,其中每人都有10张不同角度的人脸图像。 2.2 分类算法: Knnclassify的作用是,给出已知类别的一组样本,然后对于新输入的样本,用最临近样本的标签推测新样本的标签。 clear all load olivettifaces faces=faces; %将矩阵进行转置,使行表示样本,列表示特征 a=[0;0;0;0;0;0;0;0;0;0]; %添加标签 group=[]; for i=1:40 group=[group;a+i]; End K = 40; % Cross-validataion folds rule = nearest; kn = 5; % the number of nearest neighbors distance = euclidean; cp = classperf(group); indices = crossvalind(Kfold,group,K); for i = 1:K %交叉验证 test = (indices == i); train = ~test; class = knnclassify(faces(test,:),faces(train,:),group(train,:), kn, distance,rule); classperf(cp,class,test); end Acc = 1 - cp.ErrorRate %正确率 图3. 给样本添加标签 因为只有40个人,我们给样本添加的标签也就只用了40种,分别用数字“1、2、3...40”表示。前十个样本是第一个人,有共同标签“1”,以此类推。 在运行过后,我们得到该算法的准确度: 图4. 当kn=15时的准确率 图5. 当kn=10时的准确率 图6. 当kn=5时的准确率 下面我们从“workspace”中查看分
显示全部
相似文档