Added optional removal of Z position in gesture recognizer test util

This commit is contained in:
Prianka Liz Kariat 2023-05-25 19:13:22 +05:30
parent 4438606f3f
commit f51dd05e89
3 changed files with 18 additions and 10 deletions

View File

@ -98,7 +98,8 @@ static const float kLandmarksErrorTolerance = 0.03f;
return [MPPGestureRecognizerResult return [MPPGestureRecognizerResult
gestureRecognizerResultsFromTextEncodedProtobufFileWithName:filePath gestureRecognizerResultsFromTextEncodedProtobufFileWithName:filePath
gestureLabel:kExpectedThumbUpLabel]; gestureLabel:kExpectedThumbUpLabel
shouldRemoveZPosition:YES];
} }
+ (MPPGestureRecognizerResult *)fistGestureRecognizerResultWithLabel:(NSString *)gestureLabel { + (MPPGestureRecognizerResult *)fistGestureRecognizerResultWithLabel:(NSString *)gestureLabel {
@ -106,7 +107,8 @@ static const float kLandmarksErrorTolerance = 0.03f;
return [MPPGestureRecognizerResult return [MPPGestureRecognizerResult
gestureRecognizerResultsFromTextEncodedProtobufFileWithName:filePath gestureRecognizerResultsFromTextEncodedProtobufFileWithName:filePath
gestureLabel:gestureLabel]; gestureLabel:gestureLabel
shouldRemoveZPosition:YES];
} }
- (void)assertMultiHandLandmarks:(NSArray<NSArray<MPPNormalizedLandmark *> *> *)multiHandLandmarks - (void)assertMultiHandLandmarks:(NSArray<NSArray<MPPNormalizedLandmark *> *> *)multiHandLandmarks

View File

@ -20,7 +20,9 @@ NS_ASSUME_NONNULL_BEGIN
+ (MPPGestureRecognizerResult *) + (MPPGestureRecognizerResult *)
gestureRecognizerResultsFromTextEncodedProtobufFileWithName:(NSString *)fileName gestureRecognizerResultsFromTextEncodedProtobufFileWithName:(NSString *)fileName
gestureLabel:(NSString *)gestureLabel; gestureLabel:(NSString *)gestureLabel
shouldRemoveZPosition:(BOOL)removeZPosition;
@end @end
NS_ASSUME_NONNULL_END NS_ASSUME_NONNULL_END

View File

@ -33,18 +33,22 @@ using ::mediapipe::tasks::ios::test::vision::utils::get_proto_from_pbtxt;
+ (MPPGestureRecognizerResult *) + (MPPGestureRecognizerResult *)
gestureRecognizerResultsFromTextEncodedProtobufFileWithName:(NSString *)fileName gestureRecognizerResultsFromTextEncodedProtobufFileWithName:(NSString *)fileName
gestureLabel:(NSString *)gestureLabel { gestureLabel:(NSString *)gestureLabel
shouldRemoveZPosition:(BOOL)removeZPosition {
LandmarksDetectionResultProto landmarkDetectionResultProto; LandmarksDetectionResultProto landmarkDetectionResultProto;
if (!get_proto_from_pbtxt(fileName.cppString, landmarkDetectionResultProto).ok()) { if (!get_proto_from_pbtxt(fileName.cppString, landmarkDetectionResultProto).ok()) {
return nil; return nil;
} }
// Remove z position of landmarks, because they are not used in correctness
// testing. For video or live stream mode, the z positions varies a lot during if (removeZPosition) {
// tracking from frame to frame. // Remove z position of landmarks, because they are not used in correctness
for (int i = 0; i < landmarkDetectionResultProto.landmarks().landmark().size(); i++) { // testing. For video or live stream mode, the z positions varies a lot during
auto &landmark = *landmarkDetectionResultProto.mutable_landmarks()->mutable_landmark(i); // tracking from frame to frame.
landmark.clear_z(); for (int i = 0; i < landmarkDetectionResultProto.landmarks().landmark().size(); i++) {
auto &landmark = *landmarkDetectionResultProto.mutable_landmarks()->mutable_landmark(i);
landmark.clear_z();
}
} }
ClassificationListProto gesturesProto; ClassificationListProto gesturesProto;