基于迁移学习的人脸识别算法的设计与实现开题报告
2020-02-18 19:26:39
1. 研究目的与意义(文献综述)
所谓人脸识别,就是将输入人脸图像与图像库中存储的人脸图像进行对比,进而识别和验证我们在不同场景下所感兴趣的个体身份。近年来,人脸识别的进展速度非常惊人,原因主要是算法的快速发展、更大规模人脸数据库的构建和完善,以及各种用于评估人脸识别放大的快速发展。虽然人脸识别技术现已广泛应用到许多场景中,但人脸识别技术仍然面临着许多挑战。比如,训练与目标的人脸图像存在差异、训练一个人脸模型需要庞大的数据集和强大的计算资源等。所以将一个与训练的人脸模型迁移到一个特定的任务是十分有价值的。
通过迁移学习可以很好的解决人脸识别存在的问题。在传统分类学习中,为了保证训练得到的分类模型具有准确性和高可靠性,都有两个基本的假设:(1) 用于学习的训练样本与新的测试样本满足独立同分布;(2) 必须有足够可用的训练样本才能学习得到一个好的分类模型。但是,在实际应用中我们发现这两个条件往往无法满足。首先,随着时间的推移,原先可利用的有标签样本数据可能变得不可用,与新来的测试样本的分布产生语义、分布上的缺口。另外,有标签样本数据往往很缺乏,而且很难获得。这就引起了机器学习中另外一个重要问题,如何利用少量的有标签训练样本或者源领域数据,建立一个可靠的模型对具有不同数据分布的目标领域进行预测。近年来,迁移学习已经引起了广泛的关注和研究[。迁移学习是运用已存有的知识对不同但相关领域问题进行求解的新的一种机器学习方法。它放宽了传统机器学习中的两个基本假设,目的是迁移已有的知识来解决目标领域中仅有少量有标签样本数据甚至没有的学习问题。迁移学习广泛存在于人类的活动中,两个不同的领域共享的因素越多,迁移学习就越容易,否则就越困难,甚至出现“负迁移”,产生副作用。迁移学习客服了传统机器学习需要先假定训练与测试样本具有独立同分布的特征这个局限性,拥有的应用场景十分广泛。迁移学习具有小数据、可靠性以及个性化等优点。可靠性是指迁移学习利用小数据就可以实现;可靠性是指系统无论在原先的领域还是跨越到周边的领域都能实现它的作用,即使我们将周边环境做了改动系统也能运行。
2. 研究的基本内容与方案
1.1 研究目标
使用python语言,利用keras架构,实现基于迁移学习的人脸识别系统设计。人脸识别由于能识别图像中的人脸信息,因此被广泛应用于各种场合。而迁移学习可以在一个通用的大数据集上进行一定的训练之后,再用针对性的小数据集进一步强化,从而节约了计算资源。因此采用迁移学习的方法进行人脸识别可以很大程度上提高人脸识别的效率。本次毕业设计使用迁移学习的方法改变已有神经网络模型,最终达到识别人脸图片中人物的信息的目的。
1.2 研究内容
研究迁移学习、CNN相关技术、人脸识别算法,以及基于Python语言的实现。研究、比较多种迁移学习和特征提取的方法,使用不同的数据集对模型进行训练。使用迁移学习的方法,改变神经网络模型的部分网络层,经训练后得到目标模型,最后实现人脸识别任务。在keras平台上使用python语言以及数字图像处理技术完成人脸识别系统的构建。
2.3 拟采用的方案
迁移学习的方法就是将一个图像识别的深度卷积网络,迁移到识别人脸的新任务上。系统流图如下:
| |
| |
加载人脸识别数据集:人脸识别数据集包含大量人脸图片,多种人脸属性,能够训练神经网络得到相应的参数。
准备训练集、验证集和测试集:一次严谨的模型训练一定是要包含验证和测试这两个部分。将加载的人脸数据集进行划分,划分出的训练集应远大于验证集和测试集。
迁移神经网络模型:迁移神经网络模型是迁移学习的核心,迁移时需保留神经网络模型(VGG)的大部分网络层,对少部分网络层进行改写,通过改写使神经网络模型针对目的任务生成相应的参数。可以改写VGG模型的FC和softmax层,通过不断的尝试、修改网络结构,能够找到最合适的结构。
训练网络:迁移神经网络模型后,用已经划分好的训练集进行训练,经过多次训练之后就能得到最终的神经网络模型。
验证、测试网络:用已经划分好的验证集和测试集来验证和测试神经网络模型的效果。
3. 研究计划与安排
第一周:写开题报告
第二周:学习python语言
第三周:学习python语言
4. 参考文献(12篇以上)
1.黄永昌等,scikit-learn机器学习——常用算法原理及编程实战,北京:机械工业出版社,2018
2.周志华,机器学习,清华大学出版社,2016
3.[英] 弗拉赫(peter flach),机器学习,人民邮电出版社,2016