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的ob_start();控制您的浏览器cache!
Feb 14 PHP
php file_get_contents抓取Gzip网页乱码的三种解决方法
Nov 12 PHP
php实例分享之mysql数据备份
May 19 PHP
浅谈COOKIE和SESSION区别
Jul 19 PHP
如何通过Linux命令行使用和运行PHP脚本
Jul 29 PHP
JavaScript实现删除电脑的关机键
Jul 26 PHP
thinkPHP的表达式查询用法详解
Sep 14 PHP
thinkPHP模板中for循环与switch语句用法示例
Nov 30 PHP
PHP实现支付宝即时到账功能
Dec 21 PHP
PHP使用第三方即时获取物流动态实例详解
Apr 27 PHP
php实现的二叉树遍历算法示例
Jun 15 PHP
PHP开发之用微信远程遥控服务器
Jan 25 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的栏目导航程序
2006/10/09 PHP
解析php通过cookies获取远程网页的指定代码
2013/06/25 PHP
推荐25款php中非常有用的类库
2014/09/29 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
2015/12/17 PHP
Zend Framework框架路由机制代码分析
2016/03/22 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
让人印象深刻的10个jQuery手风琴效果应用
2012/05/08 Javascript
jquery预览图片实现鼠标放上去显示实际大小
2014/01/16 Javascript
原生JS实现首页进度加载动画
2016/09/14 Javascript
利用jQuery对无序列表排序的简单方法
2016/10/16 Javascript
Angular2中如何使用ngx-translate进行国际化
2017/05/21 Javascript
JS中把函数作为另一函数的参数传递方法(总结)
2017/06/28 Javascript
关于vue.js组件数据流的问题
2017/07/26 Javascript
Redux 和 Mobx的选择问题:让你不再困惑!
2017/09/18 Javascript
React Native预设占位placeholder的使用
2017/09/28 Javascript
Vue如何从1.0迁移到2.0
2017/10/19 Javascript
关于js对textarea换行符的处理方法浅析
2018/08/03 Javascript
vue实现双向绑定和依赖收集遇到的坑
2018/11/29 Javascript
微信小程序自定义键盘 内部虚拟支付
2018/12/20 Javascript
优雅的处理vue项目异常实战记录
2019/06/05 Javascript
PyCharm代码回滚,恢复历史版本的解决方法
2018/10/22 Python
Django后端接收嵌套Json数据及解析详解
2019/07/17 Python
python3发送邮件需要经过代理服务器的示例代码
2019/07/25 Python
python并发编程 Process对象的其他属性方法join方法详解
2019/08/20 Python
python实现统计代码行数的小工具
2019/09/19 Python
django在开发中取消外键约束的实现
2020/05/20 Python
快速了解Python开发环境Spyder
2020/06/29 Python
皮尔·卡丹巴西官方商店:Pierre Cardin
2017/07/21 全球购物
澳大利亚窗帘商店:Curtain Wonderland
2019/12/01 全球购物
机电一体化专业应届本科生求职信
2013/09/27 职场文书
校园网站的创业计划书范文
2013/12/30 职场文书
小学优秀教师事迹材料
2014/12/16 职场文书
起诉书范文
2015/05/20 职场文书
《走遍天下书为侣》教学反思
2016/02/22 职场文书
python3美化表格数据输出结果的实现代码
2021/04/14 Python
MySQL对数据表已有表进行分区表的实现
2021/11/01 MySQL