针对安卓APP的 OCR图片识别技术研究与 DEMO
2013-04-02 15:09
579 查看
通过近端时间的在网络上的学习,了解了俩个OCR的技术,包括tesseract 和 openCv这俩个技术
主要研究了tesseract的OCR技术,并通过模拟器做了个demo app下面与大家分享过程,希望共同进步。
Tesseract OCR引擎是1995年UNLVAccuracy大赛中的排名前三的引擎。1995年到2006年间,它没有大的改进;之后,它被谷歌大幅改进,很可能是识别率最高的可用开源OCR引擎之一了。结合Leptonica图像处理库,它能读取各种各样格式的图像文件,识别出超过40多种语言的文本。
Tesseract的下载地址为:
http://code.google.com/p/tesseract-ocr/downloads/list
Tesseract for android 的 tess-two下载地址为:
https://github.com/rmtheis/tess-two/archive/master.zip
接下来需要对下载下来的tess-two进行编译
如何用android ndk进行so的编译我放在了另外的一个文档中,大家请参考
也可以直接下载编译好的tess-two so文件
http://download.csdn.net/detail/uniquerhythm/5166651
编译好后,将src下的两个包以及libs导入到自己的项目就可以用啦
接下来我们还需要 tessract的android
jar包
Android官方地址:tesseract-android-tools
http://code.google.com/p/tesseract-android-tools/downloads/list?can=1&q=
但它必须要一个匹配库,即tessdata,我们可以从官方拷贝,在前面git的项目里面tesseract源码目录有现成的tessdata可以用,对于中文,googlecode上也有下载,当然也可以自己训练不同语言的tessdata。
包leptonica的类我们不必使用,只要使用tess包的类就行了
下面是 tessBaseAPI的主要用法
TessBaseAPI
[java]
view plaincopyprint?
//////////////////////华丽的分割线//////////////////////////////////////////////////////
TessBaseAPI baseApi=new TessBaseAPI();
//初始化tess
//android下面,tessdata肯定得放到sd卡里了
//如果tessdata这个目录放在sd卡的根目录
//那么path直接传入sd卡的目录
//eng就是英文,关于语言,按ISO 639-3标准的代码就行,具体请移步wiki
baseApi.init("tessdata文件夹的父级目录","eng");
//options是为了缩放图片,这个酌情缩放,图片小的话可以不缩放
BitmapFactory.Options options=newBitmapFactory.Options();
//缩小为原来的1/2
options.inSampleSize=2;
//bitmap,我这里是以流的形式,只要能形成Bitmap就行
Bitmap bitmap = BitmapFactory.decodeStream(instream,null,options);
instream.close();
//设置要ocr的图片bitmap
baseApi.setImage(bitmap);
//根据Init的语言,获得ocr后的字符串
String text= baseApi.getUTF8Text();
通过以上即可对图片进行识别并得到识别文字
下面是我自身的demo开发的详细过程与大家分享
首先创建一个界面:主要包括内存图片识别照片识别识别,图片区,以及识别结果区域
确认之前编译好的so文件以及下载的jar包放入Lib下
针对tessract
的jar包方法进行程序编写
因为程序的写法,需要将 tessdata识别库与ocr图片放到SD卡中
接着,右键项目运行选择android,(android环境的配置请参考李涛的分享文档)
运行:接下来就是漫长的等待。。。。
运行成功:
最终运行结果:成功
结论:对于tesseract的识别如果换成其他字体或手写体,则需要手工的训练tesseract的识别字体库及放入SD卡中tessdata文件夹中的文件
现还有一些问题需要大家一起来共同克服完成
1. 照相机功能
2. 对于手写字体的识别训练的识别率的控制
针对于tessdata的训练,我这里还有一个网址,大家可以上去学习一下相信会有作用
Tesseract-OCR字符识别-样书训练
http://www.myexception.cn/mobile/1119147.html
以上就是我近期的技术研究以及demo,与大家分享希望共同进步,如大家有问题,可以随时找我沟通!
源码以及程序找不到可以找我联系!站内短信 或者 回复哦!
主要研究了tesseract的OCR技术,并通过模拟器做了个demo app下面与大家分享过程,希望共同进步。
Tesseract OCR引擎是1995年UNLVAccuracy大赛中的排名前三的引擎。1995年到2006年间,它没有大的改进;之后,它被谷歌大幅改进,很可能是识别率最高的可用开源OCR引擎之一了。结合Leptonica图像处理库,它能读取各种各样格式的图像文件,识别出超过40多种语言的文本。
Tesseract的下载地址为:
http://code.google.com/p/tesseract-ocr/downloads/list
Tesseract for android 的 tess-two下载地址为:
https://github.com/rmtheis/tess-two/archive/master.zip
接下来需要对下载下来的tess-two进行编译
如何用android ndk进行so的编译我放在了另外的一个文档中,大家请参考
也可以直接下载编译好的tess-two so文件
http://download.csdn.net/detail/uniquerhythm/5166651
编译好后,将src下的两个包以及libs导入到自己的项目就可以用啦
接下来我们还需要 tessract的android
jar包
Android官方地址:tesseract-android-tools
http://code.google.com/p/tesseract-android-tools/downloads/list?can=1&q=
但它必须要一个匹配库,即tessdata,我们可以从官方拷贝,在前面git的项目里面tesseract源码目录有现成的tessdata可以用,对于中文,googlecode上也有下载,当然也可以自己训练不同语言的tessdata。
包leptonica的类我们不必使用,只要使用tess包的类就行了
下面是 tessBaseAPI的主要用法
TessBaseAPI
[java]
view plaincopyprint?
//////////////////////华丽的分割线//////////////////////////////////////////////////////
TessBaseAPI baseApi=new TessBaseAPI();
//初始化tess
//android下面,tessdata肯定得放到sd卡里了
//如果tessdata这个目录放在sd卡的根目录
//那么path直接传入sd卡的目录
//eng就是英文,关于语言,按ISO 639-3标准的代码就行,具体请移步wiki
baseApi.init("tessdata文件夹的父级目录","eng");
//options是为了缩放图片,这个酌情缩放,图片小的话可以不缩放
BitmapFactory.Options options=newBitmapFactory.Options();
//缩小为原来的1/2
options.inSampleSize=2;
//bitmap,我这里是以流的形式,只要能形成Bitmap就行
Bitmap bitmap = BitmapFactory.decodeStream(instream,null,options);
instream.close();
//设置要ocr的图片bitmap
baseApi.setImage(bitmap);
//根据Init的语言,获得ocr后的字符串
String text= baseApi.getUTF8Text();
通过以上即可对图片进行识别并得到识别文字
下面是我自身的demo开发的详细过程与大家分享
首先创建一个界面:主要包括内存图片识别照片识别识别,图片区,以及识别结果区域
确认之前编译好的so文件以及下载的jar包放入Lib下
针对tessract
的jar包方法进行程序编写
因为程序的写法,需要将 tessdata识别库与ocr图片放到SD卡中
接着,右键项目运行选择android,(android环境的配置请参考李涛的分享文档)
运行:接下来就是漫长的等待。。。。
运行成功:
最终运行结果:成功
结论:对于tesseract的识别如果换成其他字体或手写体,则需要手工的训练tesseract的识别字体库及放入SD卡中tessdata文件夹中的文件
现还有一些问题需要大家一起来共同克服完成
1. 照相机功能
2. 对于手写字体的识别训练的识别率的控制
针对于tessdata的训练,我这里还有一个网址,大家可以上去学习一下相信会有作用
Tesseract-OCR字符识别-样书训练
http://www.myexception.cn/mobile/1119147.html
以上就是我近期的技术研究以及demo,与大家分享希望共同进步,如大家有问题,可以随时找我沟通!
源码以及程序找不到可以找我联系!站内短信 或者 回复哦!
相关文章推荐
- [置顶] 安卓图片OCR识别技术 tesseract研究文档-20130328-v1
- Java OCR tesseract 图片识别技术(二) 4000
- [转]基于OCR的图片字符识别可行性研究
- ocr身份证识别api,身份证图像识别demo,识别身份证图片中的姓名,身份证号
- Unity3D平台使用图片识别+语音合成技术的一个Demo
- Java OCR tesseract 图片识别技术(一)
- Java OCR tess4j 图片识别技术(三)
- 基于iOS平台的OCR识别技术的分析与研究
- 车牌识别api接口—移动端安卓、iOS系统的OCR技术
- Python使用OCR技术识别图片中的文字(入门篇)
- OCR技术——针对特定验证码的识别
- 基于OCR的图片字符识别可行性研究
- 关于实时人脸图像识别技术的研究
- ocr训练图片识别
- 关于腾讯云的万象有图的身份证识别和图片鉴黄的案例demo
- VirtualApp技术黑产利用研究报告
- Andrew NG 机器学习 笔记-week11-应用实例:图片文字识别(Application Example:Photo OCR)
- NET 2.0 OCR文字识别技术(Tesseract 引擎)[转]
- PDF补丁丁(0.3.2.1测试版)新增光学字符识别(OCR)功能,识别 PDF 文档图片的文字
- 安卓Android拍照车牌,车牌扫描识别技术SDK