脸+ +与python实现人脸识别签到(考勤)功能

  

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

  

<强>项目架构

  

脸+ +与python实现人脸识别签到(考勤)功能

  

<强>项目使用场景

  

脸+ +与python实现人脸识别签到(考勤)功能

  

<强>代码:

  

流程代码,主文件

        # !/usr/bin   # - * -编码:utf - 8 - *   进口的要求   从json进口JSONDecoder   导入csv   进口cv2   导入的时间   进口tkinter像tk      search_url=" https://api-cn.faceplusplus.com/facepp/v3/search "   getdetail_url=" https://api-cn.faceplusplus.com/facepp/v3/faceset/getdetail "   关键=" * * * * * * * * * * * * * * *”   秘密=" * * * * * * * * * * * * * * * * * * * * *”      文件名=time.time ()   filepath="图" + str(文件名)+ " . jpg "      帽=cv2.VideoCapture (0)   而(1):   #有一个框架   ret,?cap.read ()   #显示帧   cv2。imshow(“捕获”,帧)   如果cv2.waitKey (1),0 xff==奥德(1):   cv2。imwrite (filepath框架)   打破   cap.release ()   cv2.destroyAllWindows ()      打印(“等待…”)      csvfile=开放(“face_token.csv”、“r”)   从文件中读=csv.reader (csvfile)   dic=dict类型(从文件中读)   csvfile.close ()   faceID_dict={v: k, k, v在dic.items ()}   打印(“…”)      data=https://www.yisu.com/zixun/{“api_key”:关键,“api_secret”:秘密,“outer_id”:“zbpm”}   文件={" image_file”:开放(filepath, rb)}=响应请求。帖子(search_url, data=https://www.yisu.com/zixun/data,文件=文件)   req_con=response.content.decode (utf - 8)   req_dict=JSONDecoder () .decode (req_con)   pre_face_token=req_dict["结果"][0](“face_token”)   pre_confidence=req_dict["结果"][0](“信心”)   pre_thresholds=req_dict(“阈值”)(“1 e-5”)   打印(“…”)      data=https://www.yisu.com/zixun/{“api_key”:关键,“api_secret”:秘密,“outer_id”:“zbpm”}=响应请求。帖子(getdetail_url, data=https://www.yisu.com/zixun/data)   req_con=response.content.decode (utf - 8)   req_dict=JSONDecoder () .decode (req_con)   faces_token=req_dict (“face_tokens”)   打印(“…”)      如果pre_face_token faces_token和pre_confidence祝辞=pre_thresholds:   labaltext=faceID_dict (pre_face_token) + " \ n \ n \ n " + str (time.asctime (time.localtime ()))   窗口=tk.Tk ()   窗口。标题=(“FaceID”)   窗口。几何=(200 x200型)   var=tk.StringVar ()   l=tk。标签(窗口、bg=盎粕蔽谋?labaltext字体=(“黑体”,20岁的“大胆”),宽度=30,身高=20)   l.pack ()   l.config(文本=labaltext + var.get ())   # tk.messagebox。askokcancel (faceId, faceID_dict [pre_face_token] +“\ n”+ str (time.asctime (time.localtime ())))   print (faceID_dict [pre_face_token])   其他:   tkinter.messagebox。askokcancel(“提示”、“未找到的)   打印(“未找到”)      

建立云脸数据集的模块:

        # !/usr/bin   # - * -编码:utf - 8 - *   进口的要求   导入的时间   从json进口JSONDecoder   导入csv         http_url=' https://api-cn.faceplusplus.com/facepp/v3/faceset/addface '   关键=" z_qkMMqK1efq8ikgAPOEn89A7And-lAa "   秘密=" * * * * * * * * * * * * * * * * * * * * * * *”   faceset_token=' * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *”      face_tokens_str="   csvfile=开放(“face_token.csv”、“r”)   从文件中读=csv.reader (csvfile)   facedata=https://www.yisu.com/zixun/[]   我=0   从文件中读的项目:   我+ 1=face_tokens_str [1]=face_tokens_str +项目+”、“   如果我% 5==0:   face_tokens_str=face_tokens_str (: 1)   facedata。追加(face_tokens_str)   face_tokens_str="   face_tokens_str=face_tokens_str (: 1)   facedata。追加(face_tokens_str)   csvfile.close ()      在facedata:项   打印(项)   data=https://www.yisu.com/zixun/{“api_key”:关键,“api_secret”:秘密,“faceset_token”: faceset_token,“face_tokens”:项目}=响应请求。帖子(http_url, data=https://www.yisu.com/zixun/data)   打印(响应)   打印(response.text)      

初始建立云联数据集的模块:,

脸+ +与python实现人脸识别签到(考勤)功能