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 defaultFaceDetector
.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 givenFaceDetectorOptions
.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 theFaceDetector
.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 theorientation
property of the providedMPImage
. Only use this method when theFaceDetector
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 usekCVPixelFormatType_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