700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > python基础教程:face++与python实现人脸识别签到(考勤)功能

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

时间:2023-06-19 00:26:27

相关推荐

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

@本文来源于公众号:csdn2299,喜欢可以关注公众号 程序员学府

这篇文章主要为大家详细介绍了face++与python实现人脸识别签到(考勤)功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

项目实现利用face++开发一个课堂签到的软件,实现面向摄像头即可完成记录学号、姓名和时间的签到工作。

项目架构

项目使用场景

代码:

流程代码,主文件

#!usr/bin/# -*- coding: utf-8 -*-import requestsfrom json import JSONDecoderimport csvimport cv2import timeimport tkinter as tksearch_url = "https://api-/facepp/v3/search"getdetail_url = "https://api-/facepp/v3/faceset/getdetail"key = "***************"secret = "*********************"filename = time.time()filepath = "photo/" + str(filename) + ".jpg"cap = cv2.VideoCapture(0)while(1):# get a frameret, frame = cap.read()# show a framecv2.imshow("capture", frame)if cv2.waitKey(1) & 0xFF == ord('1'):cv2.imwrite(filepath, frame)breakcap.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 requestsimport timefrom json import JSONDecoderimport csvhttp_url ='https://api-/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 = 0for item in freader:i = i + 1face_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 requestsfrom json import JSONDecoderhttp_url = "https://api-/facepp/v3/faceset/create"get_url = "https://api-/facepp/v3/faceset/getfacesets"getdetails_url = "https://api-/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 requestsfrom json import JSONDecoderimport csvid = 171860http_url ='https://api-/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核心知识,深入的研习计算机基础知识,整理好了,如果你也不甘平庸,那就与我一起在编码之外,不断成长吧!

其实这里不仅有技术,更有那些技术之外的东西,比如,如何做一个精致的程序员,而不是“屌丝”,程序员本身就是高贵的一种存在啊,难道不是吗?[点击加入]想做你自己想成为高尚人,加油!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。