mv_machine_learning: convert ImageClassification class into template class
[platform/core/api/mediavision.git] / mv_machine_learning / image_classification / src / image_classification_adapter.cpp
index 17b5a1b..fdb2e30 100644 (file)
@@ -44,7 +44,19 @@ template<typename T, typename V> ImageClassificationAdapter<T, V>::~ImageClassif
 
 template<typename T, typename V> void ImageClassificationAdapter<T, V>::create()
 {
-       _image_classification = make_unique<ImageClassificationDefault>(_config);
+       _config->loadMetaFile(make_unique<ImageClassificationParser>());
+       mv_inference_data_type_e dataType = _config->getInputMetaMap().begin()->second->dataType;
+
+       switch (dataType) {
+       case MV_INFERENCE_DATA_UINT8:
+               _image_classification = make_unique<ImageClassificationDefault<unsigned char> >(_config);
+               break;
+       case MV_INFERENCE_DATA_FLOAT32:
+               _image_classification = make_unique<ImageClassificationDefault<float> >(_config);
+               break;
+       default:
+               throw InvalidOperation("Invalid image classification data type.");
+       }
 }
 
 template<typename T, typename V>