百度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;
}
posted @ 2018-10-25 10:24  许伟强  阅读(1268)  评论(0编辑  收藏  举报