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中的实现trim函数代码
Mar 19 PHP
php下MYSQL limit的优化
Jan 10 PHP
php线性表顺序存储实现代码(增删查改)
Feb 16 PHP
php操作mysqli(示例代码)
Oct 28 PHP
PHP闭包函数详解
Feb 13 PHP
PHP之十六个魔术方法详细介绍
Nov 01 PHP
PHP面向对象程序设计之对象生成方法详解
Dec 02 PHP
Laravel学习教程之从入口到输出过程详解
Aug 27 PHP
PHP获取HTTP body内容的方法
Dec 31 PHP
php求斐波那契数的两种实现方式【递归与递推】
Sep 09 PHP
laravel 判断查询数据库返回值的例子
Oct 11 PHP
tp5框架前台无限极导航菜单类实现方法分析
Mar 29 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
外媒评选出10支2020年最受欢迎的Dota2战队
2021/03/05 DOTA
php 无法加载mysql的module的时候的配置的解决方案引发的思考
2012/01/27 PHP
php发送post请求函数分享
2014/03/06 PHP
自制PHP框架之模型与数据库
2017/05/07 PHP
在网页里看flash的trace数据的js类
2009/01/10 Javascript
ExtJs grid行 右键菜单的两种方法
2010/06/19 Javascript
控制文字内容的显示与隐藏示例
2014/06/11 Javascript
使用js画图之饼图
2015/01/12 Javascript
Angularjs编写KindEditor,UEidtor,jQuery指令
2015/01/28 Javascript
jQuery移动端图片上传组件
2016/06/12 Javascript
vue2.0实战之使用vue-cli搭建项目(2)
2017/03/27 Javascript
JS简单判断滚动条的滚动方向实现方法
2017/04/28 Javascript
webpack+vue-cil中proxyTable处理跨域的方法
2018/07/20 Javascript
详解JS中统计函数执行次数与执行时间
2018/09/04 Javascript
微信小程序之事件交互操作实例分析
2018/12/03 Javascript
了解javascript中变量及函数的提升
2019/05/27 Javascript
js实现踩五彩块游戏
2020/02/08 Javascript
使用IPython下的Net-SNMP来管理类UNIX系统的教程
2015/04/15 Python
python字典键值对的添加和遍历方法
2016/09/11 Python
python2.7实现FTP文件下载功能
2018/04/15 Python
基于Python 装饰器装饰类中的方法实例
2018/04/21 Python
Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
2019/06/25 Python
python字典嵌套字典的情况下找到某个key的value详解
2019/07/10 Python
Python 实现训练集、测试集随机划分
2020/01/08 Python
django xadmin中form_layout添加字段显示方式
2020/03/30 Python
幼儿教师考核制度
2014/01/25 职场文书
歌唱比赛主持词
2014/03/18 职场文书
责任担保书范文
2014/05/21 职场文书
学雷锋志愿者活动方案
2014/08/21 职场文书
大学社团招新的通讯稿
2014/09/10 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
2015年销售人员工作总结
2015/04/07 职场文书
2015年测量员工作总结
2015/05/23 职场文书
Python opencv缺陷检测的实现及问题解决
2021/04/24 Python
openGauss数据库JDBC环境连接配置的详细过程(Eclipse)
2022/06/01 Java/Android