1. 程式人生 > >百度雲人臉識別獲取access_token

百度雲人臉識別獲取access_token

最近在做人工智慧人臉識別的小程式,每張照片都應有一個唯一的字串。這裡我們採用guid來生成唯一的字串。

// 生成guid
function guid(){
    if (function_exists('com_create_guid')) {
        return com_create_guid();
    }else{
        mt_srand((double)microtime()*10000);
        $charid = strtoupper(md5(uniqid(rand(),true)));
        $hyphen = chr(45);
        $uuid = chr(123)
                .substr($charid,0,8).$hyphen
                .substr($charid,8,4).$hyphen
                .substr($charid,12,4).$hyphen
                .substr($charid,16,4).$hyphen
                .substr($charid,20,12)
                .chr(125);
        return $uuid;
    }
}

// 生成可用的guid
function myguid(){
    $guid = guid();
    $guid = trim($guid,'{}');
    $guid = str_replace('-', '_', $guid);
    return $guid;
}

然後寫請求,獲取access_token,我們發現百度雲給的程式碼有些不對,我給大家分享一下正確的程式碼,程式碼如下:

function https_post($url = '', $param = '') {  
  
    // return 123;  
        if (empty($url) || empty($param)) {  
            return false;  
        }  
          
        $postUrl = $url;  
        $curlPost = $param;  
        $curl = curl_init();//初始化curl  
        curl_setopt($curl, CURLOPT_URL,$postUrl);//抓取指定網頁  
        curl_setopt($curl, CURLOPT_HEADER, 0);//設定header  
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//要求結果為字串且輸出到螢幕上  
        curl_setopt($curl, CURLOPT_POST, 1);//post提交方式  
        curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);  
        curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);  
        curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,false);  
        curl_setopt($curl,CURLOPT_SSLVERSION,1);  
        $data = curl_exec($curl);//執行curl  
        curl_close($curl);  
          
        return $data;  
    }  
  
    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'];  
                    }  
                }  
            }catch(Exception $e){  
  
            }  
        }  
        $url = 'https://aip.baidubce.com/oauth/2.0/token';  
        $post_data['grant_type']       = 'client_credentials';  
        $post_data['client_id']      = 'xx';  
        $post_data['client_secret'] = 'xx';  
        $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;  
       }  
    }  

我把access_token放在了一個檔案中,儲存起來。

我在後臺呼叫了這些方法,程式碼如下:

public function facevalid(){  
        $token = access_token();  
        // echo $token;  
  
        $file = './Uploads/1.jpg';  
        if (!file_exists($file)) {  
            die('檔案不存在!');  
        }  
  
  
  
  
         $url="https://aip.baidubce.com/rest/2.0/face/v2/detect?access_token=".$token;  
            $img=file_get_contents($file);  
            $img=base64_encode($img);  
            // echo $img;      
            $bodys=array(  
               'max_face_num'=>5,  
               'face_fileds'=>"age,beauty,expression,faceshape,gender,galsses,landmark,race,qualities",  
               'image'=>$img  
              );  
            $res=request_post($url,$bodys);  
            echo $res;  
           }  
}  
這些程式碼就可以檢測人臉是否存在。

相關推薦

人臉識別獲取access_token

最近在做人工智慧人臉識別的小程式,每張照片都應有一個唯一的字串。這裡我們採用guid來生成唯一的字串。// 生成guid function guid(){ if (function_exists('com_create_guid')) { return

人臉識別- 獲取token+輸出圖片人臉檢測的資訊

使用thinkPHP框架 來獲取人臉識別的token。在application中的common中新建一個function.php/獲取access_token function request_post($url = '', $param = '') {

如何使用人臉識別服務(V3版介面python語言)(二)初識SDK

上次我們講到了如何新建一個面部識別的應用,現在我們就可以開始使用這個服務了 下載SDK有多種方法,我就不多說,提供一種最簡單的方法:直接使用pip安裝 開啟Windows的cmd(命令提示符) 輸入 pip ins

Chrome插件-獲取文件下載鏈接、定制分享密碼

javascriptChrome百度雲插件說明用於chrome瀏覽器的百度雲網頁插件,用於獲取文件下載鏈接,定制文件分享密碼,使用迅雷下載百度雲文件比普通的瀏覽器直接下載的會快。但是跟百度雲會員下載速度還是有區別的。所以,有錢還是開個會員好。 此插件支持文件共享密碼定制,即可以根據自己喜好來設置共享密碼,密碼

基於AI人臉識別技術的Demo

-a import arr readfile red ets 2.0 路徑 之前 編寫demo之前首先瀏覽官方API:http://ai.baidu.com/docs#/Face-API/top 下面是源碼: package com.examsafety.test;

--文字識別

獲取 color html get 百度雲 tar ont api title 由於在開發過程中需要使用文字識別,由此學習了一下百度雲相關api。所獲直接就貼出來。 1.獲取文字識別的token 百度雲--文字識別

Aip人臉識別之python程式碼

用python來做人臉識別程式碼量少 思路清晰, 在使用之前我們需要在我們的配置的編譯器中通過pip       install baidu-aip  即可 from aip import AipFace 就可以開始使用api了 我們第一

大腦人臉識別深度驗證與思考(四)之再論顏值

環境 win7 32位 VisualStudio2017 python3.6.3 opencv3.3.1 pyQt5.9 baidu-AIP 1.6.9.0 特別宣告 所有圖片均來自網路公開,無意冒犯,如覺不適,立即刪除。 好吧,我們繼續。

AI人臉識別實現臉部清晰度、光照檢測python

一:依賴 二:程式碼實現 def get_quality(baidu_result): """傳入rootPath,獨立請求百度介面,返回特徵點. Args: rootPath:源圖片地址 Returns: q

大腦人臉識別深度驗證與思考(十一)之動態實時

前言 我已經厭倦了靜態圖片的識別,那些技術對我已經沒有了挑戰性。今天我們就來看看動態實時的深度識別表現如何。 攝像頭 央視 我們直接採集央視rtmp推流地址的視訊,直接進行人臉識別和即時

大腦人臉識別深度驗證與思考(八)之面部遮擋

環境 win7 32位 VisualStudio2017 python3.6.3 opencv3.3.1 pyQt5.9 baidu-AIP 1.6.9.0 特別宣告 所有圖片均來自網路公開,無意冒犯,如覺不適,立即刪除。 前言 從本篇博文開

大腦人臉識別深度驗證與思考(十)之素妝對決

環境 win7 32位 VisualStudio2017 python3.6.3 opencv3.3.1 pyQt5.9 baidu-AIP 1.6.9.0 特別宣告 所有圖片均來自網路公開,無意冒犯,如覺不適,立即刪除。 前言

Java實現文字識別介面程式碼

public class Images {       public static String getResult() {    String otherHost = "https://aip.baidubce.com/rest/2.0/ocr/v1/general"; 

大腦人臉識別深度驗證與思考(十二)之斷章

點開這篇博文,讓我帶你進入一個全新的世界,那是一片我們所有人從未涉足過的領域,充滿了玄妙、驚愕和震撼,感謝百度大腦這個人工智慧,讓我們可以有機會推開那扇小小的神奇之門。 前言 乍一看標題,覺得有些愕然,但這篇博文不以標題見長。用到斷章一詞,是因為其極為符合這

大腦人臉識別深度驗證與思考(一)之環境搭建

環境 win7 32位 VisualStudio2017 python3.6.3 opencv3.3.1 pyQt5.9 baidu-AIP 1.6.9.0 特別宣告 所有圖片均來自網路公開,無意冒犯,如覺不適,立即刪除。 前言: 在open

大腦人臉識別深度驗證與思考(五)之人種識別

環境 win7 32位 VisualStudio2017 python3.6.3 opencv3.3.1 pyQt5.9 baidu-AIP 1.6.9.0 特別宣告 所有圖片均來自網路

大腦人臉識別深度驗證與思考(三)之顏值識別

環境 win7 32位 VisualStudio2017 python3.6.3 opencv3.3.1 pyQt5.9 baidu-AIP 1.6.9.0 特別宣告 所有圖片均來自網路

大腦人臉識別深度驗證與思考(二)之年齡識別

環境 win7 32位 VisualStudio2017 python3.6.3 opencv3.3.1 pyQt5.9 baidu-AIP 1.6.9.0 特別宣告 所有圖片均來自網路

大腦人臉識別深度驗證與思考(七)之骨骼精奇

環境 win7 32位 VisualStudio2017 python3.6.3 opencv3.3.1 pyQt5.9 baidu-AIP 1.6.9.0 特別宣告 所有圖片均來自網路公開,無意冒犯,如覺不適,立即刪除。 OK,讓我們繼續探究

人臉識別系列(七):人臉識別

網路結構: 輸入的是對齊好了的人臉影象,將人臉影象通過面部標記點切分為多個相互之間有重疊部分的Patch,分別輸入相同結構的網路,每個網路都在不同的GPU上訓練。 網路結構包含9個卷積層,某些卷積層的後面有池化層,標準化層,論文中與圖中都沒有詳細