百度AI開發平台-文字高精度識別


  最近需要檢測一下書籍封面的LOGO問題,文字識別,只能試試百度的api接口了,然后通用接口好辦、直接傳url值為圖片的http地址就行,但是你說,高精度的那個,按照文檔:所有圖片均需要base64編碼、去掉編碼頭后再進行urlencode。我試了幾次,網上的工具也好,自己寫demo處理也好就是返回image format error,剛開始試了一個demo:

<?php
    $img = '1.jpg';
    $base64_img = base64EncodeImage($img);
    echo '<img src="' . $base64_img . '" />';
      
    function base64EncodeImage ($image_file) {
        $base64_image = '';
        $image_info = getimagesize($image_file);
        $image_info['mime'] = 'image/jpg';
        $image_data = fread(fopen($image_file, 'r'), filesize($image_file));
        $base64_image = 'data:' . $image_info['mime'] . ';base64,' . chunk_split(base64_encode($image_data));
        return $base64_image;
    }

是可以正確顯示用base64顯示圖片,但是還是不ok,早上起來莫名其妙好了,希望能幫到一些跟我一樣遇到這樣問題的人,腳本:

<?php
function post($url,$post_data){
    //初始化
    $curl = curl_init();
    //設置抓取的url
    curl_setopt($curl, CURLOPT_URL, $url);
    //設置頭文件的信息作為數據流輸出
    curl_setopt($curl, CURLOPT_HEADER, 0);
    //設置獲取的信息以文件流的形式返回,而不是直接輸出。
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    //設置post方式提交
    //關閉https驗證
     curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
     curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

    curl_setopt($curl, CURLOPT_POST, 1);
    //設置post數據
    curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
    //執行命令
    $data = curl_exec($curl);
    //關閉URL請求
    curl_close($curl);
    //顯示獲得的數據
    return $data;
}


function detail_ocr($image_url){
    // 文字識別 - 高精度版
    $access_token = '123456';
    $url = 'https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic?access_token='.$access_token;
    $img = file_get_contents($image_url);
    $img = base64_encode($img);
    $headers['Content-Type'] = 'application/x-www-form-urlencoded';
    $bodys = array(
        'image' => $img,
    );
    $res = post($url, $bodys);
    return $res;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM