資源簡介
使用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.xm
?????文件???????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
評論
共有 條評論