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初学者写及时补给skype用户充话费的小程序
Nov 02 PHP
解析PHP中intval()等int转换时的意外异常情况
Jun 21 PHP
使用php清除bom示例
Mar 03 PHP
PHP连接SQLServer2005的方法
Jan 27 PHP
php生成圆角图片的方法
Apr 07 PHP
PHP永久登录、记住我功能实现方法和安全做法
Apr 27 PHP
详解WordPress开发中wp_title()函数的用法
Jan 07 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
Dec 25 PHP
简单谈谈PHP面向对象之标识对象
Jun 27 PHP
php递归函数怎么用才有效
Feb 24 PHP
PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析
Apr 20 PHP
php与阿里云短信接口接入操作案例分析
May 27 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 3行代码的分页算法(求起始页和结束页)
2009/10/21 PHP
PHP管理内存函数 memory_get_usage()使用介绍
2012/09/23 PHP
使用php实现快钱支付功能(涉及到接口)
2013/07/01 PHP
php定时执行任务设置详解
2015/02/06 PHP
Laravel 实现Controller向blade前台模板赋值的四种方式小结
2019/10/22 PHP
JavaScript入门学习书籍推荐
2008/06/12 Javascript
JS中的substring和substr函数的区别说明
2013/05/07 Javascript
javascript实现树形菜单的方法
2015/07/17 Javascript
js+html5实现可在手机上玩的拼图游戏
2015/07/17 Javascript
jquery实现鼠标滑过显示二级下拉菜单效果
2015/08/24 Javascript
BootStrap文件上传样式超好看【持续更新】
2016/05/10 Javascript
详解JS中的柯里化(currying)
2017/08/17 Javascript
Angular 4.0学习教程之架构详解
2017/09/12 Javascript
vue与TypeScript集成配置最简教程(推荐)
2017/10/17 Javascript
js判断文件类型大小并给出提示的实现方法
2018/01/03 Javascript
jQuery实现为动态添加的元素绑定事件实例分析
2018/09/07 jQuery
layui 弹出层回调获取弹出层数据的例子
2019/09/02 Javascript
node.js使用fs读取文件出错的解决方案
2019/10/23 Javascript
JavaScript判断浏览器版本的方法
2019/11/03 Javascript
推荐几个不错的console调试技巧实现
2019/12/20 Javascript
python网络编程之读取网站根目录实例
2014/09/30 Python
在Python的Flask框架中验证注册用户的Email的方法
2015/09/02 Python
python去除文件中空格、Tab及回车的方法
2016/04/12 Python
解决Django生产环境无法加载静态文件问题的解决
2019/04/23 Python
Python倒排索引之查找包含某主题或单词的文件
2019/11/13 Python
关于tensorflow的几种参数初始化方法小结
2020/01/04 Python
python图片合成的示例
2020/11/09 Python
canvas烟花特效锦集
2018/01/17 HTML / CSS
家长给老师的道歉信
2014/01/13 职场文书
厨房领班竞聘演讲稿
2014/04/23 职场文书
创先争优公开承诺书
2014/08/30 职场文书
2014年信用社工作总结
2014/11/25 职场文书
离婚被告代理词
2015/05/23 职场文书
2015大学党建带团建工作总结
2015/07/23 职场文书
详解MySQL数据库千万级数据查询和存储
2021/05/18 MySQL
缓存替换策略及应用(以Redis、InnoDB为例)
2021/07/25 Redis