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", | ||||
|     ], | ||||
| ) | ||||
| 
 | ||||
| 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