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 相关文章推荐
同时提取多条新闻中的文本一例
Oct 09 PHP
PHP 一个比较完善的简单文件上传
Mar 25 PHP
php ci框架验证码实例分析
Jun 26 PHP
IIS6.0 开启Gzip方法及PHP Gzip函数分享
Jun 08 PHP
Codeigniter中mkdir创建目录遇到权限问题和解决方法
Jul 25 PHP
PHP如何实现跨域
May 30 PHP
PHP实现统计在线人数功能示例
Oct 15 PHP
PHP三种方式实现链式操作详解
Jan 21 PHP
php 人员权限管理(RBAC)实例(推荐)
May 24 PHP
thinkphp中的多表关联查询的实例详解
Oct 12 PHP
PHP hex2bin()函数用法讲解
Feb 25 PHP
php生成静态页面并实现预览功能
Jun 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 小心urldecode引发的SQL注入漏洞
2011/10/27 PHP
基于curl数据采集之正则处理函数get_matches的使用
2013/04/28 PHP
php获取CSS文件中图片地址并下载到本地的方法
2014/12/02 PHP
php生成Android客户端扫描可登录的二维码
2016/05/13 PHP
PHP7 整型处理机制修改
2021/03/09 PHP
很酷的javascript loading效果代码
2008/06/18 Javascript
JS实现切换标签页效果实例代码
2013/11/01 Javascript
浅谈JavaScript函数参数的可修改性问题
2013/12/05 Javascript
单击某一段文字改写文本颜色
2014/06/06 Javascript
JS基于Ajax实现的网页Loading效果代码
2015/10/27 Javascript
js使用cookie记录用户名的方法
2015/11/26 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
2017/02/17 Javascript
利用纯JS实现像素逐渐显示的方法示例
2017/08/14 Javascript
防止页面url缓存中ajax中post请求的处理方法
2017/10/10 Javascript
vue-cli 组件的导入与使用教程详解
2018/04/11 Javascript
解决vue v-for 遍历循环时key值报错的问题
2018/09/06 Javascript
快速了解Vue父子组件传值以及父调子方法、子调父方法
2020/07/15 Javascript
Python运行报错UnicodeDecodeError的解决方法
2016/06/07 Python
Django数据库操作的实例(增删改查)
2017/09/04 Python
python3字符串操作总结
2019/07/24 Python
解析python实现Lasso回归
2019/09/11 Python
Python全栈之列表数据类型详解
2019/10/01 Python
win7下 python3.6 安装opencv 和 opencv-contrib-python解决 cv2.xfeatures2d.SIFT_create() 的问题
2019/10/24 Python
TensorFlow基本的常量、变量和运算操作详解
2020/02/03 Python
python中可以声明变量类型吗
2020/06/18 Python
Python3安装模块报错Microsoft Visual C++ 14.0 is required的解决方法
2020/07/28 Python
Html5实现二维码扫描并解析
2016/01/20 HTML / CSS
露营世界:Camping World
2017/02/02 全球购物
平面设计求职信
2014/03/10 职场文书
《放小鸟》教学反思
2014/04/20 职场文书
物理教育专业求职信
2014/06/25 职场文书
2014年9.18纪念日演讲稿
2014/09/14 职场文书
领导班子作风建设年个人整改措施
2014/09/29 职场文书
2016高三毕业赠言寄语
2015/12/04 职场文书
2016党员干部反腐倡廉心得体会
2016/01/13 职场文书
如何开启Apache,Nginx和IIS服务器的GZIP压缩功能
2022/04/29 Servers