基于迁移学习的人脸识别项目
迁移学习概述
想给家里的小八爪机器人加上人脸识别功能,比如瞄准的是我时就不能发射炮弹,这样儿子就没法拿这个怪物打我了。。。(也可以在工位上加个摄像头,领导来了提前报警。。。)
人脸识别跟普通的图像识别还是有相似的地方,比如都是图像 cnn 卷积池化;但也有很多不同,比如标注数据太少,全国的身份证人脸识别,每个人只有一张照片你怎么训练。。。这就需要用到一个新的迁移学习的思路:将一个问题上训练好的模型通过简单的调整使其快速适用于一个新的问题。
例如利用 ImageNet 数据集上训练好的 Inception-V3 模型来解决一个新的图像分类问题,可以保留训练好的 Inception-v3 模型中所有卷积层的参数,只是替换最后一层全连接层,在最后这一层全连接层之前的网络层称为瓶颈层。而将新的图像通过训练好的卷积神经网络直到瓶颈层的过程可以看成是对图像进行特征提取的过程,瓶颈层输出再通过一个单层的全连接层神经网络可以很好的区分类别,所以有理由相信将瓶颈层的输出的节点向量可以被称为任何图像的更加精简且表达能力更强的特征向量。所以可以直接利用这个训练好的神经网络对图像进行特征提取,然后再将提取得到特征向量作为输入来训练一个新的单层全连接网络来处理分类问题。