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

默认情况下,所有 ML Kit 功能都使用 Google 训练的机器学习模型(称为基础模型)。本指南仅适用于基础型号。点击此处可查看有关自定义模型的指南。

ML Kit API 中的模型可以通过以下三种方式之一进行安装:

  1. 非捆绑:模型通过 Google Play 服务下载和管理。
  2. 捆绑:模型在构建时会静态链接到您的应用。
  3. 动态下载:模型按需下载。

每个 API 支持的安装路径

下表显示了每项 ML Kit 功能支持哪些模型安装路径:

未捆绑 套装 动态下载
文字识别 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 文件,以使用最新的 ML Kit 功能客户端库。

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

为何某些 API 提供动态下载的模型

某些 ML Kit API 的模型选项过多,无法捆绑。例如,数字墨水识别支持 300 多种语言,因此在安装期间不一定需要将每种语言都放入该功能中。为此,我们提供了第三种安装选项,即在安装后按需下载模型。目前,只有数字墨水识别翻译实体提取功能提供此选项。