本文为大家分享了微信小程序实现人脸检测的具体代码,供大家参考,具体内容如下

因为本文章的人脸检测技术运用的是百度云人工智能,首先要有百度云的账号。

近期,人脸识别已经升级到了V3,开启了测试,所以也依照v3文档进行了更新;

1、人脸识别的每个接口,都需要用到百度云的access_token,首先获取 access-token ,一个月之后access_token过期;可以将获取的存入文件,再次引用时可以判断其是否过期,然后引用或者重新获取:

//获取access_token

function request_post($url = '', $param = '') {

if (empty($url) || empty($param)) {

return false;

}

$postUrl = $url;

$curlPost = $param;

$curl = curl_init();//初始化curl

curl_setopt($curl, CURLOPT_URL,$postUrl);//抓取指定网页

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, $curlPost);

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);

curl_setopt($curl, CURLOPT_SSLVERSION, 1);

$data = curl_exec($curl);//运行curl

curl_close($curl);

return $data;

}

function access_token(){

$file= __DIR__ .'\access_token';

if(file_exists($file)){

$str=file_get_contents($file);

try{

$arr=json_decode($str,true);

if(is_array($arr)){

$totime=$arr['totime'];

if($totime>time()){

return $arr['access_token'];

exit;

}

}

}catch(Exception $e){

}

}

$url = 'https://aip.baidubce.com/oauth/2.0/token';

$post_data['grant_type'] = 'client_credentials';

$post_data['client_id'] = 'fRuY7eOPxBzIHf4qxiYeQOHT';

$post_data['client_secret'] = 'oe7L7aPc5rcKfSewvb5h6xFX2a8dEQN1';

$o = "";

foreach ( $post_data as $k => $v )

{

$o.= "$k=" . urlencode( $v ). "&" ;

}

$post_data = substr($o,0,-1);

$res = request_post($url, $post_data);

$arr=json_decode($res,true);

if(isset($arr['access_token']) && isset($arr['expires_in'])){

$data['access_token'] = $arr['access_token'];

$data['totime']= time() + $arr['expires_in'] - 86400;

file_put_contents($file, json_encode($data));

return $arr['access_token'];

}else{

return false;

}

}

2、创建初始化方法,需要用到 Secret_Key、API_Key、App_ID,为用户基本资料;

private function init_face(){

$App_ID = '用户appid';

$API_Key = '用户api_key';

$Secret_Key = '用户secret_key';

$dir = APP_PATH.'/face-sdk/';

require_once $dir."AipFace.php";

return new \AipFace($App_ID, $API_Key, $Secret_Key);

}

(thinkPHP框架)

将所需检测图片放入文件;具体参数可依照百度云人脸识别v3文档查看。

// 人脸检测

public function facevalid(){

$file = './Upload/2018-05-17/1.png';

if (!file_exists($file)) {

die('文件不存在!');

}

$image = base64_encode(file_get_contents($file));

$imageType = 'BASE64';

//如果有可选参数

$options = array();

$options['max_face_num'] = 2;

$client = $this->init_face();

$ret = $client->detect($image,$imageType,$options);

// print_r($ret);

if ($ret['error_code'] == 0) {//有人脸

$result = $ret['result'];

$face_num = $result['face_num'];

if ($face_num==1) { //人脸数量为1

$face_probability = $result['face_list'][0]['face_probability'];

if ($face_probability==1) { //可靠性为1

$user_id = myguid();

$group_id = $this->face_group();

$res = $client->addUser($image,'BASE64',$group_id,$user_id);

// print_r($res);

if ($res['error_code']==0) {

echo "人脸检测完成,并入库";

}

}else{

die('可靠性为:'.$face_probability);

}

}else{

die('人脸数大于1');

}

}else{

die('没有人脸');

}

}

// 获取组

private function face_group(){

$groupname = '10001';

$client = $this->init_face();

$ret = $client->getGroupList();

if ($ret['error_code'] == 0) {

$grouplist = $ret['result']['group_id_list'];

if (in_array($groupname, $grouplist)) {

return $groupname;

}else{

$ret = $client->groupAdd($groupname);

if ($ret['error_code'] == 0) {

return $groupname;

}else{

return false;

}

}

}else{

return false;

}

}

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

python人脸检测与微信小程序_微信小程序实现人脸检测功能相关推荐

  1. 如何微信链接自定义_微信链接自定义

    微信在分享第三方网站是不显示缩略图和描述的,如下图所示 微信链接自定义_微信链接自定义 要解决这个问题必须调用微信JS-SDK接口,下面讲一下如何调用接口. 第一部分 准备步骤 注册微信公众号. 通过 ...

  2. 用python写一个抽奖小程序_微信小程序抽奖助手一键参与抽奖

    写在前头的话 最近"沉迷"于微信一款小程序,就是抽奖助手.反正这个抽奖几乎不用什么成本, 就是一个个抽奖活动点进去点击参与抽奖比较麻烦.要是如果有个程序一键解决这些步骤,那就是零成 ...

  3. python登录微信pc版_微信PC版2.9.0测试版更新:新增小程序面板

    3月26日讯,近日,腾讯微信团队推送了微信PC版2.9.0的公共测试更新,此次更新增加了不少实用功能,对过往的许多痛点也有所改进,个人非常期待微信2.9.0版本的正式更新. 作为国民级的通讯产品,腾讯 ...

  4. mysql传数据到微信小程序_微信小程序直播 数据同步与转存

    本文已同步到专业技术网站 www.sufaith.com, 该网站专注于前后端开发技术与经验分享, 包含Web开发.Nodejs.Python.Linux.IT资讯等板块. 本教程所用项目框架为egg ...

  5. 智慧物业小程序_物业小程序物业微信小程序目前功能最全的物业小程序

    原标题:物业小程序物业微信小程序目前功能最全的物业小程序 以物业管理为核心,打造智慧社区云微信小程序管理平台,已入驻腾讯海纳社区,物业微信小程序,解决传统物业管理难,乱差的问题,利用微信小程序提供一整 ...

  6. 小程序 微信统计表格_微信小程序简单的数据表格及查询功能

    简介: 此项目是一个前后端分离的小demo, 开发工具:idea+微信小程序开发工具 前端:界面布局样式和js的跳转 后端:依靠SpringBoot的业务逻辑层 项目的码云地址: 微信开发工具的使用和 ...

  7. webview 个人小程序_微信小程序新增Webview它是什么东西?

    原标题:微信小程序新增Webview,它是什么东西? 今天刚刚给客户做完案子,正准备去睡觉.2017 今天刚刚给客户做完案子,正准备去睡觉.2017年11月3日 11:29看到了微信公众平台推送的小程 ...

  8. core和node开发小程序_成都小程序开发:微信小程序开发要多少钱?

    定制开发一个微信小程序要多少钱呢? 成都小程序开发需要多少钱,成都小程序定制多少钱,成都小程序开发获得报价 微信小程序背靠腾讯的亿级流量,有着非常强大的线上引流功能,目前微信小程序的开发越来越火爆,选 ...

  9. input ios问题 小程序_微信小程序开发常见问题汇总

    原标题:微信小程序开发常见问题汇总 1.域名必须是https 非https的域名不被微信小程序允许. 2.input组件placeholder字体颜色 卸载placeholder-class里面的co ...

  10. qml如何发布程序_微信小程序如何发布?公司和个人注册流程科普

    如今制作微信小程序已经是非常简单的事了,即使是完全不懂技术的小白,也能利用小程序制作工具快速生成小程序,基本上选一个模板就能快速把页面搭建好. 不过,虽然小程序页面搭建很简单,但还有不少人不知道页面搭 ...

最新文章

  1. umi搭建react+antd项目(三)Mock 数据--模拟数据
  2. 使用ulimit设置文件最大打开数
  3. 2013-9 OWASP论坛
  4. 使用HTML5+CSS3制作圆角内发光按钮----示例
  5. android代码混淆作用,Android分享:代码混淆那些事
  6. 创新品牌体验团队_如何推动软件团队创新
  7. 将中国标准时间转换成标准格式的代码
  8. mac系统升级 brew 是用不了_PostgreSQL数据库默默升级,导致数据库服务不可用
  9. oracle中imp命令具体解释
  10. LeetCode 718最长重复子数组
  11. 新编16 32位微型计算机原理及应用,新编16/32位微型计算机原理及应用(第5版)...
  12. C++控制台游戏-小镇物语正式版 V1.7.21BUG修复版【可存档!!!】
  13. 词频统计 matlab,5年cvpr论文词频分析,今年最火词——深度学习
  14. 你知道如何从零开始学c++游戏编程吗
  15. 计算机中 空间局限性(Spatial Locality)与时间局限性(Temporal Locality)
  16. 大脑--物质与意识之综合体,是物质有双重现象(物性与灵性)的实证
  17. 深度学习——图像分类相关模型一览
  18. 地震偏移成像matlab,地震偏移成像基本原理概述.ppt
  19. 动态规划之硬币面值组合问题
  20. 全网页都变灰了,这是怎么实现的?

热门文章

  1. 鲸鱼优化算法(Whale Optimization Algorithm,WOA)
  2. 【CF665E】 Beautiful Subarrays
  3. 给大家分享两款实用的音乐播放器
  4. 修改host文件提示拒绝访问解决
  5. SQL Server 数据库之使用事务
  6. 回文日期2020 C语言
  7. 关于HttpWebRequest AddRange 方法的参数
  8. 阿里云重启mysql_阿里云RDS Mysql 5.6 ECS自建从库(不锁表,不重启)
  9. 从TrackPopupMenu(创建快捷菜单的函数)看菜单消息路由机制
  10. 传iPhone5或于6月20日前上市