首页 > 解决方案 > Firebase ML 套件无法准确识别语言(英语或其他)

问题描述

我正在使用 firebase ML Kit 为 android 开发一个文本识别器应用程序。我捕获文本图像时的问题是没有得到图像的实际结果,为什么?我认为我的应用程序不能很好地识别语言。我该如何解决这个问题?

#我是android新手请在这方面帮助我

例子 相机拍摄的图像

捕获图像的结果

我使用过的依赖

implementation 'com.google.firebase:firebase-ml-vision:20.0.0'

识别文本和处理文本代码

/**
 * This method is used to extract the text from the image
 * @param image
 */
private void recognizeText(FirebaseVisionImage image){
    FirebaseVisionTextRecognizer detector = FirebaseVision.getInstance()
            .getOnDeviceTextRecognizer();
    detector.processImage(image)
            .addOnSuccessListener(new OnSuccessListener<FirebaseVisionText>() {
                @Override
                public void onSuccess(FirebaseVisionText firebaseVisionText) {
                    processText(firebaseVisionText);
                }
            })
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    e.printStackTrace();
                    Toast.makeText(getActivity(), "No text found", Toast.LENGTH_SHORT).show();
                }
            });
}

/**
 * This method is used to process the text and send the result (text) to ResultLayout fragment
 * @param firebaseVisionText
 */
private void processText(FirebaseVisionText firebaseVisionText) {
    if(firebaseVisionText.getTextBlocks().isEmpty()){
        Toast.makeText(getActivity(), "No text found or Text may not be clear", Toast.LENGTH_LONG).show();
    }
    else {
        String text = "";
        for (FirebaseVisionText.TextBlock block : firebaseVisionText.getTextBlocks()){
            text = text + block.getText() + " ";
        }

        String tag = ((MainActivity)getActivity()).getTag_ResultLayout();
        ResultLayout fragment = (ResultLayout)getActivity().getSupportFragmentManager()
                .findFragmentByTag(tag);
        fragment.setResult(text);
        ((MainActivity)getActivity()).openResultLayout();
    }

我准备在这方面提供更多信息

标签: androidgoogle-visionfirebase-mlkittext-recognitiongoogle-mlkit

解决方案


你能分享你的 AndroidManifest.xml 吗?

如果你想获得更好的结果,你可以尝试使用多个模型,如下所示:

  <application ...>
      ...
      <meta-data
          android:name="com.google.firebase.ml.vision.DEPENDENCIES"
          android:value="ocr" />
      <!-- To use multiple models: android:value="ocr,model2,model3" -->
  </application>

更多信息可以在这里的官方文档中找到: https ://firebase.google.com/docs/ml-kit/android/recognize-text


推荐阅读