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与MySQL交互使用详解
Oct 09 PHP
过滤掉PHP数组中的重复值的实现代码
Jul 17 PHP
用来解析.htgroup文件的PHP类
Sep 05 PHP
深入解析PHP的引用计数机制
Jun 14 PHP
PHP array_multisort() 函数的深入解析
Jun 20 PHP
php中socket的用法详解
Oct 24 PHP
THINKPHP项目开发中的日志记录实例分析
Dec 01 PHP
php将日期格式转换成xx天前的格式
Apr 16 PHP
PHP上传图片时判断上传文件是否为可用图片的方法
Oct 20 PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
Jul 10 PHP
php数据库的增删改查 php与javascript之间的交互
Aug 31 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
Apr 10 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版(4)
2006/10/09 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
2016/03/18 PHP
php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案
2016/05/31 PHP
PHP在innodb引擎下快速代建全文搜索功能简明教程【基于xunsearch】
2016/10/14 PHP
php抽象类和接口知识点整理总结
2019/08/02 PHP
使用Javascript和DOM Interfaces来处理HTML
2006/10/09 Javascript
javascript右下角弹层及自动隐藏(自己编写)
2013/11/20 Javascript
jquery中交替点击事件的实现代码
2014/02/14 Javascript
减少访问DOM的次数提升javascript性能
2014/02/24 Javascript
超精准的javascript验证身份证号的具体实现方法
2015/11/18 Javascript
JQuery 的跨域方法推荐_可跨任何网站
2016/05/18 Javascript
详解Angular开发中的登陆与身份验证
2016/07/27 Javascript
理解javascript中的Function.prototype.bind的方法
2017/02/03 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
2017/02/10 Javascript
jQuery操作之效果详解
2017/05/19 jQuery
微信小程序 同步请求授权的详解
2017/08/04 Javascript
react native实现往服务器上传网络图片的实例
2017/08/07 Javascript
AngularJS双向数据绑定原理之$watch、$apply和$digest的应用
2018/01/30 Javascript
利用adb shell和node.js实现抖音自动抢红包功能(推荐)
2018/02/22 Javascript
基于webpack.config.js 参数详解
2018/03/20 Javascript
使用JavaScript实现node.js中的path.join方法
2018/08/12 Javascript
pm2发布node配置文件ecosystem.json详解
2019/05/15 Javascript
全面解读Python Web开发框架Django
2014/06/30 Python
Python反射的用法实例分析
2018/02/11 Python
python调用虹软2.0第三版的具体使用
2019/02/22 Python
jupyter notebook 恢复误删单元格或者历史代码的实现
2020/04/17 Python
python如何对链表操作
2020/10/10 Python
Django haystack实现全文搜索代码示例
2020/11/28 Python
在vscode中启动conda虚拟环境的思路详解
2020/12/25 Python
python requests库的使用
2021/01/06 Python
汉语专业应届生求职信
2013/10/01 职场文书
移交协议书
2014/08/19 职场文书
个人委托书怎么写
2014/09/17 职场文书
合作协议书模板
2014/10/10 职场文书
入伍通知书
2015/04/23 职场文书
webpack介绍使用配置教程详解webpack介绍和使用
2022/06/25 Javascript