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 相关文章推荐
smarty模板嵌套之include与fetch性能测试
Dec 05 PHP
通达OA公共代码 php常用检测函数
Dec 14 PHP
深入PHP运行环境配置的详解
Jun 04 PHP
使用Linux五年积累的一些经验技巧
Jun 20 PHP
yii框架配置默认controller和action示例
Apr 30 PHP
详解PHP导入导出CSV文件
Nov 03 PHP
ThinkPHP连接数据库的方式汇总
Dec 05 PHP
php编写的一个E-mail验证类
Mar 25 PHP
深入讲解PHP的对象注入(Object Injection)
Mar 01 PHP
在php7中MongoDB实现模糊查询的方法详解
May 03 PHP
PHP bin2hex()函数基础实例讲解
Feb 11 PHP
PHP使用ajax的post方式下载excel文件简单示例
Aug 06 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
DC动画电影《黑暗正义联盟》曝预告 5月5日上线数字平台
2020/04/09 欧美动漫
PHP实现动态压缩js与css文件的方法
2018/05/02 PHP
PhpSpreadsheet设置单元格常用操作汇总
2020/11/13 PHP
为jquery.ui.dialog 增加“自动记住关闭时的位置”的功能
2009/11/24 Javascript
基于jquery中children()与find()的区别介绍
2013/04/26 Javascript
一个支付页面DEMO附截图
2014/07/22 Javascript
jQuery Ajax Post 回调函数不执行问题的解决方法
2016/08/15 Javascript
jquery实现点击页面回到顶部
2016/11/23 Javascript
完美解决linux下node.js全局模块找不到的情况
2018/05/16 Javascript
JS正则表达式常见用法实例详解
2018/06/19 Javascript
Vue中Table组件Select的勾选和取消勾选事件详解
2019/03/19 Javascript
Javascript的this详解
2019/03/23 Javascript
js简单遍历获取对象中的属性值的方法示例
2019/06/19 Javascript
Echarts实现多条折线可拖拽效果
2019/12/19 Javascript
Jquery 获取相同NAME 或者id删除行操作
2020/08/24 jQuery
vue el-upload上传文件的示例代码
2020/12/21 Vue.js
vue 实现图片懒加载功能
2020/12/31 Vue.js
python实现划词翻译
2020/04/23 Python
python实现协同过滤推荐算法完整代码示例
2017/12/15 Python
python 动态加载的实现方法
2017/12/22 Python
简单了解python的一些位运算技巧
2019/07/13 Python
Python及Pycharm安装方法图文教程
2019/08/05 Python
TensorFlow——Checkpoint为模型添加检查点的实例
2020/01/21 Python
python数据库开发之MongoDB安装及Python3操作MongoDB数据库详细方法与实例
2020/03/18 Python
python实时监控logstash日志代码
2020/04/27 Python
关于python的缩进规则的知识点详解
2020/06/22 Python
python lambda的使用详解
2021/02/26 Python
利用Canvas模仿百度贴吧客户端loading小球的方法示例
2017/08/13 HTML / CSS
YSL Beauty加拿大官方商城:圣罗兰美妆加拿大
2017/05/15 全球购物
Daniel Wellington官方海外旗舰店:丹尼尔惠灵顿DW手表
2018/02/22 全球购物
德国团购网站:Groupon德国
2018/03/13 全球购物
美国最佳在线航班预订网站:LookupFare
2019/03/26 全球购物
企业演讲稿范文
2013/12/28 职场文书
办公设备采购方案
2014/03/16 职场文书
教师廉洁自律承诺书
2014/05/26 职场文书
个人四风对照检查材料
2014/09/26 职场文书