华为 HIAI Engine "General text recognition" 未检测到图像中的任何文本

Huawei HIAI Engine "General text recognition" is not detecting any text from an image

当从 HIAI 引擎使用 "General text recognition" 时,我无法让它检测到 return 任何文本。例如,对于 sample image,它 return 是空文本,但代码为 200。我使用了 HIAI 文档中的示例程序,所以我不知道问题出在哪里。所以我从头开始创建了另一个应用程序,结果是一样的。

华为HIAI的基础能力包括人脸识别、图像识别、自然语言处理、语言识别、代码检测等。如果无法识别图片中的文字,建议使用对比度高的图片。

我已经想出了一些办法,至少足以让它发挥作用。您正在导入的某些图像可能太大,并抛出代码 200,无效格式 IE,图像高度和宽度太大。您将需要检查位图的高度是否超过 2560 像素以及宽度是否超​​过 1440 并相应 scale/crop 它。

我做了什么:

Bitmap initClassifiedImg;
    if(bitmap.getHeight()>2560 && bitmap.getWidth()>1440)
        initClassifiedImg = Bitmap.createScaledBitmap(bitmap, 1440, 2560, true);
    else if(bitmap.getHeight()>2560)
        initClassifiedImg = Bitmap.createScaledBitmap(bitmap, bitmap.getWidth(), 2560, true);
    else if (bitmap.getWidth()>1440)
        initClassifiedImg = Bitmap.createScaledBitmap(bitmap, 1440, bitmap.getHeight(), true);
    else
        initClassifiedImg = Bitmap.createBitmap(bitmap);

设置它来检查位图,它至少应该不会生成代码 200 错误 请注意,某些图像仍然无法生成结果。如果 resultcode 为 0 且没有结果,则表示它无法识别图像中的文本。

Recognition image output example

Sample image output

No result example log

HiAI 通用文本识别服务限制了输入图像的大小。图片大小超出指定范围,返回错误码200。

  1. 屏幕截图的最大宽度和高度分别为 1440 像素和 15210 像素。
  2. 对于相机拍摄的照片,请使用分辨率为 720p 或更高,标准照片尺寸比例为 2:1 或更小的图像。

您还可以集成Huawei ML Kit text recognition服务,不限制图片大小。它适用于所有 Android 手机,不依赖于 HMS。