您可以将 AutoML 训练的图片分类模型传递给自定义模型 API。您可以继续将模型捆绑在应用中,也可以将其作为自定义模型托管在 Firebase 控制台中。AutoML 图片标注 API 已从 ML Kit 中移除,因为它已被自定义模型图片标注 API 完全取代。
API | 有何变化? |
---|---|
AutoML Vision Edge 图片标注 API | 它已被 Custom Model Image Labeling API 完全取代。移除了现有的 AutoML Vision Edge 图片标注 API。 |
如果您目前是使用 AutoML Vision Edge API 的机器学习套件用户,请按照适用于 Android 和 iOS 的迁移说明操作。
常见问题解答
此次变更的原因是什么?
这有助于简化机器学习套件 API,并更轻松地将机器学习套件集成到您的应用中。进行此项更改后,您可以使用 AutoML 训练的模型,方法与使用自定义模型完全相同。此外,除了我们目前支持的图片标注之外,您还可以使用 AutoML 训练的模型进行对象检测和跟踪。此外,自定义模型 API 同时支持在元数据中嵌入标签映射的模型,以及具有单独清单和标签文件的模型。
迁移到新 SDK 有哪些好处?
- 新功能:能够将 AutoML 训练的模型用于图片标注和对象检测和跟踪,还能够使用在元数据中嵌入标签映射的模型。
Android 迁移指南
第 1 步:更新 Gradle 导入
根据下表更新模块(应用级)Gradle 文件(通常为 app/build.gradle
)中 Android 版机器学习套件库的依赖项:
功能 | 旧工件 | 新工件 |
---|---|---|
无需下载远程模型即可使用 AutoML 进行图片标注 | com.google.mlkit:image-labeling-automl:16.2.1 | com.google.mlkit:image-labeling-custom:16.0.0-beta5 |
使用远程模型下载功能的图片标注 AutoML |
com.google.mlkit:image-labeling-automl:16.2.1 com.google.mlkit:linkfirebase:16.0.1 |
com.google.mlkit:image-labeling-custom:16.0.0-beta5 com.google.mlkit:linkfirebase:17.0.0 |
第 2 步:更新类名称
如果您的课程显示在此表格中,请进行所示更改:
旧版课程 | 新课程 |
---|---|
com.google.mlkit.vision.label.automl.AutoMLImageLabelerLocalModel | com.google.mlkit.common.model.LocalModel |
com.google.mlkit.vision.label.automl.AutoMLImageLabelerRemoteModel | com.google.mlkit.common.model.CustomRemoteModel |
com.google.mlkit.vision.label.automl.AutoMLImageLabelerOptions | com.google.mlkit.vision.label.custom.CustomImageLabelerOptions |
第 3 步:更新方法名称
只需修改极少代码:
- 现在,可以使用模型文件路径(如果模型包含包含标签映射的元数据)或模型清单文件路径(如果清单、模型和标签位于单独的文件中)初始化
LocalModel
。 - 您可以通过 Firebase 控制台远程托管自定义模型,并使用
FirebaseModelSource
初始化CustomRemoteModel
。
以下是旧版和新版 Kotlin 方法的一些示例:
旧优惠
val localModel = AutoMLImageLabelerLocalModel.Builder() .setAssetFilePath("automl/manifest.json") // or .setAbsoluteFilePath(absolute file path to manifest file) .build() val optionsWithLocalModel = AutoMLImageLabelerOptions.Builder(localModel) .setConfidenceThreshold(0.5f) .build() val remoteModel = AutoMLImageLabelerRemoteModel.Builder("automl_remote_model") .build() val optionsWithRemoteModel = AutoMLImageLabelerOptions.Builder(remoteModel) .build()
新
val localModel = LocalModel.Builder() .setAssetManifestFilePath("automl/manifest.json") // or .setAbsoluteManifestFilePath(absolute file path to manifest file) .build() val optionsWithLocalModel = CustomImageLabelerOptions.Builder(localModel) .setConfidenceThreshold(0.5f) .build() val firebaseModelSource = FirebaseModelSource.Builder("automl_remote_model") .build() val remoteModel = CustomRemoteModel.Builder(firebaseModelSource).build() val optionsWithRemoteModel = CustomImageLabelerOptions.Builder(remoteModel) .build()
下面是旧版和新版 Java 方法的一些示例:
旧优惠
AutoMLImageLabelerLocalModel localModel = new AutoMLImageLabelerLocalModel.Builder() .setAssetFilePath("automl/manifest.json") // or .setAbsoluteFilePath(absolute file path to manifest file) .build(); AutoMLImageLabelerOptions optionsWithLocalModel = new AutoMLImageLabelerOptions.Builder(localModel) .setConfidenceThreshold(0.5f) .build(); AutoMLImageLabelerRemoteModel remoteModel = new AutoMLImageLabelerRemoteModel.Builder("automl_remote_model").build(); AutoMLImageLabelerOptions optionsWithRemoteModel = new AutoMLImageLabelerOptions.Builder(remoteModel) .build();
新
LocalModel localModel = new LocalModel.Builder() .setAssetManifestFilePath("automl/manifest.json") // or .setAbsoluteManifestFilePath(absolute file path to manifest file) .build() CustomImageLabelerOptions optionsWithLocalModel = new CustomImageLabelerOptions.Builder(localModel) .setConfidenceThreshold(0.5f) .build(); FirebaseModelSource firebaseModelSource = new FirebaseModelSource.Builder("automl_remote_model").build(); CustomRemoteModel remoteModel = new CustomRemoteModel.Builder(firebaseModelSource).build(); CustomImageLabelerOptions optionsWithRemoteModel = new CustomImageLabelerOptions.Builder(remoteModel).build();
iOS 迁移指南
前提条件
- 需要 Xcode 13.2.1 或更高版本。
第 1 步:更新 Cocoapods
在应用的 Podfile 中更新 ML Kit iOS cocoapods 的依赖项:
功能 | 旧 Pod 名称 | 新 Pod 名称 |
---|---|---|
无需远程下载模型即可使用 AutoML 进行图片标注 | GoogleMLKit/ImageLabelingAutoML | GoogleMLKit/ImageLabelingCustom |
使用远程模型下载功能的图片标注 AutoML |
GoogleMLKit/ImageLabelingAutoML GoogleMLKit/LinkFirebase |
GoogleMLKit/ImageLabelingCustom GoogleMLKit/LinkFirebase |
第 2 步:更新类名称
如果您的课程显示在此表格中,请进行所示更改:
Swift
旧版课程 | 新课程 |
---|---|
AutoMLImageLabelerLocalModel | LocalModel |
AutoMLImageLabelerRemoteModel | CustomRemoteModel |
AutoMLImageLabelerOptions | CustomImageLabelerOptions |
Objective-C
旧版课程 | 新课程 |
---|---|
MLKAutoMLImageLabelerLocalModel | MLKLocalModel |
MLKAutoMLImageLabelerRemoteModel | MLKCustomRemoteModel |
MLKAutoMLImageLabelerOptions | MLKCustomImageLabelerOptions |
Objective-C
第 3 步:更新方法名称
只需修改极少代码:
- 现在,可以使用模型文件路径(如果模型包含包含标签映射的元数据)或模型清单文件路径(如果清单、模型和标签位于单独的文件中)初始化
LocalModel
。 - 您可以通过 Firebase 控制台远程托管自定义模型,并使用
FirebaseModelSource
初始化CustomRemoteModel
。
下面是旧版和新版 Swift 方法的一些示例:
旧优惠
let localModel = AutoMLImageLabelerLocalModel(manifestPath: "automl/manifest.json") let optionsWithLocalModel = AutoMLImageLabelerOptions(localModel: localModel) let remoteModel = AutoMLImageLabelerRemoteModel(name: "automl_remote_model") let optionsWithRemoteModel = AutoMLImageLabelerOptions(remoteModel: remoteModel)
新
guard let localModel = LocalModel(manifestPath: "automl/manifest.json") else { return } let optionsWithLocalModel = CustomImageLabelerOptions(localModel: localModel) let firebaseModelSource = FirebaseModelSource(name: "automl_remote_model") let remoteModel = CustomRemoteModel(remoteModelSource: firebaseModelSource) let optionsWithRemoteModel = CustomImageLabelerOptions(remoteModel: remoteModel)
以下是旧版和新版 Objective-C 方法的一些示例:
旧优惠
MLKAutoMLImageLabelerLocalModel *localModel = [[MLKAutoMLImageLabelerLocalModel alloc] initWithManifestPath:"automl/manifest.json"]; MLKAutoMLImageLabelerOptions *optionsWithLocalModel = [[MLKAutoMLImageLabelerOptions alloc] initWithLocalModel:localModel]; MLKAutoMLImageLabelerRemoteModel *remoteModel = [[MLKAutoMLImageLabelerRemoteModel alloc] initWithManifestPath:"automl/manifest.json"]; MLKAutoMLImageLabelerOptions *optionsWithRemoteModel = [[MLKAutoMLImageLabelerOptions alloc] initWithRemoteModel:remoteModel];
新
MLKLocalModel *localModel = [[MLKLocalModel alloc] initWithManifestPath:"automl/manifest.json"]; MLKCustomImageLabelerOptions *optionsWithLocalModel = [[MLKCustomImageLabelerOptions alloc] initWithLocalModel:localModel]; MLKFirebaseModelSource *firebaseModelSource = [[MLKFirebaseModelSource alloc] initWithName:@"automl_remote_model"]; MLKCustomRemoteModel *remoteModel = [[MLKCustomRemoteModel alloc] initWithRemoteModelSource:firebaseModelSource]; MLKCustomImageLabelerOptions *optionsWithRemoteModel = [[MLKCustomImageLabelerOptions alloc] initWithRemoteModel:remoteModel];