1. 程式人生 > >微信小程式——(檢測人臉並上傳)

微信小程式——(檢測人臉並上傳)

首先,用thinkphp框架在控制器中寫一個uploud()方法:

//上傳檔案
    public function upload(){
      $upload = new \Think\Upload();// 例項化上傳類
      $upload->maxSize = 3145728 ;// 設定附件上傳大小
      $upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 設定附件上傳型別
      $upload->rootPath = './Uploads/'; // 設定附件上傳根目錄
      $upload->savePath = ''; // 設定附件上傳(子)目錄
      //上傳檔案
      $info = $upload->uploadOne($_FILES['file']);
      if(!$info) {// 上傳錯誤提示錯誤資訊
      return $this->ajaxReturn(array('error'=>true,'msg'=>$upload->getError()));
      }else{// 上傳成功 獲取上傳檔案資訊
     return $this->ajaxReturn(array('error'=>false,'msg'=>$info['savepath'].$info['savename']));
      }
    }

在微信小程式中的.js檔案中寫上介面。

下面是檢測人臉的程式碼:

在php檔案中寫sdk()方法:

public function sdk(){
      $file='./Uploads/3.jpg';
      if(!file_exists($file)){
        die('檔案不存在');
      }
      $dir=APP_PATH . '/face-sdk/';

      require_once $dir . 'AipFace.php';

     // 你的 APPID AK SK
       $APP_ID = '你的id';
       $API_KEY = '你的ak';
       $SECRET_KEY = '你的sk';

       $client=new \AipFace($APP_ID,$API_KEY,$SECRET_KEY);

       $image=file_get_contents($file);
       $image=base64_encode($image);

       // echo $image;
       // exit;
       $imageType="BASE64";

       // 如果有可選引數
        $options = array();
        // $options["face_field"] = "age";
        $options["max_face_num"] = 10;
        // $options["face_type"] = "LIVE";

       $ret=$client->detect($image,$imageType,$options);
       print_r($ret);
       $result=$ret['result'];
       $list=$result['face_list'];

       $face_num=$result['face_num'];
       // echo $face_num;
       foreach ($list as $key => $value) {
         $face_probability =$value['face_probability'];

          //旋轉角為90度
       $yaw=$value['angle']['yaw'];
       // print_r($yaw);
       $pitch=$value['angle']['pitch'];
       // print_r($pitch);
       $roll=$value['angle']['roll'];

       }

       if($face_num===1 && $face_probability===1 && $yaw<20 && $pitch<20 && $roll<20){
        $userid=guid();
        $userid=ltrim($userid,'{');
        $userid=rtrim($userid,'}');
        $userid=str_replace('-','_',$userid);
        $groupid='face_01';
        // echo $userid;
        $rett=$client->addUser($image,$imageType,$groupid,$userid);

       }else{
        echo '照片不符合要求';
       }
       if($ret){
        echo '建立成功';
       }else{
        echo "建立失敗";
       }
    }