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地址引用(php地址引用的效率问题)
Mar 23 PHP
php中3种方法统计字符串中每种字符的个数并排序
Aug 27 PHP
php中如何防止表单的重复提交
Aug 02 PHP
php smarty模板引擎的6个小技巧
Apr 24 PHP
PHP模拟asp中response类实现方法
Aug 08 PHP
PHP多维数组转一维数组的简单实现方法
Dec 23 PHP
Laravel 5.3 学习笔记之 错误&amp;日志
Aug 28 PHP
PHP执行shell脚本运行程序不产生core文件的方法
Dec 28 PHP
Yii2设置默认控制器的两种方法
May 19 PHP
关于php支持的协议与封装协议总结(推荐)
Nov 17 PHP
php适配器模式简单应用示例
Oct 23 PHP
tp5框架使用cookie加密算法实现登录功能示例
Feb 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
session 的生命周期是多长
2006/10/09 PHP
phpinfo 系统查看参数函数代码
2009/06/05 PHP
PHP+MYSQL实现用户的增删改查
2015/03/24 PHP
php语言的7种基本的排序方法
2020/12/28 PHP
PHP编程计算日期间隔天数的方法
2017/04/26 PHP
PHP异常类及异常处理操作实例详解
2018/12/19 PHP
JavaScript DOM学习第八章 表单错误提示
2010/02/19 Javascript
一个js拖拽的效果类和dom-drag.js浅析
2010/07/17 Javascript
同时使用n个window onload加载实例介绍
2013/04/25 Javascript
ECMAScript5中的对象存取器属性:getter和setter介绍
2014/12/08 Javascript
详解JavaScript中的forEach()方法的使用
2015/06/08 Javascript
在JavaScript的AngularJS库中进行单元测试的方法
2015/06/23 Javascript
javascript实现省市区三级联动下拉框菜单
2015/11/17 Javascript
返回函数的JavaScript函数
2016/06/14 Javascript
web打印小结
2017/01/11 Javascript
Bootstrap布局之栅格系统学习笔记
2017/05/04 Javascript
jquery对table做排序操作的实例演示
2017/08/10 jQuery
js实现全选和全不选功能
2020/07/28 Javascript
[33:23]VG vs Pain 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
浅谈Python中copy()方法的使用
2015/05/21 Python
用python处理图片实现图像中的像素访问
2018/05/04 Python
python监控进程状态,记录重启时间及进程号的实例
2019/07/15 Python
tensorflow如何批量读取图片
2019/08/29 Python
解决pycharm最左侧Tool Buttons显示不全的问题
2019/12/17 Python
Pytorch 的损失函数Loss function使用详解
2020/01/02 Python
Anconda环境下Vscode安装Python的方法详解
2020/03/29 Python
web页面录屏实现
2019/02/12 HTML / CSS
兰蔻英国官网:Lancome英国
2019/04/30 全球购物
建材业务员岗位职责
2013/12/08 职场文书
网管求职信
2014/03/03 职场文书
高中美术教师事迹材料
2014/08/22 职场文书
在校大学生自我评价范文
2014/09/12 职场文书
机关副主任个人四风问题整改措施
2014/09/26 职场文书
2014年四风个人对照检查及整改措施
2014/10/28 职场文书
2014年医院党建工作总结
2014/12/20 职场文书
“爱眼护眼,提前预防近视”倡议书3篇
2019/10/30 职场文书