您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 国内外标准规范 > 人脸图像姿态校正方法研究
目录一、课题背景二、相关内容简介三、研究方案四、实验结果五、分析与讨论六、总结一、课题背景人脸识别,特指利用分析比较人脸视觉特征进行身份鉴别的计算机技术不同个体之间的区别不大人脸的外形很不稳定不同的观察角度,人脸的视觉图像也相差很大二、相关内容简介目前的人脸识别算法:基于人脸特征点的识别算法基于模板的识别算法基于神经网络的识别算法深度学习(DeepLearning)LBPPCA—PrincipalComponentAnalysis(主成分分析)简而言之就是利用数学计算将原本稀疏的高维数据中不重要的特征值过滤掉,降低数据的维度。换言之,原本需要使用n个特征来表示的数据,经过PCA的分析,将只需要m个特征来表示(其中n大于m)。特征中心化计算协方差计算协方差矩阵的特征向量和特征值选取大的特征值对应的特征向量,得到新的数据集PCA传统的人脸特征描述符LBP—LocalBinaryPattern(局部二值模式)这是一种用来描述局部纹理特征的算子三、研究方案参考了XiaoouTang等人在论文《DeepLearningIdentity-PreservingFaceSpace》中提出的深度网络的结构和一种新的人脸特征描述符——脸部特征保持描述符(FIP—FaceIdentity-PreservingFeatures),成功的实现了一个结构类似,图像维度更小的FIP特征的提取和标准库正脸匹配系统本课题参考的深度网络架构深度网络第一层第一层的输入就是原始的96*96像素的灰度人脸图像第一个层输出32个48*48的特征映射向量每一个映射向量都有大量的脸部区域以外的高响应,这些高响应主要用来采集姿态信息少量的脸部区域以内的高响应主要用来采集脸部结构深度网络第二层第二层的输入是第一层的32个48*48的特征映射向量第二层的作用是将第一层中的脸部区域以外的高响应减少第二层的输出是32个24*24的特征映射向量深度网络第三层第三层的输入是第二层的输出即32个24*24的特征映射向量利用下面的公式:计算使得下式最小的Y的值,并输出Y得到图像的FIP特征本课题的深度网络的计算实现方法本课题最终实现的深度网络的结构和前面我们看到的结构基本是一致的在输入层和输出层之间都是有3个隐藏层(HiddenLayer)前面的几层之间都是局部连接的(LocallyConnected)最后一个隐藏层和输出层之间是全连接的(FullyConnected)卷积核的大小是5×5各层权重和偏置矩阵数据不共享输入层-----第一隐藏层的计算程序读入的是一张64×64的人脸灰度图像权重矩阵W1共由32个子矩阵Wi1(i从1到32)组成,每一个子矩阵都是(64×64)×(64×64)的,W1直接从文件local1_weights.txt中读入程序中,偏置矩阵B1也直接从文件local1_biases.txt中读入程序中:第一隐藏层-----第二隐藏层的计算第二隐藏层以第一隐藏层输出的32个32×32的特征映射图为输入,并再次通过和上一步中类似的卷积和自编码的形式将输入的32个特征映射图映射成新的32个特征映射图,通过和已经训练好的权重矩阵以及偏置矩阵进行计算,尽可能的消除这些映射图中反应姿态差异的特征,同时尽可能的保留其他的反应脸部结构的特征。随后在进行同样的最大池化,得到32个16×16的特征映射图,以便给第三隐藏层学习经过上述处理之后,第二隐藏层就能够输出32个16×16的特征映射图了,这32个特征映射图相比上一层中的特征映射图来讲,有两个不同点:一是每个特征映射图的维度从32×32降到了16×16(最大池化做的处理);二是这32个特征映射图中隐含的图像特征成分中,已经基本没有关于姿态方面的特征了,但是关于脸部结构方面的特征则几乎完全的保留了下来,甚至有了增强(虽然这无法显式的看出,但是多隐藏层的深度网络在不断地对前面层的特征映射图进行抽象和学习的过程,实际就是根据权重和偏置不断地过滤次要特征、增强主要特征的过程)第二隐藏层-----第三隐藏层的计算这两层之间做的主要的处理仍然是卷积和自编码,唯一的区别就是没有进行池化,因此,第三隐藏层处理完之后的输出是和第二隐藏层维度同样为16×16的32个特征映射图。不过,这里的卷积核和权重、偏置矩阵被设计成将上一步的32个特征映射图更加特征化(换言之,就是在上一步基本去除了反应姿态变化的特征之后,这一步要再对数据的隐含特征进行提取),以便进一步减少数据量(也就说输出的就是我们要的FIP特征)第三隐藏层-----输出层(重构层)的计算读入权重矩阵和偏置矩阵之后,直接将输入的特征映射图带入如下公式就能算出重构图像的矩阵值了:Local_connection的实现函数的定义:参数解释:函数主要就是将inputMap中的数据按照训练好的weights和biases,做卷积核大小为MAP_SIZE的卷积运算,FILTER_NUM的值在我们这里一直是32,表示要按照不同的权重和偏置做32次局部过滤(即在inputMap中对FILTER_SIZE大小的区域作32次卷积运算,从而得到32个特征映射图)Max_pooling的实现池化(pooling)的概念具体到我们的代码中,我们也是采用最大池化,而且同样是采用2×2作为池化区域的大小,实现的时候只要按照上图那样的处理方法对图像进行遍历(只要注意池化的区域是不重叠的即可)找到每个2×2区域中的最大灰度值即可13264579408932655949四、实验结果最终我们实现了这样的功能:输入一张人脸图像(非正脸)程序读入图像,进行计算输出一张标准人脸库MultiPIE中的正面人脸图像输出的人脸图像是标准人脸库中FIP特征和输入人脸图像最接近的一个利用PCA对FIP效果进行测试两种思路:直观的,视觉上的理论的,数学上的思路二测试结果1图像ID每个ID对应的测试集图像编号原始图像匹配出的图像编号FIP处理后匹配出的图像编号11-92445210-181739319-272724428-363224537-454545646-545150755-635745864-726633973-8177761082-903445识别率0.80.4思路二测试结果2图像ID每个ID对应的测试集图像编号原始图像匹配出的图像编号FIP处理后匹配出的图像编号11-425425-65537-11119412-131241514-1779146181117719-21819822-247023925-2626251027-282843112941291230-3231311333-348035143535351536-39383716405411741-4342421844-4745451948-4948482050-5250512153-5552542256-5827692359-6060602461-64816325656541识别率56%72%五、分析与讨论我们的突破和创新:基本实现了FIP特征提取和匹配在c++下的功能,基本能够对小规模的人脸图像进行姿态校正利用PCA对实验结果进行进一步的分析和测试,得到的结果令人满意我们的缺点和不足:数据量较小算法效率不高六、总结人脸识别技术已经在计算机领域有了诸多运用,而姿态变动时的人脸识别一直是一个技术瓶颈我们通过对前人研究成果的参考和改进,基本实现了FIP特征的提取和匹配算法,对这一瓶颈做了一定的突破性尝试我们还将实验结果用PCA进行效果测试,结果令人满意在这次课题研究中,我们虽然还有很多不足,但是我们相信我们的研究是很有意义的,如果后续能够优化训练集的数据规模和算法的话,将会更好谢谢!
本文标题:人脸图像姿态校正方法研究
链接地址:https://www.777doc.com/doc-4424018 .html