人脸识别 宿舍门禁系统(python qt opencv带数据库)

该博客介绍了如何使用PyQt5和OpenCV构建一个人脸识别的宿舍门禁系统,涉及人脸检测模块(opencv-dnn)、人脸识别模块(LBPHFaceRecognizer)以及SQLite数据库的运用。系统还包括了界面设计、模型的选择和优化,以及实时检测的高效性能。
摘要由CSDN通过智能技术生成

最新更新 其他版本基于retinaface,卷神经网络余弦相似度人脸匹配

文章:
retinaface+arcfae实现的人脸系统 人脸考勤 人脸打卡 宿舍管理 人脸信息管理系统
不同版本打包程序:
人脸识别信息系统+数据库+ui设计+全代码
人脸识别+活体检测+信息查询.
人脸识别 人脸眼镜贴图 人脸跟踪
神经网络人脸考勤系统,信息录入,考勤
人脸识别 学生信息登记系统 pyqt5 opencv sql
qq群686070107

本文章版本预览

点击下载源代码

视频效果

人脸识别 宿舍门禁系统( pyqt opencv带数据库)

一.界面设计 使用Qt Designer(源代码内有设计文件ui):

在这里插入图片描述

在这里插入图片描述

二.人脸检测模块 opencv-dnn

OpenCV在DNN模块中提供了基于残差SSD网络训练的人脸检测模型,该模型分别提供了tensorflow版本,caffe版本,torch版本模型文件。

其中tensorflow版本的模型做了更加进一步的压缩优化,大小只有2MB左右,非常适合移植到移动端使用,实现人脸检测功能,而caffe版本的是fp16的浮点数模型,精准度更好。

对比传统人脸检测,同样一张图像,在OpenCV HAAR与LBP级联检测器中必须通过不断调整参数才可以检测出全部人脸,而通过使用该模型,基本在Python语言中基于OpenCV后台的推断,在25毫秒均可以检测出结果,网络支持输入size大小为300x300。

def getface(img,net):
    # 置信度参数,高于此数才认为是人脸,可调
    confidence = 0.3
    (h, w) = img.shape[:2]  # 获取图像的高和宽,用于画图
    blob = cv2.dnn.blobFromImage(cv2.resize(img, (300, 300)), 1.0,(300, 300), (104.0, 177.0, 123.0))
    # blobFromImage待研究
    net.setInput(blob)
    # 预测结果
    detections = net.forward()
    maxFace = []
    # 在原图加上标签和框
    for i in range(0, detections.shape[2]):
        # 获得置信度
        res_confidence = detections[0, 0, i, 2]
        # 过滤掉低置信度的像素
        if res_confidence > confidence:
            # 获得框的位置
            box = detections[0, 0, i, 3:7] * np.array([w, h, w, h])
            (startX, startY, endX, endY) = box.astype("int")
            startX = 0 if startX<0 else startX
            startY = 0 if startY<0 else startY
            if endX>w:
                return
            if endY>h:
                return
            print(startX, startY, endX, endY)
            return startX, startY, endX, endY

三.人脸识别模块 LBPHFaceRecognizer

基于LBP算子的人脸识别算法:

LBP被运用于计算机人脸识别领域时,提取出来的人脸特征通常是以LBP直方图向量进行表达的。
1. 对预处理后的人脸图像进行分块
2. 对分块后的各小块图像区域进行LBP特征提取变换
3. 使用LBP直返图向量作为人脸特征的描述。

一般分块数越多,人脸表达的效果就会越好,但是分块数越多,会直接导致特征向量维数的增加,会增加计算的复杂度。对每个分块计算LBP值的直方图,然后将所有分块直方图进行连接得到最终的直方图特征向量,这个特征向量代表原来的人脸图像,可以用来描述整体图像。

LBP

对于这个融合的直方图,我们进行特征分类。 如果训练样本数量越大,分类的效果也会越好,

LBPH的预测进程
预测进程就比较简单了,首先将待查询点图象进行lbp编码并生成空间直方图,然后线性暴力的计算直方图的距离,采用基于直方图的相似性度量的最近邻分类方法来分类

id, lbphconfidence = LBPH.predict(gray) #识别人脸

官方文档

四.数据库 sqlite

  • 12
    点赞
  • 167
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

图像处理大大大大大牛啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值