Refactor ClassificationResult and ClassificationPostprocessing.
PiperOrigin-RevId: 478444264
This commit is contained in:
committed by
Copybara-Service
parent
1e5cccdc73
commit
03c8ac3641
@@ -0,0 +1,36 @@
|
||||
# Copyright 2022 The MediaPipe Authors. All Rights Reserved.
|
||||
#
|
||||
# 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.
|
||||
|
||||
load("//mediapipe/framework/port:build_config.bzl", "mediapipe_proto_library")
|
||||
|
||||
package(default_visibility = ["//mediapipe/tasks:internal"])
|
||||
|
||||
licenses(["notice"])
|
||||
|
||||
mediapipe_proto_library(
|
||||
name = "classifier_options_proto",
|
||||
srcs = ["classifier_options.proto"],
|
||||
)
|
||||
|
||||
mediapipe_proto_library(
|
||||
name = "classification_postprocessing_graph_options_proto",
|
||||
srcs = ["classification_postprocessing_graph_options.proto"],
|
||||
deps = [
|
||||
"//mediapipe/calculators/tensor:tensors_to_classification_calculator_proto",
|
||||
"//mediapipe/framework:calculator_options_proto",
|
||||
"//mediapipe/framework:calculator_proto",
|
||||
"//mediapipe/tasks/cc/components/calculators:classification_aggregation_calculator_proto",
|
||||
"//mediapipe/tasks/cc/components/calculators:score_calibration_calculator_proto",
|
||||
],
|
||||
)
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
/* Copyright 2022 The MediaPipe Authors. All Rights Reserved.
|
||||
|
||||
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.
|
||||
==============================================================================*/
|
||||
|
||||
syntax = "proto2";
|
||||
|
||||
package mediapipe.tasks.components.processors.proto;
|
||||
|
||||
import "mediapipe/calculators/tensor/tensors_to_classification_calculator.proto";
|
||||
import "mediapipe/framework/calculator.proto";
|
||||
import "mediapipe/tasks/cc/components/calculators/classification_aggregation_calculator.proto";
|
||||
import "mediapipe/tasks/cc/components/calculators/score_calibration_calculator.proto";
|
||||
|
||||
message ClassificationPostprocessingGraphOptions {
|
||||
extend mediapipe.CalculatorOptions {
|
||||
optional ClassificationPostprocessingGraphOptions ext = 460416950;
|
||||
}
|
||||
|
||||
// Optional mapping between output tensor index and corresponding score
|
||||
// calibration options.
|
||||
map<int32, ScoreCalibrationCalculatorOptions> score_calibration_options = 4;
|
||||
|
||||
// Options for the TensorsToClassification calculators (one per classification
|
||||
// head) encapsulated by the ClassificationPostprocessing subgraph.
|
||||
repeated mediapipe.TensorsToClassificationCalculatorOptions
|
||||
tensors_to_classifications_options = 1;
|
||||
|
||||
// Options for the ClassificationAggregationCalculator encapsulated by the
|
||||
// ClassificationPostprocessing subgraph.
|
||||
optional ClassificationAggregationCalculatorOptions
|
||||
classification_aggregation_options = 2;
|
||||
|
||||
// Whether output tensors are quantized (kTfLiteUint8) or not (kFloat32).
|
||||
optional bool has_quantized_outputs = 3;
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
/* Copyright 2022 The MediaPipe Authors. All Rights Reserved.
|
||||
|
||||
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.
|
||||
==============================================================================*/
|
||||
|
||||
syntax = "proto2";
|
||||
|
||||
package mediapipe.tasks.components.processors.proto;
|
||||
|
||||
// Shared options used by all classification tasks.
|
||||
message ClassifierOptions {
|
||||
// The locale to use for display names specified through the TFLite Model
|
||||
// Metadata, if any. Defaults to English.
|
||||
optional string display_names_locale = 1 [default = "en"];
|
||||
|
||||
// The maximum number of top-scored classification results to return. If < 0,
|
||||
// all available results will be returned. If 0, an invalid argument error is
|
||||
// returned.
|
||||
optional int32 max_results = 2 [default = -1];
|
||||
|
||||
// Score threshold, overrides the ones provided in the model metadata
|
||||
// (if any). Results below this value are rejected.
|
||||
optional float score_threshold = 3;
|
||||
|
||||
// Optional allowlist of category names. If non-empty, classifications whose
|
||||
// category name is not in this set will be filtered out. Duplicate or unknown
|
||||
// category names are ignored. Mutually exclusive with category_denylist.
|
||||
repeated string category_allowlist = 4;
|
||||
|
||||
// Optional denylist of category names. If non-empty, classifications whose
|
||||
// category name is in this set will be filtered out. Duplicate or unknown
|
||||
// category names are ignored. Mutually exclusive with category_allowlist.
|
||||
repeated string category_denylist = 5;
|
||||
}
|
||||
Reference in New Issue
Block a user