twoBaiDuOcr

来自于:开发者立即使用

论坛示例

为帮助用户更好更快的使用模块,论坛维护了一个示例 ( https://community.apicloud.com/bbs/thread-141516-1-1.html ),示例中包含示例代码、知识点讲解。

概述

首先在百度AI开放平台(http://ai.baidu.com )上申请账号,新建文字识别应用。

1、封装百度ocr识别模块包括身份证识别、银行卡识别、行驶证识别,使用简单友好,去除官方中文key值和无用字段,身份证识别开启风险监测;银行卡识别银行卡并返回卡号、有效期、发卡行和卡片类型;行驶证识别对机动车行驶证主页及副页所有21个字段进行结构化识别。

2、支持对大陆居民二代身份证正反面的所有字段进行结构化识别,包括姓名、性别、民族、出生日期、住址、身份证号、签发机关、有效期限;同时,支持对用户上传的身份证图片进行图像风险和质量检测,可识别图片是否为复印件或临时身份证,是否被翻拍或编辑,是否存在正反颠倒、模糊、欠曝、过曝等质量问题。

3、百度ocr sdk ,android sdk版本2.0.1, IOS sdk版本3.0.7,系统:支持 Android 4.1(API Level 16)到Android 12(API Level 31)系统,iOS: 8.0 以上

4、百度ocr收费标准:身份证识别500次/天免费 + 超出按量计费 ,银行卡识别500次/天免费 + 超出按量计费,行驶证识别200次/天免费+ 超出按量计费,本模块使用费不包括百度收取的费用。

模块配置   

1.配置 config.xml 文件,配置完毕,需通过云端编译生效,配置方法如下:
名称:twoBaiDuOcr
参数:path、apiKey、apiSecret、iosLicenseFileName、androidLicenseFileName
配置示例:

  <feature name="twoBaiDuOcr">
    <!--固定写法,不用修改-->
    <param name="path" value="widget://" />
    <!--以下是第一种通过API Key / Secret Key获取AccessToken ,不建议使用,不安全-->
    <param name="apiKey" value="2Gu9Cg6ww39CeOxGrcWNclci" />
    <param name="secretKey" value="LKTgYUEDIl3Qd3cclTKq5xm2EH4SnbPG" />
     <!--以下是第二种授权文件(安全模式)获取AccessToken ,强烈建议使用-->
     <!--文件放在res目录下, android文件名:ocr-android.license;ios文件名:ocr-ios.license -->
    <param name="iosLicenseFileName" value="res/aip.license" />
    <param name="androidLicenseFileName" value="res/ocr-android.license" />
 </feature>

initAccessToken

通过AK/SK获取AccessToken方法,在移动设备中可能会存在AK/SK被盗取的风险,不建议使用,对应config.xml第一种 在使用的页面,先调用初始化方法,再使用,一定要放在页面初始化后apiready方法中,参见下面的示例代码

示例代码

  var twoBaiDuOcr = null;
  apiready = function () {
    api.setStatusBarStyle({
        style: 'dark',
        color: '#6ab494'
    });
    twoBaiDuOcr = api.require('twoBaiDuOcr');
    var param={}
    twoBaiDuOcr.initAccessToken(param,function(ret, err){
        if (api.systemType != 'ios'){
            // 初始化身份证本地质量控制,只用android版本需要,如果不识别身份证,可以删除此方法
            twoBaiDuOcr.initCameraNative({ }, function(ret, err) {
            });
        }
    })        
}

可用性

Android系统 ,IOS系统
可提供的1.0.0及更高版本

initAccessTokenByLicense

通过License授权文件获取AccessToken方法,此方法安全,强烈建议使用,替换initAccessToken,对应config.xml第二种 在使用的页面,先调用初始化方法,再使用,一定要放在页面初始化后apiready方法中,参见下面的示例代码

示例代码

  var twoBaiDuOcr = null;
  apiready = function () {
    api.setStatusBarStyle({
        style: 'dark',
        color: '#6ab494'
    });
    twoBaiDuOcr = api.require('twoBaiDuOcr');
    var param={}
    twoBaiDuOcr.initAccessTokenByLicense({},function(ret, err){
            if (api.systemType != 'ios'){
                // 初始化身份证本地质量控制,只用android版本需要,如果不识别身份证,可以删除此方法
                twoBaiDuOcr.initCameraNative({ }, function(ret, err) {
            });
            }

        });    
}

可用性

Android系统 ,IOS系统
可提供的1.0.0及更高版本

idCardFront

身份证正面识别方法。

idCardFront({}, callback(ret, err))

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true   //布尔型true||false;是否成功,true表示成功,false表示失败
    imagePath: string ,   //字符串类型;照片保存路径
    riskType: string ,   //字符串类型;normal-正常身份证;copy-复印件;temporary-临时身份证;screen-翻拍;unknown-其他未知情况
    imageStatus: string ,   //字符串类型;normal-识别正常,reversed_side-身份证正反面颠倒,non_idcard-上传的图片中不包含身份证
                            //    blurred-身份证模糊
                            //    other_type_card-其他类型证照
                            //    over_exposure-身份证关键字段反光或过曝
                            //    over_dark-身份证欠曝(亮度过低)
                            //    unknown-未知状态
    idCardSide: string ,   //字符串类型;front:身份证含照片的一面;back:身份证带国徽的一面
    address: string ,   //字符串类型;地址
    birthday: string ,   //字符串类型;生日
    idNumber: string ,   //字符串类型;身份证号
    ethnic: string ,   //字符串类型;民族
    gender: string ,   //字符串类型;性别
    name: string    //字符串类型;姓名

}

示例代码

twoBaiDuOcr.idCardFront({}, function(ret, err) {
    if (ret.status) {
        alert(JSON.stringify(ret));
    } else {
        alert(err);
    }

可用性

Android系统 ,IOS系统
可提供的1.0.0及更高版本

idCardBack

身份证背面识别方法

idCardBack({}, callback(ret, err))

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true   //布尔型true||false;是否成功,true表示成功,false表示失败
    imagePath: string ,   //字符串类型;照片保存路径
    riskType: string ,   //字符串类型;normal-正常身份证;copy-复印件;temporary-临时身份证;screen-翻拍;unknown-其他未知情况
    imageStatus: string ,   //字符串类型;normal-识别正常,reversed_side-身份证正反面颠倒,non_idcard-上传的图片中不包含身份证
                            //    blurred-身份证模糊
                            //    other_type_card-其他类型证照
                            //    over_exposure-身份证关键字段反光或过曝
                            //    over_dark-身份证欠曝(亮度过低)
                            //    unknown-未知状态
    idCardSide: string ,   //字符串类型;front:身份证含照片的一面;back:身份证带国徽的一面
    expiryDate: string ,   //字符串类型;身份证失效时间
    issueAuthority: string ,   //字符串类型;身份证签发机关
    signDate: string    //字符串类型;发证日期

}

示例代码

twoBaiDuOcr.idCardBack({}, function(ret, err) {
    if (ret.status) {
        alert(JSON.stringify(ret));
    } else {
        alert(err);
    }

可用性

Android系统 ,IOS系统
可提供的1.0.0及更高版本

bankcard

银行卡识别方法

bankcard({}, callback(ret, err))

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true   //布尔型true||false;是否成功,true表示成功,false表示失败
    imagePath: string ,   //字符串类型;照片保存路径
    bankName: string ,   //字符串类型;所属银行
    bankCardType: string ,   //字符串类型;银行卡类型 ,0:不能识别; 1: 借记卡; 2: 信用卡
    bankCardNumber: string ,   //字符串类型;银行卡号


}

示例代码

var twoBaiDuOcr = api.require('twoBaiDuOcr');
twoBaiDuOcr.bankcard({ 
}, function(ret, err) {
    if (ret.status) {
        alert(JSON.stringify(ret));
    } else {
        alert(err);
    }
});

可用性

Android系统 ,IOS系统
可提供的1.0.0及更高版本

vehicleLicense

行驶证识别方法

vehicleLicense({}, callback(ret, err))

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true   //布尔型true||false;是否成功,true表示成功,false表示失败
    imagePath: string ,   //字符串类型;照片保存路径
    brandModel: string ,   //字符串类型;品牌型号
    issueDate: string ,   //字符串类型;发证日期
    usageNature: string ,   //字符串类型;使用性质
    engineNumber: string ,   //字符串类型;发动机号码
    licenseNumber: string ,   //字符串类型;号牌号码
    owner: string ,   //字符串类型;所有人
    adress: string ,   //字符串类型;住址
    registrationDate: string ,   //字符串类型;注册日期
    vehicleCode: string ,   //字符串类型;车辆识别代号
    vehicleType: string    //字符串类型;车辆类型
    issuedBy: string    //字符串类型;发证单位

}

示例代码

var twoBaiDuOcr = api.require('twoBaiDuOcr');
twoBaiDuOcr.vehicleLicense({ 
}, function(ret, err) {
    if (ret.status) {
        alert(JSON.stringify(ret));
    } else {
        alert(err);
    }
});

可用性

Android系统 ,IOS系统
可提供的1.0.0及更高版本