想做一个简单的人脸识别,大概的需求:通过笔记本的摄像头获取人脸,根据已保存的图片标签(文件名以名字命名),识别出面部后,将名字打印在摄像头的获取界面。
搜索后确定技术方案:python + opencv + face_recognition
python 人脸识别
安装需要的包:
1 | pip install opencv-python |
创建facerecognition.py文件,使用下面的代码。在代码文件目录下创建images文件夹,里面放入自己照片,并用名字命名照片。
另外,需要从C:\Windows\Fonts
目录中拷贝宋体的字体文件(simsun.ttc)放在代码同目录下。
1 | import numpy as np |
测试识别结果,在images目录下放一张自己的图片,文件名以名字命名,测试结果如下:
踩过的坑
安装dlib时遇到的坑
安装dlib时报错:需要安装cmake。1
pip install cmake
如果cmake已经在python目录下的sitepackages中,则更新pip。
1
pip install -U --force-reinstall pip -user
接下来安装dlib就可以了。cmake需要编译,这个时候CPU消耗会很大,机器比较卡。
在摄像头捕捉界面显示中文乱码
cv1.putText可以用来输出文字在图像捕获框上,但输出中文时变成乱码了。此时,可以通过将中文画成图像,再输出到图像捕获框上。封装一个cv2AddChineseText函数即可。
参考:
python人脸识别:https://zhuanlan.zhihu.com/p/79784400
安装dlib错误https://blog.csdn.net/SunshinePluto/article/details/116177270
显示中文乱码https://blog.csdn.net/hijacklei/article/details/116010860
- 本文作者: 达文西
- 本文链接: https://edsiongithub.github.io/2021/10/09/17/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!