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

python考勤管理系统_python基础教程:face++与python实现人脸识别签到(考勤)功能...

时间:2018-10-30 19:26:52

相关推荐

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-/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 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-/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-/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

requests

from json

import

JSONDecoder

import

csv

id

=

171860

http_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核心知识,深入的研习计算机基础知识,整理好了,如果你也不甘平庸,那就与我一起在编码之外,不断成长吧!

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

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