ImageClassifier

public final class ImageClassifier

对图片执行分类。

API 需要一个 TFLite 模型,并且该模型包含可选但强烈建议提供的 TFLite 模型元数据

该 API 支持具有一个图像输入张量和一个或多个输出张量的模型。具体要求如下。

  • 输入图片张量 (kTfLiteUInt8/kTfLiteFloat32)
    • 图片输入,大小为 [batch x height x width x channels]
    • 不支持批量推理(batch 必须为 1)。
    • 仅支持 RGB 输入(channels 必须为 3)。
    • 如果类型为 kTfLiteFloat32,则 NormalizationOptions 需要附加到元数据以进行输入归一化。
  • 至少一个输出张量 (kTfLiteUInt8/kTfLiteFloat32),并且:
    • N 类和二维或 4 个维度(即 [1 x N][1 x 1 x 1 x N]
    • 可选(但建议)标签映射为 AssociatedFile-s,类型为 TENSOR_AXIS_LABELS,每行包含一个标签。第一个此类 AssociatedFile(如果有)用于填充结果的 class_name 字段。display_name 字段从 AssociatedFile(如有)中填充,其语言区域与创建时使用的 ImageClassifierOptionsdisplay_names_locale 字段(默认为“en”,即英语)匹配。如果所有这些选项都不可用,系统将仅填充结果的 index 字段。
    • 可以使用 ScoreCalibrationOptions 和类型为 TENSOR_AXIS_SCORE_CALIBRATION 的 AssociatedFile 附加可选的分数校准。如需了解详情,请参阅 metadata_schema.fbs

此类模型的示例可在 TensorFlow Hub 中找到。

嵌套类

类别 ImageClassifier.ImageClassifierOptions 用于设置和ImageClassifier的选项。 

公共方法

ImageClassifierResult
classifyMPImage 图片)
使用默认图片处理选项(即
ImageClassifierResult
classifyMPImage 图片、ImageProcessingOptions imageProcessingOptions)
对提供的单张图片执行分类。
void
classifyAsyncMPImage 图片、ImageProcessingOptions imageProcessingOptions、long timestampMs)
发送实时图片数据以执行分类,结果将通过 ImageClassifier.ImageClassifierOptions 中提供的 OutputHandler.ResultListener 获得。
void
classifyAsyncMPImage 图片,长 timestampMs)
发送实时图像数据,以使用默认图像处理选项(即
ImageClassifierResult
classifyForVideoMPImage 图片,长 timestampMs)
使用默认图片处理选项(即
ImageClassifierResult
classifyForVideo(MPImage image, ImageProcessingOptions imageProcessingOptions, long timestampMs)
对提供的视频帧进行分类。
静态 ImageClassifier
createFromBuffer(Context context, ByteBuffer modelBuffer)
基于模型缓冲区和默认的 ImageClassifier.ImageClassifierOptions 创建 ImageClassifier 实例。
静态 ImageClassifier
createFromFile(Context context, String modelPath)
基于模型文件创建 ImageClassifier 实例并使用默认 ImageClassifier.ImageClassifierOptions
静态 ImageClassifier
createFromFile(Context context, File modelFile)
基于模型文件创建 ImageClassifier 实例并使用默认 ImageClassifier.ImageClassifierOptions
静态 ImageClassifier

继承的方法

公共方法

public ImageClassifierResult classify MPImage 图片)

使用默认图片处理选项对提供的单张图片执行分类,即将整张图片用作感兴趣的区域,并且不应用任何旋转。只有在使用 ERROR(/RunningMode.IMAGE) 创建 ImageClassifier 时,才应使用此方法。

ImageClassifier 支持以下颜色空间类型:

参数
图片 用于处理的 MediaPipe MPImage 对象。
抛出
出现内部错误。

public ImageClassifierResult classify (MPImage image, ImageProcessingOptions imageProcessingOptions)

对提供的单张图片执行分类。仅当使用 ERROR(/RunningMode.IMAGE) 创建 ImageClassifier 时,才使用此方法。

ImageClassifier 支持以下颜色空间类型:

参数
图片 用于处理的 MediaPipe MPImage 对象。
imageProcessingOptions ImageProcessingOptions,用于指定在运行推断之前如何处理输入图片。
抛出
出现内部错误。

public void classifyAsync (MPImage image, ImageProcessingOptions imageProcessingOptions, long timestampMs)

发送实时图片数据以执行分类,结果将通过 ImageClassifier.ImageClassifierOptions 中提供的 OutputHandler.ResultListener 获得。只有在使用 ERROR(/RunningMode.LIVE_STREAM) 创建 ImageClassifier 的情况下,才应使用此方法。

必须提供时间戳(以毫秒为单位),以指明输入图片何时发送到对象检测器。输入时间戳必须单调递增。

ImageClassifier 支持以下颜色空间类型:

参数
图片 用于处理的 MediaPipe MPImage 对象。
imageProcessingOptions ImageProcessingOptions,用于指定在运行推断之前如何处理输入图片。
timestampMs 输入时间戳(以毫秒为单位)。
抛出
出现内部错误。

public void classifyAsync (MPImage image, long timestampMs)

发送实时图像数据,以使用默认图像处理选项执行分类,即将整张图片用作感兴趣的区域,并且不应用任何旋转,结果将通过 ImageClassifier.ImageClassifierOptions 中提供的 OutputHandler.ResultListener 获得。仅当使用 ERROR(/RunningMode.LIVE_STREAM) 创建 ImageClassifier 时,才使用此方法。

必须提供时间戳(以毫秒为单位),以指明输入图片何时发送到对象检测器。输入时间戳必须单调递增。

ImageClassifier 支持以下颜色空间类型:

参数
图片 用于处理的 MediaPipe MPImage 对象。
timestampMs 输入时间戳(以毫秒为单位)。
抛出
出现内部错误。

public ImageClassifierResult classifyForVideo MPImage image, long timestampMs)

使用默认图片处理选项对提供的视频帧执行分类,即将整张图片用作感兴趣的区域,并且不应用任何旋转。只有在使用 ERROR(/RunningMode.VIDEO) 创建 ImageClassifier 时,才应使用此方法。

必须提供视频帧的时间戳(以毫秒为单位)。输入时间戳必须单调递增。

ImageClassifier 支持以下颜色空间类型:

参数
图片 用于处理的 MediaPipe MPImage 对象。
timestampMs 输入时间戳(以毫秒为单位)。
抛出
出现内部错误。

public ImageClassifierResult classifyForVideo (MPImage image, ImageProcessingOptions imageProcessingOptions, long timestampMs)

对提供的视频帧进行分类。仅当使用 ERROR(/RunningMode.VIDEO) 创建 ImageClassifier 时,才使用此方法。

必须提供视频帧的时间戳(以毫秒为单位)。输入时间戳必须单调递增。

ImageClassifier 支持以下颜色空间类型:

参数
图片 用于处理的 MediaPipe MPImage 对象。
imageProcessingOptions ImageProcessingOptions,用于指定在运行推断之前如何处理输入图片。
timestampMs 输入时间戳(以毫秒为单位)。
抛出
出现内部错误。

public static ImageClassifier createFromBuffer (Context context, ByteBuffer modelBuffer)

基于模型缓冲区和默认的 ImageClassifier.ImageClassifierOptions 创建 ImageClassifier 实例。

参数
context 一个 Android ERROR(/Context)
modelBuffer 分类模型的直接 ByteBufferERROR(/MappedByteBuffer)
抛出
如果 ImageClassifier 创建过程中出错,则会发生该错误。

public static ImageClassifier createFromFile (Context context, String modelPath)

基于模型文件创建 ImageClassifier 实例并使用默认 ImageClassifier.ImageClassifierOptions

参数
context 一个 Android ERROR(/Context)
modelPath 指向资产中分类模型的路径。
抛出
如果 ImageClassifier 创建过程中出错,则会发生该错误。

public static ImageClassifier createFromFile (Context context, File modelFile)

基于模型文件创建 ImageClassifier 实例并使用默认 ImageClassifier.ImageClassifierOptions

参数
context 一个 Android ERROR(/Context)
modelFile 分类模型 File 实例。
抛出
IOException 如果在打开 tflite 模型文件时发生 I/O 错误,则会发生该错误。
如果 ImageClassifier 创建过程中出错,则会发生该错误。

public static ImageClassifier createFromOptions (Context context, ImageClassifier.ImageClassifierOptions options)

参数
context 一个 Android ERROR(/Context)
选项 一个 ImageClassifier.ImageClassifierOptions 实例。
抛出
如果 ImageClassifier 创建过程中出错,则会发生该错误。