百度人脸识别使用指南-人脸闸机应用场景方案 | ||||||||||||||||||||||||||||||||||||
产品推荐: 1、安全稳定的云服务器租用,2核/2G/5M仅37元,点击抢购>>>; 2、高防物理服务器20核/16G/50M/500G防御仅350元,点击抢购>>> 3、百度智能建站(五合一网站)仅880元/年,点击抢购>>> 模板建站(PC+手机站)仅480元/年,点击抢购>>> 4、阿里云服务器2核2G3M仅99元/年、2核4G5M仅199元/年,新老同享,点击抢购>>> 5、腾讯云服务器2核2G4M仅99元/年、新老同享,点击抢购>>> 点击这里申请百度智能云特邀VIP帐号,立即体验人脸识别>>> 百度人脸识别使用指南-人脸闸机应用场景方案 1、简介1.1 功能概述
1.2 名词解释
场景的数据流向为:
1.3 硬件选型为了跑通整体逻辑,方便理解,安卓demo中也集成了,后台服务器的一些功能。实际使用过程中,我们建议把人脸识别接口的功能放置于自己的服务器当中。主要是为了防止ak,sk,被他人反编译调用,从而造成,经济和数据上的损失!!!!!! Android闸机硬件选型推荐有两种方案,一种是使用现有市场上的成品平板,另外一种是使用定制的硬件平台和自选外设摄像头(USB摄像头或网络摄像头)。针对三种方案分别做出如下选择: 1、平板方案
平板型号推荐示例:华为M3 2、USB摄像头方案
如何使用:将USB摄像头与开发板连接,SDK可以自动识别摄像头,使用方法和内置相机一致。 3、网络摄像头
如何使用:网络摄像头与开发板连接到同一个局域网内(连接至同一路由器,并使用同一网段如192.168.1.xxx) 根据网络摄像头说明书,配置网络摄像头,帧率15,分辨率720P,码率12M左右,设置rtsp协议url和用户名和密码。调整焦距至画片清晰。可以用VLC等支持RTSP协议的软件验证摄像头是否配置成功。如摄像头配置没有问题,可参数RTSTTestActivity,修改摄像头地址。其它流程与自带摄像头一致。 2、集成指南2.1 准备工作在正式集成前,需要做一些准备工作,完成一些账号、应用及配置,具体如下: 2.1.1 注册开发者
注一:如果您通过百度AI开放平台登录到后台,AI相关服务模块入口,如下图所示: 注二:如果您通过百度云直接登录后台,AI相关服务模块入口,则如下图红框部分所示:
2.1.2 创建应用创建好账号后,在正式调用AI能力之前,需要您创建一下应用,这个是调用服务的基础能力单元。选择「人脸识别」服务,首先见到此服务的控制台概览页,点击「创建应用」,即可进入应用创建界面,如下图所示: 2.1.3 获取密钥在您创建完毕应用后,平台将会分配给您此应用的相关凭证,主要为AppID、API Key、Secret Key,以上三个信息是您应用实际开发的主要凭证,每个应用之间各不相同,请您妥善保管。如上图所示。 :::warning 注意:开发中请注意区分多份aksk(API Key、Secret Key),每个aksk代表一个人脸库。 ::: 2.1.4 生成token刚才所创建的应用在调用开放平台API之前,首先需要获取Access Token(用户身份验证和授权的凭证)您需要使用创建应用所分配到的AppID、API Key及Secret Key,进行Access Token的生成,方法详见Access Token获取,我们为您准备了几种常见语言的请求示例代码。 ::: warning 注:Access Token的有效期为30天(以秒为单位),请您集成时注意在程序中定期请求新的token,或每次请求都获取一次token。 ::: 2.1.5 SDK license(十分重要!)人脸SDK License:此license用于SDK离线功能使用,在您的申请人脸SDK的后台页面,下载两个端的license,用于接下来集成使用。 不过我们为您提供了自动化配置脚本,如下图所示: 您可以在下载登录示例工程的同时,直接下载已经配置好授权信息的版本。 2.2 安卓集成2.2.1 自动配置授权集成如果您是通过自动配置授权信息下载的示例工程,只需要修改Config类和配置签名。您的集成将少很多步骤。 1、修改Config类中参数,自动配置已经为您修改好了licenseID和license文件,您只需要修改appKey、appSecret(即ak/sk), groupId是自己定义的,用于人脸注册和人脸识别等接口使用。保证注册的人脸和查找的人脸在同一个groupId即可。 2、 配置签名(申请license时的md5为打包签名的文件,所以必须用申请license的签名文件) 因为SDK运行时会对比license里面的md5和签名文件的md5,为了能debug也能使用人脸,所以需要进行下面的配置。实际发布时只要使用申请时关联的签名文件即可,没有下面的配置也行。 app->build.gradle->android->signingConfigs
2.2.2 未使用自动配置授权集成1、把申请的license(idl-license.face-android)放到到项目中assets目录中 2、修改Config类中的参数: licenseID为您申请license填的授权信息字符串+"-face-android" groupId是自己定义的,用于人脸注册和人脸识别等接口使用。保证注册的人脸和查找的人脸在同一个groupId即可。 3、配置签名(申请license时的md5为打包签名的文件,所以必须用申请license的签名文件) 因为SDK运行时会对比license里面的md5和签名文件的md5,为了能debug也能使用人脸,所以需要进行下面的配置。实际发布时只要使用申请时关联的签名文件即可,没有下面的配置也行。 app->build.gradle->android->signingConfigs
4、修改包名 app->build.gradle->android->defaultConfig ->您申请license时填的包名 2.2.3 SDK初始化使用人脸检测之前先要对识别库进行初始化。推荐在applicaton的onCreate方法中调用如下代码片段 2.2.4 人脸注册1、可以通过RegDetectActivity实时检测获取注册的人脸。注册过程是往人脸库中注册照片,因为该照片做为识别标准所以对质量的要求也更高。为了保证人脸注册图片的质量。 Demo中提供了RegDetectActivity.该Activity在屏幕上指定了一定的区域,要求用户在屏幕中央,脸正对着摄像头。如果用户的姿势达不到要求,会提示用户,直到符合要求为止。 下面的代码片段是,检测人脸过程中,根据检测结果值,提示用户进行调整,从而得到高质量的照片。 2、或者相册获取注册的人脸。 3、调用在线api进行注册。 2.3.5 人脸识别
1、检测人脸(从Android手机自带摄像头和usb摄像头获取人脸)(DetectActivity) 2、从网络摄像头获取人脸(RtspTestActivity) 3、人脸识别(调用在线API) Demo中为了方便演示逻辑,直接请求的百度服务器,实际场景可将图片发送给自己的服务器,再由服务器发起识别请求,或者,把ak,sk放置在服务器上。客户端调用接口获取accessToken。保证账户信息安全。 2.3.6 相关类解释
2.3 iOS集成把申请的idl_license.license文件添加到工程当中。 1、确定工程的BundleIdentifier和申请时填写的bundleID相同 App启动时创建FaceSDK实例,注意「APIKEY」对应后台的LicenseID,如下图示意: 替换Config.h 中的APP_KEY和APP_SECRET(对应的后台应用列表中的API-KEY和SECRET-KEY),如下图所示: 设置SDK参数,正常情况使用demo中提供的参数即可。 至此,项目配置完成。 注册和识别人脸检测和截取的代码类似,区别在于获取到人脸图片之后调用的API不同。注册相关代码说见 CaptureImageViewController 创建相机,设置frame,将相机预览的layer,添加到View的layer当中。用于显示相机预览图片。 相机预览过程中会回调- (void)cameraControl:(CameraControl )camera didOutputFrame:(UIImage )image 覆写该方法,调用[[FaceVerifier sharedInstance] prepareDataWithImage:image andActionType:FaceVerifierActionTypeVerify];对该图片进行人脸检测。检测结果 NSArray* faces = [[FaceVerifier sharedInstance] getTrackedFace];获取检测结果 。 回调结果上传至人脸识别服务器进行识别。根据返回结果处理相应的业务逻辑。 注意:Demo中为了方便演示逻辑,直接请求的百度服务器,实际场景可将图片发送给自己的服务器,再由服务器发起识别请求,或者,把ak,sk放置在服务器上。客户端调用接口获取accessToken。保证账户信息安全。 identify方法比较简单,将UIImage转化为base64字符串,post到服务器接口。 常见问题Q:SDK license和ak/sk? Q:Android申请时需要填入打包签名的MD5,该MD5如何得来? Q:闸机场景选择多大分辨率? Q:检测距离太近怎么办? Q:怎么样更快检测到人脸? |