使用python和pyqt5轻松上手人脸识别系统(含代码)

使用python和pyqt5轻松上手人脸识别系统(含代码)

  • 一、 环境配置
    • 1.1 python环境配置
      • 1.1.1 安装 anaconda
      • 1.1.2 安装pycharm
      • 1.1.3 配置pip源
    • 1.2 mysql数据库安装
    • 1.3 相关依赖安装
  • 二、 人脸识别模块测试
    • 2.1 使用opencv从摄像头中读取图片
      • 2.1.1 opencv读取图片/摄像头的视频帧
      • 2.1.2 opencv将图像保存为gif和视频
    • 2.2 使用不同人脸识别算法进行检测和识别
      • 2.2.1 模型加载
      • 2.2.2 读取图片
      • 2.2.3 人脸检测和关键点提取
      • 2.2.4 描述子匹配
  • 三、 基于sqlite3的数据库设计
    • 3.1 简单定义数据库类
      • 3.1.1 CardRecord 打卡信息表
      • 3.1.2 Course 课程表
      • 3.1.3 Relation 选课关系表
      • 3.1.4 Student 学生表
    • 3.2 封装常用的sql查询到数据库类成员函数中
  • 四、 基于PyQt5的GUI设计
    • 4.1 框架和文件夹结构设计
    • 4.2 开始界面设计
    • 4.3 验证界面设计
    • 4.4 自定义的listwidget设计
    • 4.4 主界面设计
    • 4.5 如何有效组织不同的UI界面类
  • 五、效果展示
    • 5.1 检测和识别效果展示
    • 5.2 数据库导出和查看
  • 六、代码获取和下载

最近在做一个人脸识别考勤系统,已经总结和记录了大部分内容,算是比较完善啦!后续把剩下的搞完,感兴趣的同学可以关注一下哦~ 文末给出了代码获取方式,请自行获取食用~

一、 环境配置

这里我们使用的环境主要包括一下三个方面:

  • 首先是开发所需要的等。这里我们主要需要安装的就是和,以及。需要注意的是,pycharm专业版是付费软件,如果你不想后续查看数据库的详细信息等,那么 区版也足够了,但专业版是可以通过学生作科研用途申请的。
  • 本项目使用到了数据库,但我们最好也配置数据库,然后方便在pycharm专业版中查看数据库的表和信息。
  • 最后是人脸识别和开发过程中依赖的python包,后面我们展示了几种使用python进行人脸识别的方法,除了,其他的基本都需要这个库,后面我会说具体所依赖的库,不过对于的情况,直接就也可以轻松解决。

1.1 python环境配置

这里我们只提供windows下python环境的配置方法,其实都大同小异。

1.1.1 安装 anaconda

anaconda是一个python的包管理软件,可以方便的管理你的和

  1. 首先去官 下载安装包

  2. 检查anaconda是否安装成功

打开cmd,输入,一般会有两种情况,下面这种就是安装好了的。

  • 需要注意的是,左边专业版安装包可以免费用30天,或者可以认证一下教育优惠延期用,右边 区版是免费的。专业版可以查看数据库,远程连接等,功能更加全面, 区版也勉强够用吧。
  • 修改文件内容,然后保存就可以了,如下:如果还不是很明白的,可以参考一下其他博主的,例如这个教程
    1. 后面pip install

    1.2 mysql数据库安装

    mysql数据库很多时候会用到,所以最好是安装配置一下,下面给一个大致的安装教程

    1. 下载mysql数据库的安装包

    2. 配置环境变量,也就是mysql文件夹下的文件夹

    3. 相关使用

    1.3 相关依赖安装

    这里我们介绍一下本次项目所需要的依赖和环境吧。这里我们主要需要用到:首先,和是数据处理的基本库;其次,一些图像处理的python库,和;接着,gui的库,;最后人脸识别的库,, 和。基本上就是这些吧,如果有问题的话,大家根据 错再安装吧。下面给出一般配置步骤:

    1. 首先在你的项目路径下中使用命令创建虚拟环境,然后激活一下
    1. 在你的项目路径下创建一个文件名叫做,在里面填写如下信息,版本上似乎是没有什么大的问题的,按顺序装就可以了,装起来可能会有些慢如果嫌太慢的话,也可以最后单独使用去安装,但是需要先安装包,不然会出错的。
    1. 运行安装依赖

    二、 人脸识别模块测试

    作为人脸识别系统中最重要的模块,我们需要首先对人脸识别的功能进行测试,然后将其作为一个模块嵌入到我们的系统中即可。人脸识别功能按照流程主要分为两步,首先是读取图片(本地文件夹或者摄像头);其次是使用人脸识别算法(基于opencv的dnn或者其他深度学习框架的人脸识别模型)进行人脸检测和识别。下面分别就上述的两部分来分别说明。

    2.1 使用opencv从摄像头中读取图片

    从opencv中读取图片主要分为三种,下面分别给出三种方式的代码:

    2.1.1 opencv读取图片/摄像头的视频帧

    • 读取单张图片
    • 读取文件夹中的图片
    • 读取摄像头中的视频帧

    2.1.2 opencv将图像保存为gif和视频

    有的时候,我们甚至还需要展示,那么就需要一个视频流保存为视频文件、图片转gif或者图像转视频的需求,下面同样给出这几种操作的示例代码:

    • 视频流保存视频文件参考
      需要注意的是,尽量按照摄像头的编码来保存视频,否则可能会出问题。

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2022年11月27日
    下一篇 2022年11月27日

    相关推荐