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 相关文章推荐
建立动态的WML站点(三)
Oct 09 PHP
PHP+MYSQL开发工具及资源收藏
Jan 02 PHP
一个简单的PHP&amp;MYSQL留言板源码
Jul 19 PHP
PHP 程序员也要学会使用“异常”
Jun 16 PHP
PHP 开发环境配置(Zend Studio)
Apr 28 PHP
php 搜索框提示(自动完成)实例代码
Feb 05 PHP
关于PHPDocument 代码注释规范的总结
Jun 25 PHP
PHP error_log()将错误信息写入一个文件(定义和用法)
Oct 25 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
Nov 27 PHP
详解WordPress开发中wp_title()函数的用法
Jan 07 PHP
PHP排序算法之希尔排序(Shell Sort)实例分析
Apr 20 PHP
phpStudy vscode 搭建debug调试的教程详解
Jul 28 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 win下Socket方式发邮件类
2009/08/21 PHP
php定时计划任务的实现方法详解
2013/06/06 PHP
Zend Framework教程之路由功能Zend_Controller_Router详解
2016/03/07 PHP
PHP封装的mysqli数据库操作类示例
2019/02/16 PHP
laravel validate 设置为中文的例子(验证提示为中文)
2019/09/29 PHP
innerText和innerHTML 一些问题分析
2009/05/18 Javascript
弹出最简单的模式化遮罩层的js代码
2013/12/04 Javascript
js通过元素class名字获取元素集合的具体实现
2014/01/06 Javascript
escape函数解决js中ajax传递中文出现乱码问题
2014/10/30 Javascript
Javascript中获取对象的原型对象的方法小结
2015/02/25 Javascript
jquery读取xml文件实现省市县三级联动的方法
2015/05/29 Javascript
JavaScript+html5 canvas绘制的圆弧荡秋千效果完整实例
2016/01/26 Javascript
javascript实现数字倒计时特效
2016/03/30 Javascript
在IE8上JS实现combobox支持拼音检索功能
2016/05/23 Javascript
关于数据与后端进行交流匹配(点亮星星)
2016/08/03 Javascript
使用jQuery的toggle()方法对HTML标签进行显示、隐藏的方法(示例)
2016/09/01 Javascript
JS+WCF实现进度条实时监测数据加载量的方法详解
2017/12/19 Javascript
Vue的watch和computed方法的使用及区别介绍
2018/09/06 Javascript
vue-router实现编程式导航的代码实例
2019/01/19 Javascript
Vue中跨域及打包部署到nginx跨域设置方法
2019/08/26 Javascript
在Python的Django框架中获取单个对象数据的简单方法
2015/07/17 Python
Python编程实现双链表,栈,队列及二叉树的方法示例
2017/11/01 Python
Python装饰器原理与用法分析
2018/04/30 Python
python cv2读取rtsp实时码流按时生成连续视频文件方式
2019/12/25 Python
Python使用pyexecjs代码案例解析
2020/07/13 Python
Python爬取数据并实现可视化代码解析
2020/08/12 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
2021/02/25 Python
CSS3区域模块region相关编写示例
2015/08/28 HTML / CSS
宿舍打麻将检讨书
2014/01/24 职场文书
保护环境演讲稿
2014/05/10 职场文书
关爱留守儿童标语
2014/06/18 职场文书
安全目标管理责任书
2014/07/25 职场文书
六一儿童节活动总结
2014/08/27 职场文书
秋季运动会演讲稿
2014/09/16 职场文书
自主招生自荐信格式范文
2015/03/25 职场文书
画展观后感
2015/06/17 职场文书