PHP实现百度人脸识别


Posted in PHP onMay 06, 2019

PHP接入百度人脸识别,供大家参考,具体内容如下

1.注册百度开发者账号。

https://login.bce.baidu.com/?account= 注册登录成功后,进入控制台,在左边的导航栏找到产品-》人工智能-》人脸识别:

PHP实现百度人脸识别

创建应用。创建应用成功后拿到应用的API Key和Secret Key

2.接口调用-获取access token

调用人脸识别接口前需要获取access token,示例代码:

function execCurl($url, $param) {
 if (empty($url) || empty($param)) {
  return array('result' => false, 'err_msg' => 'url or param is null');
 }
 $curl = curl_init();//初始化curl
 curl_setopt($curl, CURLOPT_URL, $url);//抓取指定网页
 curl_setopt($curl, CURLOPT_HEADER, 0);//设置header
 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
 curl_setopt($curl, CURLOPT_POST, 1);//post提交方式
 curl_setopt($curl, CURLOPT_POSTFIELDS, $param);
 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
 $data = curl_exec($curl);//运行curl
 $curl_err_msg = curl_error($curl);
 curl_close($curl);
 if($data === false) {
  return array('result' => false, 'err_msg' => $curl_err_msg);
 }else {
  return array('result' => true, 'data' => $data);
 }
}
 
$url = 'https://aip.baidubce.com/oauth/2.0/token';
$param = array(
 'grant_type' => 'client_credentials',
 'client_id' => '你的API Key',
 'client_secret' => '你的Secret Key'
);
$result = execCurl($url, $param);

3.调用人脸检查接口

如果需要判断一张图片中的人脸,是否符合后续识别或者对比的条件,在请求时在face_field参数中请求quality。

下面示例是请求图文为base64转码字符串(转码不能包含头信息),也可以传图片网络地址,官方文档

示例代码:

function checkPictureToCheckFace($image_path, $access_token) {
 $url = 'https://aip.baidubce.com/rest/2.0/face/v3/detect?access_token=' . $access_token;
 $param = array(
  'image' => base64EncodeImage($image_path),
  'image_type' => 'BASE64',
  'face_field' => 'quality'
 );
 $param = json_encode($param);
 $result = execCurl($url, $param);
 if($result['result'] == false) return $result;
 $data = json_decode($result['data'], true);
 if($data['error_code'] != 0) return array('result' => false, 'err_msg' => '上传的人脸不符合要求,请重新上传五官清晰的真实头像');
 $err_result = array('result' => false, 'err_msg' => '上传的人脸不符合要求,请重新上传五官清晰的真实头像!');
 $quality = $data['result']['face_list'][0]['quality'];
 if($quality['occlusion']['left_eye'] > 0.6) return $err_result; // 左眼被遮挡的阈值
 if($quality['occlusion']['right_eye'] > 0.6) return $err_result; // 右眼被遮挡的阈值
 if($quality['occlusion']['nose'] > 0.7) return $err_result; // 鼻子被遮挡的阈值
 if($quality['occlusion']['mouth'] > 0.7) return $err_result; // 嘴巴被遮挡的阈值
 if($quality['occlusion']['left_cheek'] > 0.8) return $err_result; // 左脸颊被遮挡的阈值
 if($quality['occlusion']['right_cheek'] > 0.8) return $err_result; // 右脸颊被遮挡的阈值
 if($quality['occlusion']['chin_contour'] > 0.6) return $err_result; // 下巴被遮挡阈值
 if($quality['blur'] != 0 && $quality['blur'] > 0.7) return $err_result; // 模糊度范围 0是最清晰,1是最模糊
 if($quality['illumination'] < 40) return $err_result; // 光照范围 
 if($quality['completeness'] == 0) return $err_result; // 人脸完整度 0为人脸溢出图像边界,1为人脸都在图像边界内
 return array('result' => true);
}
 
function execCurl($url, $param) {
 if (empty($url) || empty($param)) {
  return array('result' => false, 'err_msg' => 'url or param is null');
 }
 $curl = curl_init();//初始化curl
 curl_setopt($curl, CURLOPT_URL, $url);//抓取指定网页
 curl_setopt($curl, CURLOPT_HEADER, 0);//设置header
 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
 curl_setopt($curl, CURLOPT_POST, 1);//post提交方式
 curl_setopt($curl, CURLOPT_POSTFIELDS, $param);
 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
 $data = curl_exec($curl);//运行curl
 $curl_err_msg = curl_error($curl);
 curl_close($curl);
 if($data === false) {
  return array('result' => false, 'err_msg' => $curl_err_msg);
 }else {
  return array('result' => true, 'data' => $data);
 }
}
 
function base64EncodeImage($image_path) {
 $base64_image = '';
 $image_info = getimagesize($image_path);
 $image_data = fread(fopen($image_path, 'r'), filesize($image_path));
 $base64_image = chunk_split(base64_encode($image_data));
 return $base64_image;
}
 
$image_path = 'image/1.jpg';
$access_token = '上一步的获取access token';
$result = checkPictureToCheckFace($image_path, $access_token);

判断是否符合人脸识别检查的字段说明:

PHP实现百度人脸识别

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
用php实现的下载css文件中的图片的代码
Feb 08 PHP
PHP中使用BigMap实例
Mar 30 PHP
php获取twitter最新消息的方法
Apr 14 PHP
php读取der格式证书乱码解决方法
Jun 22 PHP
php生成数字字母的验证码图片
Jul 14 PHP
php实现可运算的验证码
Nov 10 PHP
PHP获取昨天、今天及明天日期的方法
Feb 03 PHP
php 判断字符串编码是utf-8 或gb2312实例
Nov 01 PHP
php基于curl重写file_get_contents函数实例
Nov 08 PHP
php 判断过去离现在几年的函数(实例代码)
Nov 15 PHP
phpinfo()中Loaded Configuration File(none)的解决方法
Jan 16 PHP
redis+php实现微博(二)发布与关注功能详解
Sep 23 PHP
PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】
May 06 #PHP
PHP连接SQL Server的方法分析【基于thinkPHP5.1框架】
May 06 #PHP
php + WebUploader实现图片批量上传功能
May 06 #PHP
thinkPHP5.1框架路由::get、post请求简单用法示例
May 06 #PHP
ThinkPHP5.1框架页面跳转及修改跳转页面模版示例
May 06 #PHP
PHP实现八皇后算法
May 06 #PHP
Laravel中10个有用的用法小结
May 06 #PHP
You might like
一个典型的PHP分页实例代码分享
2011/07/28 PHP
thinkphp3.2.2前后台公用类架构问题分析
2014/11/25 PHP
PHP Smarty模版简单使用方法
2016/03/30 PHP
PHP实现的网站目录扫描索引工具
2016/09/08 PHP
对laravel的session获取与存取方法详解
2019/10/08 PHP
JavaScript中的new的使用方法与注意事项
2007/05/16 Javascript
javascript Array.sort() 跨浏览器下需要考虑的问题
2009/12/07 Javascript
复制Input内容的js代码_支持所有浏览器,修正了Firefox3.5以上的问题
2010/06/21 Javascript
jQuery中setTimeout的几种使用方法小结
2013/04/07 Javascript
js改变img标签的src属性在IE下没反应的解决方法
2013/07/23 Javascript
jquery 延迟执行实例介绍
2013/08/20 Javascript
struts2+jquery组合验证注册用户是否存在
2014/04/30 Javascript
jQuery异步验证用户名是否存在示例代码
2014/05/21 Javascript
jQuery使用之处理页面元素用法实例
2015/01/19 Javascript
JS实现三个层重叠点击互相切换的方法
2015/10/06 Javascript
理解Javascript文件动态加载
2016/01/29 Javascript
JavaScript+canvas实现七色板效果实例
2016/02/18 Javascript
angularjs实现对表单输入改变的监控(ng-change和watch两种方式)
2018/08/29 Javascript
Vue 第三方字体图标引入 Font Awesome的方法
2018/09/28 Javascript
详解node和ES6的模块导出与导入
2020/02/19 Javascript
js实现小时钟效果
2020/03/25 Javascript
vue实现PC端分辨率适配操作
2020/08/03 Javascript
使用python实现个性化词云的方法
2017/06/16 Python
Python实现的简单读写csv文件操作示例
2018/07/12 Python
python pyinstaller 加载ui路径方法
2019/06/10 Python
Python字符串对象实现原理详解
2019/07/01 Python
python初步实现word2vec操作
2020/06/09 Python
python绘制雷达图实例讲解
2021/01/03 Python
浅谈CSS3中的变形功能-transform功能
2017/12/27 HTML / CSS
澳大利亚波西米亚风连衣裙在线商店:Fortunate One
2019/04/01 全球购物
意大利包包和行李箱销售网站:Bagaglio.it
2021/03/02 全球购物
体育比赛口号
2014/06/09 职场文书
教师批评与自我批评范文
2014/10/15 职场文书
欢迎词怎么写
2015/01/23 职场文书
2015年创先争优工作总结
2015/05/23 职场文书
SQL Server——索引+基于单表的数据插入与简单查询【1】
2021/04/05 SQL Server