GestureRecognizer

public final 类 GestureRecognizer

对图片执行手势识别。

此 API 需要预训练的手势模型资源包,或使用 Model Maker 创建的自定义资源包。请参阅

  • 输入图片 MPImage
    • 运行手势识别的图片。
  • 输出 GestureRecognizerResult GestureRecognizerResult
    • 一个 GestureRecognizerResult,包含手部特征点和识别出的手势。

嵌套类

类别 GestureRecognizer.GestureRecognizerOptions 用于设置 GestureRecognizer 的选项。 

公共方法

静态 GestureRecognizer
createFromBuffer(Context context, ByteBuffer modelBuffer)
基于模型缓冲区和默认的 GestureRecognizer.GestureRecognizerOptions 创建 GestureRecognizer 实例。
静态 GestureRecognizer
createFromFile(Context context, String modelPath)
使用模型文件和默认的 GestureRecognizer.GestureRecognizerOptions 创建 GestureRecognizer 实例。
静态 GestureRecognizer
createFromFile(Context context, File modelFile)
使用模型文件和默认的 GestureRecognizer.GestureRecognizerOptions 创建 GestureRecognizer 实例。
静态 GestureRecognizer
GestureRecognizerResult
recognizeMPImage 图片)
使用默认的图片处理选项(即
GestureRecognizerResult
recognizeMPImage 图片、ImageProcessingOptions imageProcessingOptions)
对提供的单张图片执行手势识别。
void
recognizeAsyncMPImage 图片,长 timestampMs)
发送实时图像数据,以使用默认图像处理选项(即
void
recognizeAsyncMPImage 图片、ImageProcessingOptions imageProcessingOptions、long timestampMs)
发送实时图片数据以执行手势识别,结果将通过 GestureRecognizer.GestureRecognizerOptions 中提供的 OutputHandler.ResultListener 获得。
GestureRecognizerResult
recognizeForVideoMPImage 图片,长 timestampMs)
使用默认的图片处理选项(即,在提供的视频帧上执行手势识别)
GestureRecognizerResult
recognizeForVideoMPImage 图片、ImageProcessingOptions imageProcessingOptions、long timestampMs)
对提供的视频帧执行手势识别。

继承的方法

公共方法

public static GestureRecognizer createFromBuffer (Context context, ByteBuffer modelBuffer)

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

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

public static GestureRecognizer createFromFile (Context context, String modelPath)

使用模型文件和默认的 GestureRecognizer.GestureRecognizerOptions 创建 GestureRecognizer 实例。

参数
context 一个 Android ERROR(/Context)
modelPath 包含资源元数据的手势识别模型的路径。
抛出
如果 GestureRecognizer 创建过程中出错,则会发生该错误。

public static GestureRecognizer createFromFile (上下文上下文、File modelFile)

使用模型文件和默认的 GestureRecognizer.GestureRecognizerOptions 创建 GestureRecognizer 实例。

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

public static GestureRecognizer createFromOptions (Context context, GestureRecognizer.GestureRecognizerOptions recognizerOptions)

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

public GestureRecognizerResult recognize MPImage 图片)

使用默认的图片处理选项(即不应用任何旋转)对提供的单张图片执行手势识别。仅当使用 ERROR(/RunningMode.IMAGE) 创建 GestureRecognizer 时,才使用此方法。输入图片格式的 TODO 更新 Java 文档。

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

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

public GestureRecognizerResult recognize (MPImage image, ImageProcessingOptions imageProcessingOptions)

对提供的单张图片执行手势识别。仅当使用 ERROR(/RunningMode.IMAGE) 创建 GestureRecognizer 时,才使用此方法。输入图片格式的 TODO 更新 Java 文档。

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

参数
图片 用于处理的 MediaPipe MPImage 对象。
imageProcessingOptions ImageProcessingOptions,用于指定在运行推断之前如何处理输入图片。请注意,此任务支持相关区域:指定 ImageProcessingOptions.regionOfInterest() 会导致此方法抛出 IllegalArgumentException。
抛出
IllegalArgumentException 如果 ImageProcessingOptions 指定了关注区域,则会发生该错误。
出现内部错误。

public void recognizeAsync (MPImage image, long timestampMs)

发送实时图片数据,以使用默认图片处理选项执行手势识别,即不应用任何旋转,结果将通过 GestureRecognizer.GestureRecognizerOptions 中提供的 OutputHandler.ResultListener 获得。仅当使用 ERROR(/RunningMode.LIVE_STREAM) 创建 ERROR(/GestureRecognition) 时,才使用此方法。

必须提供时间戳(以毫秒为单位),以指明输入图片何时发送到手势识别器。输入时间戳必须单调递增。

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

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

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

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

必须提供时间戳(以毫秒为单位),以指明输入图片何时发送到手势识别器。输入时间戳必须单调递增。

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

参数
图片 用于处理的 MediaPipe MPImage 对象。
imageProcessingOptions ImageProcessingOptions,用于指定在运行推断之前如何处理输入图片。请注意,此任务支持相关区域:指定 ImageProcessingOptions.regionOfInterest() 会导致此方法抛出 IllegalArgumentException。
timestampMs 输入时间戳(以毫秒为单位)。
抛出
IllegalArgumentException 如果 ImageProcessingOptions 指定了关注区域,则会发生该错误。
出现内部错误。

public GestureRecognizerResult recognizeForVideo MPImage image, long timestampMs)

使用默认图片处理选项对提供的视频帧执行手势识别,即不应用任何旋转。仅当使用 ERROR(/RunningMode.VIDEO) 创建 GestureRecognizer 时,才使用此方法。

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

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

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

public GestureRecognizerResult recognizeForVideo (MPImage image, ImageProcessingOptions imageProcessingOptions, long timestampMs)

对提供的视频帧执行手势识别。仅当使用 ERROR(/RunningMode.VIDEO) 创建 GestureRecognizer 时,才使用此方法。

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

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

参数
图片 用于处理的 MediaPipe MPImage 对象。
imageProcessingOptions ImageProcessingOptions,用于指定在运行推断之前如何处理输入图片。请注意,此任务支持相关区域:指定 ImageProcessingOptions.regionOfInterest() 会导致此方法抛出 IllegalArgumentException。
timestampMs 输入时间戳(以毫秒为单位)。
抛出
IllegalArgumentException 如果 ImageProcessingOptions 指定了关注区域,则会发生该错误。
出现内部错误。