MediaPipeTasksVision Framework Reference

MPPFaceDetector


@interface MPPFaceDetector : NSObject

@brief Class that performs face detection on images.

The API expects a TFLite model with mandatory TFLite Model Metadata.

The API supports models with one image input tensor and one or more output tensors. To be more specific, here are the requirements:

Input tensor (kTfLiteUInt8/kTfLiteFloat32)

  • image input of size [batch x height x width x channels].
  • batch inference is not supported (batch is required to be 1).
  • only RGB inputs are supported (channels is required to be 3).
  • if type is kTfLiteFloat32, NormalizationOptions are required to be attached to the metadata for input normalization.

Output tensors must be the 4 outputs of a DetectionPostProcess op, i.e:(kTfLiteFloat32) (kTfLiteUInt8/kTfLiteFloat32)

  • locations tensor of size [num_results x 4], the inner array representing bounding boxes in the form [top, left, right, bottom].
  • BoundingBoxProperties are required to be attached to the metadata and must specify type=BOUNDARIES and coordinate_type=RATIO. (kTfLiteFloat32)
  • classes tensor of size [num_results], each value representing the integer index of a class.
  • scores tensor of size [num_results], each value representing the score of the detected face.
  • optional score calibration can be attached using ScoreCalibrationOptions and an AssociatedFile with type TENSOR_AXIS_SCORE_CALIBRATION. See metadata_schema.fbs [1] for more details. (kTfLiteFloat32)
  • integer num_results as a tensor of size [1]
  • Creates a new instance of FaceDetector from an absolute path to a TensorFlow Lite model file stored locally on the device and the default FaceDetector.

    Declaration

    Objective-C

    - (nullable instancetype)initWithModelPath:(nonnull NSString *)modelPath
                                         error:(NSError *_Nullable *_Nullable)error;

    Parameters

    modelPath

    An absolute path to a TensorFlow Lite model file stored locally on the device.

    Return Value

    A new instance of FaceDetector with the given model path. nil if there is an error in initializing the face detector.

  • Creates a new instance of FaceDetector from the given FaceDetectorOptions.

    Declaration

    Objective-C

    - (nullable instancetype)initWithOptions:
                                 (nonnull MPPFaceDetectorOptions *)options
                                       error:(NSError *_Nullable *_Nullable)error;

    Parameters

    options

    The options of type FaceDetectorOptions to use for configuring the FaceDetector.

    Return Value

    A new instance of FaceDetector with the given options. nil if there is an error in initializing the face detector.

  • Performs face detection on the provided MPImage using the whole image as region of interest. Rotation will be applied according to the orientation property of the provided MPImage. Only use this method when the FaceDetector is created with running mode .image.

    This method supports performing face detection on RGBA images. If your MPImage has a source type of .pixelBuffer or .sampleBuffer, the underlying pixel buffer must use kCVPixelFormatType_32BGRA as its pixel format.

    If your MPImage has a source type of .image ensure that the color space is RGB with an Alpha channel.

    Declaration

    Objective-C

    - (nullable MPPFaceDetectorResult *)detectImage:(nonnull MPPImage *)image
                                              error:(NSError *_Nullable *_Nullable)
                                                        error;

    Parameters

    image

    The MPImage on which face detection is to be performed.

    Return Value

    An FaceDetectorResult face that contains a list of detections, each detection has a bounding box that is expressed in the unrotated input frame of reference coordinates system, i.e. in [0,image_width) x [0,image_height), which are the dimensions of the underlying image data.

  • Perfo