Merge pull request #4721 from priankakariatyml:ios-doc-updates
PiperOrigin-RevId: 560133185
This commit is contained in:
commit
5d2d8f9ab2
|
@ -44,14 +44,14 @@ NS_SWIFT_NAME(ResultCategory)
|
|||
@property(nonatomic, readonly, nullable) NSString *displayName;
|
||||
|
||||
/**
|
||||
* Initializes a new `MPPCategory` with the given index, score, category name and display name.
|
||||
* Initializes a new `Category` with the given index, score, category name and display name.
|
||||
*
|
||||
* @param index The index of the label in the corresponding label file.
|
||||
* @param score The probability score of this label category.
|
||||
* @param categoryName The label of this category object.
|
||||
* @param displayName The display name of the label.
|
||||
*
|
||||
* @return An instance of `MPPCategory` initialized with the given index, score, category name and
|
||||
* @return An instance of `Category` initialized with the given index, score, category name and
|
||||
* display name.
|
||||
*/
|
||||
- (instancetype)initWithIndex:(NSInteger)index
|
||||
|
|
|
@ -32,32 +32,32 @@ NS_SWIFT_NAME(Classifications)
|
|||
/** The optional name of the classifier head, which is the corresponding tensor metadata name. */
|
||||
@property(nonatomic, readonly, nullable) NSString *headName;
|
||||
|
||||
/** An array of `MPPCategory` objects containing the predicted categories. */
|
||||
/** An array of `Category` objects containing the predicted categories. */
|
||||
@property(nonatomic, readonly) NSArray<MPPCategory *> *categories;
|
||||
|
||||
/**
|
||||
* Initializes a new `MPPClassifications` object with the given head index and array of categories.
|
||||
* Initializes a new `Classifications` object with the given head index and array of categories.
|
||||
* Head name is initialized to `nil`.
|
||||
*
|
||||
* @param headIndex The index of the classifier head.
|
||||
* @param categories An array of `MPPCategory` objects containing the predicted categories.
|
||||
* @param categories An array of `Category` objects containing the predicted categories.
|
||||
*
|
||||
* @return An instance of `MPPClassifications` initialized with the given head index and
|
||||
* @return An instance of `Classifications` initialized with the given head index and
|
||||
* array of categories.
|
||||
*/
|
||||
- (instancetype)initWithHeadIndex:(NSInteger)headIndex
|
||||
categories:(NSArray<MPPCategory *> *)categories;
|
||||
|
||||
/**
|
||||
* Initializes a new `MPPClassifications` with the given head index, head name and array of
|
||||
* Initializes a new `Classifications` with the given head index, head name and array of
|
||||
* categories.
|
||||
*
|
||||
* @param headIndex The index of the classifier head.
|
||||
* @param headName The name of the classifier head, which is the corresponding tensor metadata
|
||||
* name.
|
||||
* @param categories An array of `MPPCategory` objects containing the predicted categories.
|
||||
* @param categories An array of `Category` objects containing the predicted categories.
|
||||
*
|
||||
* @return An object of `MPPClassifications` initialized with the given head index, head name and
|
||||
* @return An object of `Classifications` initialized with the given head index, head name and
|
||||
* array of categories.
|
||||
*/
|
||||
- (instancetype)initWithHeadIndex:(NSInteger)headIndex
|
||||
|
@ -78,7 +78,7 @@ NS_SWIFT_NAME(ClassificationResult)
|
|||
@interface MPPClassificationResult : NSObject
|
||||
|
||||
/**
|
||||
* An Array of `MPPClassifications` objects containing the predicted categories for each head of
|
||||
* An Array of `Classifications` objects containing the predicted categories for each head of
|
||||
* the model.
|
||||
*/
|
||||
@property(nonatomic, readonly) NSArray<MPPClassifications *> *classifications;
|
||||
|
@ -93,15 +93,15 @@ NS_SWIFT_NAME(ClassificationResult)
|
|||
@property(nonatomic, readonly) NSInteger timestampInMilliseconds;
|
||||
|
||||
/**
|
||||
* Initializes a new `MPPClassificationResult` with the given array of classifications and time
|
||||
* Initializes a new `ClassificationResult` with the given array of classifications and time
|
||||
* stamp (in milliseconds).
|
||||
*
|
||||
* @param classifications An Array of `MPPClassifications` objects containing the predicted
|
||||
* @param classifications An Array of `Classifications` objects containing the predicted
|
||||
* categories for each head of the model.
|
||||
* @param timestampInMilliseconds The timestamp (in milliseconds) of the start of the chunk of data
|
||||
* corresponding to these results.
|
||||
*
|
||||
* @return An instance of `MPPClassificationResult` initialized with the given array of
|
||||
* @return An instance of `ClassificationResult` initialized with the given array of
|
||||
* classifications and timestamp (in milliseconds).
|
||||
*/
|
||||
- (instancetype)initWithClassifications:(NSArray<MPPClassifications *> *)classifications
|
||||
|
|
|
@ -35,7 +35,7 @@ NS_SWIFT_NAME(NormalizedKeypoint)
|
|||
@property(nonatomic, readonly) float score;
|
||||
|
||||
/**
|
||||
* Initializes a new `MPPNormalizedKeypoint` object with the given location, label and score.
|
||||
* Initializes a new `NormalizedKeypoint` object with the given location, label and score.
|
||||
* You must pass 0.0 for `score` if it is not present.
|
||||
*
|
||||
* @param location The (x,y) coordinates location of the normalized keypoint.
|
||||
|
@ -43,7 +43,7 @@ NS_SWIFT_NAME(NormalizedKeypoint)
|
|||
* @param score The optional score of the normalized keypoint. You must pass 0.0 for score if it
|
||||
* is not present.
|
||||
*
|
||||
* @return An instance of `MPPNormalizedKeypoint` initialized with the given given location, label
|
||||
* @return An instance of `NormalizedKeypoint` initialized with the given given location, label
|
||||
* and score.
|
||||
*/
|
||||
- (instancetype)initWithLocation:(CGPoint)location
|
||||
|
@ -56,18 +56,18 @@ NS_SWIFT_NAME(NormalizedKeypoint)
|
|||
|
||||
@end
|
||||
|
||||
/** Represents one detected object in the results of `MPPObjectDetector`. */
|
||||
/** Represents one detected object in the results of `ObjectDetector`. */
|
||||
NS_SWIFT_NAME(Detection)
|
||||
@interface MPPDetection : NSObject
|
||||
|
||||
/** An array of `MPPCategory` objects containing the predicted categories. */
|
||||
/** An array of `Category` objects containing the predicted categories. */
|
||||
@property(nonatomic, readonly) NSArray<MPPCategory *> *categories;
|
||||
|
||||
/** The bounding box of the detected object. */
|
||||
@property(nonatomic, readonly) CGRect boundingBox;
|
||||
|
||||
/**
|
||||
* An optional array of `MPPNormalizedKeypoint` objects associated with the detection. Keypoints
|
||||
* An optional array of `NormalizedKeypoint` objects associated with the detection. Keypoints
|
||||
* represent interesting points related to the detection. For example, the keypoints represent the
|
||||
* eyes, ear and mouth from the from detection model. In template matching detection, e.g. KNIFT,
|
||||
* they can instead represent the feature points for template matching.
|
||||
|
@ -75,18 +75,18 @@ NS_SWIFT_NAME(Detection)
|
|||
@property(nonatomic, readonly, nullable) NSArray<MPPNormalizedKeypoint *> *keypoints;
|
||||
|
||||
/**
|
||||
* Initializes a new `MPPDetection` object with the given array of categories, bounding box and
|
||||
* Initializes a new `Detection` object with the given array of categories, bounding box and
|
||||
* optional array of keypoints;
|
||||
*
|
||||
* @param categories A list of `MPPCategory` objects that contain category name, display name,
|
||||
* @param categories A list of `Category` objects that contain category name, display name,
|
||||
* score, and the label index.
|
||||
* @param boundingBox A `CGRect` that represents the bounding box.
|
||||
* @param keypoints: An optional array of `MPPNormalizedKeypoint` objects associated with the
|
||||
* @param keypoints: An optional array of `NormalizedKeypoint` objects associated with the
|
||||
* detection. Keypoints represent interesting points related to the detection. For example, the
|
||||
* keypoints represent the eyes, ear and mouth from the face detection model. In template matching
|
||||
* detection, e.g. KNIFT, they can instead represent the feature points for template matching.
|
||||
*
|
||||
* @return An instance of `MPPDetection` initialized with the given array of categories, bounding
|
||||
* @return An instance of `Detection` initialized with the given array of categories, bounding
|
||||
* box and `nil` keypoints.
|
||||
*/
|
||||
- (instancetype)initWithCategories:(NSArray<MPPCategory *> *)categories
|
||||
|
|
|
@ -49,13 +49,13 @@ NS_SWIFT_NAME(Landmark)
|
|||
@property(nonatomic, readonly, nullable) NSNumber *presence;
|
||||
|
||||
/**
|
||||
* Initializes a new `MPPLandmark` object with the given x, y and z coordinates.
|
||||
* Initializes a new `Landmark` object with the given x, y and z coordinates.
|
||||
*
|
||||
* @param x The x coordinates of the landmark.
|
||||
* @param y The y coordinates of the landmark.
|
||||
* @param z The z coordinates of the landmark.
|
||||
*
|
||||
* @return An instance of `MPPLandmark` initialized with the given x, y and z coordinates.
|
||||
* @return An instance of `Landmark` initialized with the given x, y and z coordinates.
|
||||
*/
|
||||
- (instancetype)initWithX:(float)x
|
||||
y:(float)y
|
||||
|
@ -103,13 +103,13 @@ NS_SWIFT_NAME(NormalizedLandmark)
|
|||
@property(nonatomic, readonly, nullable) NSNumber *presence;
|
||||
|
||||
/**
|
||||
* Initializes a new `MPPNormalizedLandmark` object with the given x, y and z coordinates.
|
||||
* Initializes a new `NormalizedLandmark` object with the given x, y and z coordinates.
|
||||
*
|
||||
* @param x The x coordinates of the landmark.
|
||||
* @param y The y coordinates of the landmark.
|
||||
* @param z The z coordinates of the landmark.
|
||||
*
|
||||
* @return An instance of `MPPNormalizedLandmark` initialized with the given x, y and z coordinates.
|
||||
* @return An instance of `NormalizedLandmark` initialized with the given x, y and z coordinates.
|
||||
*/
|
||||
- (instancetype)initWithX:(float)x
|
||||
y:(float)y
|
||||
|
|
|
@ -40,10 +40,10 @@ NS_SWIFT_NAME(MPImage)
|
|||
@property(nonatomic, readonly) CGFloat height;
|
||||
|
||||
/**
|
||||
* The display orientation of the image. If `imageSourceType` is `MPPImageSourceTypeImage`, the
|
||||
* The display orientation of the image. If `imageSourceType` is `.image`, the
|
||||
* default value is `image.imageOrientation`; otherwise the default value is
|
||||
* `UIImageOrientationUp`. If the `MPPImage` is being used as input for any MediaPipe vision tasks
|
||||
* and is set to any orientation other than `UIImageOrientationUp`, inference will be performed on
|
||||
* `UIImage.Orientation.up`. If the `MPImage` is being used as input for any MediaPipe vision tasks
|
||||
* and is set to any orientation other than `UIImage.Orientation.up`, inference will be performed on
|
||||
* a rotated copy of the image according to the orientation.
|
||||
*/
|
||||
@property(nonatomic, readonly) UIImageOrientation orientation;
|
||||
|
@ -54,46 +54,48 @@ NS_SWIFT_NAME(MPImage)
|
|||
/** The source image. `nil` if `imageSourceType` is not `.image`. */
|
||||
@property(nonatomic, readonly, nullable) UIImage *image;
|
||||
|
||||
/** The source pixel buffer. `nil` if `imageSourceType` is not `.pixelBuffer`. */
|
||||
/** The source pixel buffer. `nil` if ``imageSourceType`` is not `.pixelBuffer`. */
|
||||
@property(nonatomic, readonly, nullable) CVPixelBufferRef pixelBuffer;
|
||||
|
||||
/** The source sample buffer. `nil` if `imageSourceType` is not `.sampleBuffer`. */
|
||||
/** The source sample buffer. `nil` if ``imageSourceType`` is not `.sampleBuffer`. */
|
||||
@property(nonatomic, readonly, nullable) CMSampleBufferRef sampleBuffer;
|
||||
|
||||
/**
|
||||
* Initializes an `MPPImage` object with the given `UIImage`.
|
||||
* The orientation of the newly created `MPPImage` will be equal to the `imageOrientation` of
|
||||
* Initializes an `MPImage` object with the given `UIImage`.
|
||||
*
|
||||
* The orientation of the newly created `MPImage` will be equal to the `imageOrientation` of
|
||||
* `UIImage` and when sent to the vision tasks for inference, rotation will be applied accordingly.
|
||||
* To create an `MPPImage` with an orientation different from its `imageOrientation`, please use
|
||||
* `[MPPImage initWithImage:orientation:error:]`.
|
||||
* To create an `MPImage` with an orientation different from its `imageOrientation`, please use
|
||||
* `MPImage(uiImage:orientation:)s`.
|
||||
*
|
||||
* @param image The image to use as the source. Its `CGImage` property must not be `NULL`.
|
||||
* @param error An optional error parameter populated when there is an error in initializing the
|
||||
* `MPPImage`.
|
||||
* `MPImage`.
|
||||
*
|
||||
* @return A new `MPPImage` instance with the given image as the source. `nil` if the given
|
||||
* @return A new `MPImage` instance with the given image as the source. `nil` if the given
|
||||
* `image` is `nil` or invalid.
|
||||
*/
|
||||
- (nullable instancetype)initWithUIImage:(UIImage *)image error:(NSError **)error;
|
||||
|
||||
/**
|
||||
* Initializes an `MPPImage` object with the given `UIImage` and orientation. The given orientation
|
||||
* will be used to calculate the rotation to be applied to the `UIImage` before inference is
|
||||
* performed on it by the vision tasks. The `imageOrientation` stored in the `UIImage` is ignored
|
||||
* when `MPImage` objects created by this method are sent to the vision tasks for inference. Use
|
||||
* `[MPPImage initWithImage:orientation:error:]` to initialize images with the `imageOrientation` of
|
||||
* Initializes an `MPImage` object with the given `UIImage` and orientation.
|
||||
*
|
||||
* The given orientation will be used to calculate the rotation to be applied to the `UIImage`
|
||||
* before inference is performed on it by the vision tasks. The `imageOrientation` stored in the
|
||||
* `UIImage` is ignored when `MPImage` objects created by this method are sent to the vision tasks
|
||||
* for inference. Use `MPImage(uiImage:)` to initialize images with the `imageOrientation` of
|
||||
* `UIImage`.
|
||||
*
|
||||
* If the newly created `MPPImage` is used as input for any MediaPipe vision tasks, inference
|
||||
* If the newly created `MPImage` is used as input for any MediaPipe vision tasks, inference
|
||||
* will be performed on a copy of the image rotated according to the orientation.
|
||||
*
|
||||
* @param image The image to use as the source. Its `CGImage` property must not be `NULL`.
|
||||
* @param orientation The display orientation of the image. This will be stored in the property
|
||||
* `orientation` `MPPImage` and will override the `imageOrientation` of the passed in `UIImage`.
|
||||
* `orientation` `MPImage` and will override the `imageOrientation` of the passed in `UIImage`.
|
||||
* @param error An optional error parameter populated when there is an error in initializing the
|
||||
* `MPPImage`.
|
||||
* `MPImage`.
|
||||
*
|
||||
* @return A new `MPPImage` instance with the given image as the source. `nil` if the given
|
||||
* @return A new `MPImage` instance with the given image as the source. `nil` if the given
|
||||
* `image` is `nil` or invalid.
|
||||
*/
|
||||
- (nullable instancetype)initWithUIImage:(UIImage *)image
|
||||
|
@ -101,36 +103,36 @@ NS_SWIFT_NAME(MPImage)
|
|||
error:(NSError **)error NS_DESIGNATED_INITIALIZER;
|
||||
|
||||
/**
|
||||
* Initializes an `MPPImage` object with the given pixel buffer.
|
||||
* Initializes an `MPImage` object with the given pixel buffer.
|
||||
*
|
||||
* The orientation of the newly created `MPPImage` will be `UIImageOrientationUp`.
|
||||
* The orientation of the newly created `MPImage` will be `UIImageOrientationUp`.
|
||||
* Hence, if this image is used as input for any MediaPipe vision tasks, inference will be
|
||||
* performed on the it without any rotation. To create an `MPPImage` with a different
|
||||
* orientation, please use `[MPPImage initWithPixelBuffer:orientation:error:]`.
|
||||
* performed on the it without any rotation. To create an `MPImage` with a different
|
||||
* orientation, please use `MPImage(pixelBuffer:orientation:)`.
|
||||
*
|
||||
* @param pixelBuffer The pixel buffer to use as the source. It will be retained by the new
|
||||
* `MPPImage` instance for the duration of its lifecycle.
|
||||
* `MPImage` instance for the duration of its lifecycle.
|
||||
* @param error An optional error parameter populated when there is an error in initializing the
|
||||
* `MPPImage`.
|
||||
* `MPImage`.
|
||||
*
|
||||
* @return A new `MPPImage` instance with the given pixel buffer as the source. `nil` if the
|
||||
* @return A new `MPImage` instance with the given pixel buffer as the source. `nil` if the
|
||||
* given pixel buffer is `nil` or invalid.
|
||||
*/
|
||||
- (nullable instancetype)initWithPixelBuffer:(CVPixelBufferRef)pixelBuffer error:(NSError **)error;
|
||||
|
||||
/**
|
||||
* Initializes an `MPPImage` object with the given pixel buffer and orientation.
|
||||
* Initializes an `MPImage` object with the given pixel buffer and orientation.
|
||||
*
|
||||
* If the newly created `MPPImage` is used as input for any MediaPipe vision tasks, inference
|
||||
* If the newly created `MPImage` is used as input for any MediaPipe vision tasks, inference
|
||||
* will be performed on a copy of the image rotated according to the orientation.
|
||||
*
|
||||
* @param pixelBuffer The pixel buffer to use as the source. It will be retained by the new
|
||||
* `MPPImage` instance for the duration of its lifecycle.
|
||||
* `MPImage` instance for the duration of its lifecycle.
|
||||
* @param orientation The display orientation of the image.
|
||||
* @param error An optional error parameter populated when there is an error in initializing the
|
||||
* `MPPImage`.
|
||||
* `MPImage`.
|
||||
*
|
||||
* @return A new `MPPImage` instance with the given orientation and pixel buffer as the source.
|
||||
* @return A new `MPImage` instance with the given orientation and pixel buffer as the source.
|
||||
* `nil` if the given pixel buffer is `nil` or invalid.
|
||||
*/
|
||||
- (nullable instancetype)initWithPixelBuffer:(CVPixelBufferRef)pixelBuffer
|
||||
|
@ -138,35 +140,35 @@ NS_SWIFT_NAME(MPImage)
|
|||
error:(NSError **)error NS_DESIGNATED_INITIALIZER;
|
||||
|
||||
/**
|
||||
* Initializes an `MPPImage` object with the given sample buffer.
|
||||
* Initializes an `MPImage` object with the given sample buffer.
|
||||
*
|
||||
* The orientation of the newly created `MPPImage` will be `UIImageOrientationUp`.
|
||||
* The orientation of the newly created `MPImage` will be `UIImageOrientationUp`.
|
||||
* Hence, if this image is used as input for any MediaPipe vision tasks, inference will be
|
||||
* performed on the it without any rotation. To create an `MPPImage` with a different orientation,
|
||||
* please use `[MPPImage initWithSampleBuffer:orientation:error:]`.
|
||||
* performed on the it without any rotation. To create an `MPImage` with a different orientation,
|
||||
* please use `MPImage(sampleBuffer:orientation:)`.
|
||||
*
|
||||
* @param sampleBuffer The sample buffer to use as the source. It will be retained by the new
|
||||
* `MPPImage` instance for the duration of its lifecycle. The sample buffer must be based on
|
||||
* `MPImage` instance for the duration of its lifecycle. The sample buffer must be based on
|
||||
* a pixel buffer (not compressed data). In practice, it should be the video output of the
|
||||
* camera on an iOS device, not other arbitrary types of `CMSampleBuffer`s.
|
||||
* @return A new `MPPImage` instance with the given sample buffer as the source. `nil` if the
|
||||
* @return A new `MPImage` instance with the given sample buffer as the source. `nil` if the
|
||||
* given sample buffer is `nil` or invalid.
|
||||
*/
|
||||
- (nullable instancetype)initWithSampleBuffer:(CMSampleBufferRef)sampleBuffer
|
||||
error:(NSError **)error;
|
||||
|
||||
/**
|
||||
* Initializes an `MPPImage` object with the given sample buffer and orientation.
|
||||
* Initializes an `MPImage` object with the given sample buffer and orientation.
|
||||
*
|
||||
* If the newly created `MPPImage` is used as input for any MediaPipe vision tasks, inference
|
||||
* If the newly created `MPImage` is used as input for any MediaPipe vision tasks, inference
|
||||
* will be performed on a copy of the image rotated according to the orientation.
|
||||
*
|
||||
* @param sampleBuffer The sample buffer to use as the source. It will be retained by the new
|
||||
* `MPPImage` instance for the duration of its lifecycle. The sample buffer must be based on
|
||||
* `MPImage` instance for the duration of its lifecycle. The sample buffer must be based on
|
||||
* a pixel buffer (not compressed data). In practice, it should be the video output of the
|
||||
* camera on an iOS device, not other arbitrary types of `CMSampleBuffer`s.
|
||||
* @param orientation The display orientation of the image.
|
||||
* @return A new `MPPImage` instance with the given orientation and sample buffer as the source.
|
||||
* @return A new `MPImage` instance with the given orientation and sample buffer as the source.
|
||||
* `nil` if the given sample buffer is `nil` or invalid.
|
||||
*/
|
||||
- (nullable instancetype)initWithSampleBuffer:(CMSampleBufferRef)sampleBuffer
|
||||
|
|
|
@ -57,27 +57,23 @@ NS_SWIFT_NAME(FaceDetector)
|
|||
@interface MPPFaceDetector : NSObject
|
||||
|
||||
/**
|
||||
* Creates a new instance of `MPPFaceDetector` from an absolute path to a TensorFlow Lite model
|
||||
* file stored locally on the device and the default `MPPFaceDetector`.
|
||||
* 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`.
|
||||
*
|
||||
* @param modelPath An absolute path to a TensorFlow Lite model file stored locally on the device.
|
||||
* @param error An optional error parameter populated when there is an error in initializing the
|
||||
* face detector.
|
||||
*
|
||||
* @return A new instance of `MPPFaceDetector` with the given model path. `nil` if there is an
|
||||
* @return A new instance of `FaceDetector` with the given model path. `nil` if there is an
|
||||
* error in initializing the face detector.
|
||||
*/
|
||||
- (nullable instancetype)initWithModelPath:(NSString *)modelPath error:(NSError **)error;
|
||||
|
||||
/**
|
||||
* Creates a new instance of `MPPFaceDetector` from the given `MPPFaceDetectorOptions`.
|
||||
* Creates a new instance of `FaceDetector` from the given `FaceDetectorOptions`.
|
||||
*
|
||||
* @param options The options of type `MPPFaceDetectorOptions` to use for configuring the
|
||||
* `MPPFaceDetector`.
|
||||
* @param error An optional error parameter populated when there is an error in initializing the
|
||||
* face detector.
|
||||
* @param options The options of type `FaceDetectorOptions` to use for configuring the
|
||||
* `FaceDetector`.
|
||||
*
|
||||
* @return A new instance of `MPPFaceDetector` with the given options. `nil` if there is an error
|
||||
* @return A new instance of `FaceDetector` with the given options. `nil` if there is an error
|
||||
* in initializing the face detector.
|
||||
*/
|
||||
- (nullable instancetype)initWithOptions:(MPPFaceDetectorOptions *)options
|
||||
|
@ -86,23 +82,21 @@ NS_SWIFT_NAME(FaceDetector)
|
|||
/**
|
||||
* Performs face detection on the provided MPPImage using the whole image as region of
|
||||
* interest. Rotation will be applied according to the `orientation` property of the provided
|
||||
* `MPPImage`. Only use this method when the `MPPFaceDetector` is created with
|
||||
* `MPPRunningModeImage`.
|
||||
* `MPImage`. Only use this method when the `MPPFaceDetector` is created with running mode
|
||||
* `.image`.
|
||||
*
|
||||
* This method supports classification of RGBA images. If your `MPPImage` has a source type of
|
||||
* `MPPImageSourceTypePixelBuffer` or `MPPImageSourceTypeSampleBuffer`, the underlying pixel buffer
|
||||
* must have one of the following pixel format types:
|
||||
* This method supports classification of RGBA images. If your `MPImage` has a source type of
|
||||
* `.pixelBuffer` or `.sampleBuffer`, the underlying pixel buffer must have one of the
|
||||
* following pixel format types:
|
||||
* 1. kCVPixelFormatType_32BGRA
|
||||
* 2. kCVPixelFormatType_32RGBA
|
||||
*
|
||||
* If your `MPPImage` has a source type of `MPPImageSourceTypeImage` ensure that the color space is
|
||||
* If your `MPImage` has a source type of `.image` ensure that the color space is
|
||||
* RGB with an Alpha channel.
|
||||
*
|
||||
* @param image The `MPPImage` on which face detection is to be performed.
|
||||
* @param error An optional error parameter populated when there is an error in performing face
|
||||
* detection on the input image.
|
||||
* @param image The `MPImage` on which face detection is to be performed.
|
||||
*
|
||||
* @return An `MPPFaceDetectorResult` face that contains a list of detections, each detection
|
||||
* @return 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.
|
||||
|
@ -111,27 +105,25 @@ NS_SWIFT_NAME(FaceDetector)
|
|||
error:(NSError **)error NS_SWIFT_NAME(detect(image:));
|
||||
|
||||
/**
|
||||
* Performs face detection on the provided video frame of type `MPPImage` using the whole
|
||||
* Performs face detection on the provided video frame of type `MPImage` using the whole
|
||||
* image as region of interest. Rotation will be applied according to the `orientation` property of
|
||||
* the provided `MPPImage`. Only use this method when the `MPPFaceDetector` is created with
|
||||
* `MPPRunningModeVideo`.
|
||||
* the provided `MPImage`. Only use this method when the `FaceDetector` is created with running
|
||||
* mode `.video`.
|
||||
*
|
||||
* This method supports classification of RGBA images. If your `MPPImage` has a source type of
|
||||
* `MPPImageSourceTypePixelBuffer` or `MPPImageSourceTypeSampleBuffer`, the underlying pixel buffer
|
||||
* must have one of the following pixel format types:
|
||||
* This method supports classification of RGBA images. If your `MPImage` has a source type of
|
||||
* `.pixelBuffer` or `.sampleBuffer`, the underlying pixel buffer must have one of the
|
||||
* following pixel format types:
|
||||
* 1. kCVPixelFormatType_32BGRA
|
||||
* 2. kCVPixelFormatType_32RGBA
|
||||
*
|
||||
* If your `MPPImage` has a source type of `MPPImageSourceTypeImage` ensure that the color space is
|
||||
* RGB with an Alpha channel.
|
||||
* If your `MPImage` has a source type of `.image` ensure that the color space is RGB with an Alpha
|
||||
* channel.
|
||||
*
|
||||
* @param image The `MPPImage` on which face detection is to be performed.
|
||||
* @param image The `MPImage` on which face detection is to be performed.
|
||||
* @param timestampInMilliseconds The video frame's timestamp (in milliseconds). The input
|
||||
* timestamps must be monotonically increasing.
|
||||
* @param error An optional error parameter populated when there is an error in performing face
|
||||
* detection on the input image.
|
||||
*
|
||||
* @return An `MPPFaceDetectorResult` face that contains a list of detections, each detection
|
||||
* @return 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.
|
||||
|
@ -142,39 +134,37 @@ NS_SWIFT_NAME(FaceDetector)
|
|||
NS_SWIFT_NAME(detect(videoFrame:timestampInMilliseconds:));
|
||||
|
||||
/**
|
||||
* Sends live stream image data of type `MPPImage` to perform face detection using the whole
|
||||
* Sends live stream image data of type `MPImage` to perform face detection using the whole
|
||||
* image as region of interest. Rotation will be applied according to the `orientation` property of
|
||||
* the provided `MPPImage`. Only use this method when the `MPPFaceDetector` is created with
|
||||
* `MPPRunningModeLiveStream`.
|
||||
* the provided `MPImage`. Only use this method when the `FaceDetector` is created with
|
||||
* `.liveStream`.
|
||||
*
|
||||
* The object which needs to be continuously notified of the available results of face
|
||||
* detection must confirm to `MPPFaceDetectorLiveStreamDelegate` protocol and implement the
|
||||
* `faceDetector:didFinishDetectionWithResult:timestampInMilliseconds:error:` delegate method.
|
||||
* detection must confirm to `FaceDetectorLiveStreamDelegate` protocol and implement the
|
||||
* `faceDetector(_:didFinishDetectionWithResult:timestampInMilliseconds:error:)` delegate method.
|
||||
*
|
||||
* It's required to provide a timestamp (in milliseconds) to indicate when the input image is sent
|
||||
* to the face detector. The input timestamps must be monotonically increasing.
|
||||
*
|
||||
* This method supports classification of RGBA images. If your `MPPImage` has a source type of
|
||||
* `MPPImageSourceTypePixelBuffer` or `MPPImageSourceTypeSampleBuffer`, the underlying pixel buffer
|
||||
* must have one of the following pixel format types:
|
||||
* This method supports classification of RGBA images. If your `MPImage` has a source type of
|
||||
* `.pixelBuffer` or `.sampleBuffer`, the underlying pixel buffer must have one of the
|
||||
* following pixel format types:
|
||||
* 1. kCVPixelFormatType_32BGRA
|
||||
* 2. kCVPixelFormatType_32RGBA
|
||||
*
|
||||
* If the input `MPPImage` has a source type of `MPPImageSourceTypeImage` ensure that the color
|
||||
* If the input `MPImage` has a source type of `.image` ensure that the color
|
||||
* space is RGB with an Alpha channel.
|
||||
*
|
||||
* If this method is used for classifying live camera frames using `AVFoundation`, ensure that you
|
||||
* request `AVCaptureVideoDataOutput` to output frames in `kCMPixelFormat_32RGBA` using its
|
||||
* `videoSettings` property.
|
||||
*
|
||||
* @param image A live stream image data of type `MPPImage` on which face detection is to be
|
||||
* @param image A live stream image data of type `MPImage` on which face detection is to be
|
||||
* performed.
|
||||
* @param timestampInMilliseconds The timestamp (in milliseconds) which indicates when the input
|
||||
* image is sent to the face detector. The input timestamps must be monotonically increasing.
|
||||
* @param error An optional error parameter populated when there is an error in performing face
|
||||
* detection on the input live stream image data.
|
||||
*
|
||||
* @return `YES` if the image was sent to the task successfully, otherwise `NO`.
|
||||
* @return `true` if the image was sent to the task successfully, otherwise `false`.
|
||||
*/
|
||||
- (BOOL)detectAsyncInImage:(MPPImage *)image
|
||||
timestampInMilliseconds:(NSInteger)timestampInMilliseconds
|
||||
|
|
|
@ -23,11 +23,11 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
@class MPPFaceDetector;
|
||||
|
||||
/**
|
||||
* This protocol defines an interface for the delegates of `MPPFaceDetector` face to receive
|
||||
* This protocol defines an interface for the delegates of `FaceDetector` face to receive
|
||||
* results of performing asynchronous face detection on images (i.e, when `runningMode` =
|
||||
* `MPPRunningModeLiveStream`).
|
||||
* `.liveStream`).
|
||||
*
|
||||
* The delegate of `MPPFaceDetector` must adopt `MPPFaceDetectorLiveStreamDelegate` protocol.
|
||||
* The delegate of `FaceDetector` must adopt `FaceDetectorLiveStreamDelegate` protocol.
|
||||
* The methods in this protocol are optional.
|
||||
*/
|
||||
NS_SWIFT_NAME(FaceDetectorLiveStreamDelegate)
|
||||
|
@ -37,14 +37,14 @@ NS_SWIFT_NAME(FaceDetectorLiveStreamDelegate)
|
|||
|
||||
/**
|
||||
* This method notifies a delegate that the results of asynchronous face detection of
|
||||
* an image submitted to the `MPPFaceDetector` is available.
|
||||
* an image submitted to the `FaceDetector` is available.
|
||||
*
|
||||
* This method is called on a private serial dispatch queue created by the `MPPFaceDetector`
|
||||
* This method is called on a private serial dispatch queue created by the `FaceDetector`
|
||||
* for performing the asynchronous delegates calls.
|
||||
*
|
||||
* @param faceDetector The face detector which performed the face detection.
|
||||
* This is useful to test equality when there are multiple instances of `MPPFaceDetector`.
|
||||
* @param result The `MPPFaceDetectorResult` object that contains a list of detections, each
|
||||
* This is useful to test equality when there are multiple instances of `FaceDetector`.
|
||||
* @param result The `FaceDetectorResult` object 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.
|
||||
|
@ -60,26 +60,26 @@ NS_SWIFT_NAME(FaceDetectorLiveStreamDelegate)
|
|||
NS_SWIFT_NAME(faceDetector(_:didFinishDetection:timestampInMilliseconds:error:));
|
||||
@end
|
||||
|
||||
/** Options for setting up a `MPPFaceDetector`. */
|
||||
/** Options for setting up a `FaceDetector`. */
|
||||
NS_SWIFT_NAME(FaceDetectorOptions)
|
||||
@interface MPPFaceDetectorOptions : MPPTaskOptions <NSCopying>
|
||||
|
||||
/**
|
||||
* Running mode of the face detector task. Defaults to `MPPRunningModeImage`.
|
||||
* `MPPFaceDetector` can be created with one of the following running modes:
|
||||
* 1. `MPPRunningModeImage`: The mode for performing face detection on single image inputs.
|
||||
* 2. `MPPRunningModeVideo`: The mode for performing face detection on the decoded frames of a
|
||||
* Running mode of the face detector task. Defaults to `.image`.
|
||||
* `FaceDetector` can be created with one of the following running modes:
|
||||
* 1. `.image`: The mode for performing face detection on single image inputs.
|
||||
* 2. `.video`: The mode for performing face detection on the decoded frames of a
|
||||
* video.
|
||||
* 3. `MPPRunningModeLiveStream`: The mode for performing face detection on a live stream of
|
||||
* 3. `.liveStream`: The mode for performing face detection on a live stream of
|
||||
* input data, such as from the camera.
|
||||
*/
|
||||
@property(nonatomic) MPPRunningMode runningMode;
|
||||
|
||||
/**
|
||||
* An object that confirms to `MPPFaceDetectorLiveStreamDelegate` protocol. This object must
|
||||
* implement `faceDetector:didFinishDetectionWithResult:timestampInMilliseconds:error:` to receive
|
||||
* the results of performing asynchronous face detection on images (i.e, when `runningMode` =
|
||||
* `MPPRunningModeLiveStream`).
|
||||
* An object that confirms to `FaceDetectorLiveStreamDelegate` protocol. This object must
|
||||
* implement `faceDetector(_:didFinishDetectionWithResult:timestampInMilliseconds:error:)` to
|
||||
* receive the results of performing asynchronous face detection on images (i.e, when `runningMode`
|
||||
* = `.liveStream`).
|
||||
*/
|
||||
@property(nonatomic, weak, nullable) id<MPPFaceDetectorLiveStreamDelegate>
|
||||
faceDetectorLiveStreamDelegate;
|
||||
|
|
|
@ -18,27 +18,27 @@
|
|||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/** Represents the detection results generated by `MPPFaceDetector`. */
|
||||
/** Represents the detection results generated by `FaceDetector`. */
|
||||
NS_SWIFT_NAME(FaceDetectorResult)
|
||||
@interface MPPFaceDetectorResult : MPPTaskResult
|
||||
|
||||
/**
|
||||
* The array of `MPPDetection` objects each of which has a bounding box that is expressed in the
|
||||
* The array of `Detection` objects each of which 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.
|
||||
*/
|
||||
@property(nonatomic, readonly) NSArray<MPPDetection *> *detections;
|
||||
|
||||
/**
|
||||
* Initializes a new `MPPFaceDetectorResult` with the given array of detections and timestamp (in
|
||||
* Initializes a new `FaceDetectorResult` with the given array of detections and timestamp (in
|
||||
* milliseconds).
|
||||
*
|
||||
* @param detections An array of `MPPDetection` objects each of which has a bounding box that is
|
||||
* @param detections An array of `Detection` objects each of which 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.
|
||||
* @param timestampInMilliseconds The timestamp (in milliseconds) for this result.
|
||||
*
|
||||
* @return An instance of `MPPFaceDetectorResult` initialized with the given array of detections
|
||||
* @return An instance of `FaceDetectorResult` initialized with the given array of detections
|
||||
* and timestamp (in milliseconds).
|
||||
*/
|
||||
- (instancetype)initWithDetections:(NSArray<MPPDetection *> *)detections
|
||||
|
|
|
@ -30,27 +30,23 @@ NS_SWIFT_NAME(FaceLandmarker)
|
|||
@interface MPPFaceLandmarker : NSObject
|
||||
|
||||
/**
|
||||
* Creates a new instance of `MPPFaceLandmarker` from an absolute path to a TensorFlow Lite model
|
||||
* file stored locally on the device and the default `MPPFaceLandmarker`.
|
||||
* Creates a new instance of `FaceLandmarker` from an absolute path to a TensorFlow Lite model
|
||||
* file stored locally on the device and the default `FaceLandmarker`.
|
||||
*
|
||||
* @param modelPath An absolute path to a TensorFlow Lite model file stored locally on the device.
|
||||
* @param error An optional error parameter populated when there is an error in initializing the
|
||||
* face landmaker.
|
||||
*
|
||||
* @return A new instance of `MPPFaceLandmarker` with the given model path. `nil` if there is an
|
||||
* @return A new instance of `FaceLandmarker` with the given model path. `nil` if there is an
|
||||
* error in initializing the face landmaker.
|
||||
*/
|
||||
- (nullable instancetype)initWithModelPath:(NSString *)modelPath error:(NSError **)error;
|
||||
|
||||
/**
|
||||
* Creates a new instance of `MPPFaceLandmarker` from the given `MPPFaceLandmarkerOptions`.
|
||||
* Creates a new instance of `FaceLandmarker` from the given `FaceLandmarkerOptions`.
|
||||
*
|
||||
* @param options The options of type `MPPFaceLandmarkerOptions` to use for configuring the
|
||||
* @param options The options of type `FaceLandmarkerOptions` to use for configuring the
|
||||
* `MPPFaceLandmarker`.
|
||||
* @param error An optional error parameter populated when there is an error in initializing the
|
||||
* face landmaker.
|
||||
*
|
||||
* @return A new instance of `MPPFaceLandmarker` with the given options. `nil` if there is an error
|
||||
* @return A new instance of `FaceLandmarker` with the given options. `nil` if there is an error
|
||||
* in initializing the face landmaker.
|
||||
*/
|
||||
- (nullable instancetype)initWithOptions:(MPPFaceLandmarkerOptions *)options
|
||||
|
@ -59,49 +55,45 @@ NS_SWIFT_NAME(FaceLandmarker)
|
|||
/**
|
||||
* Performs face landmark detection on the provided MPPImage using the whole image as region of
|
||||
* interest. Rotation will be applied according to the `orientation` property of the provided
|
||||
* `MPPImage`. Only use this method when the `MPPFaceLandmarker` is created with
|
||||
* `MPPRunningModeImage`.
|
||||
* `MPImage`. Only use this method when the `FaceLandmarker` is created with `.image`.
|
||||
*
|
||||
* This method supports RGBA images. If your `MPPImage` has a source type of
|
||||
* `MPPImageSourceTypePixelBuffer` or `MPPImageSourceTypeSampleBuffer`, the underlying pixel buffer
|
||||
* must have one of the following pixel format types:
|
||||
* This method supports RGBA images. If your `MPPImage` has a source type of `.pixelBuffer` or
|
||||
* `.sampleBuffer`, the underlying pixel buffer must have one of the following pixel format
|
||||
* types:
|
||||
* 1. kCVPixelFormatType_32BGRA
|
||||
* 2. kCVPixelFormatType_32RGBA
|
||||
*
|
||||
* If your `MPPImage` has a source type of `MPPImageSourceTypeImage` ensure that the color space is
|
||||
* RGB with an Alpha channel.
|
||||
* If your `MPImage` has a source type of `.image` ensure that the color space is RGB with an
|
||||
* Alpha channel.
|
||||
*
|
||||
* @param image The `MPPImage` on which face landmark detection is to be performed.
|
||||
* @param error An optional error parameter populated when there is an error in performing face
|
||||
* landmark detection on the input image.
|
||||
* @param image The `MPImage` on which face landmark detection is to be performed.
|
||||
*
|
||||
* @return An `MPPFaceLandmarkerResult` that contains a list of landmarks.
|
||||
* @return An `MPPFaceLandmarkerResult` that contains a list of landmarks. `nil` if there is an
|
||||
* error in initializing the face landmaker.
|
||||
*/
|
||||
- (nullable MPPFaceLandmarkerResult *)detectInImage:(MPPImage *)image
|
||||
error:(NSError **)error NS_SWIFT_NAME(detect(image:));
|
||||
|
||||
/**
|
||||
* Performs face landmark detection on the provided video frame of type `MPPImage` using the whole
|
||||
* Performs face landmark detection on the provided video frame of type `MPImage` using the whole
|
||||
* image as region of interest. Rotation will be applied according to the `orientation` property of
|
||||
* the provided `MPPImage`. Only use this method when the `MPPFaceLandmarker` is created with
|
||||
* `MPPRunningModeVideo`.
|
||||
* the provided `MPImage`. Only use this method when the `MPPFaceLandmarker` is created with
|
||||
* running mode `.video`.
|
||||
*
|
||||
* This method supports RGBA images. If your `MPPImage` has a source type of
|
||||
* `MPPImageSourceTypePixelBuffer` or `MPPImageSourceTypeSampleBuffer`, the underlying pixel buffer
|
||||
* must have one of the following pixel format types:
|
||||
* This method supports RGBA images. If your `MPImage` has a source type of `.pixelBuffer` or
|
||||
* `.sampleBuffer`, the underlying pixel buffer must have one of the following pixel format types:
|
||||
* 1. kCVPixelFormatType_32BGRA
|
||||
* 2. kCVPixelFormatType_32RGBA
|
||||
*
|
||||
* If your `MPPImage` has a source type of `MPPImageSourceTypeImage` ensure that the color space is
|
||||
* RGB with an Alpha channel.
|
||||
* If your `MPImage` has a source type of `.image` ensure that the color space is RGB with an Alpha
|
||||
* channel.
|
||||
*
|
||||
* @param image The `MPPImage` on which face landmark detection is to be performed.
|
||||
* @param image The `MPImage` on which face landmark detection is to be performed.
|
||||
* @param timestampInMilliseconds The video frame's timestamp (in milliseconds). The input
|
||||
* timestamps must be monotonically increasing.
|
||||
* @param error An optional error parameter populated when there is an error in performing face
|
||||
* landmark detection on the input image.
|
||||
*
|
||||
* @return An `MPPFaceLandmarkerResult` that contains a list of landmarks.
|
||||
* @return An `FaceLandmarkerResult` that contains a list of landmarks. `nil` if there is an
|
||||
* error in initializing the face landmaker.
|
||||
*/
|
||||
- (nullable MPPFaceLandmarkerResult *)detectInVideoFrame:(MPPImage *)image
|
||||
timestampInMilliseconds:(NSInteger)timestampInMilliseconds
|
||||
|
@ -109,39 +101,36 @@ NS_SWIFT_NAME(FaceLandmarker)
|
|||
NS_SWIFT_NAME(detect(videoFrame:timestampInMilliseconds:));
|
||||
|
||||
/**
|
||||
* Sends live stream image data of type `MPPImage` to perform face landmark detection using the
|
||||
* Sends live stream image data of type `MPImage` to perform face landmark detection using the
|
||||
* whole image as region of interest. Rotation will be applied according to the `orientation`
|
||||
* property of the provided `MPPImage`. Only use this method when the `MPPFaceLandmarker` is created
|
||||
* with `MPPRunningModeLiveStream`.
|
||||
* property of the provided `MPImage`. Only use this method when the `FaceLandmarker` is created
|
||||
* with `.liveStream`.
|
||||
*
|
||||
* The object which needs to be continuously notified of the available results of face
|
||||
* detection must confirm to `MPPFaceLandmarkerLiveStreamDelegate` protocol and implement the
|
||||
* `faceLandmarker:didFinishDetectionWithResult:timestampInMilliseconds:error:` delegate method.
|
||||
* detection must confirm to `FaceLandmarkerLiveStreamDelegate` protocol and implement the
|
||||
* `faceLandmarker(_:didFinishDetectionWithResult:timestampInMilliseconds:error:)` delegate method.
|
||||
*
|
||||
* It's required to provide a timestamp (in milliseconds) to indicate when the input image is sent
|
||||
* to the face detector. The input timestamps must be monotonically increasing.
|
||||
*
|
||||
* This method supports RGBA images. If your `MPPImage` has a source type of
|
||||
* `MPPImageSourceTypePixelBuffer` or `MPPImageSourceTypeSampleBuffer`, the underlying pixel buffer
|
||||
* must have one of the following pixel format types:
|
||||
* This method supports RGBA images. If your `MPImage` has a source type of `.pixelBuffer` or
|
||||
* `.sampleBuffer`, the underlying pixel buffer must have one of the following pixel format types:
|
||||
* 1. kCVPixelFormatType_32BGRA
|
||||
* 2. kCVPixelFormatType_32RGBA
|
||||
*
|
||||
* If the input `MPPImage` has a source type of `MPPImageSourceTypeImage` ensure that the color
|
||||
* space is RGB with an Alpha channel.
|
||||
* If the input `MPImage` has a source type of `.image` ensure that the color space is RGB with an
|
||||
* Alpha channel.
|
||||
*
|
||||
* If this method is used for classifying live camera frames using `AVFoundation`, ensure that you
|
||||
* request `AVCaptureVideoDataOutput` to output frames in `kCMPixelFormat_32RGBA` using its
|
||||
* `videoSettings` property.
|
||||
*
|
||||
* @param image A live stream image data of type `MPPImage` on which face landmark detection is to
|
||||
* be performed.
|
||||
* @param image A live stream image data of type `MPImage` on which face landmark detection is to be
|
||||
* performed.
|
||||
* @param timestampInMilliseconds The timestamp (in milliseconds) which indicates when the input
|
||||
* image is sent to the face detector. The input timestamps must be monotonically increasing.
|
||||
* @param error An optional error parameter populated when there is an error when sending the input
|
||||
* image to the graph.
|
||||
*
|
||||
* @return `YES` if the image was sent to the task successfully, otherwise `NO`.
|
||||
* @return `true` if the image was sent to the task successfully, otherwise `false`.
|
||||
*/
|
||||
- (BOOL)detectAsyncInImage:(MPPImage *)image
|
||||
timestampInMilliseconds:(NSInteger)timestampInMilliseconds
|
||||
|
|
|
@ -23,11 +23,11 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
@class MPPFaceLandmarker;
|
||||
|
||||
/**
|
||||
* This protocol defines an interface for the delegates of `MPPFaceLandmarker` face to receive
|
||||
* This protocol defines an interface for the delegates of `FaceLandmarker` face to receive
|
||||
* results of performing asynchronous face detection on images (i.e, when `runningMode` =
|
||||
* `MPPRunningModeLiveStream`).
|
||||
* `.liveStream`).
|
||||
*
|
||||
* The delegate of `MPPFaceLandmarker` must adopt `MPPFaceLandmarkerLiveStreamDelegate` protocol.
|
||||
* The delegate of `FaceLandmarker` must adopt `FaceLandmarkerLiveStreamDelegate` protocol.
|
||||
* The methods in this protocol are optional.
|
||||
*/
|
||||
NS_SWIFT_NAME(FaceLandmarkerLiveStreamDelegate)
|
||||
|
@ -35,14 +35,14 @@ NS_SWIFT_NAME(FaceLandmarkerLiveStreamDelegate)
|
|||
|
||||
/**
|
||||
* This method notifies a delegate that the results of asynchronous face detection of
|
||||
* an image submitted to the `MPPFaceLandmarker` is available.
|
||||
* an image submitted to the `FaceLandmarker` is available.
|
||||
*
|
||||
* This method is called on a private serial dispatch queue created by the `MPPFaceLandmarker`
|
||||
* This method is called on a private serial dispatch queue created by the `FaceLandmarker`
|
||||
* for performing the asynchronous delegates calls.
|
||||
*
|
||||
* @param faceLandmarker The face landmarker which performed the face landmark detctions.
|
||||
* This is useful to test equality when there are multiple instances of `MPPFaceLandmarker`.
|
||||
* @param result The `MPPFaceLandmarkerResult` object that contains a list of landmarks.
|
||||
* This is useful to test equality when there are multiple instances of `FaceLandmarker`.
|
||||
* @param result The `FaceLandmarkerResult` object that contains a list of landmarks.
|
||||
* @param timestampInMilliseconds The timestamp (in milliseconds) which indicates when the input
|
||||
* image was sent to the face detector.
|
||||
* @param error An optional error parameter populated when there is an error in performing face
|
||||
|
@ -55,26 +55,25 @@ NS_SWIFT_NAME(FaceLandmarkerLiveStreamDelegate)
|
|||
NS_SWIFT_NAME(faceLandmarker(_:didFinishDetection:timestampInMilliseconds:error:));
|
||||
@end
|
||||
|
||||
/** Options for setting up a `MPPFaceLandmarker`. */
|
||||
/** Options for setting up a `FaceLandmarker`. */
|
||||
NS_SWIFT_NAME(FaceLandmarkerOptions)
|
||||
@interface MPPFaceLandmarkerOptions : MPPTaskOptions <NSCopying>
|
||||
|
||||
/**
|
||||
* Running mode of the face landmark dection task. Defaults to `MPPRunningModeImage`.
|
||||
* `MPPFaceLandmarker` can be created with one of the following running modes:
|
||||
* 1. `MPPRunningModeImage`: The mode for performing face detection on single image inputs.
|
||||
* 2. `MPPRunningModeVideo`: The mode for performing face detection on the decoded frames of a
|
||||
* video.
|
||||
* 3. `MPPRunningModeLiveStream`: The mode for performing face detection on a live stream of
|
||||
* input data, such as from the camera.
|
||||
* Running mode of the face landmark dection task. Defaults to `.image`. `FaceLandmarker` can be
|
||||
* created with one of the following running modes:
|
||||
* 1. `.image`: The mode for performing face detection on single image inputs.
|
||||
* 2. `.video`: The mode for performing face detection on the decoded frames of a video.
|
||||
* 3. `.liveStream`: The mode for performing face detection on a live stream of input data, such as
|
||||
* from the camera.
|
||||
*/
|
||||
@property(nonatomic) MPPRunningMode runningMode;
|
||||
|
||||
/**
|
||||
* An object that confirms to `MPPFaceLandmarkerLiveStreamDelegate` protocol. This object must
|
||||
* implement `faceLandmarker:didFinishDetectionWithResult:timestampInMilliseconds:error:` to receive
|
||||
* the results of performing asynchronous face landmark detection on images (i.e, when `runningMode`
|
||||
* = `MPPRunningModeLiveStream`).
|
||||
* An object that confirms to `FaceLandmarkerLiveStreamDelegate` protocol. This object must
|
||||
* implement `faceLandmarker(_:didFinishDetectionWithResult:timestampInMilliseconds:error:)` to
|
||||
* receive the results of performing asynchronous face landmark detection on images (i.e, when
|
||||
* `runningMode` = `.liveStream`).
|
||||
*/
|
||||
@property(nonatomic, weak, nullable) id<MPPFaceLandmarkerLiveStreamDelegate>
|
||||
faceLandmarkerLiveStreamDelegate;
|
||||
|
|
|
@ -54,7 +54,7 @@ NS_SWIFT_NAME(TransformMatrix)
|
|||
|
||||
@end
|
||||
|
||||
/** Represents the detection results generated by `MPPFaceLandmarker`. */
|
||||
/** Represents the detection results generated by `FaceLandmarker`. */
|
||||
NS_SWIFT_NAME(FaceLandmarkerResult)
|
||||
@interface MPPFaceLandmarkerResult : MPPTaskResult
|
||||
|
||||
|
@ -72,16 +72,16 @@ NS_SWIFT_NAME(FaceLandmarkerResult)
|
|||
@property(nonatomic, readonly) NSArray<MPPTransformMatrix *> *facialTransformationMatrixes;
|
||||
|
||||
/**
|
||||
* Initializes a new `MPPFaceLandmarkerResult` with the given array of landmarks, blendshapes,
|
||||
* Initializes a new `FaceLandmarkerResult` with the given array of landmarks, blendshapes,
|
||||
* facialTransformationMatrixes and timestamp (in milliseconds).
|
||||
*
|
||||
* @param faceLandmarks An array of `MPPNormalizedLandmark` objects.
|
||||
* @param faceBlendshapes An array of `MPPClassifications` objects.
|
||||
* @param faceLandmarks An array of `NormalizedLandmark` objects.
|
||||
* @param faceBlendshapes An array of `Classifications` objects.
|
||||
* @param facialTransformationMatrixes An array of flattended matrices.
|
||||
* @param timestampInMilliseconds The timestamp (in milliseconds) for this result.
|
||||
*
|
||||
* @return An instance of `MPPFaceLandmarkerResult` initialized with the given array of detections
|
||||
* and timestamp (in milliseconds).
|
||||
* @return An instance of `FaceLandmarkerResult` initialized with the given array of detections and
|
||||
* timestamp (in milliseconds).
|
||||
*/
|
||||
- (instancetype)initWithFaceLandmarks:(NSArray<NSArray<MPPNormalizedLandmark *> *> *)faceLandmarks
|
||||
faceBlendshapes:(NSArray<MPPClassifications *> *)faceBlendshapes
|
||||
|
|
|
@ -53,28 +53,24 @@ NS_SWIFT_NAME(ImageClassifier)
|
|||
@interface MPPImageClassifier : NSObject
|
||||
|
||||
/**
|
||||
* Creates a new instance of `MPPImageClassifier` from an absolute path to a TensorFlow Lite model
|
||||
* file stored locally on the device and the default `MPPImageClassifierOptions`.
|
||||
* Creates a new instance of `ImageClassifier` from an absolute path to a TensorFlow Lite model file
|
||||
* stored locally on the device and the default `ImageClassifierOptions`.
|
||||
*
|
||||
* @param modelPath An absolute path to a TensorFlow Lite model file stored locally on the device.
|
||||
* @param error An optional error parameter populated when there is an error in initializing the
|
||||
* image classifier.
|
||||
*
|
||||
* @return A new instance of `MPPImageClassifier` with the given model path. `nil` if there is an
|
||||
* @return A new instance of `ImageClassifier` with the given model path. `nil` if there is an
|
||||
* error in initializing the image classifier.
|
||||
*/
|
||||
- (nullable instancetype)initWithModelPath:(NSString *)modelPath error:(NSError **)error;
|
||||
|
||||
/**
|
||||
* Creates a new instance of `MPPImageClassifier` from the given `MPPImageClassifierOptions`.
|
||||
* Creates a new instance of `ImageClassifier` from the given `ImageClassifierOptions`.
|
||||
*
|
||||
* @param options The options of type `MPPImageClassifierOptions` to use for configuring the
|
||||
* `MPPImageClassifier`.
|
||||
* @param error An optional error parameter populated when there is an error in initializing the
|
||||
* image classifier.
|
||||
* @param options The options of type `ImageClassifierOptions` to use for configuring the
|
||||
* `ImageClassifier`.
|
||||
*
|
||||
* @return A new instance of `MPPImageClassifier` with the given options. `nil` if there is an error
|
||||
* in initializing the image classifier.
|
||||
* @return A new instance of `ImageClassifier` with the given options. `nil` if there is an error in
|
||||
* initializing the image classifier.
|
||||
*/
|
||||
- (nullable instancetype)initWithOptions:(MPPImageClassifierOptions *)options
|
||||
error:(NSError **)error NS_DESIGNATED_INITIALIZER;
|
||||
|
@ -82,49 +78,46 @@ NS_SWIFT_NAME(ImageClassifier)
|
|||
/**
|
||||
* Performs image classification on the provided MPPImage using the whole image as region of
|
||||
* interest. Rotation will be applied according to the `orientation` property of the provided
|
||||
* `MPPImage`. Only use this method when the `MPPImageClassifier` is created with
|
||||
* `MPPRunningModeImage`.
|
||||
* This method supports classification of RGBA images. If your `MPPImage` has a source type of
|
||||
* `MPPImageSourceTypePixelBuffer` or `MPPImageSourceTypeSampleBuffer`, the underlying pixel buffer
|
||||
* must have one of the following pixel format types:
|
||||
* `MPImage`. Only use this method when the `ImageClassifier` is created with running mode,
|
||||
* `.image`.
|
||||
*
|
||||
* This method supports classification of RGBA images. If your `MPImage` has a source type
|
||||
* ofm`.pixelBuffer` or `.sampleBuffer`, the underlying pixel buffer must have one of the following
|
||||
* pixel format types:
|
||||
* 1. kCVPixelFormatType_32BGRA
|
||||
* 2. kCVPixelFormatType_32RGBA
|
||||
*
|
||||
* If your `MPPImage` has a source type of `MPPImageSourceTypeImage` ensure that the color space is
|
||||
* RGB with an Alpha channel.
|
||||
* If your `MPImage` has a source type of `.image` ensure that the color space is RGB with an Alpha
|
||||
* channel.
|
||||
*
|
||||
* @param image The `MPPImage` on which image classification is to be performed.
|
||||
* @param error An optional error parameter populated when there is an error in performing image
|
||||
* classification on the input image.
|
||||
*
|
||||
* @return An `MPPImageClassifierResult` object that contains a list of image classifications.
|
||||
* @return An `ImageClassifierResult` object that contains a list of image classifications.
|
||||
*/
|
||||
- (nullable MPPImageClassifierResult *)classifyImage:(MPPImage *)image
|
||||
error:(NSError **)error
|
||||
NS_SWIFT_NAME(classify(image:));
|
||||
|
||||
/**
|
||||
* Performs image classification on the provided `MPPImage` cropped to the specified region of
|
||||
* Performs image classification on the provided `MPImage` cropped to the specified region of
|
||||
* interest. Rotation will be applied on the cropped image according to the `orientation` property
|
||||
* of the provided `MPPImage`. Only use this method when the `MPPImageClassifier` is created with
|
||||
* `MPPRunningModeImage`.
|
||||
* of the provided `MPImage`. Only use this method when the `MPPImageClassifier` is created with
|
||||
* running mode, `.image`.
|
||||
*
|
||||
* This method supports classification of RGBA images. If your `MPPImage` has a source type of
|
||||
* `MPPImageSourceTypePixelBuffer` or `MPPImageSourceTypeSampleBuffer`, the underlying pixel buffer
|
||||
* must have one of the following pixel format types:
|
||||
* This method supports classification of RGBA images. If your `MPImage` has a source type of
|
||||
* `.pixelBuffer` or `.sampleBuffer`, the underlying pixel buffer must have one of the following
|
||||
* pixel format types:
|
||||
* 1. kCVPixelFormatType_32BGRA
|
||||
* 2. kCVPixelFormatType_32RGBA
|
||||
*
|
||||
* If your `MPPImage` has a source type of `MPPImageSourceTypeImage` ensure that the color space is
|
||||
* RGB with an Alpha channel.
|
||||
* If your `MPImage` has a source type of `.image` ensure that the color space is RGB with an Alpha
|
||||
* channel.
|
||||
*
|
||||
* @param image The `MPPImage` on which image classification is to be performed.
|
||||
* @param roi A `CGRect` specifying the region of interest within the given `MPPImage`, on which
|
||||
* @param image The `MPImage` on which image classification is to be performed.
|
||||
* @param roi A `CGRect` specifying the region of interest within the given `MPImage`, on which
|
||||
* image classification should be performed.
|
||||
* @param error An optional error parameter populated when there is an error in performing image
|
||||
* classification on the input image.
|
||||
*
|
||||
* @return An `MPPImageClassifierResult` object that contains a list of image classifications.
|
||||
* @return An `ImageClassifierResult` object that contains a list of image classifications.
|
||||
*/
|
||||
- (nullable MPPImageClassifierResult *)classifyImage:(MPPImage *)image
|
||||
regionOfInterest:(CGRect)roi
|
||||
|
@ -132,30 +125,28 @@ NS_SWIFT_NAME(ImageClassifier)
|
|||
NS_SWIFT_NAME(classify(image:regionOfInterest:));
|
||||
|
||||
/**
|
||||
* Performs image classification on the provided video frame of type `MPPImage` using the whole
|
||||
* Performs image classification on the provided video frame of type `MPImage` using the whole
|
||||
* image as region of interest. Rotation will be applied according to the `orientation` property of
|
||||
* the provided `MPPImage`. Only use this method when the `MPPImageClassifier` is created with
|
||||
* `MPPRunningModeVideo`.
|
||||
* the provided `MPImage`. Only use this method when the `MPPImageClassifier` is created with
|
||||
* running mode `.video`.
|
||||
*
|
||||
* It's required to provide the video frame's timestamp (in milliseconds). The input timestamps must
|
||||
* be monotonically increasing.
|
||||
*
|
||||
* This method supports classification of RGBA images. If your `MPPImage` has a source type of
|
||||
* `MPPImageSourceTypePixelBuffer` or `MPPImageSourceTypeSampleBuffer`, the underlying pixel buffer
|
||||
* must have one of the following pixel format types:
|
||||
* This method supports classification of RGBA images. If your `MPImage` has a source type of
|
||||
* `.pixelBuffer` or `.sampleBuffer`, the underlying pixel buffer must have one of the following
|
||||
* pixel format types:
|
||||
* 1. kCVPixelFormatType_32BGRA
|
||||
* 2. kCVPixelFormatType_32RGBA
|
||||
*
|
||||
* If your `MPPImage` has a source type of `MPPImageSourceTypeImage` ensure that the color space is
|
||||
* RGB with an Alpha channel.
|
||||
* If your `MPImage` has a source type of `.image` ensure that the color space is RGB with an Alpha
|
||||
* channel.
|
||||
*
|
||||
* @param image The `MPPImage` on which image classification is to be performed.
|
||||
* @param timestampInMilliseconds The video frame's timestamp (in milliseconds). The input
|
||||
* timestamps must be monotonically increasing.
|
||||
* @param error An optional error parameter populated when there is an error in performing image
|
||||
* classification on the input video frame.
|
||||
*
|
||||
* @return An `MPPImageClassifierResult` object that contains a list of image classifications.
|
||||
* @return An `ImageClassifierResult` object that contains a list of image classifications.
|
||||
*/
|
||||
- (nullable MPPImageClassifierResult *)classifyVideoFrame:(MPPImage *)image
|
||||
timestampInMilliseconds:(NSInteger)timestampInMilliseconds
|
||||
|
@ -163,33 +154,30 @@ NS_SWIFT_NAME(ImageClassifier)
|
|||
NS_SWIFT_NAME(classify(videoFrame:timestampInMilliseconds:));
|
||||
|
||||
/**
|
||||
* Performs image classification on the provided video frame of type `MPPImage` cropped to the
|
||||
* Performs image classification on the provided video frame of type `MPImage` cropped to the
|
||||
* specified region of interest. Rotation will be applied according to the `orientation` property of
|
||||
* the provided `MPPImage`. Only use this method when the `MPPImageClassifier` is created with
|
||||
* `MPPRunningModeVideo`.
|
||||
* the provided `MPImage`. Only use this method when the `ImageClassifier` is created with `.video`.
|
||||
*
|
||||
* It's required to provide the video frame's timestamp (in milliseconds). The input timestamps must
|
||||
* be monotonically increasing.
|
||||
*
|
||||
* This method supports classification of RGBA images. If your `MPPImage` has a source type of
|
||||
* `MPPImageSourceTypePixelBuffer` or `MPPImageSourceTypeSampleBuffer`, the underlying pixel buffer
|
||||
* must have one of the following pixel format types:
|
||||
* This method supports classification of RGBA images. If your `MPImage` has a source type of
|
||||
* `.pixelBuffer` or `.sampleBuffer`, the underlying pixel buffer must have one of the following
|
||||
* pixel format types:
|
||||
* 1. kCVPixelFormatType_32BGRA
|
||||
* 2. kCVPixelFormatType_32RGBA
|
||||
*
|
||||
* If your `MPPImage` has a source type of `MPPImageSourceTypeImage` ensure that the color space is
|
||||
* RGB with an Alpha channel.
|
||||
* If your `MPImage` has a source type of `.image` ensure that the color space is RGB with an Alpha
|
||||
* channel.
|
||||
*
|
||||
* @param image A live stream image data of type `MPPImage` on which image classification is to be
|
||||
* @param image A live stream image data of type `MPImage` on which image classification is to be
|
||||
* performed.
|
||||
* @param timestampInMilliseconds The video frame's timestamp (in milliseconds). The input
|
||||
* timestamps must be monotonically increasing.
|
||||
* @param roi A `CGRect` specifying the region of interest within the video frame of type
|
||||
* `MPPImage`, on which image classification should be performed.
|
||||
* @param error An optional error parameter populated when there is an error in performing image
|
||||
* classification on the input video frame.
|
||||
* `MPImage`, on which image classification should be performed.
|
||||
*
|
||||
* @return An `MPPImageClassifierResult` object that contains a list of image classifications.
|
||||
* @return An `ImageClassifierResult` object that contains a list of image classifications.
|
||||
*/
|
||||
- (nullable MPPImageClassifierResult *)classifyVideoFrame:(MPPImage *)image
|
||||
timestampInMilliseconds:(NSInteger)timestampInMilliseconds
|
||||
|
@ -198,40 +186,38 @@ NS_SWIFT_NAME(ImageClassifier)
|
|||
NS_SWIFT_NAME(classify(videoFrame:timestampInMilliseconds:regionOfInterest:));
|
||||
|
||||
/**
|
||||
* Sends live stream image data of type `MPPImage` to perform image classification using the whole
|
||||
* Sends live stream image data of type `MPImage` to perform image classification using the whole
|
||||
* image as region of interest. Rotation will be applied according to the `orientation` property of
|
||||
* the provided `MPPImage`. Only use this method when the `MPPImageClassifier` is created with
|
||||
* the provided `MPImage`. Only use this method when the `ImageClassifier` is created with
|
||||
* `MPPRunningModeLiveStream`.
|
||||
*
|
||||
* The object which needs to be continuously notified of the available results of image
|
||||
* classification must confirm to `MPPImageClassifierLiveStreamDelegate` protocol and implement the
|
||||
* `imageClassifier:didFinishClassificationWithResult:timestampInMilliseconds:error:`
|
||||
* classification must confirm to `ImageClassifierLiveStreamDelegate` protocol and implement the
|
||||
* `imageClassifier(_:didFinishClassificationWithResult:timestampInMilliseconds:error:)`
|
||||
* delegate method.
|
||||
*
|
||||
* It's required to provide a timestamp (in milliseconds) to indicate when the input image is sent
|
||||
* to the image classifier. The input timestamps must be monotonically increasing.
|
||||
*
|
||||
* This method supports classification of RGBA images. If your `MPPImage` has a source type of
|
||||
* `MPPImageSourceTypePixelBuffer` or `MPPImageSourceTypeSampleBuffer`, the underlying pixel buffer
|
||||
* must have one of the following pixel format types:
|
||||
* This method supports classification of RGBA images. If your `MPImage` has a source type of
|
||||
* .pixelBuffer` or `.sampleBuffer`, the underlying pixel buffer must have one of the following
|
||||
* pixel format types:
|
||||
* 1. kCVPixelFormatType_32BGRA
|
||||
* 2. kCVPixelFormatType_32RGBA
|
||||
*
|
||||
* If the input `MPPImage` has a source type of `MPPImageSourceTypeImage` ensure that the color
|
||||
* space is RGB with an Alpha channel.
|
||||
* If the input `MPImage` has a source type of `.image` ensure that the color space is RGB with an
|
||||
* Alpha channel.
|
||||
*
|
||||
* If this method is used for classifying live camera frames using `AVFoundation`, ensure that you
|
||||
* request `AVCaptureVideoDataOutput` to output frames in `kCMPixelFormat_32RGBA` using its
|
||||
* `videoSettings` property.
|
||||
*
|
||||
* @param image A live stream image data of type `MPPImage` on which image classification is to be
|
||||
* @param image A live stream image data of type `MPImage` on which image classification is to be
|
||||
* performed.
|
||||
* @param timestampInMilliseconds The timestamp (in milliseconds) which indicates when the input
|
||||
* image is sent to the image classifier. The input timestamps must be monotonically increasing.
|
||||
* @param error An optional error parameter populated when there is an error in performing image
|
||||
* classification on the input live stream image data.
|
||||
*
|
||||
* @return `YES` if the image was sent to the task successfully, otherwise `NO`.
|
||||
* @return `true` if the image was sent to the task successfully, otherwise `false`.
|
||||
*/
|
||||
- (BOOL)classifyAsyncImage:(MPPImage *)image
|
||||
timestampInMilliseconds:(NSInteger)timestampInMilliseconds
|
||||
|
@ -239,42 +225,40 @@ NS_SWIFT_NAME(ImageClassifier)
|
|||
NS_SWIFT_NAME(classifyAsync(image:timestampInMilliseconds:));
|
||||
|
||||
/**
|
||||
* Sends live stream image data of type ``MPPImage`` to perform image classification, cropped to the
|
||||
* Sends live stream image data of type `MPImage` to perform image classification, cropped to the
|
||||
* specified region of interest.. Rotation will be applied according to the `orientation` property
|
||||
* of the provided `MPPImage`. Only use this method when the `MPPImageClassifier` is created with
|
||||
* `MPPRunningModeLiveStream`.
|
||||
* of the provided `MPImage`. Only use this method when the `ImageClassifier` is created with
|
||||
* `.liveStream`.
|
||||
*
|
||||
* The object which needs to be continuously notified of the available results of image
|
||||
* classification must confirm to `MPPImageClassifierLiveStreamDelegate` protocol and implement the
|
||||
* `imageClassifier:didFinishClassificationWithResult:timestampInMilliseconds:error:` delegate
|
||||
* classification must confirm to `ImageClassifierLiveStreamDelegate` protocol and implement the
|
||||
* `imageClassifier(_:didFinishClassificationWithResult:timestampInMilliseconds:error:)` delegate
|
||||
* method.
|
||||
*
|
||||
* It's required to provide a timestamp (in milliseconds) to indicate when the input image is sent
|
||||
* to the image classifier. The input timestamps must be monotonically increasing.
|
||||
*
|
||||
* This method supports classification of RGBA images. If your `MPPImage` has a source type of
|
||||
* `MPPImageSourceTypePixelBuffer` or `MPPImageSourceTypeSampleBuffer`, the underlying pixel buffer
|
||||
* must have one of the following pixel format types:
|
||||
* This method supports classification of RGBA images. If your `MPImage` has a source type of
|
||||
* `.pixelBuffer` or `.sampleBuffer`, the underlying pixel buffer must have one of the following
|
||||
* pixel format types:
|
||||
* 1. kCVPixelFormatType_32BGRA
|
||||
* 2. kCVPixelFormatType_32RGBA
|
||||
*
|
||||
* If the input `MPPImage` has a source type of `MPPImageSourceTypeImage` ensure that the color
|
||||
* space is RGB with an Alpha channel.
|
||||
* If the input `MPImage` has a source type of `.image` ensure that the color space is RGB with an
|
||||
* Alpha channel.
|
||||
*
|
||||
* If this method is used for classifying live camera frames using `AVFoundation`, ensure that you
|
||||
* request `AVCaptureVideoDataOutput` to output frames in `kCMPixelFormat_32RGBA` using its
|
||||
* `videoSettings` property.
|
||||
*
|
||||
* @param image A live stream image data of type `MPPImage` on which image classification is to be
|
||||
* @param image A live stream image data of type `MPImage` on which image classification is to be
|
||||
* performed.
|
||||
* @param timestampInMilliseconds The timestamp (in milliseconds) which indicates when the input
|
||||
* image is sent to the image classifier. The input timestamps must be monotonically increasing.
|
||||
* @param roi A `CGRect` specifying the region of interest within the given live stream image data
|
||||
* of type `MPPImage`, on which image classification should be performed.
|
||||
* @param error An optional error parameter populated when there is an error in performing image
|
||||
* classification on the input live stream image data.
|
||||
* of type `MPImage`, on which image classification should be performed.
|
||||
*
|
||||
* @return `YES` if the image was sent to the task successfully, otherwise `NO`.
|
||||
* @return `true` if the image was sent to the task successfully, otherwise `false`.
|
||||
*/
|
||||
- (BOOL)classifyAsyncImage:(MPPImage *)image
|
||||
timestampInMilliseconds:(NSInteger)timestampInMilliseconds
|
||||
|
|
|
@ -23,11 +23,11 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
@class MPPImageClassifier;
|
||||
|
||||
/**
|
||||
* This protocol defines an interface for the delegates of `MPPImageClassifier` object to receive
|
||||
* This protocol defines an interface for the delegates of `ImageClassifier` object to receive
|
||||
* results of asynchronous classification of images (i.e, when `runningMode =
|
||||
* MPPRunningModeLiveStream`).
|
||||
* .liveStream`).
|
||||
*
|
||||
* The delegate of `MPPImageClassifier` must adopt `MPPImageClassifierLiveStreamDelegate` protocol.
|
||||
* The delegate of `ImageClassifier` must adopt `ImageClassifierLiveStreamDelegate` protocol.
|
||||
* The methods in this protocol are optional.
|
||||
*/
|
||||
NS_SWIFT_NAME(ImageClassifierLiveStreamDelegate)
|
||||
|
@ -36,14 +36,14 @@ NS_SWIFT_NAME(ImageClassifierLiveStreamDelegate)
|
|||
@optional
|
||||
/**
|
||||
* This method notifies a delegate that the results of asynchronous classification of
|
||||
* an image submitted to the `MPPImageClassifier` is available.
|
||||
* an image submitted to the `ImageClassifier` is available.
|
||||
*
|
||||
* This method is called on a private serial queue created by the `MPPImageClassifier`
|
||||
* This method is called on a private serial queue created by the `ImageClassifier`
|
||||
* for performing the asynchronous delegates calls.
|
||||
*
|
||||
* @param imageClassifier The image classifier which performed the classification.
|
||||
* This is useful to test equality when there are multiple instances of `MPPImageClassifier`.
|
||||
* @param result An `MPPImageClassifierResult` object that contains a list of image classifications.
|
||||
* This is useful to test equality when there are multiple instances of `ImageClassifier`.
|
||||
* @param result An `ImageClassifierResult` object that contains a list of image classifications.
|
||||
* @param timestampInMilliseconds The timestamp (in milliseconds) which indicates when the input
|
||||
* image was sent to the image classifier.
|
||||
* @param error An optional error parameter populated when there is an error in performing image
|
||||
|
@ -57,27 +57,27 @@ NS_SWIFT_NAME(ImageClassifierLiveStreamDelegate)
|
|||
@end
|
||||
|
||||
/**
|
||||
* Options for setting up a `MPPImageClassifier`.
|
||||
* Options for setting up a `ImageClassifier`.
|
||||
*/
|
||||
NS_SWIFT_NAME(ImageClassifierOptions)
|
||||
@interface MPPImageClassifierOptions : MPPTaskOptions <NSCopying>
|
||||
|
||||
/**
|
||||
* Running mode of the image classifier task. Defaults to `MPPRunningModeImage`.
|
||||
* `MPPImageClassifier` can be created with one of the following running modes:
|
||||
* 1. `MPPRunningModeImage`: The mode for performing classification on single image inputs.
|
||||
* 2. `MPPRunningModeVideo`: The mode for performing classification on the decoded frames of a
|
||||
* Running mode of the image classifier task. Defaults to `.image`.
|
||||
* `ImageClassifier` can be created with one of the following running modes:
|
||||
* 1. `.image`: The mode for performing classification on single image inputs.
|
||||
* 2. `.video`: The mode for performing classification on the decoded frames of a
|
||||
* video.
|
||||
* 3. `MPPRunningModeLiveStream`: The mode for performing classification on a live stream of input
|
||||
* 3. `.liveStream`: The mode for performing classification on a live stream of input
|
||||
* data, such as from the camera.
|
||||
*/
|
||||
@property(nonatomic) MPPRunningMode runningMode;
|
||||
|
||||
/**
|
||||
* An object that confirms to `MPPImageClassifierLiveStreamDelegate` protocol. This object must
|
||||
* implement `objectDetector:didFinishDetectionWithResult:timestampInMilliseconds:error:` to receive
|
||||
* the results of asynchronous classification on images (i.e, when `runningMode =
|
||||
* MPPRunningModeLiveStream`).
|
||||
* An object that confirms to `ImageClassifierLiveStreamDelegate` protocol. This object must
|
||||
* implement `objectDetector(_:didFinishDetectionWithResult:timestampInMilliseconds:error:)` to
|
||||
* receive the results of asynchronous classification on images (i.e, when `runningMode =
|
||||
* .liveStream`).
|
||||
*/
|
||||
@property(nonatomic, weak, nullable) id<MPPImageClassifierLiveStreamDelegate>
|
||||
imageClassifierLiveStreamDelegate;
|
||||
|
|
|
@ -18,23 +18,23 @@
|
|||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/** Represents the classification results generated by `MPPImageClassifier`. **/
|
||||
/** Represents the classification results generated by `ImageClassifier`. **/
|
||||
NS_SWIFT_NAME(ImageClassifierResult)
|
||||
@interface MPPImageClassifierResult : MPPTaskResult
|
||||
|
||||
/** The `MPPClassificationResult` instance containing one set of results per classifier head. **/
|
||||
/** The `ClassificationResult` instance containing one set of results per classifier head. **/
|
||||
@property(nonatomic, readonly) MPPClassificationResult *classificationResult;
|
||||
|
||||
/**
|
||||
* Initializes a new `MPPImageClassifierResult` with the given `MPPClassificationResult` and
|
||||
* Initializes a new `ImageClassifierResult` with the given `ClassificationResult` and
|
||||
* timestamp (in milliseconds).
|
||||
*
|
||||
* @param classificationResult The `MPPClassificationResult` instance containing one set of results
|
||||
* @param classificationResult The `ClassificationResult` instance containing one set of results
|
||||
* per classifier head.
|
||||
* @param timestampInMilliseconds The timestamp (in milliseconds) for this result.
|
||||
*
|
||||
* @return An instance of `MPPImageClassifierResult` initialized with the given
|
||||
* `MPPClassificationResult` and timestamp (in milliseconds).
|
||||
* @return An instance of `ImageClassifierResult` initialized with the given
|
||||
* `ClassificationResult` and timestamp (in milliseconds).
|
||||
*/
|
||||
- (instancetype)initWithClassificationResult:(MPPClassificationResult *)classificationResult
|
||||
timestampInMilliseconds:(NSInteger)timestampInMilliseconds;
|
||||
|
|
|
@ -64,52 +64,50 @@ NS_SWIFT_NAME(ObjectDetector)
|
|||
@interface MPPObjectDetector : NSObject
|
||||
|
||||
/**
|
||||
* Creates a new instance of `MPPObjectDetector` from an absolute path to a TensorFlow Lite model
|
||||
* file stored locally on the device and the default `MPPObjectDetector`.
|
||||
* Creates a new instance of `ObjectDetector` from an absolute path to a TensorFlow Lite model
|
||||
* file stored locally on the device and the default `ObjectDetector`.
|
||||
*
|
||||
* @param modelPath An absolute path to a TensorFlow Lite model file stored locally on the device.
|
||||
* @param error An optional error parameter populated when there is an error in initializing the
|
||||
* object detector.
|
||||
*
|
||||
* @return A new instance of `MPPObjectDetector` with the given model path. `nil` if there is an
|
||||
* @return A new instance of `ObjectDetector` with the given model path. `nil` if there is an
|
||||
* error in initializing the object detector.
|
||||
*/
|
||||
- (nullable instancetype)initWithModelPath:(NSString *)modelPath error:(NSError **)error;
|
||||
|
||||
/**
|
||||
* Creates a new instance of `MPPObjectDetector` from the given `MPPObjectDetectorOptions`.
|
||||
* Creates a new instance of `ObjectDetector` from the given `ObjectDetectorOptions`.
|
||||
*
|
||||
* @param options The options of type `MPPObjectDetectorOptions` to use for configuring the
|
||||
* `MPPObjectDetector`.
|
||||
* @param options The options of type `ObjectDetectorOptions` to use for configuring the
|
||||
* `ObjectDetector`.
|
||||
* @param error An optional error parameter populated when there is an error in initializing the
|
||||
* object detector.
|
||||
*
|
||||
* @return A new instance of `MPPObjectDetector` with the given options. `nil` if there is an error
|
||||
* @return A new instance of `ObjectDetector` with the given options. `nil` if there is an error
|
||||
* in initializing the object detector.
|
||||
*/
|
||||
- (nullable instancetype)initWithOptions:(MPPObjectDetectorOptions *)options
|
||||
error:(NSError **)error NS_DESIGNATED_INITIALIZER;
|
||||
|
||||
/**
|
||||
* Performs object detection on the provided MPPImage using the whole image as region of
|
||||
* Performs object 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
|
||||
* `MPPImage`. Only use this method when the `MPPObjectDetector` is created with
|
||||
* `MPPRunningModeImage`.
|
||||
* `MPImage`. Only use this method when the `ObjectDetector` is created with
|
||||
* `.image`.
|
||||
*
|
||||
* This method supports detecting objects in RGBA images. If your `MPPImage` has a source type of
|
||||
* `MPPImageSourceTypePixelBuffer` or `MPPImageSourceTypeSampleBuffer`, the underlying pixel buffer
|
||||
* must have one of the following pixel format types:
|
||||
* This method supports detecting objects in RGBA images. If your `MPImage` has a source type of
|
||||
* `.pixelBuffer` or `.sampleBuffer`, the underlying pixel buffer must have one of the following
|
||||
* pixel format types:
|
||||
* 1. kCVPixelFormatType_32BGRA
|
||||
* 2. kCVPixelFormatType_32RGBA
|
||||
*
|
||||
* If your `MPPImage` has a source type of `MPPImageSourceTypeImage` ensure that the color space is
|
||||
* If your `MPImage` has a source type of `.image` ensure that the color space is
|
||||
* RGB with an Alpha channel.
|
||||
*
|
||||
* @param image The `MPPImage` on which object detection is to be performed.
|
||||
* @param error An optional error parameter populated when there is an error in performing object
|
||||
* detection on the input image.
|
||||
* @param image The `.image` on which object detection is to be performed.
|
||||
*
|
||||
* @return An `MPPObjectDetectorResult` object that contains a list of detections, each detection
|
||||
* @return An `ObjectDetectorResult` object 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.
|
||||
|
@ -118,27 +116,25 @@ NS_SWIFT_NAME(ObjectDetector)
|
|||
error:(NSError **)error NS_SWIFT_NAME(detect(image:));
|
||||
|
||||
/**
|
||||
* Performs object detection on the provided video frame of type `MPPImage` using the whole
|
||||
* Performs object detection on the provided video frame of type `MPImage` using the whole
|
||||
* image as region of interest. Rotation will be applied according to the `orientation` property of
|
||||
* the provided `MPPImage`. Only use this method when the `MPPObjectDetector` is created with
|
||||
* `MPPRunningModeVideo`.
|
||||
* the provided `MPImage`. Only use this method when the `MPPObjectDetector` is created with
|
||||
* `.video`.
|
||||
*
|
||||
* This method supports detecting objects in of RGBA images. If your `MPPImage` has a source type of
|
||||
* `MPPImageSourceTypePixelBuffer` or `MPPImageSourceTypeSampleBuffer`, the underlying pixel buffer
|
||||
* must have one of the following pixel format types:
|
||||
* This method supports detecting objects in of RGBA images. If your `MPImage` has a source type of
|
||||
* .pixelBuffer` or `.sampleBuffer`, the underlying pixel buffer must have one of the following
|
||||
* pixel format types:
|
||||
* 1. kCVPixelFormatType_32BGRA
|
||||
* 2. kCVPixelFormatType_32RGBA
|
||||
*
|
||||
* If your `MPPImage` has a source type of `MPPImageSourceTypeImage` ensure that the color space is
|
||||
* RGB with an Alpha channel.
|
||||
* If your `MPImage` has a source type of `.image` ensure that the color space is RGB with an Alpha
|
||||
* channel.
|
||||
*
|
||||
* @param image The `MPPImage` on which object detection is to be performed.
|
||||
* @param image The `MPImage` on which object detection is to be performed.
|
||||
* @param timestampInMilliseconds The video frame's timestamp (in milliseconds). The input
|
||||
* timestamps must be monotonically increasing.
|
||||
* @param error An optional error parameter populated when there is an error in performing object
|
||||
* detection on the input image.
|
||||
*
|
||||
* @return An `MPPObjectDetectorResult` object that contains a list of detections, each detection
|
||||
* @return An `ObjectDetectorResult` object 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.
|
||||
|
@ -149,26 +145,26 @@ NS_SWIFT_NAME(ObjectDetector)
|
|||
NS_SWIFT_NAME(detect(videoFrame:timestampInMilliseconds:));
|
||||
|
||||
/**
|
||||
* Sends live stream image data of type `MPPImage` to perform object detection using the whole
|
||||
* Sends live stream image data of type `MPImage` to perform object detection using the whole
|
||||
* image as region of interest. Rotation will be applied according to the `orientation` property of
|
||||
* the provided `MPPImage`. Only use this method when the `MPPObjectDetector` is created with
|
||||
* `MPPRunningModeLiveStream`.
|
||||
* the provided `MPImage`. Only use this method when the `ObjectDetector` is created with
|
||||
* `.liveStream`.
|
||||
*
|
||||
* The object which needs to be continuously notified of the available results of object
|
||||
* detection must confirm to `MPPObjectDetectorLiveStreamDelegate` protocol and implement the
|
||||
* `objectDetector:didFinishDetectionWithResult:timestampInMilliseconds:error:` delegate method.
|
||||
* detection must confirm to `ObjectDetectorLiveStreamDelegate` protocol and implement the
|
||||
* `objectDetector(_:didFinishDetectionWithResult:timestampInMilliseconds:error:)` delegate method.
|
||||
*
|
||||
* It's required to provide a timestamp (in milliseconds) to indicate when the input image is sent
|
||||
* to the object detector. The input timestamps must be monotonically increasing.
|
||||
*
|
||||
* This method supports detecting objects in RGBA images. If your `MPPImage` has a source type of
|
||||
* `MPPImageSourceTypePixelBuffer` or `MPPImageSourceTypeSampleBuffer`, the underlying pixel buffer
|
||||
* must have one of the following pixel format types:
|
||||
* This method supports detecting objects in RGBA images. If your `MPImage` has a source type of
|
||||
* `.pixelBuffer` or `.sampleBuffer`, the underlying pixel buffer must have one of the following
|
||||
* pixel format types:
|
||||
* 1. kCVPixelFormatType_32BGRA
|
||||
* 2. kCVPixelFormatType_32RGBA
|
||||
*
|
||||
* If the input `MPPImage` has a source type of `MPPImageSourceTypeImage` ensure that the color
|
||||
* space is RGB with an Alpha channel.
|
||||
* If the input `MPImage` has a source type of `.image` ensure that the color space is RGB with an
|
||||
* Alpha channel.
|
||||
*
|
||||
* If this method is used for detecting objects in live camera frames using `AVFoundation`, ensure
|
||||
* that you request `AVCaptureVideoDataOutput` to output frames in `kCMPixelFormat_32RGBA` using its
|
||||
|
@ -178,10 +174,8 @@ NS_SWIFT_NAME(ObjectDetector)
|
|||
* performed.
|
||||
* @param timestampInMilliseconds The timestamp (in milliseconds) which indicates when the input
|
||||
* image is sent to the object detector. The input timestamps must be monotonically increasing.
|
||||
* @param error An optional error parameter populated when there is an error in performing object
|
||||
* detection on the input live stream image data.
|
||||
*
|
||||
* @return `YES` if the image was sent to the task successfully, otherwise `NO`.
|
||||
* @return `true` if the image was sent to the task successfully, otherwise `false`.
|
||||
*/
|
||||
- (BOOL)detectAsyncInImage:(MPPImage *)image
|
||||
timestampInMilliseconds:(NSInteger)timestampInMilliseconds
|
||||
|
|
|
@ -81,8 +81,7 @@ static NSString *const kTaskName = @"objectDetector";
|
|||
}
|
||||
|
||||
MPPObjectDetectorResult *result = [MPPObjectDetectorResult
|
||||
objectDetectorResultWithDetectionsPacket:
|
||||
outputPacketMap[kDetectionsStreamName.cppString]];
|
||||
objectDetectorResultWithDetectionsPacket:outputPacketMap[kDetectionsStreamName.cppString]];
|
||||
|
||||
NSInteger timeStampInMilliseconds =
|
||||
outputPacketMap[kImageOutStreamName.cppString].Timestamp().Value() /
|
||||
|
|
|
@ -23,11 +23,11 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
@class MPPObjectDetector;
|
||||
|
||||
/**
|
||||
* This protocol defines an interface for the delegates of `MPPObjectDetector` object to receive
|
||||
* This protocol defines an interface for the delegates of `ObjectDetector` object to receive
|
||||
* results of performing asynchronous object detection on images (i.e, when `runningMode` =
|
||||
* `MPPRunningModeLiveStream`).
|
||||
* `.liveStream`).
|
||||
*
|
||||
* The delegate of `MPPObjectDetector` must adopt `MPPObjectDetectorLiveStreamDelegate` protocol.
|
||||
* The delegate of `ObjectDetector` must adopt `ObjectDetectorLiveStreamDelegate` protocol.
|
||||
* The methods in this protocol are optional.
|
||||
*/
|
||||
NS_SWIFT_NAME(ObjectDetectorLiveStreamDelegate)
|
||||
|
@ -37,14 +37,14 @@ NS_SWIFT_NAME(ObjectDetectorLiveStreamDelegate)
|
|||
|
||||
/**
|
||||
* This method notifies a delegate that the results of asynchronous object detection of
|
||||
* an image submitted to the `MPPObjectDetector` is available.
|
||||
* an image submitted to the `ObjectDetector` is available.
|
||||
*
|
||||
* This method is called on a private serial dispatch queue created by the `MPPObjectDetector`
|
||||
* This method is called on a private serial dispatch queue created by the `ObjectDetector`
|
||||
* for performing the asynchronous delegates calls.
|
||||
*
|
||||
* @param objectDetector The object detector which performed the object detection.
|
||||
* This is useful to test equality when there are multiple instances of `MPPObjectDetector`.
|
||||
* @param result The `MPPObjectDetectorResult` object that contains a list of detections, each
|
||||
* This is useful to test equality when there are multiple instances of `ObjectDetector`.
|
||||
* @param result The `ObjectDetectorResult` object 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.
|
||||
|
@ -60,26 +60,27 @@ NS_SWIFT_NAME(ObjectDetectorLiveStreamDelegate)
|
|||
NS_SWIFT_NAME(objectDetector(_:didFinishDetection:timestampInMilliseconds:error:));
|
||||
@end
|
||||
|
||||
/** Options for setting up a `MPPObjectDetector`. */
|
||||
/** Options for setting up a `ObjectDetector`. */
|
||||
NS_SWIFT_NAME(ObjectDetectorOptions)
|
||||
@interface MPPObjectDetectorOptions : MPPTaskOptions <NSCopying>
|
||||
|
||||
/**
|
||||
* Running mode of the object detector task. Defaults to `MPPRunningModeImage`.
|
||||
* `MPPObjectDetector` can be created with one of the following running modes:
|
||||
* 1. `MPPRunningModeImage`: The mode for performing object detection on single image inputs.
|
||||
* 2. `MPPRunningModeVideo`: The mode for performing object detection on the decoded frames of a
|
||||
* Running mode of the object detector task. Defaults to `.image`.
|
||||
* `ObjectDetector` can be created with one of the following running modes:
|
||||
* 1. `.image`: The mode for performing object detection on single image inputs.
|
||||
* 2. `.video`: The mode for performing object detection on the decoded frames of a
|
||||
* video.
|
||||
* 3. `MPPRunningModeLiveStream`: The mode for performing object detection on a live stream of
|
||||
* 3. `.liveStream`: The mode for performing object detection on a live stream of
|
||||
* input data, such as from the camera.
|
||||
*/
|
||||
@property(nonatomic) MPPRunningMode runningMode;
|
||||
|
||||
/**
|
||||
* An object that confirms to `MPPObjectDetectorLiveStreamDelegate` protocol. This object must
|
||||
* implement `objectDetector:didFinishDetectionWithResult:timestampInMilliseconds:error:` to receive
|
||||
* the results of performing asynchronous object detection on images (i.e, when `runningMode` =
|
||||
* `MPPRunningModeLiveStream`).
|
||||
* An object that confirms to `ObjectDetectorLiveStreamDelegate` protocol. This object must
|
||||
* implement `objectDetector(_:didFinishDetectionWithResult:timestampInMilliseconds:error:)` to
|
||||
* receive the results of performing asynchronous object detection on images (i.e, when
|
||||
* `runningMode` =
|
||||
* `.liveStream`).
|
||||
*/
|
||||
@property(nonatomic, weak, nullable) id<MPPObjectDetectorLiveStreamDelegate>
|
||||
objectDetectorLiveStreamDelegate;
|
||||
|
|
|
@ -18,27 +18,27 @@
|
|||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/** Represents the detection results generated by `MPPObjectDetector`. */
|
||||
/** Represents the detection results generated by `ObjectDetector`. */
|
||||
NS_SWIFT_NAME(ObjectDetectorResult)
|
||||
@interface MPPObjectDetectorResult : MPPTaskResult
|
||||
|
||||
/**
|
||||
* The array of `MPPDetection` objects each of which has a bounding box that is expressed in the
|
||||
* The array of `Detection` objects each of which 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.
|
||||
*/
|
||||
@property(nonatomic, readonly) NSArray<MPPDetection *> *detections;
|
||||
|
||||
/**
|
||||
* Initializes a new `MPPObjectDetectorResult` with the given array of detections and timestamp (in
|
||||
* Initializes a new `ObjectDetectorResult` with the given array of detections and timestamp (in
|
||||
* milliseconds).
|
||||
*
|
||||
* @param detections An array of `MPPDetection` objects each of which has a bounding box that is
|
||||
* @param detections An array of `Detection` objects each of which 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.
|
||||
* @param timestampInMilliseconds The timestamp (in milliseconds) for this result.
|
||||
*
|
||||
* @return An instance of `MPPObjectDetectorResult` initialized with the given array of detections
|
||||
* @return An instance of `ObjectDetectorResult` initialized with the given array of detections
|
||||
* and timestamp (in milliseconds).
|
||||
*/
|
||||
- (instancetype)initWithDetections:(NSArray<MPPDetection *> *)detections
|
||||
|
|
Loading…
Reference in New Issue
Block a user