Added language detector result helpers
This commit is contained in:
		
							parent
							
								
									8fc3a0473f
								
							
						
					
					
						commit
						f185bc6635
					
				|  | @ -30,3 +30,15 @@ objc_library( | ||||||
|         "//mediapipe/tasks/ios/text/language_detector:MPPLanguageDetectorOptions", |         "//mediapipe/tasks/ios/text/language_detector:MPPLanguageDetectorOptions", | ||||||
|     ], |     ], | ||||||
| ) | ) | ||||||
|  | 
 | ||||||
|  | objc_library( | ||||||
|  |     name = "MPPLanguageDetectorResultHelpers", | ||||||
|  |     srcs = ["sources/MPPLanguageDetectorResult+Helpers.mm"], | ||||||
|  |     hdrs = ["sources/MPPLanguageDetectorResult+Helpers.h"], | ||||||
|  |     deps = [ | ||||||
|  |         "//mediapipe/framework:packet", | ||||||
|  |         "//mediapipe/tasks/cc/components/containers/proto:classifications_cc_proto", | ||||||
|  |         "//mediapipe/tasks/ios/components/containers/utils:MPPClassificationResultHelpers", | ||||||
|  |         "//mediapipe/tasks/ios/text/language_detector:MPPLanguageDetectorResult", | ||||||
|  |     ], | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | @ -0,0 +1,28 @@ | ||||||
|  | // Copyright 2023 The MediaPipe Authors.
 | ||||||
|  | //
 | ||||||
|  | // Licensed under the Apache License, Version 2.0 (the "License");
 | ||||||
|  | // you may not use this file except in compliance with the License.
 | ||||||
|  | // You may obtain a copy of the License at
 | ||||||
|  | //
 | ||||||
|  | //      http://www.apache.org/licenses/LICENSE-2.0
 | ||||||
|  | //
 | ||||||
|  | // Unless required by applicable law or agreed to in writing, software
 | ||||||
|  | // distributed under the License is distributed on an "AS IS" BASIS,
 | ||||||
|  | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | ||||||
|  | // See the License for the specific language governing permissions and
 | ||||||
|  | // limitations under the License.
 | ||||||
|  | 
 | ||||||
|  | #import "mediapipe/tasks/ios/text/language_Detector/sources/MPPLanguageDetectorResult.h" | ||||||
|  | 
 | ||||||
|  | #include "mediapipe/framework/packet.h" | ||||||
|  | 
 | ||||||
|  | NS_ASSUME_NONNULL_BEGIN | ||||||
|  | 
 | ||||||
|  | @interface MPPLanguageDetectorResult (Helpers) | ||||||
|  | 
 | ||||||
|  | + (MPPLanguageDetectorResult *)languageDetectorResultWithClassificationsPacket: | ||||||
|  |     (const mediapipe::Packet &)packet; | ||||||
|  | 
 | ||||||
|  | @end | ||||||
|  | 
 | ||||||
|  | NS_ASSUME_NONNULL_END | ||||||
|  | @ -0,0 +1,61 @@ | ||||||
|  | // Copyright 2023 The MediaPipe Authors. | ||||||
|  | // | ||||||
|  | // Licensed under the Apache License, Version 2.0 (the "License"); | ||||||
|  | // you may not use this file except in compliance with the License. | ||||||
|  | // You may obtain a copy of the License at | ||||||
|  | // | ||||||
|  | //      http://www.apache.org/licenses/LICENSE-2.0 | ||||||
|  | // | ||||||
|  | // Unless required by applicable law or agreed to in writing, software | ||||||
|  | // distributed under the License is distributed on an "AS IS" BASIS, | ||||||
|  | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||
|  | // See the License for the specific language governing permissions and | ||||||
|  | // limitations under the License. | ||||||
|  | 
 | ||||||
|  | #import "mediapipe/tasks/ios/components/containers/utils/sources/MPPClassificationResult+Helpers.h" | ||||||
|  | #import "mediapipe/tasks/ios/text/language_detector/utils/sources/MPPLanguageDetectorResult+Helpers.h" | ||||||
|  | 
 | ||||||
|  | #include "mediapipe/tasks/cc/components/containers/proto/classifications.pb.h" | ||||||
|  | 
 | ||||||
|  | static const int kMicroSecondsPerMilliSecond = 1000; | ||||||
|  | 
 | ||||||
|  | namespace { | ||||||
|  | using ClassificationResultProto = | ||||||
|  |     ::mediapipe::tasks::components::containers::proto::ClassificationResult; | ||||||
|  | using ::mediapipe::Packet; | ||||||
|  | }  // namespace | ||||||
|  | 
 | ||||||
|  | #define int kMicroSecondsPerMilliSecond = 1000; | ||||||
|  | 
 | ||||||
|  | @implementation MPPLanguageDetectorResult (Helpers) | ||||||
|  | 
 | ||||||
|  | + (MPPLanguageDetectorResult *)languageDetectorResultWithClassificationsPacket: | ||||||
|  |     (const mediapipe::Packet &)packet { | ||||||
|  |   MPPClassificationResult *classificationResult = [MPPClassificationResult | ||||||
|  |       classificationResultWithProto:packet.Get<ClassificationResultProto>()]; | ||||||
|  | 
 | ||||||
|  |   return [MPPLanguageDetectorResult | ||||||
|  |       languageDetectorResultWithClassificationResult:classificationResult | ||||||
|  |                              timestampInMilliseconds:(NSInteger)(packet.Timestamp().Value() / | ||||||
|  |                                                                  kMicroSecondsPerMilliSecond)]; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | + (MPPLanguageDetectorResult *) | ||||||
|  |     languageDetectorResultWithClassificationResult:(MPPClassificationResult *)classificationResult | ||||||
|  |                            timestampInMilliseconds:(NSInteger)timestampInMilliseconds { | ||||||
|  |   NSArray<MPPLanguagePrediction *> *languagePredictions = | ||||||
|  |       [NSMutableArray arrayWithCapacity:classificationResult.classifications.count]; | ||||||
|  | 
 | ||||||
|  |   if (classificationResult.classifications.count > 0) { | ||||||
|  |     for (MPPCategory *category in classificationResult.classifications[0].categories) { | ||||||
|  |       MPPLanguagePrediction *languagePrediction = | ||||||
|  |           [[MPPLanguagePrediction alloc] initWithLanguageCode:category.categoryName | ||||||
|  |                                                   probability:category.score]; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   return [[MPPLanguageDetectorResult alloc] initWithLanguagePredictions:languagePredictions | ||||||
|  |                                                 timestampInMilliseconds:timestampInMilliseconds]; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @end | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user