Android 上的机器学习套件模型安装路径

默认情况下,机器学习套件的所有功能均使用 Google 训练的机器学习模型(称为基本模型)。本指南仅适用于基本模型。如需有关自定义模型的指导,请参阅此处。

机器学习套件 API 中的模型可通过以下三种方式之一进行安装:

  1. 未捆绑:通过 Google Play 服务下载和管理模型。
  2. 捆绑:模型在构建时以静态方式关联到您的应用。
  3. 动态下载:模型是按需下载的。

每个 API 支持的安装路径

下表显示了每个机器学习套件功能支持的模型安装路径:

未捆绑 捆绑 动态下载
文字识别 v2
人脸检测
人脸网格检测
姿势检测
自拍照分割
条形码扫描
给图片加标签
对象检测和跟踪
数字墨水识别
Google 扫码器
语言识别
翻译
智能回复
实体提取

API 专用指南显示了适用于给定 API 的安装选项。

安装选项之间的主要区别

未捆绑 捆绑 动态下载
模型存储在哪里? 居住在 Google Play 服务中,不计入此应用使用的存储空间 安装后保存在应用专用存储空间 模型下载后保存在应用专属存储空间
模型大小对应用大小有何影响? 不计入应用大小 直接影响应用大小 直接影响应用大小
模型何时更新? 更新版本时自动更新 需要更新应用以更新模型 需要更新应用以更新模型
模型何时下载? 使用模型前必须先下载 安装应用时,所有模型和功能均包含在内,因此可以立即使用 必须使用 RemoteModelManager API 手动管理模型下载、更新和删除
模型何时从设备中移除? 只有在所有依赖该模型的应用均卸载后,Google Play 服务才会从存储空间中移除该模型 卸载应用后,模型会从应用专属存储空间中移除 卸载应用后,已下载的模型会从应用专属存储空间中移除

如何在捆绑或未捆绑内容之间进行选择

如果某个 API 同时支持捆绑安装和非捆绑安装选项,则:

  • 如果您优先考虑以下两项,请使用捆绑选项:

    • 在应用安装后立即完成功能
    • 安装应用后无需网络连接即可实现的功能
  • 如果您优先考虑以下条件,请使用未捆绑选项:

    • 缩减应用大小
    • Google Play 服务自动更新模型

如何下载模型

使用未捆绑模型选项时,您可以指定希望如何将模型下载到设备:

  • 您可以通过在应用的 AndroidManifest.xml 文件中添加声明来启用安装时模型下载。例如,以下代码段展示了如何将应用配置为在从 Play 商店安装后自动下载条形码扫描模型:

    <application ...>
          ...
          <meta-data
              android:name="com.google.mlkit.vision.DEPENDENCIES"
              android:value="barcode" >
          <!-- To use multiple models: android:value="barcode,model2,model3" -->
    </application>
    
  • 您可以通过 Google Play 服务 ModuleInstallClient API 请求明确下载

  • 如果您不启用安装时模型下载或请求显式下载,模型将在您首次运行该功能时下载。在下载完成之前,推断请求将失败。

如何更新模型

如需在使用捆绑模型或动态下载的模型选项时更新模型,请执行以下操作:

  1. 更新应用的 Gradle 文件以使用最新的机器学习套件功能客户端库。

    dependencies {
      implementation 'com.google.mlkit:barcode-scanning: 17.1.0' // The latest version number of the API
    }
    
  2. 重新构建您的应用。

为什么某些 API 会提供动态下载的模型

某些机器学习套件 API 包含过多要捆绑的模型选项。例如,数字墨水识别支持 300 多种语言,在安装过程中不一定需要将每种语言都放在该功能内。为此,我们提供了第三种安装选项,即在安装后按需下载模型。目前,只有数字墨水识别翻译实体提取具有此选项。