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 相关文章推荐
php中目录,文件操作详谈
Mar 19 PHP
PHP 根据IP地址控制访问的代码
Apr 22 PHP
PHP中的strtr函数使用介绍(str_replace)
Oct 20 PHP
PHP数据集构建JSON格式及新数组的方法
Nov 07 PHP
php实现利用phpexcel导出数据
Aug 24 PHP
PHP中使用memcache存储session的三种配置方法
Apr 05 PHP
php简单socket服务器客户端代码实例
May 18 PHP
对比PHP对MySQL的缓冲查询和无缓冲查询
Jul 01 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
Nov 05 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
Nov 10 PHP
PHP内置函数生成随机数实例
Jan 18 PHP
thinkPHP框架中layer.js的封装与使用方法示例
Jan 18 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加水印的代码(支持半透明透明打水印,支持png透明背景)
2013/01/17 PHP
Yii2压缩PHP中模板代码的输出问题
2018/08/28 PHP
PHP如何防止XSS攻击与XSS攻击原理的讲解
2019/03/22 PHP
基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例
2019/05/25 PHP
关于延迟加载JavaScript
2015/05/05 Javascript
js中利用tagname和id获取元素的方法
2016/01/03 Javascript
AngularJS中实现动画效果的方法
2016/07/28 Javascript
jQuery完成表单验证的实例代码(纯代码)
2017/09/30 jQuery
jQuery扩展方法实现Form表单与Json互相转换的实例代码
2018/09/05 jQuery
js中获取URL参数的共用方法getRequest()方法实例详解
2018/10/24 Javascript
基于element-ui组件手动实现单选和上传功能
2018/12/06 Javascript
VSCode 配置uni-app的方法
2020/07/11 Javascript
ReactRouter的实现方法
2021/01/25 Javascript
跟老齐学Python之开始真正编程
2014/09/12 Python
用Python解析XML的几种常见方法的介绍
2015/04/09 Python
使用IPython下的Net-SNMP来管理类UNIX系统的教程
2015/04/15 Python
基于Python __dict__与dir()的区别详解
2017/10/30 Python
python之文件读取一行一行的方法
2018/07/12 Python
django如何自己创建一个中间件
2019/07/24 Python
如何在mac环境中用python处理protobuf
2019/12/25 Python
python:目标检测模型预测准确度计算方式(基于IoU)
2020/01/18 Python
python opencv圆、椭圆与任意多边形的绘制实例详解
2020/02/06 Python
django跳转页面传参的实现
2020/09/17 Python
一个非常简单好用的Python图形界面库(PysimpleGUI)
2020/12/28 Python
Kate Spade美国官网:纽约新兴时尚品牌,以包包闻名于世
2017/11/09 全球购物
意大利消费电子产品购物网站:SLG Store
2019/12/26 全球购物
速卖通欧盟:Aliexpress EU
2020/08/19 全球购物
如何开启linux的ssh服务
2013/06/03 面试题
物业保安员岗位职责
2014/03/14 职场文书
开学典礼演讲稿
2014/05/23 职场文书
安全目标管理责任书
2014/07/25 职场文书
2015年暑期社会实践方案
2015/07/14 职场文书
《工作是最好的修行》读后感3篇
2019/12/13 职场文书
matlab xlabel位置的设置方式
2021/05/21 Python
使用Canvas绘制一个游戏人物属性图
2022/03/25 Javascript
Python实现猜拳与猜数字游戏的方法详解
2022/04/06 Python