您的位置:首页 > 编程语言 > Python开发

百度AI结合笔记本人脸识别(PYTHON)

2019-04-18 21:46 330 查看

之前用Tensorflow做30个人的人脸识别,训练时间贼长就算了,那个准确度还不堪入目。于是我想到了调用API来做人脸识别。找到了这位大佬的博客
https://blog.csdn.net/weixin_38241876/article/details/84842017
先谢谢这位大佬,百度AI注册和创建用户他都写得很详细大家可以参考一下
他是树莓派结合百度AI做的人脸识别,然后我在他的代码上做了修改,实现了笔记本摄像头结合百度AI人脸识别。代码如下:

# coding=UTF-8
from aip import AipFace
import urllib.request
import base64
import time
import cv2

APP_ID = '你的人脸识别的ID'
API_KEY='你的人脸识别的API_KEY'
SECRET_KEY=‘你的人脸识别的SK’

client = AipFace(APP_ID, API_KEY, SECRET_KEY)
IMAGE_TYPE='BASE64'
cap = cv2.videoCapture(0)
i=0

GROUP = '你的用户组'

#对图片的格式进行转换
def transimage():
f = open('C:/Users/Idiom/Desktop/'+str(i)+'.jpg','rb')	#路径可以自己改
img = base64.b64encode(f.read())
return img

#上传到百度API进行人脸检测
def go_api(image):
result = client.search(str(image, 'utf-8'), IMAGE_TYPE, GROUP);
if result['error_msg'] == 'SUCCESS':
name = result['result']['user_list'][0]['user_id']
score = result['result']['user_list'][0]['score']
if score > 80:
if name == '01_ChengYu':
print("欢迎%s !" % name)
time.sleep(3)
else:
print("对不起,我不认识你!")
name = 'Unknow'
return 0
curren_time = time.asctime(time.localtime(time.time()))

f = open('Log.txt','w')
f.write("Person:" + name + "    "+ "Time:" + str(curren_time)+'\n')
f.close()
return 1

if result['error_msg'] == 'pic not has face':
print("检测不到人脸")
time.sleep(2)
return 0
else:
print(result['error_code']+'' + result['error_code'])
return 0

if __name__ == '__main__':
while True:
ret ,frame = cap.read()
cv2.imshow("frame",frame)
k = cv2.waitKey(1)
if k == ord('s'):
cv2.imwrite('C:/Users/Idiom/Desktop/'+str(i)+'.jpg',frame) #路径可以自己改
img = transimage()
res = go_api(img)
if (res == 1):
print("开门")
else:
print("关门")
print("稍等三秒进入下一个")
i+=1
time.sleep(3)

主要就是使用OPENCV进行拍照,然后将图片上传到百度AI进行识别,后续发展将会向实时识别方向进发,如果有大佬已经做到实时识别可以评论教教我,我也是初学者。
然后博客的代码是手打的(有人知道怎么复制吗),如果有一些错误可以在下方评论,我可以发py文件给你。谢谢大家!!!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: