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

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

<?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,早上起來莫名其妙好了,但願能幫到一些跟我同樣遇到這樣問題的人,腳本:api

<?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;
}
相關文章
相關標籤/搜索