• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

然后我们在后台写刷脸登陆的接口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: "确定"
       }) 
      } 
     }) 
    } 
   }) 
  },

刷脸登录就成功了


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
    热门话题
    阅读排行榜

    扫描微信二维码

    查看手机版网站

    随时了解更新最新资讯

    139-2527-9053

    在线客服(服务时间 9:00~18:00)

    在线QQ客服
    地址:深圳市南山区西丽大学城创智工业园
    电邮:jeky_zhao#qq.com
    移动电话:139-2527-9053

    Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap