文字识别

    接口调用说明

    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() { @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() { @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() { @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() { @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() { @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() { @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() { @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() { @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() { @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:不检测朝向。
    vehicle_license_side string front/back - front:默认值,识别行驶证主页
    - back:识别行驶证副页
    unified string true/false - false:默认值,不进行归一化处理
    - true:对输出字段进行归一化处理,将新/老版行驶证的“注册登记日期/注册日期”统一为”注册日期“进行输出
    • 结果返回
    字段 说明 是否必选 类型
    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() { @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() { @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() { @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() { @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
    }
    上一篇
    快速入门
    下一篇
    FAQ