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 相关文章推荐
Search Engine Friendly的URL设计
Oct 09 PHP
php 分页原理详解
Aug 21 PHP
PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
Nov 18 PHP
如何实现php图片等比例缩放
Jul 28 PHP
php获取汉字拼音首字母的方法
Oct 21 PHP
基于thinkPHP实现的微信自定义分享功能示例
Sep 23 PHP
PHP生成各种随机验证码的方法总结【附demo源码】
Jun 05 PHP
php strftime函数的详细用法
Jun 21 PHP
PHP基于curl模拟post提交json数据示例
Jun 22 PHP
PHP连接SQL Server的方法分析【基于thinkPHP5.1框架】
May 06 PHP
php简单计算权重的方法示例【适合抽奖类应用】
Jun 10 PHP
PHP的JSON封装、转变及输出操作示例
Sep 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代码包装修正版
2008/03/15 PHP
php一些公用函数的集合
2008/03/27 PHP
php指定函数参数默认值示例代码
2013/12/04 PHP
PHP使用json_encode函数时不转义中文的解决方法
2014/11/12 PHP
Linux下从零开始安装配置Nginx服务器+PHP开发环境
2015/12/21 PHP
thinkPHP线上自动加载异常与修复方法实例分析
2016/12/01 PHP
PHP基于SPL实现的迭代器模式示例
2018/04/22 PHP
PHP的PDO大对象(LOBs)
2019/01/27 PHP
JavaScript在IE和Firefox浏览器下的7个差异兼容写法小结
2010/06/18 Javascript
JavaScript获取网页表单提交方式的方法
2015/04/02 Javascript
jquery插件splitScren实现页面分屏切换模板特效
2015/06/16 Javascript
谈谈js中的prototype及prototype属性解释和常用方法
2015/11/25 Javascript
JavaScript生成二维码图片小结
2015/12/27 Javascript
JavaScript数值千分位格式化的两种简单实现方法
2016/08/01 Javascript
jQuery实现字符串全部替换的方法【推荐】
2017/03/09 Javascript
解决Vue打包之后文件路径出错的问题
2018/03/06 Javascript
详解如何在vue项目中使用layui框架及采坑
2019/05/05 Javascript
利用不到200行代码写一款属于你自己的js类库
2019/07/08 Javascript
浅谈对于“不用setInterval,用setTimeout”的理解
2019/08/28 Javascript
layui table 复选框跳页后再回来保持原来选中的状态示例
2019/10/26 Javascript
Jquery高级应用Deferred对象原理及使用实例
2020/05/28 jQuery
[00:26]TI7不朽珍藏III——冥界亚龙不朽展示
2017/07/15 DOTA
Linux中Python 环境软件包安装步骤
2016/03/31 Python
python实现发送邮件及附件功能
2021/03/02 Python
pycham查看程序执行的时间方法
2018/11/29 Python
python使用beautifulsoup4爬取酷狗音乐代码实例
2019/12/04 Python
Python 实现进度条的六种方式
2021/01/06 Python
解决import tensorflow导致jupyter内核死亡的问题
2021/02/06 Python
html5视频播放_动力节点Java学院整理
2017/07/13 HTML / CSS
HTML5 Canvas画线技巧——实现绘制一个像素宽的细线
2013/08/02 HTML / CSS
玩具反斗城美国官网:Toys"R"Us
2016/09/17 全球购物
美国婴儿和儿童家具网上商店:ABaby.com
2018/07/02 全球购物
师范生自我鉴定
2014/03/20 职场文书
老龄工作先进事迹
2014/08/15 职场文书
安全先进班组材料
2014/12/26 职场文书
分享Python获取本机IP地址的几种方法
2022/03/17 Python