返回

如何从 ML Kit 对象检测自定义模型中获取边界框坐标?

Android

获取 ML Kit 对象检测自定义模型的边界框坐标

在 ML Kit 的对象检测世界中,自定义模型可让你训练识别特定对象类别的模型。然而,这些模型默认情况下不会输出边界框坐标,这对于许多应用而言至关重要。本文将深入探讨如何从 ML Kit 对象检测自定义模型中检索边界框坐标,从而帮助你掌握图像分析和对象识别的精髓。

1. 设置舞台:收集必要信息

在踏上检索边界框坐标的征程之前,你需要:

  • 已安装的 ML Kit SDK: 确保已安装最新的 ML Kit SDK,为你的探索之旅提供坚实的基础。
  • 经过训练的自定义对象检测模型: 这是一颗明珠,它将释放你自定义的检测能力。

2. 创建解释器:连接图像与模型

将输入图像转换为模型可以理解的格式,使用 InputImage.fromBitmap 创建一个解释器,为你提供一个沟通渠道。

3. 设置输入:为模型提供数据

将输入图像传递给模型,就像为解决谜题提供线索一样。使用 FirebaseModelInputs.Builder 创建一个包含输入图像的输入集合,为模型提供它需要的信息来施展它的魔力。

4. 运行推断:让模型做它的工作

现在是见证模型力量的时候了!使用 interpreter.run 触发推断过程,就像按下启动按钮,让模型执行其算法。

5. 检索输出:获取模型的洞察

推理完成后,模型将提供输出,就像解开的谜语。使用 result.getOutput 检索输出,包含模型对输入图像中对象的信心概率。

6. 利用边界框后处理库:从概率中提取坐标

为了从概率中提取边界框坐标,需要使用边界框后处理库,如 TensorFlow Object Detection API。这个库就像一位翻译,将模型的输出转换为我们可理解的坐标。

7. 举例说明:代码片段

为了让你更深入地理解,这里有一个代码片段,展示了如何获取边界框坐标:

val boundingBoxes = TensorFlowObjectDetectionAPIModel.getBoundingBoxes(
    probabilities,
    inputImage.height,
    inputImage.width,
    0.5f,  // Confidence threshold
    0.3f   // Intersection over union threshold
)

结论:解锁图像分析的潜力

通过掌握这些步骤,你可以从 ML Kit 对象检测自定义模型中检索边界框坐标,为你提供对象位置和大小的宝贵信息。运用这些知识,你可以在图像分析、对象跟踪和许多其他激动人心的应用中创造奇迹。

常见问题解答

1. 如何提高边界框的准确性?

  • 调整模型的置信度阈值和交并比阈值。
  • 使用更多和更高质量的训练数据。

2. ML Kit 是否支持所有类型的自定义模型?

  • ML Kit 目前支持 TensorFlow Lite 模型。

3. 我可以在移动设备上执行这些步骤吗?

  • 是的,ML Kit 适用于移动设备。

4. 是否有其他方法可以从 ML Kit 对象检测中获取边界框坐标?

  • ML Kit 提供了一个内置的 ObjectDetector.getBoundingBox 方法,但仅适用于预训练模型。

5. 这些步骤适用于图像分类吗?

  • 否,这些步骤仅适用于对象检测模型。