在TextRecognizer中设置OCR白名单

时间:2016-08-22 08:57:06

标签: android-vision

我正在分析ocr-reader示例项目:https://github.com/googlesamples/android-vision/tree/master/visionSamples/ocr-reader

目标是用Android Vision替换Android(使用OpenCV和Tesseract)的自定义“文本到图像”实现。

我找不到任何方法为OCR处理器应用高级配置。例如,在我的应用程序中,只允许一组预定义的符号。为此,我在我的应用程序中使用以下代码:

api.SetVariable("tessedit_char_whitelist", "ABJOKEA1234");

这有助于避免例如0和O之间的混淆。

有没有办法用android-vision做到这一点?构建TextRecognizer时我没有看到任何选项:

TextRecognizer textRecognizer = new TextRecognizer.Builder(context).build();

总的来说,Google是否计划扩展图书馆的可配置性?例如:

  • 裁剪源图像
  • 提供自定义OCR培训文件

或者它应该是一个简单的库,只有常见的功能?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我也正在研究这个问题,我正在尝试制作具有移动视觉的名片阅读器,到目前为止,当检测到文本时,我正在使用检查条件,如果条件使用实时生成的字符串..

  if (mText == null) {
            return;
        }
        if(mText.getValue().contains("@") && mText.getValue().contains(".") && !mText.getValue().equals(mText.getValue().toUpperCase())){
            Log.e("mTextemail",mText.getValue());
            email=mText.getValue();
        }
        if (mText.getValue().startsWith("+")|| mText.getValue().startsWith("0")&& mText.getValue().contains("+-0123456789/-#")&& !mText.getValue().contains("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")){
            Log.e("mTextphone",mText.getValue());
            phone=mText.getValue();
        }
        if (!mText.getValue().contains("ABCDEFGHIJKLMNOPQRSTUVWXYZ")&& !mText.getValue().contains("0123456789-/#") && !mText.getValue().contains("abcdefghijklmnopqrstuvwxyz")){
            Log.e("mTextcompanyName",mText.getValue());
            companyName=mText.getValue();
        }if(mText.getValue().startsWith("ABCDEFGHIJKLMNOPQRSTUVWXYZ" )&& mText.getValue().endsWith("abcdefghijklmnopqrstuvwxyz")){
            name=mText.getValue();
        }
        if(name ==null){
            name="Was not specified";
        }
        if(email ==null){
            email="Was not specified";
        }
        if(phone ==null){
            phone="Was not specified";
        }
        if(companyName ==null){
            companyName="Was not specified";
        }

它以70%的准确度打印日志,可能我们可以互相帮助,我也希望这些正确的日志显示在我使用过接口但不起作用的活动中。 如果您有任何提示或技巧,请分享。