TP5 结合百度 AI 人脸识别技术教程
百度AI开放平台:http://ai.baidu.com/百度API文档-v3-人脸检测:https://ai.baidu.com/docs#/Face-Detect-V3/top人脸识别接口分为V2和V3两个版本,本文档为V3版本接口的说明文档,请确认您在百度云后台获得的是V3版本接口权限辨别接口版本的方法是:在百度云后台进入【应用列表】,点击【应用名称】,在【API列表】中可以看到【请求地址】,若请求地址中带有【v3】标识,则您具有的是v3权限;若请求地址中带有【v2】标识,则您具有的是v2权限能力介绍接口能力● 人脸检测:检测图片中的人脸并标记出位置信息;●人脸关键点:展示人脸的核心关键点信息,及150个关键点信息。●人脸属性值:展示人脸属性信息,如年龄、性别等。●人脸质量信息:返回人脸各部分的遮挡、光照、模糊、完整度、置信度等信息。业务应用典型应用场景:如人脸属性分析,基于人脸关键点的加工分析,人脸营销活动等。鉴权认证机制针对HTTP API调用者,百度AIP开放平台使用OAuth2.0授权调用开放API,调用API时必须在URL中带上accesss_token参数,获取Access Token的流程如下:获取Access Token请求URL数据格式向授权服务地址https://aip.baidubce.com/oauth/2.0/token发送请求(推荐使用POST),并在URL中带上以下参数:●grant_type: 必须参数,固定为client_credentials;●client_id: 必须参数,应用的API Key;●client_secret: 必须参数,应用的Secret Key;例如:●服务器返回的JSON文本参数如下:●access_token: 要获取的Access Token;●expires_in: Access Token的有效期(秒为单位,一般为1个月);其他参数忽略,暂时不用;例如:{
"refresh_token":"25.b55fe1d287227ca97aab219bb249b8ab.315360000.1798284651.282335-8574074",
"expires_in":2592000,
"scope":"publicwise_adapt",
"session_key":"9mzdDZXu3dENdFZQurfg0Vz8slgSgvvOAUebNFzyzcpQ5EnbxbF+hfG9DQkpUVQdh4p6HbQcAiz5RmuBAja1JJGgIdJI",
"access_token":"24.6c5e1ff107f0e8bcef8c46d3424a0e78.2592000.1485516651.282335-8574074",
"session_secret":"dfac94a3489fe9fca7c3221cbf7525ff"
}若请求错误,服务器将返回的JSON文本包含以下参数:●error: 错误码;关于错误码的详细信息请参考下方鉴权认证错误码。●error_description: 错误描述信息,帮助理解和解决发生的错误。例如认证失败返回:{
"error":"invalid_client",
"error_description":"unknownclientid"
}鉴权认证错误码●errorerror_description解释●invalid_clientunknown client idAPI Key不正确●invalid_clientClient authentication failedSecret Key不正确获取 access_token 后,使用HTTPS POST发送:https://aip.baidubce.com/rest/2.0/face/v3/detect?access_token=24.f9ba9c5341b67688ab5added8bc91dec.2592000.1485570332.282335-8574074请求说明注意事项:●请求体格式化:Content-Type为application/json,通过json格式化请求体。●Base64编码:请求的图片需经过Base64编码,图片的base64编码指将图片数据编码成一串字符串,使用该字符串代替图像地址。您可以首先得到图片的二进制,然后用Base64格式编码即可。需要注意的是,图片的base64编码是不包含图片头的,如data:image/jpg;base64,●图片格式:现支持PNG、JPG、JPEG、BMP,不支持GIF图片●人脸识别接口分为V2和V3两个版本请求示例HTTP方法:POST请求URL:https://aip.baidubce.com/rest/2.0/face/v3/detectURL参数:参数值access_token通过API Key和Secret Key获取的access_token,参考“Access Token获取”Header:参数值Content-Typeapplication/jsonBody中放置请求参数,参数详情如下:请求参数参数必选类型说明image是string图片信息(总数据大小应小于10M),图片上传方式根据image_type来判断image_type是string图片类型BASE64:图片的base64值,base64编码后的图片数据,编码后的图片大小不超过2M;URL:图片的 URL地址( 可能由于网络等原因导致下载图片时间过长);FACE_TOKEN: 人脸图片的唯一标识,调用人脸检测接口时,会为每个人脸图片赋予一个唯一的FACE_TOKEN,同一张图片多次检测得到的FACE_TOKEN是同一个。face_field否string包括age,beauty,expression,face_shape,gender,glasses,landmark,landmark150,race,quality,eye_status,emotion,face_type信息逗号分隔. 默认只返回face_token、人脸框、概率和旋转角度max_face_num否uint32最多处理人脸的数目,默认值为1,仅检测图片中面积最大的那个人脸;最大值10,检测图片中面积最大的几张人脸。face_type否string人脸的类型LIVE表示生活照:通常为手机、相机拍摄的人像图片、或从网络获取的人像图片等IDCARD表示身份证芯片照:二代身份证内置芯片中的人像照片WATERMARK表示带水印证件照:一般为带水印的小图,如公安网小图CERT表示证件照片:如拍摄的身份证、工卡、护照、学生证等证件图片默认LIVEliveness_control否string活体控制检测结果中不符合要求的人脸会被过滤NONE: 不进行控制LOW:较低的活体要求(高通过率 低攻击拒绝率)NORMAL: 一般的活体要求(平衡的攻击拒绝率, 通过率)HIGH: 较高的活体要求(高攻击拒绝率 低通过率)默认NONE说明:face_field参数,默认只返回人脸框、概率和旋转角度,age等更多属性,请在此参数中添加。请求示例代码提示一:使用示例代码前,请记得替换其中的示例Token、图片地址或Base64信息。提示二:部分语言依赖的类或库,请在代码注释中查看下载地址。PHP代码: