PHP实现微信小程序人脸识别刷脸登录功能


Posted in PHP onMay 24, 2018

首先我们先确认我们的百度云人脸库里已经上传了我们的个人信息照片

然后我们在后台写刷脸登陆的接口login我们要把拍照获取的照片存储到服务器

public function login(){ 
   // 上传文件路径 
   $dir = "./Uploads/temp/"; 
   if(!file_exists($dir)){ 
    mkdir($dir,0777,true); 
   } 
   $upload = new \Think\Upload(); 
   $upload->maxSize = 2048000 ;// 设置附件上传大小 
   $upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型 
   $upload->savepath = ''; 
   $upload->autoSub = false; 
   $upload->rootPath = $dir; // 设置附件上传根目录 
   // 上传单个文件 
   $info = $upload->uploadOne($_FILES['file']); 
   if(!$info) {// 上传错误提示错误信息 
     echo json_encode(array('error'=>true,'msg'=>$upload->getError()),JSON_UNESCAPED_UNICODE); 
   }else{// 上传成功 获取上传文件信息 
    $file = $dir . $info['savepath'].$info['savename']; 
    $image = base64_encode(file_get_contents($file)); 
    $client = $this->init_face(); 
    $options['liveness_control'] = 'NORMAL'; 
    $options['max_user_num'] = '1'; 
    $ret = $client->search($image,'BASE64','student',$options); 
    // echo json_encode($ret,JSON_UNESCAPED_UNICODE); 
    // exit; 
    if($ret['error_code']==0){ 
     $user = $ret['result']['user_list'][0]; 
     $no = $user['user_id']; 
     $score = $user['score']; 
     if($score>=95){ 
      $data = M('student')->where("no = '{$no}'")->find(); 
      $data['score'] = $score; 
      // $data['name'] = json_decode($data['name'],true); 
      // $data['sex'] = json_decode($data['sex'],true); 
      echo '识别成功' . json_encode($data,JSON_UNESCAPED_UNICODE); 
     }else{ 
      echo '识别失败' . $data['score']; 
     } 
    } 
   } 
  }

然后进行前台设计

<camera device-position="{{device?'back':'front'}}" flash="off" binderror="error" style="width: 100%; height: 300px;"></camera> 
    <view class="weui-cells__title" >开关</view> 
    <view class="weui-cells weui-cells_after-title"> 
      <view class="weui-cell weui-cell_switch"> 
        <view class="weui-cell__bd">切换摄像头</view> 
        <view class="weui-cell__ft" > 
          <switch bindtap="devicePosition" /> 
        </view> 
      </view> 
    </view> 
<button type="primary" bindtap="takePhoto">刷脸登录</button>

我们还可以控制相机的前后镜头

devicePosition() { 
this.setData({ 
 device: !this.data.device, 
}) 
console.log("当前相机摄像头为:", this.data.device ? "后置" : "前置"); 
camera() { 
 let { ctx, type, startRecord } = this.data; }, 
data: { 
 src: null, 
},

在js里面调用接口

takePhoto() { 
   const ctx = wx.createCameraContext() 
   ctx.takePhoto({ 
    quality: 'high', 
    success: (res) => { 
     this.setData({ 
      src: res.tempImagePath 
     }) 
     console.log(res) 
     wx.uploadFile({ 
      url: '', //仅为示例,非真实的接口地址 
      filePath: this.data.src, 
      name: 'file', 
      formData: { 
      }, 
      success: function (res) { 
       // var data = res.data 
       // var json = JSON.parse(data) 
       console.log(res) 
       wx.showModal({ 
        title: "提示", 
        content: res.data, 
        showCancel: false, 
        confirmText: "确定" 
       }) 
      } 
     }) 
    } 
   }) 
  },

刷脸登录就成功了

总结

以上所述是小编给大家介绍的PHP实现微信小程序人脸识别刷脸登录,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
dedecms 批量提取第一张图片最为缩略图的代码(文章+软件)
Oct 29 PHP
PHP项目开发中最常用的自定义函数整理
Dec 02 PHP
通过5个php实例细致说明传值与传引用的区别
Aug 08 PHP
php 中文字符串首字母的获取函数分享
Nov 04 PHP
php实现搜索一维数组元素并删除二维数组对应元素的方法
Jul 06 PHP
laravel学习教程之关联模型
Jul 30 PHP
PHP 接入支付宝即时到账功能
Sep 18 PHP
CodeIgniter整合Smarty的方法详解
Aug 25 PHP
PHP代码重构方法漫谈
Apr 17 PHP
php遍历目录下文件并按修改时间排序操作示例
Jul 12 PHP
PHP下载文件函数与用法示例
Sep 27 PHP
PHP高并发和大流量解决方案整理
Dec 24 PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
May 24 #PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
May 24 #PHP
PHP实现一维数组与二维数组去重功能示例
May 24 #PHP
CI框架(CodeIgniter)实现的数据库增删改查操作总结
May 23 #PHP
yii2安装详细流程
May 23 #PHP
PHP仿tp实现mvc框架基本设计思路与实现方法分析
May 23 #PHP
PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例
May 23 #PHP
You might like
PHP冒泡排序算法代码详细解读
2011/07/17 PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
2015/02/08 PHP
php自定义函数实现统计中文字符串长度的方法小结
2017/04/15 PHP
ThinkPHP实现图片上传操作的方法详解
2017/05/08 PHP
php创建类并调用的实例方法
2019/09/25 PHP
Autocomplete Textbox Example javascript实现自动完成成功
2007/08/17 Javascript
input 输入框获得/失去焦点时隐藏/显示文字(jquery版)
2013/04/02 Javascript
js实现在页面上弹出蒙板技巧简单实用
2013/04/16 Javascript
js实现完全自定义可带多级目录的网页鼠标右键菜单方法
2015/02/28 Javascript
JavaScript获取URL汇总
2015/06/08 Javascript
浅析Javascript匿名函数与自执行函数
2016/02/06 Javascript
jquery删除数组中重复元素
2016/12/05 Javascript
详解Bootstrap各式各样的按钮(推荐)
2016/12/13 Javascript
微信小程序获取循环元素id以及wx.login登录操作
2017/08/17 Javascript
详解微信小程序之一键复制到剪切板
2019/04/24 Javascript
JS实现进度条动态加载特效
2020/03/25 Javascript
Python获取Windows或Linux主机名称通用函数分享
2014/11/22 Python
Python2与python3中 for 循环语句基础与实例分析
2017/11/20 Python
详细解读tornado协程(coroutine)原理
2018/01/15 Python
python多线程高级锁condition简单用法示例
2019/11/07 Python
Jupyter Notebook折叠输出的内容实例
2020/04/22 Python
Python使用20行代码实现微信聊天机器人
2020/06/05 Python
Flask中sqlalchemy模块的实例用法
2020/08/02 Python
用HTML5制作烟火效果的教程
2015/05/12 HTML / CSS
美国马匹用品和马钉购物网站:State Line Tack
2018/08/05 全球购物
完美实现CSS垂直居中的11种方法
2021/03/27 HTML / CSS
管理专员自荐信
2014/01/26 职场文书
成人继续教育实施方案
2014/03/01 职场文书
个人评语大全
2014/05/04 职场文书
贷款承诺书
2015/01/20 职场文书
2015应届毕业生自荐信范文
2015/03/05 职场文书
工程资料员岗位职责
2015/04/13 职场文书
2019年入党思想汇报
2019/03/25 职场文书
canvas多重阴影发光效果实现
2021/04/20 Javascript
JS创建或填充任意长度数组的小技巧汇总
2021/10/24 Javascript
通过T-SQL语句创建游标与实现数据库加解密功能
2022/03/16 SQL Server