微信小程序---人脸识别

本次人脸识别主要采用的是百度云人脸识别接口

精准定位图中人脸,获得眼、口、鼻等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);

            }
        }
    }

经验分享 程序员 微信小程序 职场和发展