最近用python写的毕业设计。总结一下,给大家提供一下参考。准备写一系列的教程,包括一些最基本的人脸识别原理以及具体代码的实现。
本人水平有限,所涉及到的东西很多只是浅层的应用,文中如果有错误,欢迎大家批评指正。
项目概述
本设计采用Python + OpenCV + face_recognition库,利用电脑自带的摄像头,实现人脸的注册、实时的识别和考勤结果的查询。用Pyqt进行UI设计,Pyinstaller进行系统的打包。选择Mysql数据库对数据进行管理。
开发环境:Windows10系统 + Anaconda3 + Pycahrm
众所周知,Python拥有强大的包资源(也就是库多),Anaconda可以非常方便的配置Python开发所需要的各种包、切换不同的虚拟环境满足不同开发需求。Pycharm是当前最为流行的Python IDE,属于Python开发中的重武器,可以满足大型Web开发。操作简单、方便,对新手小白比较友好,基本上你想要干的它全都能满足。
关于人脸识别,可以自己搭建训练器,也可以采用现成的人脸识别包。OpenCV内置了一些常见的训练器,非常方便。但是训练数据少的话特别容易识别错误。原先我自己搭建训练器,成功训练出一个人工智障~~~,最后放弃。采用了face_recognition人脸识别包。
系统的UI设计选择Qt,Python提供了与Qt的API包:Pyqt。关于UI设计,Python内置的Tkinter也可以满足,本人想的折腾一下,选择较为常见的Pyqt作为UI设计工具。
在脚本可以成功运行之后,需要把脚本打包成可执行文件,这样在没有安装相对应的开发环境的电脑上,也可以执行该系统。本系统采用该PyInstaller打包工具,将脚本打包成可执行文件。
脚本运行结束后,所有产生的数据都会清空,当下一次需要上次所产生的数据时(如查询人脸识别记录),根本无法查找。这就需要保存数据,可以以文件的形式将数据保存,也可以使用数据库保存。MySQL是目前最为流行的开源的数据库,功能强大,运行速度快。
开发前提
了解基本的Python语法,此设计所使用的程序都是最基本的语句,没有用到Python复杂的语法。最简单的也是最实用的。
没有基础的同学可以了学习一下python入门资料提取码:didg。
温馨提示:学习编程语言,语法学习和动手实践一起食用更美味哦~
最终效果
最终所设计的UI界面和功能界面比较简洁(说白了就是丑),有兴趣的同学可以进一步深入研究。
登录界面
![登录界面](https://pic.superbed.cn/item/5cb3353c3a213b04173d9719)
主界面
![主界面](https://ae01.alicdn.com/kf/HTB1ghzdQ3TqK1RjSZPh760fOFXa7.png)
人脸注册界面
![注册信息](https://0d077ef9e74d8.cdn.sohucs.com/rnCEhlG_png)
考勤界面
![考勤设置](https://ae01.alicdn.com/kf/HTB1qdrpQ7voK1RjSZFN763xMVXam.png)
人脸识别界面
![人脸识别](https://ae01.alicdn.com/kf/HTB1zyPrQ3HqK1RjSZJn762NLpXa3.png)
查询界面
![查询界面](https://ww1.sinaimg.cn/large/007i4MEmgy1g22h6ks2a9j30ou0fvdga.jpg)
源码地址