1. 程式人生 > >微信小程式---人臉識別

微信小程式---人臉識別

本次人臉識別主要採用的是百度雲人臉識別介面

精準定點陣圖中人臉,獲得眼、口、鼻等72個關鍵點位置,分析性別、年齡、表情等多種人臉屬性

獲取Access——token

function access_token(){
	$file = __DIR__ . '\access_token';
	if(file_exists($file)){
		$str = file_get_contents($file);
		try{
			$arr = json_decode($str,true);
			if(is_array($arr)){
				$totime = $arr['totime'];
				if($totime>time()){
					return $arr['access_token'];
					exit;
				}
			}
		}catch(Exception $e){

		}
	}
	$apikey = "******";
	$secretkey = "*****";

	$url = 'https://aip.baidubce.com/oauth/2.0/token';
    $post_data['grant_type']   	= 'client_credentials';
    $post_data['client_id']     = $apikey;
    $post_data['client_secret'] = $secretkey;
    $o = "";
    foreach ( $post_data as $k => $v ) 
    {
    	$o.= "$k=" . urlencode( $v ). "&" ;
    }
    $post_data = substr($o,0,-1);
    
    $res = https_post($url, $post_data);

    $arr = json_decode($res,true);
    if(isset($arr['access_token']) && isset($arr['expires_in'])){
    	$data['access_token'] = $arr['access_token'];
    	$data['totime'] = time() + $arr['expires_in'] - 3600;

    	file_put_contents($file, json_encode($data));
    	return $arr['access_token'];
    }else{
    	return false;
    }
}

檢測圖片中人臉:

   public function facevalid()
    {
        $file='./Uploads/1.jpeg';

        if(!file_exists($file)){
            die('檔案不存在');
        }

        $client = $this->init_face();

        $image=file_get_contents($file);
        $image=base64_encode($image);
        $imageType="BASE64";

        $options = array();
        $options["max_face_num"] = 2;

        $ret=$client->detect($image,$imageType,$options);

        if($ret['error_code']==0){

            $result = $ret['result'];
            $face_num = $result['face_num'];

            if($face_num == 1){
                $face_probability = $result['face_list'][0]['face_probability'];

                if($face_probability == 1){

                    $guid=myguid();

                    $groupId='face_test';

                    $client->addUser($image,$imageType,$groupId,$guid);

                    echo "插入人臉庫成功!";

                }else{

                    die('可靠性為:' . $face_probability);

                }
                
            }else{

                die('人臉數量不為1');

            }
        }
    }