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及更高版本