项目实现利用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人脸识别项目_face++与python实现人脸识别签到(考勤)功能相关推荐

  1. Python和Java结合的项目实战_[项目实战] Python高级教程项目实战篇 Python和Java结合的项目实战 视频教程 [...

    资源介绍 课程简介:xa0xa0 Python高级教程项目实战篇 Python和Java结合的项目实战 视频教程 教学视频 ----------------------课程目录 Python项目实战篇 ...

  2. pycharm创建python工程_使用Pycharm(Python工具)新建项目及创建Python文件的教程

    创建项目 首先打开Pycharm 勾选I confirm that I have read and accept the terms of this User Agreement 接下来选择Don't ...

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

    项目实现利用face++开发一个课堂签到的软件,实现面向摄像头即可完成记录学号.姓名和时间的签到工作. 项目架构 项目使用场景 代码: 流程代码,主文件 #!usr/bin/ # -*- coding ...

  4. python爬虫小项目挣钱兼职,python程序员兼职平台

    python爬虫去哪接单 python爬虫接单的方式有两种一.接定制需求的单子爬虫定制的需求其实很多,比如 "爬取某某电商网站的评论",这类需求一般是按照爬取数据量的大小来收费,价 ...

  5. python人脸识别项目_基于Python与命令行人脸识别项目(系列二)

    在knowe_people文件夹中创建blur_faces_on_webcam.py文件并写入以下代码: import face_recognition import cv2 # This is a ...

  6. python潜力开源项目_10大Python开源项目推荐(Github平均star2135)

    翻译 | suisui 来源 | 人工智能头条(AI_Thinker) 继续假日充电系列~本文是 Mybridge 挑选的 10 个 Python 开源项目,Github 平均star 2135,希望 ...

  7. 如何自学python到做项目-如何使用python进行第一个机器学习项目(详细教程篇)...

    你是否想使用python进行机器学习但却难以入门? 在这篇教程中,你将用Python完成你的第一个机器学习项目. 在以下的教程中,你将学到: 1.下载并安装Python SciPy,为Python中的 ...

  8. python爬虫新手项目-33个Python爬虫项目实战(推荐)

    今天为大家整理了32个Python爬虫项目. 整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心.所有链接指向GitHub,祝大家玩的愉快~O(∩_∩)O WechatSogou [1] ...

  9. python新手练习项目_适合Python 新手的5大练手项目,你练了么?

    已经学习了一段时间的Python,如果你看过之前W3Cschool的文章,就知道是时候该进去[项目]阶段了. 但是在练手项目的选择上,还存在疑问?不知道要从哪种项目先下手? W3Cschool首先有两 ...

最新文章

  1. AI算法工程师必备技术,快快积累!
  2. 2020-06-15 有理分式矩阵及其互质分解
  3. cad在哪里设置图幅大小_一看就懂!菜鸟也能快速入门CAD,关键掌握这4个诀窍...
  4. VTK:图表之ShortestPath
  5. 【STM32】DAC程序示例
  6. java中.of,java中的sizeof
  7. [ZJOI2007]矩阵游戏
  8. 怎么查看父子级目录linux,如何查找linux中特定父目录的所有文件?
  9. jquery mobile : 外链接失效 a href not working
  10. 推荐分享一个自定义绑定控件(附源码)
  11. opencv基础---直方图均衡化(原理equalizeHist)
  12. ET_01-ET框架开发环境搭建及Demo运行(客户端版)
  13. Aircrack-ng套件_无线网卡破解
  14. 图片怎么去底色?怎么去图片背景为透明?
  15. Java多线程之定时任务 以及 SpringBoot多线程实现定时任务以及分享动态实现定时任务
  16. 装机出现“我们检测到您的硬盘是GPT格式但未找到ESP分区”解决方法
  17. 环信第三方集成 -- 移动客服
  18. 三、Windows Server 2016各版本说明
  19. 宇视录像机通道名称如何修改
  20. 【愚公系列】2022年08月 微信小程序-左划删除效果实现

热门文章

  1. 高通骁龙865 plus有哪些手机 高通骁龙865 plus有什么手机
  2. 大学数据库创建与查询实战
  3. vue3 setup语法糖与原始写法对比
  4. java微信群自动回复_社群运营,你该如何选择一款好用的微信群管理工具?
  5. JAVA萌新学习day17.18天 数据库MySQL
  6. 笔记:AVS2背景建模
  7. 微型6轴惯性导航姿态传感器(IMU)LPMS-BE2 OEM
  8. Python的len函数探究
  9. 16999元!华为Mate X终于发布了!附上手视频
  10. [10.21][转贴][中国][成龙作品集34部][DVD-RMVB/16.2G][中文字幕/影片截图]