• 大小: 140KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-03
  • 语言: Python
  • 标签: 人脸识别  

资源简介

使用OpenCv检测用户人脸(支持内置、外置摄像头两种模式),检测到人脸信息后即可采集人来数据,填写用户信息,将采集到的数据集存储到数据库中。 代码说明:Python+OpenCv实现AI人脸识别身份认证系统(1)——人脸识别原理

资源截图

代码片段和文件信息

#!/usr/bin/env python3
#CSDN:https://blog.csdn.net/m0_38106923
#邮箱:www.1345070491@qq.com
import cv2

from PyQt5.QtCore import QTimer QRegExp pyqtSignal
from PyQt5.QtGui import QImage QPixmap QIcon QRegExpValidator QTextCursor
from PyQt5.QtWidgets import QDialog QApplication QWidget QMessageBox
from PyQt5.uic import loadUi

import logging
import logging.config
import queue
import threading
import sqlite3
import os
import sys

from datetime import datetime


# 用户取消了更新数据库操作
class OperationCancel(Exception):
    pass


# 采集过程中出现干扰
class RecordDisturbance(Exception):
    pass


class DataRecordUI(QWidget):
    receiveLogSignal = pyqtSignal(str)

    def __init__(self):
        super(DataRecordUI self).__init__()
        loadUi(‘./ui/DataRecord.ui‘ self)
        self.setWindowIcon(QIcon(‘./icons/icon.png‘))
        self.setFixedSize(1011 601)

        # OpenCV
        self.cap = cv2.VideoCapture()
        self.faceCascade = cv2.CascadeClassifier(‘./haarcascades/haarcascade_frontalface_default.xml‘)

        self.logQueue = queue.Queue()  # 日志队列

        # 图像捕获
        self.isExternalCameraUsed = False
        self.useExternalCameraCheckBox.stateChanged.connect(
            lambda: self.useExternalCamera(self.useExternalCameraCheckBox))
        self.startWebcamButton.toggled.connect(self.startWebcam)
        self.startWebcamButton.setCheckable(True)

        # 定时器
        self.timer = QTimer(self)
        self.timer.timeout.connect(self.updateframe)

        # 人脸检测
        self.isFaceDetectEnabled = False
        self.enableFaceDetectButton.toggled.connect(self.enableFaceDetect)
        self.enableFaceDetectButton.setCheckable(True)

        # 数据库
        self.database = ‘./Facebase.db‘
        self.datasets = ‘./datasets‘
        self.isDbReady = False
        self.initDbButton.setIcon(QIcon(‘./icons/warning.png‘))
        self.initDbButton.clicked.connect(self.initDb)

        # 用户信息
        self.isUserInfoReady = False
        self.userInfo = {‘stu_id‘: ‘‘ ‘cn_name‘: ‘‘ ‘en_name‘: ‘‘}
        self.addOrUpdateUserInfoButton.clicked.connect(self.addOrUpdateUserInfo)
        self.migrateToDbButton.clicked.connect(self.migrateToDb)

        # 人脸采集
        self.startFaceRecordButton.clicked.connect(lambda: self.startFaceRecord(self.startFaceRecordButton))
        # self.startFaceRecordButton.setCheckable(True)
        self.faceRecordCount = 0
        self.minFaceRecordCount = 100
        self.isFaceDataReady = False
        self.isFaceRecordEnabled = False
        self.enableFaceRecordButton.clicked.connect(self.enableFaceRecord)

        # 日志系统
        self.receiveLogSignal.connect(lambda log: self.logOutput(log))
        self.logOutputThread = threading.Thread(target=self.receiveLog daemon=True)
        self.logOutputThread.start()

    # 是否使用外接摄像头
    def useExternalCamera(self useExternalCameraCheckBox):
        if useExternalCameraCheckBox.isChecked():
            self.isExternalCameraUsed = True
        else:
            self.isExter

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        380  2018-05-09 11:07  Python+OpenCv实现AI人脸识别身份认证系统(2)——人脸数据采集、存储\config\logging.cfg

     文件        240  2018-05-09 11:07  Python+OpenCv实现AI人脸识别身份认证系统(2)——人脸数据采集、存储\config\telegramBot.cfg.bak

     文件      21342  2019-02-15 11:43  Python+OpenCv实现AI人脸识别身份认证系统(2)——人脸数据采集、存储\dataRecord.py

     文件     930127  2018-05-09 11:07  Python+OpenCv实现AI人脸识别身份认证系统(2)——人脸数据采集、存储\haarcascades\haarcascade_frontalface_default.xml

     文件       1343  2018-05-09 11:07  Python+OpenCv实现AI人脸识别身份认证系统(2)——人脸数据采集、存储\icons\error.png

     文件       1905  2018-05-09 11:07  Python+OpenCv实现AI人脸识别身份认证系统(2)——人脸数据采集、存储\icons\icon.png

     文件       1409  2018-05-09 11:07  Python+OpenCv实现AI人脸识别身份认证系统(2)——人脸数据采集、存储\icons\success.png

     文件        772  2018-05-09 11:07  Python+OpenCv实现AI人脸识别身份认证系统(2)——人脸数据采集、存储\icons\warning.png

     文件      10860  2018-05-09 11:07  Python+OpenCv实现AI人脸识别身份认证系统(2)——人脸数据采集、存储\ui\DataRecord.ui

     文件       3971  2018-05-09 11:07  Python+OpenCv实现AI人脸识别身份认证系统(2)——人脸数据采集、存储\ui\UserInfoDialog.ui

     目录          0  2019-02-15 11:45  Python+OpenCv实现AI人脸识别身份认证系统(2)——人脸数据采集、存储\config

     目录          0  2019-02-15 11:49  Python+OpenCv实现AI人脸识别身份认证系统(2)——人脸数据采集、存储\datasets

     目录          0  2019-02-15 11:47  Python+OpenCv实现AI人脸识别身份认证系统(2)——人脸数据采集、存储\haarcascades

     目录          0  2019-02-15 11:45  Python+OpenCv实现AI人脸识别身份认证系统(2)——人脸数据采集、存储\icons

     目录          0  2019-02-15 11:48  Python+OpenCv实现AI人脸识别身份认证系统(2)——人脸数据采集、存储\ui

     目录          0  2019-02-15 11:49  Python+OpenCv实现AI人脸识别身份认证系统(2)——人脸数据采集、存储

----------- ---------  ---------- -----  ----

               972349                    16


评论

共有 条评论