Android利用ocr实现身份证识别

首先我们需要简单的了解一下ocr:

ocr (optical character recognition ,光学字符识别) 是指电子设备(例如扫描仪或数码相机)检查纸上的字符,通过检测暗,亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程。 这样就给我编程提供了接口,我们可以识别图片的文字了 (有些文档我们通过手机拍照的,直接生成word )身份证识别,银行卡识别等。

简单的说ocr就是一种光学识别。

如何在android中实现ocr呢?google已经为我们提供了一个类库,里面有对应的api可以供我们调用,

在github的地址是:github.com/rmtheis/tess-two

我们可以将该库依赖进我们的项目中,就可以实现了身份证上文字的识别,特别注意的是再使用该类库时,需要在我们手机的根目录下新建一个tessdata文件夹,里面放我们的中文识别符,既然要检测中文,当然要一个类似于字典的文件。

中文识别符的下载地址为:github.com/daheicode/chi_sim.git

下面简单介绍介绍一下这个类库的使用,使用起来比较简单:


Android利用ocr实现身份证识别_第1张图片

tess-two有一个核心的类  TessBaseAPI,通过这个类我们的中文识别字符,通过调用该类的init()方法来实现,然后设置我们要识别身份证的图片,调用该类的setImage()方法实现,最后返回我们的结果,通过调用getUTF8Text()方法来实现。就会得到我们的识别结果。

该类的操作都属于耗时操作,所以要放在工作线程中,避免ui线程阻塞。

可以看出该方法简单,当然效果也是很差强人意的,本人亲测,识别速度很慢,大概需要30s左右,并且识别的准确度也很低,tees-two对中文识别本来就不是很好,所以这种方法不是很好,我们需要一个更好的识别系统,能更快速,更准确的识别。下一篇我会介绍使用百度云的文字识别来进行身份证的识别。

地址为:

www.jianshu.com/p/7d815045cef9

你可能感兴趣的:(Android利用ocr实现身份证识别)