PHP 调用百度人脸检测

news2024/10/6 20:29:46

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

接口能力

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

    人脸关键点:展示人脸的核心关键点信息,及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
                }
            }
        ]
    }
}

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

相关文章:

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

《PHP调用百度人脸对比》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/418837.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[MAUI 项目实战] 手势控制音乐播放器(四):圆形进度条

文章目录关于图形绘制创建自定义控件使用控件创建专辑封面项目地址我们将绘制一个圆形的音乐播放控件,它包含一个圆形的进度条、专辑页面和播放按钮。关于图形绘制 使用MAUI的绘制功能,需要Microsoft.Maui.Graphics库。 Microsoft.Maui.Graphics 是一个…

【技术】《Netty》从零开始学netty源码(三十七)之ByteBufAllocator

ByteBufAllocator 在channel的配置类中有一个属性allocator,我们知道netty有自己的缓冲区,可以使用该缓存分配器来分配所需的缓存。在config类中默认使用ByteBufAllocator.DEFAULT,它的初始化过程如下: 在开始分析PooledByteBufA…

基于 QT 开发 FLIPPED :简易且漂亮的跨平台截图贴图软件

文章目录FLIPPED运行预览视频演示截图演示特性快捷键架构思路思路细节打磨实际问题解决方案编译依赖WindowsMacOS / Linux运行效果作者贡献者反馈下载安装包系列地址简 述: 新开发的一款跨平台的截图贴图的软件作品, FLIPPED:Simple and beautiful cross…

基于Web的智慧LNG加气站2D组态控制系统

LNG(Liquefied Natural Gas),即液化天然气的英文缩写。LNG是通过在常压下气态的天然气,经过预处理,脱除重烃、硫化物、二氧化碳和水等杂质后,冷却至-162℃,使之凝结成液体。LNG无色无毒无味,是天然气经净化…

算法分析与设计—分治法

分治者,分而治之也。概述分治法也称为分解法、分治策略等。分治法算法思想如下:(1) 将一个问题划分为同一类型的若干子问题,子问题最好规模相同。(2) 对这些子问题求解(一般使用递归方法,但在问题规模足够小时&#xf…

fileinclude(通过cookie赋值的文件包含)

打开链接,提示flag在flag.php里 内容里还有一个路径/var/www/html/index.php,猜测flag.php应该也是在这个路径下 Ctrlu查看网页源码 代码中发现 include($lan.".php"); 可知这里存在文件包 且包含与lan的值有关 由代码 $lan $_COOKIE[lang…

安装kafka及一些命令

1,先把压缩包放到/opt/install目录下 2,解压,更名 解压:[rootsiwen install]# tar -zxf kafka_2.12-2.8.0.tgz -C ../soft 更名:[rootsiwen soft]# mv kafka_2.12-2.8.0/ kafka212 3,配置文件 cd opt/so…

讯飞 语音唤醒 Android SDK

语音唤醒 Android SDK 文档 | 讯飞开放平台文档中心https://www.xfyun.cn/doc/asr/awaken/Android-SDK.html前往控制台,设置唤醒关键词: 控制台-讯飞开放平台https://console.xfyun.cn/services/awaken注意,可以对唤醒词进行评估&#xff0c…

游戏开发需要学什么

游戏开发可以说是当下最热门的专业了,不过这一行业虽然很火热,但也有一定的竞争压力。这个行业需要大量的人才,而且游戏开发这个行业目前还处于初级阶段,所以发展空间还是很大的。现在有很多人都想进入这个行业,但却不…

ESP32-IDF开发笔记 | 03 - 使用SPI外设驱动ST7789 SPILCD

一、硬件说明 ST7789屏幕引脚ESP32C3F引脚3V33V3GNDGNDMOSIIO_07CLKIO_06DCIO_08RSTIO_04BLIO_05 二、ESP32的SPI外设 1. 外设功能 ESP32-C3具有三个SPI接口(SPI0、SPI1和SPI2)。 SPI0和SPI1只能配置为在SPI内存模式下操作,而SPI2可以配置为在SPI内存和通用SPI模…

2023年MathorCup数学建模C题电商物流网络包裹应急调运与结构优化问题解题全过程

2023年第十三届MathorCup高校数学建模挑战赛 C题 电商物流网络包裹应急调运与结构优化问题 原题再现: 电商物流网络由物流场地(接货仓、分拣中心、营业部等)和物流场地之间的运输线路组成,如图 1 所示。受节假日和“双十一”、“…

手机应用开发之如何利用蓝牙与HC-05通信?

文章目录0、引言1、创建工程2、准备真机调试3、应用布局4、代码编写5、功能演示0、引言 本文通过AndroidStudio开发手机应用软件,实现蓝牙连接功能,并且能发送消息给HC-05蓝牙,也能接收HC-05回传的消息。本文在【AndroidStudio如何进行手机应…

C++基础学习笔记(八)——提高编程PART3

参考链接:https://www.bilibili.com/video/BV1et411b73Z/p237&spm_id_frompageDriver&vd_sourceb4d9cee68649c8adcb1e266f7147cd5c 4 STL- 函数对象 4.1 函数对象 4.1.1 函数对象概念 概念: 重载函数调用操作符的类,其对象常称为…

STL的并行遍历:for_each(依赖TBB)和omp parallel

文章目录OMP parallelOpenMP安装OpenMP示例1) OMP Hello World2) OMP for 并行3. OMP 官方示例4) map使用OMP遍历TBB的安装和使用Gcc9的安装TBB 安装TBB使用在图像处理等应用中,我们经常需要对矩阵,大数量STL对象进行遍历操作,因此并行化对算…

R语言与作物模型(以DSSAT模型为例)融合应用

随着基于过程的作物生长模型(Process-based Crop Growth Simulation Model)的发展,R语言在作物生长模型和数据分析、挖掘和可视化中发挥着越来越重要的作用。想要成为一名优秀的作物模型使用者与科研团队不可或缺的人才,除了掌握对…

MySQL存储过程 if、case、while、loop、游标、变量、条件处理程序

存储过程是事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程可以简化很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。 存储过程思想上很简单,就是数据库 SQL 语言层面的代…

barret reduction原理详解及硬件优化

背景介绍 约减算法,通常应用在硬件领域,因为模运算mod是一个除法运算,在硬件中实现速度会比乘法慢的多,并且还会占用大量资源,因此需要想办法用乘法及其它简单运算来替代模运算。模约减算法可以利用乘法、加法和移位等…

怎么评价2023年第十三届MathorCup高校数学建模挑战赛?

文章目录赛题思路选题建议1 竞赛信息2 竞赛时间3 组织机构4 建模常见问题类型4.1 分类问题4.2 优化问题4.3 预测问题4.4 评价问题赛题思路 (赛题出来以后第一时间在CSDN分享) 选题建议 首先要注意,A、B题为研究生组可选题目,A…

还在用 if else 做参数校验?快来学习高级参数校验吧

文章目录一、前言二、自定义校验2.1 定义 GenderArrayValuable 接口2.2 定义性别 GenderEnum 枚举类2.3 自定义 GenderCheck 自定义约束注解2.4 自定义约束的校验器 GenderValidator2.5 定义 UserUpdateGenderDTO2.6 定义一个对外访问接口2.7 请求接口 进行验证三、总结一、前言…

从C出发 17 --- 函数调用

从表面上来看,函数就是一个代码片段,只不过说这个代码片段可以反复利用,通过调用的方式反复利用,通过函数调用,我们可以将参数传到函数所对应的代码片段里面,然后代码片段去处理这些参数,得到一…