使用机器学习套件的自定义模型

默认情况下,机器学习套件的 API 使用 Google 训练的机器学习模型。这些模型旨在用于各种应用。但是,某些用例需要更具针对性的模型。因此,某些机器学习套件 API 现在允许您将默认模型替换为自定义 TensorFlow Lite 模型。

图片标签Object Detection & Tracking API 均支持自定义图片分类模型。它们与 TensorFlow Hub 中精选的优质预训练模型或您自己的使用 TensorFlow、AutoML Vision Edge 或 TensorFlow Lite Model Maker 训练的自定义模型兼容。

如果您需要适用于其他领域或用例的自定义解决方案,请访问设备端机器学习页面,获取 Google 针对设备端机器学习提供的所有解决方案和工具的指导。

将机器学习套件与自定义模型结合使用的优势

将自定义图片分类模型与机器学习套件搭配使用的优势如下:

  • 易于使用的高级别 API - 无需处理低级别模型输入/输出,无需处理图像预处理/后处理,也无需构建处理流水线。
  • 机器学习套件从 TFLite 模型元数据中提取标签并为您执行映射,无需担心自己进行标签映射
  • 支持各种来源的自定义模型,从 TensorFlow Hub 上发布的预训练模型,到使用 TensorFlow、AutoML Vision Edge 或 TensorFlow Lite Model Maker 训练的新模型,应有尽有。
  • 支持使用 Firebase 托管的模型。通过按需下载模型来缩减 APK 大小。无需重新发布应用即可推送模型更新,并使用 Firebase Remote Config 执行简单的 A/B 测试。
  • 针对与 Android 的 Camera API 集成进行了优化。

特别是对于对象检测和跟踪

  • 通过先定位对象并仅在相关图片区域运行分类器,提高分类准确率
  • 提供实时交互式体验,在检测到对象并进行分类时,为用户提供即时反馈。

使用预训练的图片分类模型

您可以使用预训练的 TensorFlow Lite 模型,只要这些模型符合一组条件即可。通过 TensorFlow Hub,我们提供一组来自 Google 或其他模型创建者且符合这些条件的经过审核的模型。

使用在 TensorFlow Hub 上发布的模型

TensorFlow Hub 提供了各种各样的预训练图像分类模型(来自各个模型创建者),它们可与 Image Labeling API 以及 Object Detection and Tracking API 搭配使用。请按以下步骤操作。

  1. 与机器学习套件兼容的模型集合中,选择一个模型。
  2. 从模型详情页面下载 .tflite 模型文件。在适用的情况下,选择包含元数据的模型格式。
  3. 请参阅我们针对 Image Labeling APIObject Detection and Tracking API 的指南,了解如何将模型文件与项目捆绑并在 Android 或 iOS 应用中使用。

训练您自己的图片分类模型

如果没有预训练的图片分类模型符合您的需求,您可以通过多种方法训练自己的 TensorFlow Lite 模型,下文将对其中一些模型进行详细介绍和讨论。

用于训练您自己的图片分类模型的选项
AutoML Vision Edge
  • 通过 Google Cloud AI 提供
  • 创建先进的图像分类模型
  • 轻松评估性能和大小
TensorFlow Lite Model Maker
  • 与从头开始训练模型相比,重新训练模型(迁移学习)花费的时间和需要的数据更少
将 TensorFlow 模型转换为 TensorFlow Lite
  • 使用 TensorFlow 训练模型,然后将其转换为 TensorFlow Lite

AutoML Vision Edge

Image Labeling API 和 Object Detection and Tracking API API 中的自定义模型支持使用 AutoML Vision Edge 训练的图片分类模型。这些 API 还支持下载由 Firebase 模型部署托管的模型。

如需详细了解如何在 Android 和 iOS 应用中使用通过 AutoML Vision Edge 训练的模型,请根据您的使用场景遵循每个 API 的自定义模型指南。

TensorFlow Lite Model Maker

在为设备端机器学习应用部署 TensorFlow 神经网络模型时,TFLite Model Maker 库简化了调整 TensorFlow 神经网络模型并将其转换为特定输入数据的过程。您可以按照使用 TensorFlow Lite Model Maker 进行图片分类的 Colab 中的说明操作。

如需详细了解如何在 Android 和 iOS 应用中使用通过 Model Maker 训练的模型,请根据您的使用场景,按照我们的 Image Labeling APIObject Detection and Tracking API 指南进行操作。

使用 TensorFlow Lite 转换器创建的模型

如果您已有 TensorFlow 图片分类模型,则可以使用 TensorFlow Lite 转换器转换该模型。请确保创建的模型符合以下兼容性要求。

如需详细了解如何在 Android 和 iOS 应用中使用 TensorFlow Lite 模型,请根据您的使用场景,按照我们的 Image Labeling APIObject Detection and Tracking API 指南进行操作。

TensorFlow Lite 模型兼容性

您可以使用任何预训练的 TensorFlow Lite 图片分类模型,前提是它满足以下要求:

张量

  • 模型只能有一个输入张量,并具有以下约束条件:
    • 数据采用 RGB 像素格式。
    • 数据为 UINT8 或 FLOAT32 类型。如果输入张量类型为 FLOAT32,则必须通过附加 Metadata 来指定 NormalizationOptions。
    • 该张量具有 4 个维度:BxHxWxC,其中:
      • B 是批次大小。此值必须为 1(不支持对更大的批次进行推断)。
      • W 和 H 分别是输入宽度和高度。
      • C 是预期通道数。此值必须为 3。
  • 模型必须至少具有一个输出张量(具有 N 个类别,并且具有 2 个或 4 个维度):
    • (1xN)
    • (1 x 1 x N)
  • 目前仅完全支持单头模型。多头模型可能会输出意外结果。

元数据

您可以按照向 TensorFlow Lite 模型添加元数据中的说明,向 TensorFlow Lite 文件添加元数据。

如需使用具有 FLOAT32 输入张量的模型,您必须在元数据中指定 NormalizationOptions

我们还建议将此元数据附加到输出张量 TensorMetadata