迁移指南

2020 年 6 月 3 日,我们对适用于 Firebase 的机器学习套件进行了一些更改,以便更好地区分设备端 API 和云端 API。当前的 API 集现在分为以下两个产品:

如果您只需要设备端解决方案,经过这项更改后,您还可以更轻松地将机器学习套件集成到您的应用中。本文档介绍如何将您的应用从 Firebase ML Kit SDK 迁移到新的机器学习套件 SDK。

有何变化?

设备端基础 API

以下 API 已迁移到新的独立机器学习套件 SDK。

  • 条形码扫描
  • 人脸检测
  • 图片标注
  • 对象检测和跟踪
  • 文本识别
  • 语言 ID
  • 智能回复
  • 翻译
  • AutoML Vision Edge 推断 API

适用于 Firebase SDK 的机器学习套件中的现有设备端基础 API 已弃用,将不再接收更新。

如果您现在在应用中使用这些 API,请按照适用于 Android 的机器学习套件迁移指南适用于 iOS 的机器学习套件迁移指南迁移到新的机器学习套件 SDK。

自定义模型 API

对于下载 Firebase 中托管的模型,我们将通过 Firebase ML SDK 继续提供自定义模型下载程序。SDK 提取最新的可用模型,并将其传递给单独的 TensorFlow Lite 运行时以进行推理。

适用于 Firebase SDK 的机器学习套件中的现有自定义模型解释器已弃用,将不再接收更新。我们建议直接使用 TensorFlow Lite 运行时进行推断。或者,如果您只想将自定义模型用于为图片加标签以及对象检测和跟踪 API,现在可以直接在机器学习套件的这些 API 中使用自定义模型

如需查看详细说明,请参阅适用于 AndroidiOS 的迁移指南。

哪些方面未发生变化?

Firebase ML 将继续提供云端 API 和服务:

  • 云端图片标记、文字识别和地标识别 API 仍可通过 Firebase ML SDK 使用。

  • Firebase ML 还会继续提供模型部署

常见问题解答

此次变更的原因

我们进行这一更改是为了明确此产品提供的解决方案。 通过此变更,新的机器学习套件 SDK 完全专注于设备端机器学习,所有数据处理均在设备端进行,开发者可免费使用。之前属于 Firebase ML Kit 的云服务仍通过 Firebase ML 提供,您仍然可以将这些云服务与机器学习套件 API 并行使用。

对于设备端 API,借助新的机器学习套件 SDK,开发者可以更轻松地将机器学习套件集成到其应用中。今后,您只需向应用的项目添加依赖项,然后开始使用该 API 即可。无需仅仅为了使用设备端 API 就设置 Firebase 项目。

使用 Firebase 托管的模型会怎么样?

Firebase Machine Learning 将继续像以前一样传送您的模型。该功能并未改变。具体改进如下:

  • 现在,您可以使用 Python 或 Node SDK 以编程方式将模型部署到 Firebase。

  • 您现在可以将 Firebase ML SDK 与 TensorFlow Lite 运行时结合使用。Firebase SDK 将模型下载到设备,然后 TensorFlow Lite 运行时会执行推断。这样您就可以轻松选择所需的运行时版本,包括自定义 build。

迁移到新的机器学习套件 SDK 能为我带来哪些好处?

迁移到新版 SDK 可确保您的应用受益于最新的 bug 修复和对设备端 API 的改进。例如,以下是第一个版本中的一些更改:

  • 现在,您可以使用新的自定义图片标签 API 及自定义对象检测和跟踪 API 轻松在应用中集成自定义图片分类模型,并打造实时交互式用户体验。

  • 为所有 API 添加了 Android Jetpack 生命周期支持。您现在可以使用 addObserver 在应用由用户 / 系统旋转或关闭应用时自动管理机器学习套件 API 的启动和拆解。这样可以更轻松地与 CameraX 集成。

如需查看最新变更的完整列表,请参阅机器学习套件 SDK 版本说明

我目前使用的是适用于 Firebase 的机器学习套件,何时需要迁移?

这取决于您当前在应用中使用的是哪个适用于 Firebase API 的机器学习套件。

  • 适用于 Firebase SDK 的机器学习套件中的设备端基础 API 在可预见的未来将继续有效。但是,如果延迟切换到新的机器学习套件 SDK,您将无法从新功能和更新中受益。此外,更新应用中的其他组件后,您可能会遇到依赖项冲突。当您的一些其他依赖项(直接或间接)比旧版 ML Kit for Firebase SDK 预期的依赖项更新时,就可能发生这种情况。例如,OkHttp 和 firebase-common 等库可能会发生这种情况。

  • 如果您通过适用于 Firebase SDK 的机器学习套件使用 Cloud API,目前无需进行任何更改。

  • 如果您使用的是自定义模型部署,我们建议您升级到最新版本,以便直接在 TensorFlow Lite 运行时上运行推断。