Google MLKit 中的 Firebase Vision 模拟

Firebase Vision analogue in Google MLKit

iOS 上的 Firebase MLKit 支持 Vision class,主要用于通过以下方式获取 Firebase 视觉对象:

let vision = Vision.vision()

一个来自 Firebase MLKit API 的 VisionTextRecognizer 实例(在 Google-MLKit API 中似乎也没有类似物)可以从视觉对象中获得像这样:

var recognizer : VisionTextRecognizer = vision.OnDeviceTextRecognizer()

鉴于 Firebase Mlkit API 已弃用,我希望将项目移至 Google-MlKit API 并相应地更新代码库。 migration guide 提供对 GoogleMLKit 中重命名且功能等效的设施的引用。我找不到已弃用的 VisionVisionTextRecognizer classes 的等效项 - GoogleMLKit 是否支持这些?

新的Google ML Kit中没有Vision class,如Migration Guide中所述:

域入口点 classes(VisionNaturalLanguage)不再存在。它们已被任务特定的 classes 取代。用直接调用每个检测器的工厂方法来替换对用于获取检测器的各种工厂方法的调用。


要获取设备上文本识别器的实例,您只需执行以下操作:

var recognizer : TextRecognizer = TextRecognizer.textRecognizer()

let recognizer = TextRecognizer.textRecognizer()

或将其直接链接到推理调用中:

var recognizedText: Text
do {
  recognizedText = try TextRecognizer.textRecognizer().results(in: image)
} catch let error {
  // Handle the error
}

请参阅 ML Kit quickstart vision sample app 中的工作示例。

作为已接受答案的补充,您在升级到 MLKit 后可能会遇到以下情况。

如果您的项目在升级过程中依赖于特定版本的 Protocol Buffers,MLKit 可能需要更新的版本,或者编译错误可能指向 Protocol buffer headers 中丢失的文件。事实证明,仅仅升级相关的 pods 对我来说是不够的,我明确地必须在 Podfile 中引入 Protobuf-C++