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 一元分词算法
Nov 30 PHP
基于PHP服务端图片生成缩略图的方法详解
Jun 20 PHP
解析php php_openssl.dll的作用
Jul 01 PHP
如何用PHP来实现一个动态Web服务器
Jul 29 PHP
php将远程图片保存到本地服务器的实现代码
Aug 03 PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
Oct 10 PHP
PHP使用PDO操作数据库的乱码问题解决方法
Apr 08 PHP
深入浅析PHP无限极分类的案例教程
May 09 PHP
php单链表实现代码分享
Jul 04 PHP
thinkPHP框架实现图像裁剪、缩放、加水印的方法
Mar 14 PHP
浅析PHP中的闭包和匿名函数
Dec 25 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
Sep 17 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
Windows下的PHP5.0安装配制详解
2006/09/05 PHP
PHP 字符串 小常识
2009/06/05 PHP
网页的分页下标生成代码(PHP后端方法)
2016/02/03 PHP
thinkPHP5 tablib标签库自定义方法详解
2017/05/10 PHP
CSS+JS构建的图片查看器
2006/07/22 Javascript
jQuery-Easyui 1.2 实现多层菜单效果的代码
2012/01/13 Javascript
jQuery教程 $()包装函数来实现数组元素分页效果
2013/08/13 Javascript
父元素与子iframe相互获取变量和元素对象的具体实现
2013/10/15 Javascript
js实现数组转换成json
2015/06/26 Javascript
Bootstrap每天必学之导航条
2015/11/27 Javascript
JS查找英文文章中出现频率最高的单词
2017/03/20 Javascript
详解Vue.js分发之作用域槽
2017/06/13 Javascript
详解vue-router 路由元信息
2017/09/13 Javascript
vue获取DOM元素并设置属性的两种实现方法
2017/09/30 Javascript
vue 中的keep-alive实例代码
2018/07/20 Javascript
Angularjs Ng_repeat中实现复选框选中并显示不同的样式方法
2018/09/12 Javascript
js获取 gif 的帧数的代码实例
2019/09/10 Javascript
ES6对象操作实例详解
2020/05/23 Javascript
小程序点餐界面添加购物车左右摆动动画
2020/09/23 Javascript
Python中splitlines()方法的使用简介
2015/05/20 Python
pandas string转dataframe的方法
2018/04/11 Python
详解配置Django的Celery异步之路踩坑
2018/11/25 Python
对Python中实现两个数的值交换的集中方法详解
2019/01/11 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
2019/11/11 Python
基于Python的OCR实现示例
2020/04/03 Python
使用pymysql查询数据库,把结果保存为列表并获取指定元素下标实例
2020/05/15 Python
如何把外网python虚拟环境迁移到内网
2020/05/18 Python
Keras之fit_generator与train_on_batch用法
2020/06/17 Python
解析python 中/ 和 % 和 //(地板除)
2020/06/28 Python
python 用struct模块解决黏包问题
2020/11/07 Python
HTML5 移动页面自适应手机屏幕四类方法总结
2017/08/17 HTML / CSS
委托书样本
2014/04/02 职场文书
民主评议政风行风整改方案
2014/09/17 职场文书
出国签证在职证明范本
2014/11/24 职场文书
国家助学金感谢信
2015/01/21 职场文书
python通过新建环境安装tfx的问题
2022/05/20 Python