Firebase ML套件无法正确识别语言英语或其他语言

问题描述

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

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

示例

Captured Image by camera

Result for captured image

我曾经使用过的依赖关系

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();
    }

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

解决方法

您可以共享您的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

,

我们对Firebase的Firebase ML Kit进行了一些更改,以更好地区分设备上的API和基于云的API。 “ ML Kit”(没有firebase品牌)包含所有设备上的API。 Here's从Firebase mlkit到mlkit的迁移指南。

此问题可能导致图像格式错误。您能否尝试参考示例here来从不同来源构造InputImage?

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...