项目实现利用脸+ +开发一个课堂签到的软件,实现面向摄像头即可完成记录学号,姓名和时间的签到工作。
<强>项目架构强>
<强>项目使用场景强>
<强>代码:强>
流程代码,主文件
# !/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)
初始建立云联数据集的模块:,