FaceDetector

public final class FaceDetector

对图片执行人脸检测。

API 需要具有 TFLite 模型元数据的 TFLite 模型。

  • 输入图片 MPImage
    • 运行人脸检测器的图片。
  • 输出 FaceDetectorResult FaceDetectorResult
    • 包含检测到的人脸的 FaceDetectorResult。

嵌套类

类别 FaceDetector.FaceDetectorOptions 用于设置 FaceDetector 的选项。 

公共方法

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

继承的方法

公共方法

public static FaceDetector createFromBuffer (Context context, ByteBuffer modelBuffer)

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

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

public static FaceDetector createFromFile (Context context, String modelPath)

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

参数
context 一个 Android ERROR(/Context)
modelPath 资产中元数据的检测模型路径。
抛出
如果 FaceDetector 创建过程中出错,则会发生该错误。

public static FaceDetector createFromFile (Context context, File modelFile)

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

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

public static FaceDetector createFromOptions (Context context, FaceDetector.FaceDetectorOptionsDetectorOptions)

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

public FaceDetectorResult detect MPImage 图片)

使用默认图片处理选项(即不应用任何旋转)对提供的单张图片执行人脸检测。仅当使用 ERROR(/RunningMode.IMAGE) 创建 FaceDetector 时,才使用此方法。

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

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

public FaceDetectorResult detect (MPImage image, ImageProcessingOptions imageProcessingOptions)

对提供的单张图片执行人脸检测。仅当使用 ERROR(/RunningMode.IMAGE) 创建 FaceDetector 时,才使用此方法。

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

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

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

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

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

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

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

public void detectAsync (MPImage image, long timestampMs)

发送实时图像数据,以使用默认图像处理选项(即不应用任何旋转)执行人脸检测,结果将通过 FaceDetector.FaceDetectorOptions 中提供的 OutputHandler.ResultListener 获得。只有在使用 ERROR(/RunningMode.LIVE_STREAM) 创建 FaceDetector 的情况下,才应使用此方法。

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

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

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

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

对提供的视频帧执行人脸检测。仅当使用 ERROR(/RunningMode.VIDEO) 创建 FaceDetector 时,才使用此方法。

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

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

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

public FaceDetectorResult detectForVideo MPImage 图片,长 timestampMs)

使用默认图片处理选项对提供的视频帧执行人脸检测,即不应用任何旋转。仅在使用 ERROR(/RunningMode.VIDEO) 创建 FaceDetector 时使用此方法。

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

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

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