近几年来,兴起了一股人工智能热潮,让人们见到了AI的能力和强大,比如图像识别,语音识别,机器翻译,无人驾驶等等。总体来说,AI的门槛还是比较高,不仅要学会使用框架实现,更重要的是,需要有一定的数学基础,如线性代数,矩阵,微积分等。
幸庆的是,国内外许多大神都已经给我们造好“轮子”,我们可以直接来使用某些模型。今天就和大家交流下如何实现一个简易版的人脸对比,非常有趣!
整体思路:
1、预先导入所需要的人脸识别模型;
2、遍历循环识别文件夹里面的图片,让模型“记住”人物的样子;
3、输入一张新的图像,与前一步文件夹里面的图片比对,返回最接近的结果。
使用到的第三方模块和模型:
1、模块:os,dlib,glob,numpy;
2、模型:人脸关键点检测器,人脸识别模型。
第一步:导入需要的模型。
这里解释一下两个dat文件:
它们的本质是参数值(即神经网络的权重)。人脸识别算是深度学习的一个应用,事先需要经过大量的人脸图像来训练。所以一开始我们需要去设计一个神经网络结构,来“记住”人类的脸。
对于神经网络来说,即便是同样的结构,不同的参数也会导致识别的东西不一样。在这里,这两个参数文件就对应了不同的功能(它们对应的神经网络结构也不同):
shape_predictor.dat这个是为了检测人脸的关键点,比如眼睛,嘴巴等等;dlib_face_recognition.dat