这篇文章主要介绍了关于php实现调用百度的ocr文字识别接口,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
1、通过登陆百度api获取文字识别接口
https://ai.baidu.com/tech/ocr/general
具体的接口调用参数按照百度的官方文档
https://ai.baidu.com/docs#/OCR-API/top
2、接下来的就是调用接口使用和处理数据了。我用的是最普通的接口。每日50000条,不保证并发。
一下为我的代码部分:
//access_token调用
function request_post($url = '', $param = '') {
if (empty($url) || empty($param)) {
return false;
}
$postUrl = $url;
$curlPost = $param;
$curl = curl_init();//初始化curl
curl_setopt($curl, CURLOPT_URL,$postUrl);//抓取指定网页
curl_setopt($curl, CURLOPT_HEADER, 0);//设置header
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
curl_setopt($curl, CURLOPT_POST, 1);//post提交方式
curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);
$data = curl_exec($curl);//运行curl
curl_close($curl);
return $data;
}
$url = 'https://aip.baidubce.com/oauth/2.0/token';
$post_data['grant_type'] = 'client_credentials';
$post_data['client_id'] = 'your API key';
$post_data['client_secret'] = 'your secret key';
$o = "";
foreach ( $post_data as $k => $v )
{
$o.= "$k=" . urlencode( $v ). "&" ;
}
$post_data = substr($o,0,-1);
$res = request_post($url, $post_data);
$access_token = json_decode($res,1)['access_token'];
//var_dump($access_token);
//调用结束
//post请求接口
function index($access_token){
$data = array(
'url' => 'http://aip.bdstatic.com/portal/dist/1530540600796/ai_images/technology/ocr-general/general/tech-general-original-scanned.png',//你的图片地址
//'image' => '',
//检查图片朝向
'detect_direction' => 'true',
//返回可信度
'probability' => 'true',
);
$response = config($data,$access_token);
return $response;
}
function config($data,$access_token){
//请求URL需要带 access_token 参数
$url = 'https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token='.$access_token;
$header = array('Content-Type:application/x-www-form-urlencoded');
$response = tocurl($url,$header,$data);
return $response;
}
function tocurl($url, $header, $content){
$ch = curl_init();
if(substr($url,0,5)=='https'){
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查
//curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true); // 从证书中检查SSL加密算法是否存在
}
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER,$header);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($content));
$response = curl_exec($ch);
if($error=curl_error($ch)){
die($error);
}
curl_close($ch);
return $response;
}
$text_json = index($access_token);
$text_arr = json_decode($text_json,1);
var_dump($text_arr);
?>//最后得到的数据为:
// array(4) {
// ["log_id"]=>
// int(5013683280382131405)
// ["direction"]=>
// int(0)
// ["words_result_num"]=>
// int(6)
// ["words_result"]=>
// array(6) {
// [0]=>
// array(2) {
// ["words"]=>
// string(3) "目"
// ["probability"]=>
// array(3) {
// ["variance"]=>
// float(0)
// ["average"]=>
// float(0.839904)
// ["min"]=>
// float(0.839904)
// }
// }
// [1]=>
// array(2) {
// ["words"]=>
// string(9) "Bad百度"
// ["probability"]=>
// array(3) {
// ["variance"]=>
// float(0.029807)
// ["average"]=>
// float(0.904807)
// ["min"]=>
// float(0.560053)
// }
// }
// [2]=>
// array(2) {
// ["words"]=>
// string(44) "百度在线网络技术(北京)有限公司"
// ["probability"]=>
// array(3) {
// ["variance"]=>
// float(1.0E-6)
// ["average"]=>
// float(0.999414)
// ["min"]=>
// float(0.996175)
// }
// }
// [3]=>
// array(2) {
// ["words"]=>
// string(50) "Baidu Online Network Technology(Beijing)Co., Ltd E"
// ["probability"]=>
// array(3) {
// ["variance"]=>
// float(0.028514)
// ["average"]=>
// float(0.931889)
// ["min"]=>
// float(0.226499)
// }
// }
// [4]=>
// array(2) {
// ["words"]=>
// string(36) "北京百度网讯科技有限公司"
// ["probability"]=>
// array(3) {
// ["variance"]=>
// float(1.0E-6)
// ["average"]=>
// float(0.999341)
// ["min"]=>
// float(0.997463)
// }
// }
// [5]=>
// array(2) {
// ["words"]=>
// string(49) "Beijing Baidu Netcom Science Technology Co,, Ltds"
// ["probability"]=>
// array(3) {
// ["variance"]=>
// float(0.033526)
// ["average"]=>
// float(0.896252)
// ["min"]=>
// float(0.452083)
// }
// }
// }
// }
以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!
相关推荐: