百度OCR文字识别
程序员文章站
2022-07-04 16:03:38
...
关于OCR的介绍请看: OCR-文字识别
到百度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即可,哦哦,记得换图片路径
【一起进步,微信公众号:qdgithub】