PHP 调用百度人脸检测

 本文章主要介绍人脸检测API能力、应用场景、请求实例、参数说明。

目录

接口能力

应用场景

说明

下载SDK

请求参数 

请求实例

返回参数

返回示例

总结


接口能力

人脸检测:检测图片中的人脸并标记出位置信息。

人脸关键点:展示人脸的核心关键点信息,及150个关键点信息。

人脸属性值:展示人脸属性信息,如年龄、性别等。

人脸质量信息:返回人脸各部分的遮挡、光照、模糊、完整度、置信度等信息。

应用场景

如人脸属性分析,基于人脸关键点的加工分析,人脸营销活动等。

说明

检测响应速度,与图片中人脸数量相关,人脸数量较多时响应时间会有些许延长。

下载SDK

支持PHP版本:5.3+

人脸识别 PHP SDK目录结构

下载SDK 网址 

请求参数 

参数

必选

类型

说明

image

string

图片信息(总数据大小应小于10M),图片上传方式根据image_type来判断

image_type

string

图片类型
BASE64:图片的base64值,base64编码后的图片数据,编码后的图片大小不超过2M;
URL:图片的 URL地址( 可能由于网络等原因导致下载图片时间过长);
FACE_TOKEN: 人脸图片的唯一标识,调用人脸检测接口时,会为每个人脸图片赋予一个唯一的FACE_TOKEN,同一张图片多次检测得到的FACE_TOKEN是同一个。

face_field

string

包括age,expression,face_shape,gender,glasses,landmark,landmark150,
quality,eye_status,emotion,face_type,mask,spoofing信息
逗号分隔. 默认只返回face_token、人脸框、概率和旋转角度

max_face_num

uint32

最多处理人脸的数目,默认值为1,根据人脸检测排序类型检测图片中排序第一的人脸(默认为人脸面积最大的人脸),最大值120

face_type

string

人脸的类型
LIVE表示生活照:通常为手机、相机拍摄的人像图片、或从网络获取的人像图片等
IDCARD表示身份证芯片照:二代身份证内置芯片中的人像照片
WATERMARK表示带水印证件照:一般为带水印的小图,如公安网小图
CERT表示证件照片:如拍摄的身份证、工卡、护照、学生证等证件图片
默认LIVE

liveness_control

string

活体控制 检测结果中不符合要求的人脸会被过滤
NONE: 不进行控制
LOW:较低的活体要求(高通过率 低攻击拒绝率)
NORMAL: 一般的活体要求(平衡的攻击拒绝率, 通过率)
HIGH: 较高的活体要求(高攻击拒绝率 低通过率)
默认NONE

face_sort_type

int

人脸检测排序类型
0:代表检测出的人脸按照人脸面积从大到小排列
1:代表检测出的人脸按照距离图片中心从近到远排列
默认为0

display_corp_image

int

是否显示检测人脸的裁剪图base64值
0:不显示(默认)
1:显示
当取值为1时,max_face_num字段的取值上限按5计算,即最多可返回5张人脸的裁剪图

说明:face_field参数,默认只返回人脸框、概率和旋转角度,age等更多属性,请在此参数中添加。

请求实例

/*
 * 人脸识别实例
 * @Yjl
 */

require_once 'AipFace.php';

// 应用API ID
const APP_ID = '应用API ID';

// 应用API KEY
const API_KEY = '应用API KEY';

// 应用 SECRET KEY
const SECRET_KEY = '应用 SECRET KEY';

class FaceAuth{

    /**
     * 人脸检测
     * author: YJL
     * @param $imageType
     * @param $image:取决于image_type参数,传入 BASE64字符串或URL字符串或FACE_TOKEN字符串
     * @return false|string
     */
    public function faceCheck($imageType, $image)
    {
        // 传入必须参数 实例化类
        $client = new AipFace(APP_ID, API_KEY, SECRET_KEY);

        // 可选参数
        $options = array(
            'face_field' => 'gender,age,emotion,face_type',
            'max_face_num' => 2 // 最多处理人脸的数目,默认为1
        );

        // 调用人脸检测
        $data = $client->detect($image, $imageType, $options);
        // 查看 restult 的值 为空表示不含人脸
        return json_encode($data);
    }

}

$obj = new FaceAuth();

// 人脸检测-图片二进制
/*$image = base64_encode(file_get_contents('./img/1.jpg'));
$imageType = 'BASE64';
print_r($obj->faceCheck($imageType, $image));*/

// 人脸检测-图片链接
$imageType = 'URL';
$image = 'https://pic.3gbizhi.com/2019/1010/20191010025913837.jpg';
print_r($obj->faceCheck($imageType, $image));

返回参数

并非列举全部返回字段,因为字段有很多但并非都需要。

只是列举了默认返回字段和一部分需要face_field 参数请求后返回字段。

若觉得不全,可查看官网文档。

字段

必选

类型

说明

face_num

int

检测到的图片中的人脸数量

face_list

array

人脸信息列表,具体包含的参数参考下面的列表。

+face_token

string

人脸图片的唯一标识 (人脸检测face_token有效期为60min)

+location

array

人脸在图片中的位置

++left

double

人脸区域离左边界的距离

++top

double

人脸区域离上边界的距离

++width

double

人脸区域的宽度

++height

double

人脸区域的高度

++rotation

int64

人脸框相对于竖直方向的顺时针旋转角,[-180,180]

+face_probability

double

人脸置信度,范围【0~1】,代表这是一张人脸的概率,0最小、1最大。其中返回0或1时,数据类型为Integer

+angle

array

人脸旋转角度参数

++yaw

double

三维旋转之左右旋转角[-90(左), 90(右)]

++pitch

double

三维旋转之俯仰角度[-90(上), 90(下)]

++roll

double

平面内旋转角[-180(逆时针), 180(顺时针)]

+age

double

年龄 ,当face_field包含age时返回

+expression

array

表情,当 face_field包含expression时返回

++type

string

none:不笑;smile:微笑;laugh:大笑

++probability

double

表情置信度,范围【0~1】,0最小、1最大。

+gender

array

性别,face_field包含gender时返回

++type

string

male:男性 female:女性

++probability

double

性别置信度,范围【0~1】,0代表概率最小、1代表最大。

+emotion

array

情绪 face_field包含emotion时返回

++type

string

angry:愤怒 disgust:厌恶 fear:恐惧 happy:高兴 sad:伤心 surprise:惊讶 neutral:无表情 pouty: 撅嘴 grimace:鬼脸

++probability

double

情绪置信度,范围0~1

+face_type

array

真实人脸/卡通人脸 face_field包含face_type时返回

++type

string

human: 真实人脸 cartoon: 卡通人脸

++probability

double

人脸类型判断正确的置信度,范围【0~1】,0代表概率最小、1代表最大。

返回示例

{
    "error_code":0,
    "error_msg":"SUCCESS",
    "log_id":3359851047,
    "timestamp":1681358159,
    "cached":0,
    "result":{
        "face_num":1,
        "face_list":[
            {
                "face_token":"0b7add2c6f3e0c87d2a6d21e3bd9b920",
                "location":{
                    "left":276.96,
                    "top":266.73,
                    "width":464,
                    "height":476,
                    "rotation":0
                },
                "face_probability":1,
                "angle":{
                    "yaw":2.78,
                    "pitch":-0.26,
                    "roll":-3.95
                },
                "gender":{
                    "type":"female",
                    "probability":1
                },
                "age":22,
                "emotion":{
                    "type":"neutral",
                    "probability":0.99
                },
                "face_type":{
                    "type":"human",
                    "probability":0.96
                }
            }
        ]
    }
}

总结

主要介绍人脸检测API能力、应用场景及通过调用远程图片进行人脸检测并展示返回参数。

剩下的就是放到项目中与真实业务场景结合进行使用。

相关文章:

 《百度人脸识别应用注册及认证》

《PHP调用百度人脸对比》

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JSON_L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值