失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 树莓派+百度云打造人脸识别门禁系统

树莓派+百度云打造人脸识别门禁系统

时间:2021-09-21 17:04:16

相关推荐

树莓派+百度云打造人脸识别门禁系统

先注册一个百度云账号:

然后点击左上角的百度云进入首页:

在首页中选择产品,人工智能,人脸识别,点击进入:

选择立即使用:

在以下页面中由于没用应用,因此点击创建应用,然后直接写上应用名和应用描述就行了,人脸识别的功能都全部默认有了,由于我已经创建好了,因此我点击管理应用查看我的应用:

请务必记好你的AppID、API Key和Secret Key,在程序中我们将用它们作为唯一的标识,然后点击下载SDK进入以下界面:

我们选择python Http SDK,下载以后将它导入到树莓派中然后详细查看它的使用说明。

值得注意的是,安装的是aip不是api:

将包解压然后进入到解压的目录执行命令就可以了。

创建好应用以后,接下来就需要将人脸上传了,在这个界面中点击人脸管理:

点击你的人脸库名称,新建一个组:

记好你的组ID,在编写代码的时候要用到,然后点进去创建用户:

这样一来所有工作都做完了接下来附上我的代码:

from aip import AipFacefrom picamera import PiCameraimport urllib.requestimport RPi.GPIO as GPIOimport base64import time#百度人脸识别API账号信息APP_ID = '15050553'API_KEY = 'rlRrtRL5oRdXGh71jgg1OmyN'SECRET_KEY ='dK5TpuTAZn2nw5eVpspZLmF5Qs1Uu8A1'client = AipFace(APP_ID, API_KEY, SECRET_KEY)#创建一个客户端用以访问百度云#图像编码方式IMAGE_TYPE='BASE64'camera = PiCamera()#定义一个摄像头对象#用户组GROUP = 'lihuaqiang'#照相函数def getimage():camera.resolution = (1024,768)#摄像界面为1024*768camera.start_preview()#开始摄像time.sleep(2)camera.capture('faceimage.jpg')#拍照并保存time.sleep(2)#对图片的格式进行转换def transimage():f = open('faceimage.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:#如果相似度大于80if name == '_01lihuaqiang':print("欢迎%s !" % name)time.sleep(3)if name == '_01jishiershi':print("欢迎%s !" % name)time.sleep(3)if name == "_01quhao":print("欢迎%s !" % name)else:print("对不起,我不认识你!")name = 'Unknow'return 0curren_time = time.asctime(time.localtime(time.time()))#获取当前时间#将人员出入的记录保存到Log.txt中f = open('Log.txt','a')f.write("Person: " + name + " " + "Time:" + str(curren_time)+'\n')f.close()return 1if result['error_msg'] == 'pic not has face':print('检测不到人脸')time.sleep(2)return 0else:print(result['error_code']+' ' + result['error_code'])return 0#主函数if __name__ == '__main__':while True:print('准备')if True:getimage()#拍照img = transimage()#转换照片格式res = go_api(img)#将转换了格式的图片上传到百度云if(res == 1):#是人脸库中的人print("开门")else:print("关门")print('稍等三秒进入下一个')time.sleep(3)

因为没有买锁,因此用打印的提示信息来代替开锁,如果真的要做一个门禁可以买一个电磁锁,很方便的。

新版本:

import requests'''人脸搜索'''request_url = "/rest/2.0/face/v3/search"filePath = r'C:\Users\Administrator\Desktop\face.jpg'with open(filePath,'rb') as f:imageB = base64.b64encode(f.read())image = str(imageB,'utf-8')params = {"image_type":"BASE64","group_id_list":"lihuaqiang","quality_control":"LOW"}params["image"]=imageaccess_token = '24.584be422e1d8d06961442e18cb218655.2592000.1602121397.282335-15050553'request_url = request_url + "?access_token=" + access_tokenheaders = {'content-type': 'application/json'}response = requests.post(request_url, data=params, headers=headers)if response:print (response.json())

如果觉得《树莓派+百度云打造人脸识别门禁系统》对你有帮助,请点赞、收藏,并留下你的观点哦!

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