微信小程序之人脸检测V3

人脸检测V3对于PHP开发者相比于V2简洁了不少,V2玩家则会写比较多的代码 去执行接口和获取accsee_token,

function https_request($url = '', $param = '')
{	
	if (empty($url) || empty($param)) {
            return false;
        }
    $postUrl = $url;
    $curlPost = $param;
	$curl = curl_init();
	curl_setopt($curl, CURLOPT_URL, $postUrl);
	curl_setopt($curl, CURLOPT_HEADER, 0);
	curl_setopt($curl, CURLOPT_POST, 1);
	curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
	curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALES);
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);
	curl_setopt($curl, CURLOPT_SSLVERSION,1);
	$data = curl_exec($curl);
	curl_close($curl);
	return $data;
}


function access_token(){
	// $client_id = 'gScSGaz6lFwXfE30mj0vkHMv';
	// $client_secret = 'D6U6YIW6FL33NGvGsQelFhEREoBvBt8R';

    $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){

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

    $arr = json_decode($res,true);
    if (isset($arr['access_token']) && isset($arr['expires_in'])) {
    	$data['access_token'] = $arr['access_token'];
    	$data['expires_in'] = time()+$arr['expires_in']-3600;
    	file_put_contents($file, json_encode($data));
    	return $arr['access_token'];
    }else{
    	return false;
    }

而V3里的插件有很多的接口可以供我们调用:https://ai.baidu.com/sdk#bfr 。可以去下载看看


接下来就是上传好图片并获取到图片路径执行下面代码就可以获取到图片的信息和入库了

public function facevalid(){
        $file = './Uploads/2018-05-20/5b015a6f96c41.jpeg';
        if(!file_exists($file)){
            die('文件不存在');
        }
        $image = file_get_contents($file);
        $image = base64_encode($image);
        $options = array();
        $options['max_face_num'] = 2;
        $client = $this->init_face();
        $ret = $client->detect($image,'BASE64',$options);
        print_r($ret);
        if($ret['error_code']==0){//有人脸
            $result = $ret['result'];
            $face_num = $result['face_num'];
            if(1==$face_num){//人脸数目为1
                $face_probability = $result['face_list'][0]['face_probability'];
                if(1==$face_probability){//可靠性为1
                    $guid = myguid();
                    $group = $this->face_group();
                    $client->addUser($image,'BASE64',$group,$guid);
                    echo '人脸检测完成,并已入库';
                }else{
                    die('可靠性为:' . $face_probability);
                }
            }else{
                die('人脸数量大于1');
            }
        }
    }
    public function face_group(){
        $groupname = 'student';
        $client = $this->init_face();
        $ret = $client->getGroupList();
        if($ret['error_code']==0){
            $grouplist = $ret['result']['group_id_list'];
            if(in_array($groupname, $grouplist)){
                return $groupname;
            }else{
                $ret = $client->groupAdd($groupname);
                if($ret['error_code']==0){
                    return $groupname;
                }else{
                    return false;
                }
            }
        }else{
            return false;
        }
    }

最近正在学习人脸检测,希望能带给你灵感和方便


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值