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

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

为图片加标签对象检测和跟踪 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 提供各式各样的创建者提供的预训练图像分类模型,这些模型可与图片标签以及对象检测和跟踪 API 配合使用。请按以下步骤操作。

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

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

如果没有预训练的图片分类模型能够满足您的需求,您可以通过多种方式训练自己的 TensorFlow Lite 模型,其中一些方法在下文中进行了详细介绍。

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

AutoML Vision Edge

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

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

TensorFlow Lite Model Maker

在为设备端机器学习应用部署此模型时,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,则必须通过附加元数据来指定 normalizationOptions。
    • 张量有 4 个维度:BxHxWxC,其中:
      • B 是批次大小。必须为 1(不支持对较大的批次进行推断)。
      • W 和 H 是输入宽度和高度。
      • C 是预期的通道数。此值必须为 3。
  • 模型必须至少有一个具有 N 类和 2 或 4 维度的输出张量:
    • (1 倍速)
    • (1x1x1xN)
  • 目前仅支持单头模型。多头模型可能会输出意外的结果。

元数据

向 TensorFlow Lite 模型添加元数据中所述,您可以向 TensorFlow Lite 文件添加元数据。

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

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