百度OCR文字识别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/my_study_everyday/article/details/82147446

关于OCR的介绍请看: OCR-文字识别

到百度AI开放平台

百度AI开发平台传送门

1.账号登陆,没有请自行注册
2.进入控制台(官网首页右上角)
3.选择文字识别

创建应用

这里写图片描述

填写完信息后,点击“立即创建”按钮

回到文字识别界面

这里写图片描述

可以看到应用分配的 appID,API key,Secret Key.
下面会用到

获取access_token

【 url 】
https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=你的API_KEY&client_secret=你的Secret_Key

  • grant_type 默认值为 “client_credentials”
  • client_id 为刚才获取的API Key
  • client_secret为刚才获取的 Secret Key

这里使用浏览器先拿到access_token

把上面的拼接的url放到浏览器的地址栏中。获取access_token

{
        access_token: "24.2a3dcfdc8a5d8bb2fee0b72e8e7b9ec7.2592000.1538014484.282335-11736554",
        session_key: "9mzdCXcYSMm+iGHWnW8WdYR/TlPK7eN83OmuMxwfDgdMXo8ZfDnoeuk0cI02ua/+xlM9h4KJLh3FhFQPSXVpwcST3jCwGw==",
        scope: "public vis-ocr_ocr brain_ocr_scope brain_ocr_general brain_ocr_general_basic brain_ocr_general_enhanced vis-ocr_business_license brain_ocr_webimage brain_all_scope brain_ocr_idcard brain_ocr_driving_license brain_ocr_vehicle_license vis-ocr_plate_number brain_solution brain_ocr_plate_number brain_ocr_accurate brain_ocr_accurate_basic brain_ocr_receipt brain_ocr_business_license brain_solution_iocr brain_ocr_handwriting brain_ocr_vat_invoice wise_adapt lebo_resource_base lightservice_public hetu_basic lightcms_map_poi kaidian_kaidian ApsMisTest_Test权限 vis-classify_flower lpq_开放 cop_helloScope ApsMis_fangdi_permission smartapp_snsapi_base iop_autocar oauth_tp_app smartapp_smart_game_openapi",
        refresh_token: "25.46ab9288f8f5562d076392c9934e5a03.315360000.1850782484.282335-11736554",
        session_secret: "bba399e252a53457d5639d73c97e55f6",
        expires_in: 2592000,
    }

access_token 的有效期是一个月,一个月过后需要重新获取。可以将access_token 存入数据库,定期刷新。

发起文字识别请求

在本测试项目的目录下,放一个身份证的图片,
正面命名为 z.jpg
反面(带国徽的那面)命名为 f.jpg

这里以身份证的正面识别为例,代码如下:

/**
 * 发起http post请求(REST API), 并获取REST请求的结果
 * @param string $url
 * @param string $param
 * @return - http response body if succeeds, else false.
 */
function request_post($url = '', $param = '')
{
    if (empty($url) || empty($param)) {
        return false;
    }

    $postUrl = $url;
    $curlPost = $param;
    // 初始化curl
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $postUrl);
    curl_setopt($curl, CURLOPT_HEADER, 0);
    // 要求结果为字符串且输出到屏幕上
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    // post提交方式
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);
    // 运行curl
    $data = curl_exec($curl);
    curl_close($curl);

    return $data;
}

$token = '24.2a3dcfdc8a5d8bb2fee0b72e8e7b9ec7.2592000.1538014484.282335-11736554';
$url = 'https://aip.baidubce.com/rest/2.0/ocr/v1/idcard?access_token=' . $token;
$img = file_get_contents('./z.jpg');
$img = base64_encode($img);
$bodys = array(
    "image"         =>  $img,
    "id_card_side"  =>  "front"
);
$res = request_post($url, $bodys);

var_dump(json_decode($res,true));

反面只需要把请求体中的id_card_side的值设为back即可,哦哦,记得换图片路径

百度OCR文字识别开发文档点击直达

【一起进步,微信公众号:qdgithub】

猜你喜欢

转载自blog.csdn.net/my_study_everyday/article/details/82147446