FirebaseVision ML套件FirebaseVisionTextRecognizer自定义模型OCR for Android

问题描述

我正在研究一些用于读取非常特定的文本(OCR)的原型。显然,在互联网上有如此多的示例等,但是到目前为止,我仍无法找到适合我的案例的任何有用信息。一切对我来说太笼统了。我不想花很多时间研究:)所以这就是现在的样子:

  1. 设备上的ML套件不适用于我的情况。
  2. 我已经建立了一个培训师来使用python和Keras来培训自己的自定义模型。最后,我有了.tflite模型。
  3. 我想在我的Android应用中使用它。因此,我的第一种方法是使用ML Kit和自定义模型。但是...它是用于图像识别(检测图像中的内容,而不是文本中的内容)

https://codelabs.developers.google.com/codelabs/mlkit-android-custom-model/index.html?index=..%2F..index#0

我找不到使用自定义模型进行文本识别的任何示例(在设备解决方案上)

因此问题nr1是:是否可以将ML Kit与自定义模型一起使用来进行文本识别?来自:https://firebase.google.com/docs/ml-kit/android/recognize-text我可以得出结论,“设备上”的自定义模型仅支持分类和对象识别,在其他情况下,我不得不使用“云上”的解决方案?

如果这是正确的,那么从另一方面来说,我们得到了这样的东西: https://firebase.google.com/docs/reference/android/com/google/firebase/ml/vision/text/FirebaseVisionTextRecognizer 我得出结论,它可以支持“设备上”解决方案,但是没有传递自定义模型的功能,因此我感到非常困惑。也许“在设备上”意味着在设备计算上,而不是在设备型号上……

问题nr2是:该问题是否有相对简单的解决方案,以及实现该问题的一些示例?

解决方法

第一季度的答案on-device ML Kit solutionon-cloud Firebase ML solution的Text Recognition API当前不支持自定义模型。

第二季度的答案:这取决于文本识别无法识别的失败模式。以下是一些从最简单到更高级的示例:

  1. 可以用错字来识别文本-例如,锡罐上的有效期限内的文本识别可能会将6月“ JUN”与“ JUH”混为一谈。如果您要检测的词汇量有限并且该错误是高度可重复的,那么简单的String映射查找可能足以纠正拼写。
  2. 检测到文本区域,但是识别错误-您可以使用ML Kit文本识别API告诉您文本区域,然后使用自己的自定义模型进行识别。
  3. 未检测到文本区域-恐怕当前的ML Kit解决方案在这种情况下无济于事。

在所有情况下,如果该语言是基于拉丁语的语言,请提交bug。如果它不是基于拉丁语的语言,则属于enhancement request

还要检查new Digital Ink Recognition API的输入是否可以来自用户在屏幕上的绘画而不是静态图片。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...