默认情况下,机器学习套件的所有功能都使用 Google 训练的机器学习模型(称为基本模型)。本指南仅适用于基本模型。如需有关自定义模型的指导,请参阅此处。
ML Kit API 中的模型可通过以下三种方式安装:
- 未捆绑:模型通过 Google Play 服务下载和管理。
- 捆绑:模型在构建时静态关联到您的应用。
- 动态下载:按需下载模型。
每个 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 请求明确下载。
如果您未启用在安装时下载模型的功能,也未请求明确下载模型,则系统会在您首次运行模型时下载模型。 在下载完成之前,推断请求将失败。
如何更新模型
如需在使用捆绑模型或动态下载模型选项时更新模型,请执行以下操作:
更新应用的 Gradle 文件以使用最新的机器学习套件功能客户端库。
dependencies { implementation 'com.google.mlkit:barcode-scanning: 17.0.3' // The latest version number of the API }
重新构建您的应用。
为什么某些 API 提供动态下载的模型
某些机器学习套件 API 包含太多要捆绑的模型选项。例如,数字墨水识别支持 300 多种语言,并非总是需要在安装期间将每种语言都放入该功能中。为此,我们提供了第三种安装选项,即在安装后按需下载模型。目前,只有数字墨水识别、翻译和实体提取具有此选项。