接口调用说明

OCR-UI模块

OCR-UI模块提供了一套默认的UI。如需使用,请将ocr_ui模块包含到您的工程,具体使用可参考SDK包中附带的示例工程。

OCR-UI模块调用示例

调用拍摄activity,更详细的类别请参考demo工程

// 生成intent对象
Intent intent = new Intent(IDCardActivity.this, CameraActivity.class);

// 设置临时存储
intent.putExtra(CameraActivity.KEY_OUTPUT_FILE_PATH,                     FileUtil.getSaveFile(getApplication()).getAbsolutePath());

// 调用除银行卡,身份证等识别的activity
intent.putExtra(CameraActivity.KEY_CONTENT_TYPE, CameraActivity.CONTENT_TYPE_GENERAL);
startActivityForResult(intent, REQUEST_CODE_CAMERA);
// 通过参数确定接口类型
startActivityForResult(intent, REQUEST_CODE_GENERAL_BASIC);

// 调用拍摄银行卡的activity
intent.putExtra(CameraActivity.KEY_CONTENT_TYPE, CameraActivity.CONTENT_TYPE_BANK_CARD);
startActivityForResult(intent, REQUEST_CODE_CAMERA);

// 调用拍摄身份证正面(不带本地质量控制)activity
intent.putExtra(CameraActivity.KEY_CONTENT_TYPE, CameraActivity.CONTENT_TYPE_ID_CARD_FRONT);
startActivityForResult(intent, REQUEST_CODE_CAMERA);

// 调用身份证本识别(带本地质量控制)activity
 Intent intent = new Intent(IDCardActivity.this, CameraActivity.class);
// 使用本地质量控制能力需要授权,需要在OCR调用initAccessToken或者
// initAccessTokenWithAkSk成功返回后才能获取License授权本地质量控制能力
intent.putExtra(CameraActivity.KEY_NATIVE_TOKEN,
                        OCR.getInstance().getLicense());
// 使用本地质量控制能力需要设置开启
intent.putExtra(CameraActivity.KEY_NATIVE_ENABLE,
                        true);
// 开启身份证正面本地识别                    
intent.putExtra(CameraActivity.KEY_CONTENT_TYPE, CameraActivity.CONTENT_TYPE_ID_CARD_FRONT);

通过onActivityResult获取拍摄结果,更详细的类别请参考demo工程

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // 获取调用参数
    String contentType = data.getStringExtra(CameraActivity.KEY_CONTENT_TYPE);
    // 通过临时文件获取拍摄的图片
    String filePath = FileUtil.getSaveFile(getApplicationContext()).getAbsolutePath();
    // 判断拍摄类型(通用,身份证,银行卡等)
    if (requestCode == REQUEST_CODE_GENERAL && resultCode == Activity.RESULT_OK) {
    // 判断是否是身份证正面
        if (CameraActivity.CONTENT_TYPE_ID_CARD_FRONT.equals(contentType)){
        // 获取图片文件调用sdk数据接口,见数据接口说明
        }
    }
}

数据接口

通用文字识别

  • 调用示例
// 通用文字识别参数设置
GeneralBasicParams param = new GeneralBasicParams();
param.setDetectDirection(true);
param.setImageFile(new File(filePath));

// 调用通用文字识别服务
OCR.getInstance().recognizeGeneralBasic(param, new OnResultListener<GeneralResult>() {
    @Override
    public void onResult(GeneralResult result) {
        // 调用成功,返回GeneralResult对象
        for (WordSimple wordSimple : result.getWordList()) {
            // wordSimple不包含位置信息
            wordSimple word = wordSimple;
            sb.append(word.getWords());
            sb.append("\n");
        }
        // json格式返回字符串
        listener.onResult(result.getJsonRes());
    }
    @Override
    public void onError(OCRError error) {
        // 调用失败,返回OCRError对象
    }
});

options参数详情

参数 是否必选 类型 可选值范围 说明
image true string - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
language_type false string CHN_ENG、ENG、POR、FRE、GER、ITA、SPA、RUS、JAP 识别语言类型,默认为CHN_ENG。可选值包括:
- CHN_ENG:中英文混合;
- ENG:英文;
- POR:葡萄牙语;
- FRE:法语;
- GER:德语;
- ITA:意大利语;
- SPA:西班牙语;
- RUS:俄语;
- JAP:日语
detect_direction false boolean true、false 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:
- true:检测朝向;
- false:不检测朝向。
detect_language FALSE string true、false 是否检测语言,默认不检测。当前支持(中文、英语、日语、韩语)
  • 结果返回
字段 必选 类型 说明
direction int32 图像方向,当detect_direction=true时存在。
- -1:未定义,
- 0:正向,
- 1: 逆时针90度,
- 2:逆时针180度,
- 3:逆时针270度
log_id uint64 唯一的log id,用于问题定位
words_result_num uint32 识别结果数,表示words_result的元素个数
words_result array() 定位和识别结果数组
+words string 识别结果字符串
// 示例
返回格式参考通用文字识别

通用文字识别(高精度版)

  • 调用示例
// 通用文字识别参数设置
GeneralBasicParams param = new GeneralBasicParams();
param.setDetectDirection(true);
param.setImageFile(new File(filePath));

// 调用通用文字识别服务
OCR.getInstance().recognizeAccurateBasic(param, new OnResultListener<GeneralResult>() {
    @Override
    public void onResult(GeneralResult result) {
        // 调用成功,返回GeneralResult对象
        for (WordSimple wordSimple : result.getWordList()) {
            // wordSimple不包含位置信息
            wordSimple word = wordSimple;
            sb.append(word.getWords());
            sb.append("\n");
        }
        // json格式返回字符串
        listener.onResult(result.getJsonRes());
    }
    @Override
    public void onError(OCRError error) {
        // 调用失败,返回OCRError对象
    }
});

options参数详情

参数 是否必选 类型 可选值范围 说明
image true string - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
detect_direction false boolean true、false 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:
- true:检测朝向;
- false:不检测朝向。
  • 结果返回
字段 必选 类型 说明
direction int32 图像方向,当detect_direction=true时存在。
- -1:未定义,
- 0:正向,
- 1: 逆时针90度,
- 2:逆时针180度,
- 3:逆时针270度
log_id uint64 唯一的log id,用于问题定位
words_result_num uint32 识别结果数,表示words_result的元素个数
words_result array() 定位和识别结果数组
+words string 识别结果字符串
// 示例
{
"log_id": 2471272194, 
"words_result_num": 2,
"words_result": 
    [
        {"words": " TSINGTAO"}, 
        {"words": "青島睥酒"}
    ]
}

通用文字识别(含位置信息版)

  • 调用示例
// 通用文字识别参数设置
GeneralParams param = new GeneralParams();
param.setDetectDirection(true);
param.setImageFile(new File(filePath));

// 调用通用文字识别服务(含位置信息版)
OCR.getInstance().recognizeGeneral(param, new OnResultListener<GeneralResult>() {
    @Override
    public void onResult(GeneralResult result) {
        StringBuilder sb = new StringBuilder();
            for (WordSimple wordSimple : result.getWordList()) {
                // word包含位置
                Word word = (Word) wordSimple;
                    sb.append(word.getWords());
                sb.append("\n");
            }
        // 调用成功,返回GeneralResult对象,通过getJsonRes方法获取API返回字符串
        listener.onResult(result.getJsonRes());
    }
    @Override
    public void onError(OCRError error) {
        // 调用失败,返回OCRError对象
    }
});

options参数详情

参数 是否必选 类型 可选值范围 说明
image true string - 图像数据,base64编码,要求base64编码后大小不超过1M,最短边至少15px,最长边最大2048px,支持jpg/png/bmp格式
recognize_granularity false string big、small 是否定位单字符位置,big:不定位单字符位置,默认值;small:定位单字符位置
language_type false string CHN_ENG、ENG、POR、FRE、GER、ITA、SPA、RUS、JAP 识别语言类型,默认为CHN_ENG。可选值包括:
- CHN_ENG:中英文混合;
- ENG:英文;
- POR:葡萄牙语;
- FRE:法语;
- GER:德语;
- ITA:意大利语;
- SPA:西班牙语;
- RUS:俄语;
- JAP:日语
detect_direction false boolean true、false 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:
- true:检测朝向;
- false:不检测朝向。
detect_language false string true、false 是否检测语言,默认不检测。当前支持(中文、英语、日语、韩语)
vertexes_location false string true、false 是否返回文字外接多边形顶点位置,不支持单字位置。默认为false
  • 结果返回
字段 必选 类型 说明
direction int32 图像方向,当detect_direction=true时存在。
- -1:未定义,
- 0:正向,
- 1: 逆时针90度,
- 2:逆时针180度,
- 3:逆时针270度
log_id uint64 唯一的log id,用于问题定位
words_result array() 定位和识别结果数组
words_result_num uint32 识别结果数,表示words_result的元素个数
+vertexes_location array() 当前为四个顶点: 左上,右上,右下,左下。当vertexes_location=true时存在
++x uint32 水平坐标(坐标0点为左上角)
++y uint32 垂直坐标(坐标0点为左上角)
+location array() 位置数组(坐标0点为左上角)
++left uint32 表示定位位置的长方形左上顶点的水平坐标
++top uint32 表示定位位置的长方形左上顶点的垂直坐标
++width uint32 表示定位位置的长方形的宽度
++height uint32 表示定位位置的长方形的高度
+words string 识别结果字符串
+chars array() 单字符结果,recognize_granularity=small时存在
++location array() 位置数组(坐标0点为左上角)
+++left uint32 表示定位位置的长方形左上顶点的水平坐标
+++top uint32 表示定位位置的长方形左上顶点的垂直坐标
+++width uint32 表示定位定位位置的长方形的宽度
+++height uint32 表示位置的长方形的高度
++char string 单字符识别结果
// 示例
{
    direction : 2,
    log_id : 676709620,
    words_result : [ {
            location : {
                height : 20;
                left : 86;
                top : 387;
                width : 22;
            };
            words : "N";
        },
    ],
    words_result_num : 1;
}

通用文字识别(高精度含位置信息版)

  • 调用示例
// 通用文字识别参数设置
GeneralParams param = new GeneralParams();
param.setDetectDirection(true);
param.setImageFile(new File(filePath));

// 调用通用文字识别服务(含位置信息版)
OCR.getInstance().recognizeAccurate(param, new OnResultListener<GeneralResult>() {
    @Override
    public void onResult(GeneralResult result) {
        StringBuilder sb = new StringBuilder();
            for (WordSimple wordSimple : result.getWordList()) {
                // word包含位置
                Word word = (Word) wordSimple;
                    sb.append(word.getWords());
                sb.append("\n");
            }
        // 调用成功,返回GeneralResult对象,通过getJsonRes方法获取API返回字符串
        listener.onResult(result.getJsonRes());
    }
    @Override
    public void onError(OCRError error) {
        // 调用失败,返回OCRError对象
    }
});

options参数详情

参数 是否必选 类型 可选值范围 说明
image true string - 图像数据,base64编码,要求base64编码后大小不超过1M,最短边至少15px,最长边最大2048px,支持jpg/png/bmp格式
vertexes_location false string true、false 是否返回文字外接多边形顶点位置,不支持单字位置。默认为false
recognize_granularity false string big、small 是否定位单字符位置,big:不定位单字符位置,默认值;small:定位单字符位置
detect_direction false boolean true、false 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:
- true:检测朝向;
- false:不检测朝向。
  • 结果返回
字段 必选 类型 说明
direction int32 图像方向,当detect_direction=true时存在。
- -1:未定义,
- 0:正向,
- 1: 逆时针90度,
- 2:逆时针180度,
- 3:逆时针270度
log_id uint64 唯一的log id,用于问题定位
words_result array() 定位和识别结果数组
words_result_num uint32 识别结果数,表示words_result的元素个数
+vertexes_location array() 当前为四个顶点: 左上,右上,右下,左下。当vertexes_location=true时存在
++x uint32 水平坐标(坐标0点为左上角)
++y uint32 垂直坐标(坐标0点为左上角)
+location array() 位置数组(坐标0点为左上角)
++left uint32 表示定位位置的长方形左上顶点的水平坐标
++top uint32 表示定位位置的长方形左上顶点的垂直坐标
++width uint32 表示定位位置的长方形的宽度
++height uint32 表示定位位置的长方形的高度
+words string 识别结果字符串
+chars array() 单字符结果,recognize_granularity=small时存在
++location array() 位置数组(坐标0点为左上角)
+++left uint32 表示定位位置的长方形左上顶点的水平坐标
+++top uint32 表示定位位置的长方形左上顶点的垂直坐标
+++width uint32 表示定位定位位置的长方形的宽度
+++height uint32 表示位置的长方形的高度
++char string 单字符识别结果
// 返回结果参考通用文字识别(含位置信息版)

通用文字识别(含生僻字版)

  • 调用示例
// 通用文字识别(含生僻字版)参数设置
GeneralBasicParams param = new GeneralBasicParams();
param.setDetectDirection(true);
param.setImageFile(new File(filePath));

// 调用通用文字识别服务
OCR.getInstance().recognizeGeneralEnhanced(param, new OnResultListener<GeneralResult>() {
    @Override
    public void onResult(GeneralResult result) {
        // 调用成功,返回GeneralResult对象
        for (WordSimple wordSimple : result.getWordList()) {
            // wordSimple不包含位置信息
            wordSimple word = wordSimple;
            sb.append(word.getWords());
            sb.append("\n");
        }
    }
    @Override
    public void onError(OCRError error) {
        // 调用失败,返回OCRError对象
    }
});

options参数详情

参数 是否必选 类型 可选值范围 说明
image true string - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
language_type false string CHN_ENG、ENG、POR、FRE、GER、ITA、SPA、RUS、JAP 识别语言类型,默认为CHN_ENG。可选值包括:
- CHN_ENG:中英文混合;
- ENG:英文;
- POR:葡萄牙语;
- FRE:法语;
- GER:德语;
- ITA:意大利语;
- SPA:西班牙语;
- RUS:俄语;
- JAP:日语
detect_direction false boolean true、false 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:
- true:检测朝向;
- false:不检测朝向。
detect_language FALSE string true、false 是否检测语言,默认不检测。当前支持(中文、英语、日语、韩语)
  • 结果返回
字段 必选 类型 说明
direction int32 图像方向,当detect_direction=true时存在。
- -1:未定义,
- 0:正向,
- 1: 逆时针90度,
- 2:逆时针180度,
- 3:逆时针270度
log_id uint64 唯一的log id,用于问题定位
words_result_num uint32 识别结果数,表示words_result的元素个数
words_result array() 定位和识别结果数组
+words string 识别结果字符串
// 示例
参考通用文字识别接口

网络图片文字识别

  • 调用示例
// 网络图片文字识别参数设置
GeneralBasicParams param = new GeneralBasicParams();
param.setDetectDirection(true);
param.setImageFile(new File(filePath));

// 调用通用文字识别服务
OCR.getInstance().recognizeWebimage(param, new OnResultListener<GeneralResult>() {
    @Override
    public void onResult(GeneralResult result) {
        // 调用成功,返回GeneralResult对象
        for (WordSimple wordSimple : result.getWordList()) {
            // wordSimple不包含位置信息
            wordSimple word = wordSimple;
            sb.append(word.getWords());
            sb.append("\n");
        }
    }
    @Override
    public void onError(OCRError error) {
        // 调用失败,返回OCRError对象
    }
});

options参数详情

参数 是否必选 类型 可选值范围 说明
image true string - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
detect_direction false boolean true、false 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:
- true:检测朝向;
- false:不检测朝向。
detect_language false string true、false 是否检测语言,默认不检测。当前支持(中文、英语、日语、韩语)
  • 结果返回
字段 必选 类型 说明
direction int32 图像方向,当detect_direction=true时存在。
- -1:未定义,
- 0:正向,
- 1: 逆时针90度,
- 2:逆时针180度,
- 3:逆时针270度
log_id uint64 唯一的log id,用于问题定位
words_result_num uint32 识别结果数,表示words_result的元素个数
words_result array() 定位和识别结果数组
+words string 识别结果字符串
// 示例
参考通用文字识别接口

银行卡识别

  • 调用示例
// 银行卡识别参数设置
BankCardParams param = new BankCardParams();
param.setImageFile(new File(filePath));

// 调用银行卡识别服务
OCR.getInstance().recognizeBankCard(param, new OnResultListener<BankCardResult>() {
    @Override
    public void onResult(BankCardResult result) {
        // 调用成功,返回BankCardResult对象
    }
    @Override
    public void onError(OCRError error) {
        // 调用失败,返回OCRError对象
    }
});
  • 结果返回
参数 类型 描述
log_id Uint64 唯一的log id,用于问题定位
result Object 定位和识别结果数组
+bank_card_number String 银行卡识别结果
+bank_name String 银行名,不能识别时为空
+bank_card_type uint32 银行卡类型,0:不能识别; 1: 借记卡; 2: 信用卡
// 示例
 {
    "log_id": 3207866271;
    result: {
        "bank_card_number": "6226 2288 8888 8888",
        "bank_card_type": 1,
        "bank_name": "\U5de5\U5546\U94f6\U884c"
    };
}

身份证识别

  • 调用示例
// 身份证识别参数设置
IDCardParams param = new IDCardParams();
param.setImageFile(new File(filePath));

// 调用身份证识别服务
OCR.getInstance().recognizeIDCard(param, new OnResultListener<IDCardResult>() {
    @Override
    public void onResult(IDCardResult result) {
        // 调用成功,返回IDCardResult对象
    }
    @Override
    public void onError(OCRError error) {
        // 调用失败,返回OCRError对象
    }
});

options参数

参数 必选 范围 类型 说明
image true String 图像数据,支持本地图像文件路径,图像文件二进制数据,要求base64编码后大小不超过1M,最短边至少15px,最长边最大2048px,支持jpg/png/bmp格式
isFront true true、false Boolean true:身份证正面,false:身份证背面
detect_direction false true、false string 是否检测图像朝向,默认不检测,即:false。可选值为:true - 检测图像朝向;false - 不检测图像朝向。朝向是指输入图像是正常方向、逆时针旋转90/180/270度
accuracy false auto、normal、high string 精准度,精度越高,速度越慢。default:auto
  • 结果返回
参数 类型 描述
direction Int32 图像方向,当detect_direction=true时存在。-1:未定义,0:正向,1: 逆时针90度, 2:逆时针180度, 3:逆时针270度
log_id Uint64 唯一的log id,用于问题定位
words_result Array 定位和识别结果数组,数组元素的key是身份证的主体字段(正面支持:住址、公民身份号码、出生、姓名、性别、民族,背面支持:签发机关、签发日期、失效日期)。只返回识别出的字段。若身份证号码校验不通过,则不返回
words_result_num Uint32 识别结果数,表示words_result的元素个数
+location Array 位置数组(坐标0点为左上角)
++left Uint32 表示定位位置的长方形左上顶点的水平坐标
++top Uint32 表示定位位置的长方形左上顶点的垂直坐标
++width Uint32 表示定位位置的长方形的宽度
++height Uint32 表示定位位置的长方形的高度
+words String 识别结果字符串
//示例
{
    "log_id": 7037721,
    "direction": 0,
    "words_result_num": 2,
    "words_result": {
        "住址": {
            "location": {
                "left": 227,
                "top": 235,
                "width": 229,
                "height": 51
            },
            "words": "湖北省天门市渔薪镇杨咀村一组2号",
        }
        ...
    }
}

行驶证识别

  • 调用示例
// 行驶证识别参数设置
OcrRequestParams param = new OcrRequestParams();

// 设置image参数
param.setImageFile(new File(filePath));
// 设置其他参数
param.putParam("detect_direction", true);
// 调用行驶证识别服务
OCR.getInstance().recognizeVehicleLicense(param, new OnResultListener<OcrResponseResult>() {
    @Override
    public void onResult(OcrResponseResult result) {
        // 调用成功,返回OcrResponseResult对象
        listener.onResult(result.getJsonRes());
    }

    @Override
    public void onError(OCRError error) {
        // 调用失败,返回OCRError对象
    }
});

options参数

参数 必选 类型 可选值范围 说明
image File对象 - 图像数据, 要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
detect_direction boolean true、false 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:- true:检测朝向;- false:不检测朝向。
accuracy string normal,缺省 normal 使用快速服务,1200ms左右时延;缺省或其它值使用高精度服务,1600ms左右时延
  • 结果返回
字段 说明 是否必选 类型
log_id number 唯一的log id,用于问题定位
words_result_num number 识别结果数,表示words_result的元素个数
words_result array 识别结果数组
+words string 识别结果字符串
//示例
{
    "errno": 0,
    "msg": "success",
    "data": {
        "words_result_num": 10,
        "words_result": {
            "品牌型号": {
                "words": "保时捷GT37182RUCRE"
            },
            "发证日期": {
                "words": "20160104"
            },
            "使用性质": {
                "words": "非营运"
            },
            "发动机号码": {
                "words": "20832"
            },
            "号牌号码": {
                "words": "苏A001"
            },
            "所有人": {
                "words": "圆圆"
            },
            "住址": {
                "words": "南京市江宁区弘景大道"
            },
            "注册日期": {
                "words": "20160104"
            },
            "车辆识别代号": {
                "words": "HCE58"
            },
            "车辆类型": {
                "words": "小型轿车"
            }
        }
    }
}

驾驶证识别

  • 调用示例
// 驾驶证识别参数设置
OcrRequestParams param = new OcrRequestParams();

// 设置image参数
param.setImageFile(new File(filePath));
// 设置其他参数
param.putParam("detect_direction", true);
// 调用驾驶证识别服务
OCR.getInstance().recognizeDrivingLicense(param, new OnResultListener<OcrResponseResult>() {
    @Override
    public void onResult(OcrResponseResult result) {
        // 调用成功,返回OcrResponseResult对象
        listener.onResult(result.getJsonRes());
    }

    @Override
    public void onError(OCRError error) {
        // 调用失败,返回OCRError对象
    }
});

options参数

参数 必选 类型 可选值范围 说明
image File对象 - 图像数据,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
detect_direction boolean true、false 是否检测图像朝向,默认不检测,即:false。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括:- true:检测朝向;- false:不检测朝向。
  • 结果返回
字段 必选 类型
log_id number 唯一的log id,用于问题定位
words_result_num number 识别结果数,表示words_result的元素个数
words_result array 识别结果数组
+words string 识别结果字符串
//示例
{
    "errno": 0,
    "msg": "success",
    "data": {
        "words_result_num": 10,
        "words_result": {
            "证号": {
                "words": "3208231999053090"
            },
            "有效期限": {
                "words": "6年"
            },
            "准驾车型": {
                "words": "B2"
            },
            "有效起始日期": {
                "words": "20101125"
            },
            "住址": {
                "words": "江苏省南通市海门镇秀山新城"
            },
            "姓名": {
                "words": "小欧欧"
            },
            "国籍": {
                "words": "中国"
            },
            "出生日期": {
                "words": "19990530"
            },
            "性别": {
                "words": "男"
            },
            "初次领证日期": {
                "words": "20100125"
            }
        }
    }
}

车牌识别

  • 调用示例
// 车牌识别参数设置
OcrRequestParams param = new OcrRequestParams();

// 设置image参数
param.setImageFile(new File(filePath));

// 调用车牌识别服务
OCR.getInstance().recognizeLicensePlate(param, new OnResultListener<OcrResponseResult>() {
    @Override
    public void onResult(OcrResponseResult result) {
        // 调用成功,返回OcrResponseResult对象
        listener.onResult(result.getJsonRes());
    }

    @Override
    public void onError(OCRError error) {
        // 调用失败,返回OCRError对象
    }
});

options参数

参数 必选 类型 可选值范围 说明
image File对象 - 图像数据,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  • 结果返回
参数 是否必须 类型 说明
log_id number 请求标识码,随机数,唯一
words_result object 暴恐结果置信度
+color   string 车牌颜色,如"blue"
+number string 车牌号码,示例:"苏HS7766"
//示例
{
  "words_result":{
     "color":"blue",
     "number":"粤FQ0000"
  },
  "log_id":2783673432
}

营业执照识别

  • 调用示例
// 营业执照识别参数设置
OcrRequestParams param = new OcrRequestParams();

// 设置image参数
param.setImageFile(new File(filePath));

// 调用营业执照识别服务
OCR.getInstance().recognizeBusinessLicense(param, new OnResultListener<OcrResponseResult>() {
    @Override
    public void onResult(OcrResponseResult result) {
        listener.onResult(result.getJsonRes());
    }

    @Override
    public void onError(OCRError error) {
        listener.onResult(error.getMessage());
    }
});

options参数

参数 必选 类型 可选值范围 说明
image File对象 - 图像数据,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
  • 结果返回
参数 是否必须 类型 说明
log_id uint64 请求标识码,随机数,唯一。
words_result_num uint32 识别结果数,表示words_result的元素个数
words_result array() 识别结果数组
left uint32 表示定位位置的长方形左上顶点的水平坐标
top uint32 表示定位位置的长方形左上顶点的垂直坐标
width uint32 表示定位位置的长方形的宽度
height uint32 表示定位位置的长方形的高度
words string 识别结果字符串
//示例
{
    "log_id": 490058765,
    "words_result": {
        "单位名称": {
            "location": {
                "left": 500,
                "top": 479,
                "width": 618,
                "height": 54
            },
            "words": "袁氏财团有限公司"
        },
        "法人": {
            "location": {
                "left": 938,
                "top": 557,
                "width": 94,
                "height": 46
            },
            "words": "袁运筹"
        },
        "地址": {
            "location": {
                "left": 503,
                "top": 644,
                "width": 574,
                "height": 57
            },
            "words": "江苏省南京市中山东路19号"
        },
        "有效期": {
            "location": {
                "left": 779,
                "top": 1108,
                "width": 271,
                "height": 49
            },
            "words": "2015年02月12日"
        },
        "证件编号": {
            "location": {
                "left": 1219,
                "top": 357,
                "width": 466,
                "height": 39
            },
            "words": "苏餐证字(2019)第666602666661号"
        },
        "社会信用代码": {
            "location": {
                "left": 0,
                "top": 0,
                "width": 0,
                "height": 0
            },
            "words": "无"
        }
    },
    "words_result_num": 6
}

通用票据识别

  • 调用示例
// 通用票据识别参数设置
OcrRequestParams param = new OcrRequestParams();

// 设置image参数
param.setImageFile(new File(filePath));

// 设置额外参数 
param.putParam("detect_direction", "true");

// 调用通用票据识别服务
OCR.getInstance().recognizeReceipt(param, new OnResultListener<OcrResponseResult>() {
    @Override
    public void onResult(OcrResponseResult result) {
        listener.onResult(result.getJsonRes());
    }

    @Override
    public void onError(OCRError error) {
        listener.onResult(error.getMessage());
    }
});

options参数

参数 必选 类型 可选值范围 说明
image File对象 - 图像数据,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式
recognize_granularity false string big、small 是否定位单字符位置,big:不定位单字符位置,默认值;small:定位单字符位置
probability false string true、false 是否返回识别结果中每一行的置信度
accuracy false string normal,缺省 normal 使用快速服务;缺省或其它值使用高精度服务
detect_direction false string true、false 是否检测图像朝向,默认不检测,即:false。可选值包括true - 检测朝向;false - 不检测朝向。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。
  • 结果返回
字段 是否必选 类型 说明
log_id uint64 唯一的log id,用于问题定位
words_result_num uint32 识别结果数,表示words_result的元素个数
words_result array() 定位和识别结果数组
location object 位置数组(坐标0点为左上角)
left uint32 表示定位位置的长方形左上顶点的水平坐标
top uint32 表示定位位置的长方形左上顶点的垂直坐标
width uint32 表示定位位置的长方形的宽度
height uint32 表示定位位置的长方形的高度
words string 识别结果字符串
chars array() 单字符结果,recognize_granularity=small时存在
location array() 位置数组(坐标0点为左上角)
left uint32 表示定位位置的长方形左上顶点的水平坐标
top uint32 表示定位位置的长方形左上顶点的垂直坐标
width uint32 表示定位定位位置的长方形的宽度
height uint32 表示位置的长方形的高度
char string 单字符识别结果
probability object 识别结果中每一行的置信度值,包含average:行置信度平均值,variance:行置信度方差,min:行置信度最小值
{
    "log_id": 2661573626,
    "words_result": [
        {
            "location": {
                "left": 10,
                "top": 3,
                "width": 121,
                "height": 24
            },
            "words": "姓名:小明明",
            "chars": [
                {
                    "location": {
                        "left": 16,
                        "top": 6,
                        "width": 17,
                        "height": 20
                    },
                    "char": "姓"
                },
                {
                    "location": {
                        "left": 35,
                        "top": 6,
                        "width": 17,
                        "height": 20
                    },
                    "char": "名"
                },
                {
                    "location": {
                        "left": 55,
                        "top": 6,
                        "width": 11,
                        "height": 20
                    },
                    "char": ":"
                },
                {
                    "location": {
                        "left": 68,
                        "top": 6,
                        "width": 17,
                        "height": 20
                    },
                    "char": "小"
                },
                {
                    "location": {
                        "left": 87,
                        "top": 6,
                        "width": 17,
                        "height": 20
                    },
                    "char": "明"
                },
                {
                    "location": {
                        "left": 107,
                        "top": 6,
                        "width": 17,
                        "height": 20
                    },
                    "char": "明"
                }
            ]
        }
    ],
    "words_result_num": 2
}