The Best Image OCR SDK For BAT
Clone or download
Latest commit 8df3ae7 Apr 17, 2018

README.md

The Best Image Ocr SDK For BAT.

Latest Stable Version Total Downloads License

Feature

  • 自定义缓存支持;
  • 符合 PSR 标准,可以很方便的与你的框架结合;
  • 命名不那么乱七八糟;
  • 支持目前市面多家服务商

查看更新日志

Support

Requirement

Installation

composer require godruoyi/ocr

Laravel 5 拓展包

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 的值可以为

  1. 文件路径(完整)
  2. SplFileInfo 对象
  3. Resource
  4. 在线图片地址(部分服务商不支持)
  5. 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

可登录 云API密钥控制台查看你的个人 API 密钥

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