国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

OpenCV+ Qt Designer 開發(fā)人臉識別考勤系統(tǒng)

這篇具有很好參考價值的文章主要介紹了OpenCV+ Qt Designer 開發(fā)人臉識別考勤系統(tǒng)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1. 系統(tǒng)介紹

本系統(tǒng)是一個基于OpenCV和 Qt Designer 的人臉識別考勤系統(tǒng),主要功能是自動識別攝像頭中的人臉,并把人臉對應(yīng)的姓名和打卡時間存儲到數(shù)據(jù)庫中,方便管理人員進行考勤管理。本系統(tǒng)使用 face_recognition 庫進行人臉識別,使用 PyQt5 開發(fā)界面,然后把界面與代碼進行整合。

2. 系統(tǒng)架構(gòu)

系統(tǒng)主要由以下幾個模塊組成:

用戶界面:使用 PyQt5 設(shè)計界面,包括攝像頭畫面、人臉識別結(jié)果、打卡時間等。
攝像頭模塊:使用 OpenCV 庫獲取攝像頭視頻流,實時顯示在用戶界面中。
人臉識別模塊:使用 face_recognition 庫進行人臉識別,并將結(jié)果顯示在用戶界面中。
數(shù)據(jù)庫模塊:使用 sqlite3 庫進行數(shù)據(jù)存儲,把人臉對應(yīng)的姓名和打卡時間存儲到數(shù)據(jù)庫中。

3. 開發(fā)步驟

3.1 安裝必要的庫

本系統(tǒng)需要的主要庫有:

PyQt5:用于設(shè)計用戶界面。
OpenCV:用于獲取攝像頭視頻流。
face_recognition:用于進行人臉識別。
sqlite3:用于進行數(shù)據(jù)存儲。
可以通過以下命令安裝:

pip install pyqt5 opencv-python face_recognition sqlite3

3.2 設(shè)計用戶界面

使用 Qt Designer 設(shè)計用戶界面。用戶界面應(yīng)該包括以下幾個部分:

攝像頭畫面:用于實時顯示攝像頭視頻流。
人臉識別結(jié)果:用于顯示識別出的人臉及對應(yīng)的姓名。
打卡時間:用于顯示打卡時間。
打卡按鈕:用于手動打卡。
可以參考下面的截圖:

OpenCV+ Qt Designer 開發(fā)人臉識別考勤系統(tǒng)

3.3 編寫代碼

3.3.1 導(dǎo)入庫

import sys
import cv2
import face_recognition
import sqlite3
from PyQt5.QtCore import Qt, QTimer
from PyQt5.QtGui import QImage, QPixmap
from PyQt5.QtWidgets import QApplication, QDialog, QLabel, QPushButton

3.3.2 連接數(shù)據(jù)庫

conn = sqlite3.connect('attendance.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS attendance
             (name TEXT, time TEXT)''')
conn.commit()

3.3.3 定義主窗口類

class MainWindow(QDialog):
    def __init__(self):
        super().__init__()

        self.camera_label = QLabel(self)
        self.camera_label.resize(640, 480)
        self.camera_label.move(20, 20)

        self.result_label = QLabel(self)
        self.result_label.resize(300, 300)
        self.result_label.move(700, 20)

        self.time_label = QLabel(self)
        self.time_label.resize(300, 50)
        self.time_label.move(700, 350)

        self.button = QPushButton('打卡', self)
        self.button.resize(100, 50)
        self.button.move(700, 420)
        self.button.clicked.connect(self.check_attendance)

        self.timer = QTimer(self)
        self.timer.timeout.connect(self.show_camera)
        self.timer.start(30)

        self.video_capture = cv2.VideoCapture(0)

        self.setGeometry(100, 100, 1024, 480)
        self.setWindowTitle('人臉識別考勤系統(tǒng)')

3.3.4 實時顯示攝像頭畫面

 def show_camera(self):
        ret, frame = self.video_capture.read()
        frame = cv2.flip(frame, 1)
        rgb_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
        self.display_image(rgb_frame, self.camera_label)

3.3.5 進行人臉識別

  def face_recognition(self, frame):
        face_locations = face_recognition.face_locations(frame)
        face_encodings = face_recognition.face_encodings(frame, face_locations)

        for face_encoding in face_encodings:
            matches = face_recognition.compare_faces(known_faces, face_encoding)
            name = "Unknown"

            face_distances = face_recognition.face_distance(known_faces, face_encoding)
            best_match_index = np.argmin(face_distances)

            if matches[best_match_index]:
                name = known_names[best_match_index]

            self.display_image(frame, self.result_label)
            self.result_label.setText(name)

            if name != 'Unknown':
                c.execute("INSERT INTO attendance VALUES (?, datetime('now', 'localtime'))", (name,))
                conn.commit()

3.3.6 手動打卡

  def check_attendance(self):
        name = self.result_label.text()
        if name != 'Unknown':
            c.execute("INSERT INTO attendance VALUES (?, datetime('now', 'localtime'))", (name,))

            conn.commit()

3.3.7 顯示打卡時間

 def show_time(self):
        c.execute("SELECT * FROM attendance ORDER BY time DESC")
        result = c.fetchone()
        if result:
            name, time = result
            self.time_label.setText(f"{name} 打卡時間:{time}")

3.3.8 顯示圖片

  def display_image(self, img, label):
        qformat = QImage.Format_Indexed8
        if len(img.shape) == 3:
            if img.shape[2] == 4:
                qformat = QImage.Format_RGBA8888
            else:
                qformat = QImage.Format_RGB888
        img = QImage(img, img.shape[1], img.shape[0], qformat)
        img = img.rgbSwapped()
        label.setPixmap(QPixmap.fromImage(img))
        label.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter)

3.3.9 運行主程序

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

4. 總結(jié)

本文介紹了如何使用 Python 和 Qt Designer 開發(fā)人臉識別考勤系統(tǒng)。該系統(tǒng)可以自動識別攝像頭中的人臉,并把人臉對應(yīng)的姓名和打卡時間存儲到數(shù)據(jù)庫中,方便管理人員進行考勤管理。希望本文對您有所幫助。文章來源地址http://www.zghlxwxcb.cn/news/detail-459508.html

到了這里,關(guān)于OpenCV+ Qt Designer 開發(fā)人臉識別考勤系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Python基于 opencv 的人臉識別考勤系統(tǒng)(V1.0),附源碼

    Python基于 opencv 的人臉識別考勤系統(tǒng)(V1.0),附源碼

    博主介紹:?程序員徐師兄、7年大廠程序員經(jīng)歷。全網(wǎng)粉絲12W+、csdn博客專家、掘金/華為云/阿里云/InfoQ等平臺優(yōu)質(zhì)作者、專注于Java技術(shù)領(lǐng)域和畢業(yè)項目實戰(zhàn)? ?? 文末獲取源碼聯(lián)系 ?? ???? 精彩專欄推薦訂閱???? 不然下次找不到喲 2022-2024年最全的計算機軟件畢業(yè)設(shè)計選

    2024年03月26日
    瀏覽(31)
  • Python 畢業(yè)設(shè)計 - 基于 opencv 的人臉識別上課考勤系統(tǒng),附源碼

    Python 畢業(yè)設(shè)計 - 基于 opencv 的人臉識別上課考勤系統(tǒng),附源碼

    源碼下載地址https://download.csdn.net/download/2302_77835532/88237252 這個人臉識別考勤簽到系統(tǒng)是基于大佬的人臉識別陌生人報警系統(tǒng)二次開發(fā)的。 項目使用Python實現(xiàn),基于OpenCV框架進行人臉識別和攝像頭硬件調(diào)用,同時也用OpenCV工具包處理圖片。交互界面使用pyqt5實現(xiàn)。 該系統(tǒng)實現(xiàn)

    2024年02月05日
    瀏覽(23)
  • 基于 opencv 的人臉識別上課考勤系統(tǒng),附源碼,可作為畢業(yè)設(shè)計

    基于 opencv 的人臉識別上課考勤系統(tǒng),附源碼,可作為畢業(yè)設(shè)計

    這個人臉識別考勤簽到系統(tǒng)是基于大佬的人臉識別陌生人報警系統(tǒng)二次開發(fā)的。 項目使用Python實現(xiàn),基于OpenCV框架進行人臉識別和攝像頭硬件調(diào)用,同時也用OpenCV工具包處理圖片。交互界面使用pyqt5實現(xiàn)。 該系統(tǒng)實現(xiàn)了從學(xué)生信息輸入、人臉數(shù)據(jù)錄入、人臉數(shù)據(jù)訓(xùn)練,學(xué)生信

    2024年02月08日
    瀏覽(98)
  • 【計算機畢設(shè)項目】基于opencv、dilb的員工人臉識別考勤系統(tǒng)

    【計算機畢設(shè)項目】基于opencv、dilb的員工人臉識別考勤系統(tǒng)

    基于opencv、dilb的員工人臉識別考勤系統(tǒng) 提示:適合用于課程設(shè)計或畢業(yè)設(shè)計,工作量達標,源碼開放 選題“員工刷臉考勤”,要求采用python語言開發(fā),可以通過攝像頭添加員工面部信息,這里就涉及到兩個具體的個問題,一個是應(yīng)該以什么樣的數(shù)據(jù)來標識每一個員工的面部

    2024年02月03日
    瀏覽(18)
  • python人臉識別考勤系統(tǒng) dlib+OpenCV和Pyqt5、數(shù)據(jù)庫sqlite 人臉識別系統(tǒng) 計算機 畢業(yè)設(shè)計 源碼

    python人臉識別考勤系統(tǒng) dlib+OpenCV和Pyqt5、數(shù)據(jù)庫sqlite 人臉識別系統(tǒng) 計算機 畢業(yè)設(shè)計 源碼

    Python語言、dlib、OpenCV、Pyqt5界面設(shè)計、sqlite3數(shù)據(jù)庫 本系統(tǒng)使用dlib作為人臉識別工具,dlib提供一個方法可將人臉圖片數(shù)據(jù)映射到128維度的空間向量,如果兩張圖片來源于同一個人,那么兩個圖片所映射的空間向量距離就很近,否則就會很遠。因此,可以通過提取圖片并映射到

    2024年02月08日
    瀏覽(23)
  • 計算機畢業(yè)設(shè)計:基于python人臉識別考勤系統(tǒng) OpenCV+Dlib(包含文檔+源碼+部署教程)

    計算機畢業(yè)設(shè)計:基于python人臉識別考勤系統(tǒng) OpenCV+Dlib(包含文檔+源碼+部署教程)

    [畢業(yè)設(shè)計]2023-2024年最新最全計算機專業(yè)畢設(shè)選題推薦匯總 感興趣的可以先收藏起來,還有大家在畢設(shè)選題,項目以及論文編寫等相關(guān)問題都可以給我留言咨詢,希望幫助更多的人?。 Python語言、dlib、OpenCV、Pyqt5界面設(shè)計、sqlite3數(shù)據(jù)庫 方法實現(xiàn)、實現(xiàn)步驟 1、實例化人臉檢測

    2024年02月04日
    瀏覽(33)
  • 【舊文更新】【優(yōu)秀畢設(shè)】人臉識別打卡/簽到/考勤管理系統(tǒng)(OpenCV+最簡基本庫開發(fā)、可移植樹莓派 擴展網(wǎng)絡(luò)圖像推流控制 驗證碼及Excel郵件發(fā)送等功能)

    【舊文更新】【優(yōu)秀畢設(shè)】人臉識別打卡/簽到/考勤管理系統(tǒng)(OpenCV+最簡基本庫開發(fā)、可移植樹莓派 擴展網(wǎng)絡(luò)圖像推流控制 驗證碼及Excel郵件發(fā)送等功能)

    【舊文更新】【優(yōu)秀畢設(shè)】人臉識別打卡/簽到/考勤管理系統(tǒng)(OpenCV+最簡基本庫開發(fā)、可移植樹莓派 擴展網(wǎng)絡(luò)圖像推流控制 驗證碼及Excel郵件發(fā)送等功能) 為何要進行舊文新發(fā)? 因為我在2023年博客之星評選中發(fā)現(xiàn) 有的人轉(zhuǎn)載、抄襲他人文章 稍微改動幾下也能作為高質(zhì)量文

    2024年02月20日
    瀏覽(23)
  • 畢設(shè)項目-人臉識別考勤簽到系統(tǒng)

    畢設(shè)項目-人臉識別考勤簽到系統(tǒng)

    人臉識別小程序、簽到小程序,借助百度AI智能識別功能實現(xiàn)。 學(xué)生信息管理,考勤管理,人臉識別處理大概這三個模塊。 功能模塊: 登錄與注冊(兩種身份 老師或?qū)W生) 課程發(fā)布(老師可以發(fā)布課程信息 名稱 地點 選課人數(shù)) 課程查看(學(xué)生查看課程信息) 人臉錄入(

    2023年04月08日
    瀏覽(24)
  • 基于Python的人臉識別課堂考勤系統(tǒng)(畢設(shè))

    基于Python的人臉識別課堂考勤系統(tǒng)(畢設(shè))

    一個菜鳥搞畢業(yè)設(shè)計的過程分享,可能對迷茫的你起到一點點作用! 在著手開發(fā)項目之前我們一定要對系統(tǒng)進行一個初步的規(guī)劃,比如系統(tǒng)可以實現(xiàn)什么功能,是否需要開發(fā)GUI頁面(大部分導(dǎo)師都會讓你搞一個,僅僅少的導(dǎo)師不用你搞),如果需要可以對GUI頁面就行一個簡單

    2023年04月08日
    瀏覽(19)
  • 百度智能AI接口:人臉識別考勤簽到系統(tǒng)設(shè)計與實現(xiàn)

    ?博主介紹 :黃菊華老師《Vue.js入門與商城開發(fā)實戰(zhàn)》《微信小程序商城開發(fā)》圖書作者,CSDN博客專家,在線教育專家,CSDN鉆石講師;專注大學(xué)生畢業(yè)設(shè)計教育和輔導(dǎo)。 所有項目都配有從入門到精通的基礎(chǔ)知識視頻課程,免費 項目配有對應(yīng)開發(fā)文檔、開題報告、任務(wù)書、

    2024年02月05日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包