}
template<typename T, typename V>
-void ObjectDetectionAdapter<T, V>::setModelInfo(const char *model_file, const char *meta_file, const char *label_file,
- const char *model_name)
+ObjectDetectionTaskType ObjectDetectionAdapter<T, V>::convertToTaskType(string model_name)
{
- string model_name_str(model_name);
-
- if (!model_name_str.empty()) {
- transform(model_name_str.begin(), model_name_str.end(), model_name_str.begin(), ::toupper);
+ if (model_name.empty())
+ throw InvalidParameter("model name is empty.");
- ObjectDetectionTaskType task_type = ObjectDetectionTaskType::OBJECT_DETECTION_TASK_NONE;
+ transform(model_name.begin(), model_name.end(), model_name.begin(), ::toupper);
- if (model_name_str == "OD_PLUGIN" || model_name_str == "FD_PLUGIN") {
- if (model_name_str == "OD_PLUGIN")
- task_type = ObjectDetectionTaskType::OD_PLUGIN;
- if (model_name_str == "FD_PLUGIN")
- task_type = ObjectDetectionTaskType::FD_PLUGIN;
+ ObjectDetectionTaskType task_type = ObjectDetectionTaskType::OBJECT_DETECTION_TASK_NONE;
- // In case of using plugin module, model information will be managed by the plugin module.
- // Therefore, create plugin instance now.
- create(task_type);
- return;
- }
+ if (model_name == "OD_PLUGIN")
+ return ObjectDetectionTaskType::OD_PLUGIN;
+ else if (model_name == "FD_PLUGIN")
+ return ObjectDetectionTaskType::FD_PLUGIN;
+ else if (model_name == string("MOBILENET_V1_SSD"))
+ return ObjectDetectionTaskType::MOBILENET_V1_SSD;
+ else if (model_name == string("MOBILENET_V2_SSD"))
+ return ObjectDetectionTaskType::MOBILENET_V2_SSD;
+ // TODO.
- if (model_name_str == string("MOBILENET_V1_SSD")) {
- task_type = ObjectDetectionTaskType::MOBILENET_V1_SSD;
- } else if (model_name_str == string("MOBILENET_V2_SSD")) {
- task_type = ObjectDetectionTaskType::MOBILENET_V2_SSD;
- // TODO.
- } else {
- throw InvalidParameter("Invalid object detection model name.");
- }
+ throw InvalidParameter("Invalid object detection model name.");
+}
- create(task_type);
+template<typename T, typename V>
+void ObjectDetectionAdapter<T, V>::setModelInfo(const char *model_file, const char *meta_file, const char *label_file,
+ const char *model_name)
+{
+ try {
+ create(convertToTaskType(string(model_name)));
+ } catch (const BaseException &e) {
+ LOGW("A given model name is invalid so default task type will be used.");
}
_model_file = string(model_file);