刘辉 2019-12-20
目标:基于raspberry+pi 百度云平台人脸识别功能实现人脸识别
嗯,其实我也不知道为什么要给下车加这功能。这是小车的最后一篇了,近几个月会因为要学习,不会有时间在写这些东西了。而且我将开始完成我的智能音箱+HA智能家居系列。算是给去年毕业留下的尾巴画上完美的句号。另外哪个道友有斯坦福大学GRAN的高数教学视频啊,可以分享不。
就是这个货 类似于这中为何sinx的倒数是cosxraspberry pi运行opencv一直是件比较难受的事。树莓派的性能已经不能满足运行opencv或者openface这类大型软件。好在有百度人脸识别的API可以调用;
2019春节这么快就过去了,祝大家新年快乐啦, 新年新气象,毕竟我已经上班两个礼拜了,新的一年就要搞一点不一样的东西!!!每个人都有一些属于自己的秘密,所以想着可以借助目前比较火的人脸识别来做一个安全系统。当然,基于此人脸识别系统还可以实现人脸签到、人脸闸机等等多种功能,就看你的想象力了,比如给你的电脑上锁,每隔一段时间拍一张照,如果不是你本人就自动锁定系统等等……
基本的原理就是首先创建一个人脸库,将各个用户上传到不同的用户组,来设定所拥有的不同权限,创建人脸库的时候首先要为每个用户上传人脸照片,在上传过程中还要检测上传照片的质量,看是否合格。
人脸识别服务
现在是一个基于互联网的时代,因此我的想法是一切能够在云端做的事情,绝不在本地运行,仅仅将树莓派作为一个终端,来连接各种服务,然后将这些服务呈现给你,这样一是能够保证本地的运行速率,毕竟树莓派性能有限,识别一个照片需要两三秒的时间就有些不优雅了,二是容错率较好,一旦发生错误能更加方便的对其进行修正和重新部署。
因此本人采用了百度的人脸识别服务,目前百度的人脸识别主要提供三种功能:
百度云人脸识别接口功能安装人脸识别 Python SDK
人脸识别 Python SDK目录结构
├── README.md
├── aip //SDK目录
│ ├── _init_.py //导出类
│ ├── base.py //aip基类
│ ├── http.py //http请求
│ └── face.py //人脸识别
└── setup.py //setuptools安装
支持Python版本:2.7.+ ,3.+
安装使用Python SDK有如下方式:
安装使用Python SDK新建AipFace
AipFace是人脸识别的Python SDK客户端,为使用人脸识别的开发人员提供了一系列的交互方法。
参考如下代码新建一个AipFace:
aipface在上面代码中,常量APP_ID在百度云控制台中创建,常量API_KEY与SECRET_KEY是在创建完毕应用后,系统分配给用户的,均为字符串,用于标识用户,为访问做签名验证,可在AI服务控制台中的应用列表中查看。
接口说明
人脸检测
检测请求图片中的人脸,返回人脸位置、72个关键点坐标、及人脸相关属性信息。
检测响应速度,与图片中人脸数量相关,人脸数量较多时响应时间会有些许延长。
典型应用场景:如人脸属性分析,基于人脸关键点的加工分析,人脸营销活动等。
核心代码
核心代码人脸检测 返回示例:
人脸检测 返回示例质量判断
可通过人脸检测接口,基于以下字段和对应阈值,进行质量检测的判断,以保证人脸质量符合后续业务操作要求。
质量判断人脸注册
用于从人脸库中新增用户,可以设定多个用户所在组,及组内用户的人脸图片。
人脸库、用户组、用户、用户下的人脸层级关系如下所示:
关于人脸库的设置限制
每个开发者账号可以创建100个人脸库,人脸库互不相通;
每个人脸库下,可以创建多个用户组,用户组(group)数量没有限制;
每个用户组(group)下,可添加最多无限张人脸,无限个uid;
每个用户(uid)所能注册的最大人脸数量没有限制;
为了保证识别效果,请控制注册人脸的质量,进行质量判断
核心代码
人脸识别
用于计算指定组内用户,与上传图像中人脸的相似度。识别前提为您已经创建了一个人脸库。
说明:人脸识别返回值不直接判断是否是同一人,只返回用户信息及相似度分值。
说明:推荐可判断为同一人的相似度分值为80,也可以根据自己需求选择更合适的阈值。
核心代码:
最终代码
最终代码
最近半年应该不会在做小车系列了,时间比较少,我可能会多做一些智能音箱+智能家居的东西。下次有时间在写吧!
best wishes to everyone
网友评论