日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python如何做考勤_python基础教程:face++与python实现人脸识别签到(考勤)功能

發布時間:2024/3/24 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python如何做考勤_python基础教程:face++与python实现人脸识别签到(考勤)功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

@本文來源于公眾號:csdn2299,喜歡可以關注公眾號 程序員學府

這篇文章主要為大家詳細介紹了face++與python實現人臉識別簽到(考勤)功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下

項目實現利用face++開發一個課堂簽到的軟件,實現面向攝像頭即可完成記錄學號、姓名和時間的簽到工作。

項目架構

項目使用場景

代碼:

流程代碼,主文件

#!usr/bin/

# -*- coding: utf-8 -*-

import requests

from json import JSONDecoder

import csv

import cv2

import time

import tkinter as tk

search_url = "https://api-cn.faceplusplus.com/facepp/v3/search"

getdetail_url = "https://api-cn.faceplusplus.com/facepp/v3/faceset/getdetail"

key = "***************"

secret = "*********************"

filename = time.time()

filepath = "photo/" + str(filename) + ".jpg"

cap = cv2.VideoCapture(0)

while(1):

# get a frame

ret, frame = cap.read()

# show a frame

cv2.imshow("capture", frame)

if cv2.waitKey(1) & 0xFF == ord('1'):

cv2.imwrite(filepath, frame)

break

cap.release()

cv2.destroyAllWindows()

print("waiting...")

csvfile = open('face_token.csv','r')

freader = csv.reader(csvfile)

dic = dict(freader)

csvfile.close()

faceID_dict = {v:k for k,v in dic.items()}

print("...")

data = {"api_key": key, "api_secret": secret, "outer_id":'zbpm'}

files = {"image_file": open(filepath, "rb")}

response = requests.post(search_url, data=data, files=files)

req_con = response.content.decode('utf-8')

req_dict = JSONDecoder().decode(req_con)

pre_face_token = req_dict["results"][0]["face_token"]

pre_confidence = req_dict["results"][0]["confidence"]

pre_thresholds = req_dict["thresholds"]["1e-5"]

print("...")

data = {"api_key": key, "api_secret": secret,"outer_id":'zbpm'}

response = requests.post(getdetail_url, data=data)

req_con = response.content.decode('utf-8')

req_dict = JSONDecoder().decode(req_con)

faces_token = req_dict["face_tokens"]

print("...")

if pre_face_token in faces_token and pre_confidence >= pre_thresholds:

labaltext = faceID_dict[pre_face_token] + "\n\n\n" +str(time.asctime(time.localtime()))

window = tk.Tk()

window.title = ('FaceID')

window.geometry = ('200x200')

var = tk.StringVar()

l = tk.Label(window,bg = 'yellow',text = labaltext,font=("黑體",20 ,"bold"),width = 30,height = 20)

l.pack()

l.config(text=labaltext+var.get())

#tk.messagebox.askokcancel('faceId', faceID_dict[pre_face_token] + "\n" +str(time.asctime(time.localtime())))

print(faceID_dict[pre_face_token])

else:

tkinter.messagebox.askokcancel('提示', '未找到')

print("未找到")

建立云臉數據集的模塊:

#!usr/bin/

# -*- coding: utf-8 -*-

import requests

import time

from json import JSONDecoder

import csv

http_url ='https://api-cn.faceplusplus.com/facepp/v3/faceset/addface'

key = "z_qkMMqK1efq8ikgAPOEn89A7And-lAa"

secret = "***********************"

faceset_token = '******************************'

face_tokens_str = ''

csvfile = open('face_token.csv','r')

freader = csv.reader(csvfile)

facedata = []

i = 0

for item in freader:

i = i + 1

face_tokens_str = face_tokens_str + item[1] + ','

if i%5 == 0:

face_tokens_str = face_tokens_str[:-1]

facedata.append (face_tokens_str)

face_tokens_str = ''

face_tokens_str = face_tokens_str[:-1]

facedata.append (face_tokens_str)

csvfile.close()

for item in facedata:

print(item)

data = {"api_key":key,"api_secret":secret,"faceset_token":faceset_token,"face_tokens":item}

response = requests.post(http_url, data=data)

print(response)

print(response.text)

初始建立云聯數據集的模塊:

#!/usr/bin/env/ python

# _*_ coding:utf-8 _*_

import requests

from json import JSONDecoder

http_url = "https://api-cn.faceplusplus.com/facepp/v3/faceset/create"

get_url = "https://api-cn.faceplusplus.com/facepp/v3/faceset/getfacesets"

getdetails_url = "https://api-cn.faceplusplus.com/facepp/v3/faceset/getdetail"

key = "**********************"

secret = "*********************"

data = {"api_key":key,"api_secret":secret,"display_name":'SEUers',"outer_id":'zbpm'}

repn = requests.post(http_url,data = data)

print(repn)

print(repn.text)

data = {"api_key":key,"api_secret":secret}

repn = requests.post(get_url,data = data)

print(repn)

print(repn.text)

data = {"api_key":key,"api_secret":secret,"outer_id":'zbpm'}

repn = requests.post(getdetails_url,data = data)

print(repn)

print(repn.text)

生成存儲facetoken:

這里從171860學號開始生成我的facetoken

#!usr/bin/

# -*- coding: utf-8 -*-

import requests

from json import JSONDecoder

import csv

id = 171860

http_url ='https://api-cn.faceplusplus.com/facepp/v3/detect'

key = "*******************"

secret = "*******************"

faceID_List = []

face_token_List = []

for i in range (0,10):

faceID = str(id + i)

file = "picture/"+ faceID + ".jpg"

data = {"api_key":key,"api_secret":secret,"return_landmark":1,}

file = {"image_file":open(file,'rb')}

response = requests.post(http_url,data = data,files = file)

req_con = response.content.decode('utf-8')

req_dict = JSONDecoder().decode(req_con)

face_token = req_dict["faces"][0]["face_token"]

faceID_List.append(faceID)

face_token_List.append(face_token)

print(faceID_List)

print(face_token_List)

csvfile = open('face_token.csv','a',newline = '')

fwriter = csv.writer(csvfile)

for i in range(len(faceID_List)):

fwriter.writerow([faceID_List[i],face_token_List[i]])

csvfile.close()

非常感謝你的閱讀

大學的時候選擇了自學python,工作了發現吃了計算機基礎不好的虧,學歷不行這是

沒辦法的事,只能后天彌補,于是在編碼之外開啟了自己的逆襲之路,不斷的學習python核心知識,深入的研習計算機基礎知識,整理好了,如果你也不甘平庸,那就與我一起在編碼之外,不斷成長吧!

其實這里不僅有技術,更有那些技術之外的東西,比如,如何做一個精致的程序員,而不是“屌絲”,程序員本身就是高貴的一種存在啊,難道不是嗎?[點擊加入]想做你自己想成為高尚人,加油!

總結

以上是生活随笔為你收集整理的python如何做考勤_python基础教程:face++与python实现人脸识别签到(考勤)功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。