欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

百度OCR文字识别

程序员文章站 2022-07-04 16:03:38
...

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

到百度AI开放平台

百度AI开发平台传送门

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

创建应用

百度OCR文字识别

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

回到文字识别界面

百度OCR文字识别

可以看到应用分配的 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】