您的位置:首页 > 编程语言 > Java开发

JAVA识别身份证号码,H5识别身份证号码,tesseract-ocr识别(二)

2016-03-15 11:55 363 查看

背景介绍

上一篇博文介绍了如何使用JAVA识别身份证号码,假设在截取了身份证号码信息的情况下,这一篇博文主要讨论一下思路吧,技术方面都是大家会的。

思路分析

H5拍照上传 —> 服务端截取身份证号码 —–> 识别号码 —–>返回信息

这几步,关键点在于 截取身份证号码这个步骤。我们期望的是正好截取到身份证号码的位置。



这位大哥,罪过罪过,暂且借你图片一用,如侵犯了权益,请联系我,立马删除。

最优方案

我觉得最好的办法是,直接在照相的界面出现一个红色的框框,让用户自己去对准身份证号码,可惜H5调用摄像头只能使用系统的界面,这个功能必须APP来做。没办法最优方案只好抛弃。

歪招

由于H5的限制,我想了一个歪招,用户上传完照片之后,看见图片才给他显示一个红框,如果识别错误,用户再次照相的时候自己去校准。

这个体验肯定非常不好,目前未使用APP的情况下,我们暂且这样吧。

处理图片

在截取身份证位置的时候,每个摄像头像素不一样怎么办呢?当然可以使用百分比截取。

而我使用的是对图片进行缩放,据我观察,大概缩放到 900x540,当然这会有一点变形。

具体值大家自行把握。

然后截取身份证号码的位置。具体值大家可以自行把握。

ImgCutUtil.zoomImage(src, src, 900, 540);
ImgCutUtil.cutImage(src, temp + filname, 290, 400, 600, 140);
return TesseractUtil.recognizeText(new File(temp + filname));


找到前端,把界面做出来,你看见的红色框框是一个div,是前端用CSS画出来的,当然你也可以在后台处理图片的时候,把你截取的那一部分加上红色框。展示界面如下。





测试结果

使用Iphone5s、Iphone6、Iphone6s测试,识别效果良好错误率很少。

使用魅族测试,识别率低。照片模糊偏黄(是不是不对图片进行缩放会好些?大家可以测试一下)

测试结果证明一个道理,这个东西识别率要提高,必须要结合APP做!!!

后记

依照同样的思路,安装上中文语言包,然后对tesseract进行训练,是不是可以把所有的信息都是别呢?如果你做出来了请告诉我!!嘿嘿嘿。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: