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获取当前页面完整URL的实现代码
Jun 10 PHP
php页码形式分页函数支持静态化地址及ajax分页
Mar 28 PHP
浅析PHP微信支付通知的处理方式
May 25 PHP
PHP实现Javascript中的escape及unescape函数代码分享
Feb 10 PHP
php自定义urlencode,urldecode函数实例
Mar 24 PHP
PHP在线书签系统分享
Jan 04 PHP
php similar_text()函数的定义和用法
May 12 PHP
PHP编写daemon process 实例详解
Nov 13 PHP
Yii2数据库操作常用方法小结
May 04 PHP
Laravel 实现密码重置功能
Feb 23 PHP
php 读取文件夹下所有图片、文件的实例
Oct 17 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/12/13 PHP
PHP 数组和字符串互相转换实现方法
2013/03/26 PHP
微信公众平台开发关注及取消关注事件的方法
2014/12/23 PHP
php面向对象值单例模式
2016/05/03 PHP
mysql查找删除重复数据并只保留一条实例详解
2016/09/24 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
jQuery响应鼠标事件并隐藏与显示input默认值
2014/08/24 Javascript
JS实现的倒计时效果实例(2则实例)
2015/12/23 Javascript
详解webpack + react + react-router 如何实现懒加载
2017/11/20 Javascript
Vue.directive()的用法和实例详解
2018/03/04 Javascript
jquery获取img的src值实例介绍
2019/01/16 jQuery
JS基于ES6新特性async await进行异步处理操作示例
2019/02/02 Javascript
Vue实现购物车的全选、单选、显示商品价格代码实例
2019/05/06 Javascript
layui树形菜单动态遍历的例子
2019/09/23 Javascript
vue实现公共方法抽离
2020/07/31 Javascript
vue用ant design中table表格,点击某行时触发的事件操作
2020/10/28 Javascript
JavaScript手写数组的常用函数总结
2020/11/22 Javascript
[01:06:39]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第三局
2016/03/02 DOTA
[37:22]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第一局
2016/02/28 DOTA
30分钟搭建Python的Flask框架并在上面编写第一个应用
2015/03/30 Python
Python编程之属性和方法实例详解
2015/05/19 Python
python中kmeans聚类实现代码
2018/02/23 Python
Python pymongo模块用法示例
2018/03/31 Python
对python中使用requests模块参数编码的不同处理方法
2018/05/18 Python
pycharm设置注释颜色的方法
2018/05/23 Python
解决python3 urllib 链接中有中文的问题
2018/07/16 Python
解决Pycharm界面的子窗口不见了的问题
2019/01/17 Python
使用python将微信image下.dat文件解密为.png的方法
2020/11/30 Python
德国家用电器购物网站:Premiumshop24
2019/08/22 全球购物
最热门的自我评价
2013/12/30 职场文书
小学开学典礼主持词
2014/03/19 职场文书
幼师自荐信范文
2015/03/06 职场文书
保险内勤岗位职责
2015/04/13 职场文书
教师评职称工作总结2015
2015/04/20 职场文书
小人国观后感
2015/06/11 职场文书
教你使用pyinstaller打包Python教程
2021/05/27 Python