skytian/ocr
Composer 安装命令:
composer require skytian/ocr
包简介
The Best Image Ocr SDK For BAT.
README 文档
README
注意:本库是基于godruoyi/ocr修改,由于阿里云接口有所变化故在此进行了修改,由于只使用了阿里云的营业执照识别,故对其他识别未做更改及测试。
修改了"doctrine/cache": "~1.6",应该不兼容php7.1及以上版本
Feature
- 自定义缓存支持;
- 符合 PSR 标准,可以很方便的与你的框架结合;
- 命名不那么乱七八糟;
- 支持目前市面多家服务商
Support
Requirement
- PHP > 5.6
- composer
Installation
composer require skytian/ocr
Usage
基本使用(以百度OCR为例)
use Godruoyi\OCR\Application; $app = new Application([ 'ocrs' => [ 'baidu' => [ 'app_key' => 'app_key', 'secret_key' => 'secret_key' ], ] ]); //身份证识别 $result = $app->baidu->idcard($filePath);
返回结果
{
"log_id": 530427582,
"image_status": "normal",
"words_result_num": 6,
"words_result": {
"住址": {
"words": "上海市闵行区华漕镇红卫村宗家巷1号"
},
"出生": {
"words": "19870723"
},
"姓名": {
"words": "鹿晗"
},
"公民身份号码": {
"words": "123456789123456132X"
},
"性别": {
"words": "男"
},
"民族": {
"words": "汉"
}
}
}
各平台支持的方法
详情请参考官方文档
所有平台支持的方法中,都满足以下结构:
$app->platform->$method($files, $options = [])
$files 的值可以为
- 文件路径(完整)
SplFileInfo对象Resource- 在线图片地址(部分服务商不支持)
- Array
注:
options的值都是可选的
百度OCR
目前采用 AccessToken 作为 API 认证方式,查看鉴权认证机制
通用文字识别
$app->baidu->generalBasic($file, [ 'language_type' => 'CHN_ENG', //支持的语言,默认为CHN_ENG(中英文混合) 'detect_direction' => false, //是否检测图像朝向 'detect_language' => false, //是否检测语言,默认不检测 'probability' => false, //是否返回识别结果中每一行的置信度 ]);
通用文字识别(高精度版)
$app->baidu->accurateBasic($file, [ 'detect_direction' => false, //是否检测图像朝向 'probability' => false, //是否返回识别结果中每一行的置信度 ]);
通用文字识别(含位置信息版)
$app->baidu->general($file, [ 'recognize_granularity' => 'big', //是否定位单字符位置 'language_type' => 'CHN_ENG', //CHN_ENG:中英文混合;默认为CHN_ENG 'detect_direction' => false, //是否检测图像朝向 'detect_language' => false, //是否检测语言,默认不检测 'vertexes_location' => false, //是否返回文字外接多边形顶点位置,不支持单字位置。默认为false 'probability' => false, //是否返回识别结果中每一行的置信度 ]);
通用文字识别(含位置高精度版)
$app->baidu->accurate($file, [ 'recognize_granularity' => 'big', //是否定位单字符位置 'detect_direction' => false, //是否检测图像朝向 'vertexes_location' => false, //是否返回文字外接多边形顶点位置,不支持单字位置。默认为false 'probability' => false, //是否返回识别结果中每一行的置信度 ]);
通用文字识别(含生僻字版)
$app->baidu->generalEnhanced($file, [ 'language_type' => 'CHN_ENG', //CHN_ENG:中英文混合;默认为CHN_ENG 'detect_direction' => false, //是否检测图像朝向 'vertexes_location' => false, //是否返回文字外接多边形顶点位置,不支持单字位置。默认为false 'probability' => false, //是否返回识别结果中每一行的置信度 ]);
网络图片文字识别
$app->baidu->webimage($file, [ 'detect_direction' => false, //是否检测图像朝向 'detect_language' => false, //是否检测语言,默认不检测 ]);
身份证识别
$app->baidu->idcard($file, [ 'detect_direction' => false, //是否检测图像朝向 'id_card_side' => 'front', //front:身份证正面;back:身份证背面 (注意,该参数必选) 'detect_risk' => false, //是否开启身份证风险类型功能,默认false ]);
银行卡识别
$app->baidu->bankcard($file, []); //无参数
驾驶证识别
$app->baidu->drivingLicense($file, [ 'detect_direction' => false, //是否检测图像朝向 ]);
行驶证识别
$app->baidu->vehicleLicense($file, [ 'detect_direction' => false, //是否检测图像朝向 'accuracy' => 'normal' // normal 使用快速服务,1200ms左右时延,缺省或其它值使用高精度服务,1600ms左右时延 ]);
车牌识别
$app->baidu->licensePlate($file, [ 'multi_detect' => false, //是否检测多张车牌,默认为false ]);
营业执照识别
$app->baidu->businessLicense($file, []); //无参数
通用票据识别
$app->baidu->receipt($file, [ 'recognize_granularity' => 'big', //是否定位单字符位置 'probability' => false, //是否返回识别结果中每一行的置信度 'accuracy' => 'normal' // normal 使用快速服务,1200ms左右时延,缺省或其它值使用高精度服务,1600ms左右时延 'detect_direction' => false, //是否检测图像朝向 ]);
Aliyun OCR
目前采用 APPCODE 作为 API 认证方式,查看我的APPCODE
use Godruoyi\OCR\Application; $app = new Application([ 'ocrs' => [ 'aliyun' => [ 'appcode' => '40bc103c7fe6417b87152f6f68bead2f', ] ] ]);
阿里云OCR不支持在线图片地址
身份证识别
$app->aliyun->idcard($file, [ 'side' => 'face', //身份证正反面类型:face/back ]);
行驶证识别
$app->aliyun->vehicle($file, []); //无可选参数
驾驶证识别
$app->aliyun->driverLicense($file, [ 'side' => 'face', //驾驶证首页/副页:face/back ]);
门店识别
$app->aliyun->shopSign($file, []); //无可选参数
英文识别
$app->aliyun->english($file, []); //无可选参数
营业执照识别
$app->aliyun->businessLicense($file, []); //无可选参数
银行卡识别
$app->aliyun->bankCard($file, []); //无可选参数
名片识别
$app->aliyun->businessCard($file, []); //无可选参数
火车票识别
$app->aliyun->trainTicket($file, []); //无可选参数
车牌识别
$app->aliyun->vehiclePlate($file, [ 'multi_crop' => false, //当设成true时,会做多crop预测,只有当多crop返回的结果一致,并且置信度>0.9时,才返回结果 ]);
通用文字识别
$app->aliyun->general($file, [ 'min_size' => 16, //图片中文字的最小高度, 'output_prob' => false, //是否输出文字框的概率, ]);
Tencent OCR
use Godruoyi\OCR\Application; $app = new Application([ 'ocrs' => [ 'tencent' => [ 'app_id' => '1254032478', 'secret_id' => 'AKIDzODdB1nOELz0T8CEjTEkgKJOob3t2Tso', 'secret_key' => '6aHHkz236LOYu0nRuBwn5PwT0x3km7EL', 'bucket' => 'test1' ], ] ]);
Tencent OCR 暂不支持在线图片地址
名片识别
$app->tencent->namecard($file, [ 'ret_image' => 0, //0 不返回图片,1 返回图片, ]);
身份证识别
$app->tencent->idcard($file, [ 'card_type' => 0, //0 为身份证有照片的一面,1为身份证有国徽的一面 ]);
行驶证驾驶证识别
$app->tencent->drivingLicence($file, [ 'type' => 0, //识别类型,0表示行驶证,1表示驾驶证, ]);
通用印刷体识别
$app->tencent->general($file, []); //无可选参数
银行卡识别
$app->tencent->bankcard($file, []); //无可选参数
车牌号识别
$app->tencent->plate($file, []); //无可选参数
营业执照识别
$app->tencent->bizlicense($file, []); //无可选参数
Tencent OCR For AI
可登录 腾讯 AI 控制台查看你的个人 APP_ID 及 APP_KEY
use Godruoyi\OCR\Application; $app = new Application([ 'ocrs' => [ 'tencentai' => [ 'app_id' => '1106584682', 'app_key' => 'XGgkqVif73v8wH6W', ], ] ]);
身份证识别
$app->tencentai->idcard($file, [ 'card_type' => 0, //0 为身份证有照片的一面,1为身份证有国徽的一面 默认0 ]);
名片识别
$app->tencentai->namecard($file, []);
行驶证驾驶证识别
$app->tencentai->driverlicen($file, [ 'type' => 0, //识别类型,0表示行驶证,1表示驾驶证,默认0 ]);
银行卡识别
$app->tencentai->bankcard($file, []); //无可选参数
通用印刷体识别
$app->tencentai->general($file, []); //无可选参数
营业执照识别
$app->tencentai->bizlicense($file, []); //无可选参数
MIT
skytian/ocr 适用场景与选型建议
skytian/ocr 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 5 次下载、GitHub Stars 达 2, 最近一次更新时间为 2020 年 08 月 22 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「image」 「OCR」 「百度OCR」 「腾讯OCR」 「阿�」 「云OCR」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 skytian/ocr 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 skytian/ocr 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 skytian/ocr 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Yii2 LightBox image galary widget uses Lightbox v2.10.0 by Lokesh Dhakar
The Yii2 extension uses jQuery jquery.carousel-1.1.min.js and makes image carousel from php array of structure defined.
The Yii2 extension uses jQuery PrettyPhoto and OwlCarousel js and makes image galary from php array of structure defined.
The Best Image Ocr SDK For BAT.
The Best Image Ocr SDK For BAT.
腾讯 OCR SDK
统计信息
- 总下载量: 5
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 11
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2020-08-22