PHP:基于百度大脑api实现OCR文字识别

时间:2023-01-05 23:26:17

有个项目要用到文字识别,网上找了很多资料,效果不是很好,偶然的机会,接触到百度大脑。百度大脑提供了很多解决方案,其中一个就是文字识别,百度提供了三种文字识别,分别是银行卡识别、身份证识别和通用文字识别,下面我们来测试下吧。

第一步:下载PHP文字识别demo

下载地址:https://git.oschina.net/jianqingwang/ocr

第二步:申请api

到百度大脑https://ai.baidu.com/tech/ocr/general申请api

 

sa

百度大脑申请api

申请好了之后,创建应用,可以得到2个信息,一分别是AppID,API Key和Secret Key。

打开demo下的DemoAipOcr.php,我们一起配置下接口信息!

<?php

// 引入文字识别OCR SDK
require_once '../AipOcr.php';

// 定义常量
const APP_ID = '写你的id';
const API_KEY = '写你的key';
const SECRET_KEY = '写你的SECRET_KEY';

// 初始化
$aipOcr = new AipOcr(APP_ID, API_KEY, SECRET_KEY);

// 身份证识别
//var_dump($aipOcr->idcard(file_get_contents('idcard.jpg'), true));

// 银行卡识别
//var_dump($aipOcr->bankcard(file_get_contents('bankcard.jpg')));

// 通用文字识别
$rescult = $aipOcr->general(file_get_contents('20170413195205.jpg'));
$words = $rescult['words_result'];
var_dump($words[0]);
//var_dump($aipOcr->general(file_get_contents('20170413195205.jpg')));

上面展示了三种识别系统,想测试银行卡识别、身份证识别取消相关方法的注释即可。

原图:

通用文字识别测试图片

我们看下我本地图片20170413195205.jpg的识别效果:

array(12) { [0]=> array(2) { [“location”]=> array(4) { [“left”]=> int(34) [“top”]=> int(13) [“width”]=> int(96) [“height”]=> int(20) } [“words”]=> string(15) “阿迪邮件通” } [1]=> array(2) { [“location”]=> array(4) { [“left”]=> int(770) [“top”]=> int(14) [“width”]=> int(35) [“height”]=> int(19) } [“words”]=> string(6) “首页” } [2]=> array(2) { [“location”]=> array(4) { [“left”]=> int(848) [“top”]=> int(15) [“width”]=> int(42) [“height”]=> int(18) } [“words”]=> string(9) “送邮件” } [3]=> array(2) { [“location”]=> array(4) { [“left”]=> int(928) [“top”]=> int(14) [“width”]=> int(250) [“height”]=> int(19) } [“words”]=> string(33) “于我们联系我们注册登录” } [4]=> array(2) { [“location”]=> array(4) { [“left”]=> int(456) [“top”]=> int(118) [“width”]=> int(289) [“height”]=> int(27) } [“words”]=> string(40) “我们提供最全的邮件营销资源!” } [5]=> array(2) { [“location”]=> array(4) { [“left”]=> int(487) [“top”]=> int(176) [“width”]=> int(228) [“height”]=> int(26) } [“words”]=> string(31) “开始使用阿迪邮件营销!” } [6]=> array(2) { [“location”]=> array(4) { [“left”]=> int(32) [“top”]=> int(331) [“width”]=> int(129) [“height”]=> int(33) } [“words”]=> string(12) “通道齐全” } [7]=> array(2) { [“location”]=> array(4) { [“left”]=> int(423) [“top”]=> int(331) [“width”]=> int(157) [“height”]=> int(34) } [“words”]=> string(15) “不限制内容” } [8]=> array(2) { [“location”]=> array(4) { [“left”]=> int(811) [“top”]=> int(329) [“width”]=> int(127) [“height”]=> int(39) } [“words”]=> string(12) “离线发送” } [9]=> array(2) { [“location”]=> array(4) { [“left”]=> int(31) [“top”]=> int(374) [“width”]=> int(1140) [“height”]=> int(21) } [“words”]=> string(214) “聚合国内外优秀邮件服务商,给用户提供最全的邮件代发如果客户选择国娃服务商,我们不会对内容进行审查,因系统24小时执行邮件推送服务,无需等待,只要提交了邮” } [10]=> array(2) { [“location”]=> array(4) { [“left”]=> int(30) [“top”]=> int(391) [“width”]=> int(1076) [“height”]=> int(26) } [“words”]=> string(195) “服务。只要通过我们,就能使用 Railgun、 Sendmall百为都走国外的邮件服务通道。相比其他服务商,我们坚持件内容,我们系统自动帮你推送到收件人手里!” } [11]=> array(2) { [“location”]=> array(4) { [“left”]=> int(33) [“top”]=> int(410) [“width”]=> int(721) [“height”]=> int(23) } [“words”]=> string(143) “度简单邮件等国内外的邮件群发服务,无缝发送到世界各做好买水人的角色,不啊参与、干预用户的发送内容。” } }

好了,赶紧去注册个账号,测试下百度ocr文字识别的功能吧!

本人博客原文:PHP:基于百度大脑api实现OCR文字识别http://www.wangtuizhijia.com/archives/141