PHP实现微信小程序人脸识别刷脸登录功能

全屏阅读
  • 基本信息

首先我们先确认我们的百度云人脸库里已经上传了我们的个人信息照片

然后我们在后台写刷脸登陆的接口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实现微信小程序人脸识别刷脸登录,希望对大家有所帮助

顶一下
(0)
100%
订阅 回复
踩一下
(0)
100%
» 郑重声明:本文由mpxq168发布,所有内容仅代表个人观点。版权归恒富网mpxq168共有,欢迎转载, 但未经作者同意必须保留此段声明,并给出文章连接,否则保留追究法律责任的权利! 如果本文侵犯了您的权益,请留言。

目前有 0 条留言 其中:访客:0 条, 博主:0 条

给我留言

您必须 [ 登录 ] 才能发表留言!