Fixed issues in MPPObjectDetector

This commit is contained in:
Prianka Liz Kariat 2023-04-06 21:33:25 +05:30
parent 11413f0acd
commit 1c0e17ea17
3 changed files with 18 additions and 8 deletions

View File

@ -25,6 +25,7 @@
namespace {
using ::mediapipe::NormalizedRect;
using ::mediapipe::Packet;
using ::mediapipe::Timestamp;
using ::mediapipe::tasks::core::PacketMap;
using ::mediapipe::tasks::core::PacketsCallback;
} // namespace
@ -80,13 +81,22 @@ static NSString *const kTaskGraphName = @"mediapipe.tasks.vision.ObjectDetectorG
if (options.completion) {
packetsCallback = [=](absl::StatusOr<PacketMap> status_or_packets) {
NSError *callbackError = nil;
MPPObjectDetectionResult *result;
if ([MPPCommonUtils checkCppError:status_or_packets.status() toError:&callbackError]) {
result = [MPPObjectDetectionResult
if (![MPPCommonUtils checkCppError:status_or_packets.status() toError:&callbackError]) {
options.completion(nil, Timestamp::Unset().Value(), callbackError);
return;
}
PacketMap &outputPacketMap = status_or_packets.value();
if (outputPacketMap[kImageOutStreamName.cppString].IsEmpty()) {
return;
}
MPPObjectDetectionResult *result = [MPPObjectDetectionResult
objectDetectionResultWithDetectionsPacket:status_or_packets.value()
[kDetectionsStreamName.cppString]];
}
options.completion(result, callbackError);
options.completion(result, outputPacketMap[kImageOutStreamName.cppString].Timestamp().Value() /
kMicroSecondsPerMilliSecond, callbackError);
};
}
@ -111,7 +121,7 @@ static NSString *const kTaskGraphName = @"mediapipe.tasks.vision.ObjectDetectorG
return [self initWithOptions:options error:error];
}
- (nullable MPPObjectDetectionResult *)detectINImage:(MPPImage *)image
- (nullable MPPObjectDetectionResult *)detectInImage:(MPPImage *)image
regionOfInterest:(CGRect)roi
error:(NSError **)error {
std::optional<NormalizedRect> rect =

View File

@ -18,6 +18,8 @@
NS_ASSUME_NONNULL_BEGIN
static const int kMicroSecondsPerMilliSecond = 1000;
@interface MPPObjectDetectionResult (Helpers)
/**

View File

@ -16,8 +16,6 @@
#import "mediapipe/tasks/ios/components/containers/utils/sources/MPPDetection+Helpers.h"
static const int kMicroSecondsPerMilliSecond = 1000;
namespace {
using DetectionProto = ::mediapipe::Detection;
using ::mediapipe::Packet;