gpt4 book ai didi

android - Firebase ML 套件给出 FirebaseMLException : Waiting for the text recognition model to be downloaded. 请稍候

转载 作者:IT老高 更新时间:2023-10-28 13:42:24 27 4
gpt4 key购买 nike

我使用 firebase ml 工具包进行文本识别,但在模拟器和真实设备上给出了这个异常(exception)。

W/System.err: com.google.firebase.ml.common.FirebaseMLException: Waiting for the text recognition model to be downloaded. Please wait.
at com.google.android.gms.internal.firebase_ml.zzjz.zzc(Unknown Source)
at com.google.android.gms.internal.firebase_ml.zzjz.zza(Unknown Source)
at com.google.android.gms.internal.firebase_ml.zzic.call(Unknown Source)
at com.google.android.gms.internal.firebase_ml.zzhx.zza(Unknown Source)
at com.google.android.gms.internal.firebase_ml.zzhy.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at com.google.android.gms.internal.firebase_ml.zze.dispatchMessage(Unknown Source)
at android.os.Looper.loop(Looper.java:136)
at android.os.HandlerThread.run(HandlerThread.java:61)

这是我的代码

private fun MlProcessText(imageUri:Uri) {
val bitmap = MediaStore.Images.Media.getBitmap(contentResolver, imageUri)
val textVision = FirebaseVisionImage.fromBitmap(bitmap)
val detector = FirebaseVision.getInstance().onDeviceTextRecognizer

detector.processImage(textVision).addOnSuccessListener { it ->
val blocks = it.textBlocks
if (blocks.size == 0 ){

tvVision.text = "NO TEXT"
}else{
blocks.forEach {
tvVision.append(" ${it.text}")
}
}

}.addOnFailureListener {
it.printStackTrace() // this is the exception log
tvVision.text = it.message
}
}

我也试过了:

1- 设置->应用->Google Play 服务->存储->管理空间->清除所有数据

2-低存储检查(至少 1Gig 免费)

并添加元数据

 <meta-data
android:name="com.google.firebase.ml.vision.DEPENDENCIES"
android:value="ocr,text" />

但还是同样的错误!

更新

卡住几天后,我尝试使用 Google Mobile Vision

所以我将它添加到我的依赖项中

implementation 'com.google.android.gms:play-services-vision:17.0.2'

并使用 this article对于 OCR 并在此代码中

    //Create the TextRecognizer
final TextRecognizer textRecognizer = new TextRecognizer.Builder(getApplicationContext()).build();

if (!textRecognizer.isOperational()) {
Log.w(TAG, "Detector dependencies not loaded yet");
} else {

//Initialize camerasource to use high resolution and set Autofocus on.
mCameraSource = new CameraSource.Builder(getApplicationContext(), textRecognizer)
.setFacing(CameraSource.CAMERA_FACING_BACK)
.setRequestedPreviewSize(1280, 1024)
.setAutoFocusEnabled(true)
.setRequestedFps(2.0f)
.build();
}

textRecognizer.isOperational() 总是返回 false。这意味着它也不起作用。我认为这两个问题有一些共同点。

所以我被困在 android 的文本识别器上!

测试:Nox 模拟器、google Nexus 5X API 26 模拟器以及华为 p10 和三星 Galaxy S7 真机。

有什么办法可以解决这个问题吗?

最佳答案

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

if(!textRecognizer.isOperational()) {
// Note: The first time that an app using a Vision API is installed on a
// device, GMS will download a native libraries to the device in order to do detection.
// Usually this completes before the app is run for the first time. But if that
// download has not yet completed, then the above call will not detect any text,
// barcodes, or faces.
// isOperational() can be used to check if the required native libraries are currently
// available. The detectors will automatically become operational once the library
// downloads complete on device.
Log.w(LOG_TAG, "Detector dependencies are not yet available.");

// Check for low storage. If there is low storage, the native library will not be
// downloaded, so detection will not become operational.
IntentFilter lowstorageFilter = new IntentFilter(Intent.ACTION_DEVICE_STORAGE_LOW);
boolean hasLowStorage = registerReceiver(null, lowstorageFilter) != null;

if (hasLowStorage) {
Toast.makeText(this,"Low Storage", Toast.LENGTH_LONG).show();
Log.w(LOG_TAG, "Low Storage");
}

关于android - Firebase ML 套件给出 FirebaseMLException : Waiting for the text recognition model to be downloaded. 请稍候,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52855632/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com