基于百度ocr的二代身份证识别

baidu-ocr-idcard

基于百度OCR的二代身份证识别,for node

前言 本库是当时的兴趣使然,后期可能不会维护 建议不要将本库使用到生产环境,如果百度停止提供OCR服务,可能会导致本服务失效 如果想提高识别出身份证正面的几率,可能需要对头像做模糊处理 功能

扫描第二代身份证,可在回调函数中进一步处理返回数据

限制

由于基于百度ocr,所以它有什么限制,这就有什么限制。目前比较受影响的限制有:

只支持jpg,且只能上传300KB以内的图片 上传身份证之前请先对身份证上的头像进行模糊处理,否则百度ocr可能无法识别。 安装

在命令行中输入:

$ npm install baidu-ocr-idcard 使用

var idcardOCR = require('../lib/baidu-ocr-idcard.js').create('your baidu api key'); idcardOCR.scan(idcard, side, function(err, data) { if(err){ res.json(err); return; } res.json(data); }) 接口 create

创建一个IDCardOCR对象,需传入百度api key

var idcardOCR = require('../lib/baidu-ocr-idcard.js').create('your baidu api key'); scan

扫描第二代身份证,可在回调函数中进一步处理返回数据。

IDCardOCR.prototype.scan(idcard, side, cb)

idcard为身份证图片的路径,请务必填写正确的图片路径,否则可能造成意想不到的后果。

side为身份证图片的正反面,正面为'obverse',反面为'reverse',其余所有值都为自动识别正反面,不过出于语义化的考虑,建议您填写'auto'

cb为回调函数,它接受两个参数:

idcardOCR.scan(idcard, side, function(err, data) {})

第一个参数是err,第二个参数是data,它们都是PlainObject,格式为{errNum:...,errMsg:...,retData:...}

err:若err存在,则代表出错;不存在,则代表识别成功。errNum一定为-1(Number类型),errMsg有可能为对象或者字符串,retData一定为空字符串''。

dataerrNum一定为0(Number类型),errMsg为字符串,retData的格式分两种情况,正面如下:

{ name:'string', //姓名 sex:'string', //性别 nation:'string', //民族 birthday:'string', //生日 residence:'string', //住所 idNum:'string', //身份证号码 side:'string' //值为'obverse' }

反面如下:

{ authority:'string', //签发机关 validPeriod:'string', //有效期 side:'string' //值为'reverse' } Demo

运行前请先在根目录使用$ npm install安装依赖,然后$ cd examples$ node index.js,然后在浏览器中输入localhost:8888即可启动。请注意在examples/index.js中相应代码处填写自己的baidu api key,或者添加一个BAIDU_APIKEY环境变量

测试

安装依赖后,在项目根目录输入$ mocha即可。请注意在test/test.js中相应代码处填写自己的baidu api key,或者添加一个BAIDU_APIKEY环境变量

感谢

百度OCR

百度OCR for node

License

The MIT License (MIT)

版权声明:

1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。
2、网站不提供资料下载,如需下载请到原作者页面进行下载。