[MediaVision] Add MetadataFilePath and deprecated old properties (#3566)
authorHaesu Gwon <haesu.gwon@samsung.com>
Wed, 29 Sep 2021 01:03:16 +0000 (10:03 +0900)
committerGitHub <noreply@github.com>
Wed, 29 Sep 2021 01:03:16 +0000 (10:03 +0900)
* [MediaVision] Add MetadataFilePath and deprecated old properties

src/Tizen.Multimedia.Vision/MediaVision/InferenceModelConfiguration.cs

index c5931e5..c820359 100644 (file)
@@ -42,19 +42,20 @@ namespace Tizen.Multimedia.Vision
         private const string _keyModelConfigurationFilePath = "MV_INFERENCE_MODEL_CONFIGURATION_FILE_PATH";
         private const string _keyModelWeightFilePath = "MV_INFERENCE_MODEL_WEIGHT_FILE_PATH";
         private const string _keyModelUserFilePath = "MV_INFERENCE_MODEL_USER_FILE_PATH";
-        private const string _keyModelMeanValue = "MV_INFERENCE_MODEL_MEAN_VALUE";
-        private const string _keyModelStdValue = "MV_INFERENCE_MODEL_STD_VALUE";
+        private const string _keyMetadataFilePath = "MV_INFERENCE_MODEL_META_FILE_PATH";
+        private const string _keyModelMeanValue = "MV_INFERENCE_MODEL_MEAN_VALUE"; // Deprecated
+        private const string _keyModelStdValue = "MV_INFERENCE_MODEL_STD_VALUE"; // Deprecated
         private const string _keyBackendType = "MV_INFERENCE_BACKEND_TYPE";
         private const string _keyTargetType = "MV_INFERENCE_TARGET_TYPE";
         private const string _keyTargetDeviceType = "MV_INFERENCE_TARGET_DEVICE_TYPE";
-        private const string _keyInputTensorWidth = "MV_INFERENCE_INPUT_TENSOR_WIDTH";
-        private const string _keyInputTensorHeight = "MV_INFERENCE_INPUT_TENSOR_HEIGHT";
-        private const string _keyInputTensorChannels = "MV_INFERENCE_INPUT_TENSOR_CHANNELS";
-        private const string _keyDataType = "MV_INFERENCE_INPUT_DATA_TYPE";
-        private const string _keyInputNodeName = "MV_INFERENCE_INPUT_NODE_NAME";
-        private const string _keyOutputNodeNames = "MV_INFERENCE_OUTPUT_NODE_NAMES";
-        private const string _keyOutputMaxNumber = "MV_INFERENCE_OUTPUT_MAX_NUMBER";
-        private const string _keyConfidenceThreshold = "MV_INFERENCE_CONFIDENCE_THRESHOLD";
+        private const string _keyInputTensorWidth = "MV_INFERENCE_INPUT_TENSOR_WIDTH"; // Deprecated
+        private const string _keyInputTensorHeight = "MV_INFERENCE_INPUT_TENSOR_HEIGHT"; // Deprecated
+        private const string _keyInputTensorChannels = "MV_INFERENCE_INPUT_TENSOR_CHANNELS"; // Deprecated
+        private const string _keyDataType = "MV_INFERENCE_INPUT_DATA_TYPE"; // Deprecated
+        private const string _keyInputNodeName = "MV_INFERENCE_INPUT_NODE_NAME"; // Deprecated
+        private const string _keyOutputNodeNames = "MV_INFERENCE_OUTPUT_NODE_NAMES"; // Deprecated
+        private const string _keyOutputMaxNumber = "MV_INFERENCE_OUTPUT_MAX_NUMBER"; // Deprecated
+        private const string _keyConfidenceThreshold = "MV_INFERENCE_CONFIDENCE_THRESHOLD"; // Deprecated
 
         // The following strings are fixed in native and will not be changed.
         private const string _backendTypeOpenCV = "opencv";
@@ -247,11 +248,37 @@ namespace Tizen.Multimedia.Vision
         }
 
         /// <summary>
+        /// Gets or sets the path of inference model's metadata file.
+        /// </summary>
+        /// <remarks>
+        /// This value should be set to use <see cref="ImageClassifier"/> or <see cref="ObjectDetector"/>.
+        /// </remarks>
+        /// <exception cref="ArgumentNullException">Metadata file path is null.</exception>
+        /// <since_tizen> 9 </since_tizen>
+        public string MetadataFilePath
+        {
+            get
+            {
+                return GetString(_keyMetadataFilePath);
+            }
+            set
+            {
+                if (value == null)
+                {
+                    throw new ArgumentNullException(nameof(value), "File path is null.");
+                }
+
+                Set(_keyMetadataFilePath, value);
+            }
+        }
+
+        /// <summary>
         /// Gets or sets the inference model's mean value.
         /// </summary>
         /// <remarks>It should be greater than or equal to 0.</remarks>
         /// <exception cref="ArgumentOutOfRangeException">The value is invalid.</exception>
         /// <since_tizen> 6 </since_tizen>
+        [Obsolete("Deprecated since API9. Will be removed in API11. Please use MetadataFilePath instead.")]
         public double MeanValue
         {
             get
@@ -276,6 +303,7 @@ namespace Tizen.Multimedia.Vision
         /// <remarks>It should be greater than or equal to 0.</remarks>
         /// <exception cref="ArgumentOutOfRangeException">The value is invalid.</exception>
         /// <since_tizen> 6 </since_tizen>
+        [Obsolete("Deprecated since API9. Will be removed in API11. Please use MetadataFilePath instead.")]
         public double StdValue
         {
             get
@@ -332,7 +360,7 @@ namespace Tizen.Multimedia.Vision
         /// </remarks>
         /// <exception cref="ArgumentException"><paramref name="value"/> is not valid.</exception>
         /// <since_tizen> 6 </since_tizen>
-        [Obsolete("Deprecated since API8; Will be removed in API10. Please use Device instead.")]
+        [Obsolete("Deprecated since API8. Will be removed in API10. Please use Device instead.")]
         public InferenceTargetType Target
         {
             get
@@ -382,6 +410,7 @@ namespace Tizen.Multimedia.Vision
         /// Only one of <paramref name="value.Width"/> or <paramref name="value.Height"/> have -1.</exception>
         /// <exception cref="ArgumentOutOfRangeException">The value is invalid.</exception>
         /// <since_tizen> 6 </since_tizen>
+        [Obsolete("Deprecated since API9. Will be removed in API11. Please use MetadataFilePath instead.")]
         public Size TensorSize
         {
             get
@@ -424,6 +453,7 @@ namespace Tizen.Multimedia.Vision
         /// </remarks>
         /// <exception cref="ArgumentOutOfRangeException">The value is invalid.</exception>
         /// <since_tizen> 6 </since_tizen>
+        [Obsolete("Deprecated since API9. Will be removed in API11. Please use MetadataFilePath instead.")]
         public int TensorChannels
         {
             get
@@ -450,6 +480,7 @@ namespace Tizen.Multimedia.Vision
         /// </remarks>
         /// <exception cref="ArgumentException"><paramref name="value"/> is not valid.</exception>
         /// <since_tizen> 8 </since_tizen>
+        [Obsolete("Deprecated since API9. Will be removed in API11. Please use MetadataFilePath instead.")]
         public InferenceDataType DataType
         {
             get
@@ -469,6 +500,7 @@ namespace Tizen.Multimedia.Vision
         /// </summary>
         /// <exception cref="ArgumentNullException"><paramref name="value"/> is null.</exception>
         /// <since_tizen> 6 </since_tizen>
+        [Obsolete("Deprecated since API9. Will be removed in API11. Please use MetadataFilePath instead.")]
         public string InputNodeName
         {
             get
@@ -491,6 +523,7 @@ namespace Tizen.Multimedia.Vision
         /// </summary>
         /// <exception cref="ArgumentNullException"><paramref name="value"/> is null.</exception>
         /// <since_tizen> 6 </since_tizen>
+        [Obsolete("Deprecated since API9. Will be removed in API11. Please use MetadataFilePath instead.")]
         public IList<string> OutputNodeName
         {
             get
@@ -518,6 +551,7 @@ namespace Tizen.Multimedia.Vision
         /// This value can be used to decide the size of <see cref="Roi"/>, it's length should be the same.
         /// </remarks>
         /// <since_tizen> 6 </since_tizen>
+        [Obsolete("Deprecated since API9. Will be removed in API11. Please use MetadataFilePath instead.")]
         public int MaxOutputNumber
         {
             get
@@ -539,6 +573,7 @@ namespace Tizen.Multimedia.Vision
         /// </remarks>
         /// <exception cref="ArgumentOutOfRangeException"><paramref name="value"/>is out of range.</exception>
         /// <since_tizen> 6 </since_tizen>
+        [Obsolete("Deprecated since API9. Will be removed in API11. Please use MetadataFilePath instead.")]
         public double ConfidenceThreshold
         {
             get