最佳Tess-two配置以获得最佳识别结果?

时间:2016-06-29 16:56:17

标签: android ocr tesseract tess-two

我目前正在开发一款利用开源OCR库的Android应用程序" Tesseract"制作收据确认的应用程序。我已经让图书馆与" Tess-two" Tesseract的分叉。我遇到的问题是识别非常不一致。即使提供了正确裁剪的良好图像,识别也不是很好。我说如果给出我认为理想的情况,那么识别的准确度大约是90%。当提供任何数量次优的条件(昏暗的光线,模糊的图像,未剪切的等等......)时,我发现我的精确度几乎为0%。

出于我的应用程序的目的,即使90%的准确度也几乎是不可接受的,因为我需要能够从收据中获得确切的信息和数字,并且完美地#34;无需担心不正确地阅读信息。

所以我的问题是:配置Tess-2以获得最高精度的最佳方法是什么?

简而言之,这就是我为设置库所做的工作:

//prior to running this code, I create the directory for /tessdata and copy my eng.traineddata file in there from the app's assets folder.
baseApi.setVariable("save_best_choices", "T");
baseApi = new TessBaseAPI();
baseApi.init(DATA_PATH, "eng");
baseApi.setVariable("tessedit_char_whitelist", "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$.!?/,+=-*\"'<:&"); //I was experimenting with this to try and improve accuracy, it didn't seem to help tremendously.


baseApi.setImage(photo);//photo is a bitmap that is selected from the phone's gallery.
String tmp = baseApi.getUTF8Text();

这里有什么我做错了,或者我可以做得更好吗? 我应该包括除eng.traineddata之外的任何文件吗?我知道每种语言都有多个文件,但老实说,我无法确定什么是什么,以及实际需要包含什么。根据我的收集,我得到了唯一需要的文件。 是否有任何其他设置我可以/应该使用&#34; setVariable&#34;功能

另外,Tess-two是否有任何内置支持&#34; deskewing&#34;图像,或调整提供的图像的对比度?我还没有搞砸过这些技术中的任何一种,但这可能有所帮助,对吗?

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

如果您的Android应用程序应该在字典单词上预期,那么请查看Minimum Edit Distance算法并将其应用于tesseract给出的结果。