HandLandmarker

公开 final 类 HandLandmarker

对图片执行手特征点检测。

此 API 需要预训练的手部特征点模型资源包。请参阅

  • 输入图片 MPImage
    • 运行手特征点检测的图片。
  • 输出 HandMarkererResult HandLandmarkerResult
    • 包含手部特征点的 HandlanderResult。

嵌套类

类别 HandLandmarker.HandLandmarkerOptions 用于设置 HandLandmarker 的选项。 

字段

public static final Set<Connection> HAND_CONNECTIONS
public static final Set<Connection> HAND_INDEX_FINGER_CONNECTIONS
public static final Set<Connection> HAND_MIDDLE_FINGER_CONNECTIONS
public static final Set<Connection> HAND_PALM_CONNECTIONS
public static final Set<Connection> HAND_PINKY_FINGER_CONNECTIONS
public static final Set<Connection> HAND_RING_FINGER_CONNECTIONS
public static final Set<Connection> HAND_THUMB_CONNECTIONS

公共方法

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

继承的方法

字段

public static final 设置<Connection> HAND_CONNECTIONS

public static final 设置<Connection> HAND_INDEX_FINGER_CONNECTIONS

public static final 设置<Connection> HAND_MIDDLE_FINGER_CONNECTIONS

public static final 设置<Connection> HAND_PALM_CONNECTIONS

public static final 设置<Connection> HAND_PINKY_FINGER_CONNECTIONS

public static final 设置<Connection> HAND_RING_FINGER_CONNECTIONS

public static final 设置<Connection> HAND_THUMB_CONNECTIONS

公共方法

public static HandLandmarker createFromBuffer (上下文上下文、ByteBuffer modelBuffer)

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

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

public static HandLandmarker createFromFile (上下文上下文、String modelPath)

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

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

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

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

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

public static HandLandmarker createFromOptions (Context Context, HandLandmarker.HandLandmarkerOptions而无需地标)

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

public HandLandmarkerResult detect MPImage 图片)

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

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

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

public HandLandmarkerResult detect (MPImage image, ImageProcessingOptions imageProcessingOptions)

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

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

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

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

发送实时图像数据以执行手特征点检测,结果将通过 HandLandmarker.HandLandmarkerOptions 中提供的 OutputHandler.ResultListener 获得。只有在使用 ERROR(/RunningMode.LIVE_STREAM) 创建 HandLandmarker 时,才应使用此方法。

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

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

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

public void detectAsync (MPImage image, long timestampMs)

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

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

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

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

public HandLandmarkerResult detectForVideo MPImage image、ImageProcessingOptions imageProcessingOptions, long timestampMs)

对提供的视频帧执行手特征点检测。仅当使用 ERROR(/RunningMode.VIDEO) 创建 HandLandmarker 时,才使用此方法。

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

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

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

public HandLandmarkerResult detectForVideo MPImage 图片,长时间戳 Ms)

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

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

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

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