#include <vector>
/**
- * @brief Defines #MV_FACENET_MODEL_FILE_PATH
- * to set the backbone model file path.
+ * @brief Defines #MV_FACENET_MODEL_DEFAULT_PATH to set the backbone model default path.
+ */
+#define MV_FACENET_MODEL_DEFAULT_PATH "FACENET_MODEL_DEFAULT_PATH"
+
+/**
+ * @brief Defines #MV_FACENET_MODEL_FILE_PATH to set the backbone model file path.
* @details This model file is used to extract the feature vectors from a given face image data.
*/
-#define MV_FACENET_MODEL_FILE_PATH "FACENET_MODEL_FILE_PATH"
+#define MV_FACENET_MODEL_FILE_NAME "FACENET_MODEL_FILE_NAME"
/**
- * @brief Defines #MV_FACENET_MODEL_META_FILE_PATH
- * to set the backbone model meta file path.
+ * @brief Defines #MV_FACENET_MODEL_META_FILE_PATH to set the backbone model meta file path.
* @details This model meta file is used to provide input and output tensor info of a given model file.
*/
-#define MV_FACENET_MODEL_META_FILE_PATH "FACENET_MODEL_META_FILE_PATH"
+#define MV_FACENET_MODEL_META_FILE_NAME "FACENET_MODEL_META_FILE_NAME"
#define MV_FACENET_OUTPUT_TENSOR_NAME "FACENET_OUTPUT_TENSOR_NAME"
"attributes":
[
{
- "name" : "FACENET_MODEL_FILE_PATH",
+ "name" : "FACENET_MODEL_DEFAULT_PATH",
"type" : "string",
- "value" : "/home/owner/media/res/face_recognition/backbone/facenet.tflite"
+ "value" : "/opt/usr/globalapps/mediavision.face.recognition/models/tflite/"
},
{
- "name" : "FACENET_MODEL_META_FILE_PATH",
+ "name" : "FACENET_MODEL_FILE_NAME",
"type" : "string",
- "value" : "/home/owner/media/res/face_recognition/backbone/facenet.json"
+ "value" : "facenet.tflite"
+ },
+ {
+ "name" : "FACENET_MODEL_META_FILE_NAME",
+ "type" : "string",
+ "value" : "facenet.json"
},
{
"name" : "FACE_RECOGNITION_DEFAULT_PATH",
if (ret != MEDIA_VISION_ERROR_NONE)
throw InvalidOperation("Fail to get target device type.");
- ret = _config->getStringAttribute(MV_FACENET_MODEL_FILE_PATH, &_modelFilePath);
+ string modelDefaultPath;
+
+ ret = _config->getStringAttribute(MV_FACENET_MODEL_DEFAULT_PATH, &modelDefaultPath);
if (ret != MEDIA_VISION_ERROR_NONE)
- throw InvalidOperation("Fail to get model file path.");
+ throw InvalidOperation("Fail to get model default path.");
- ret = _config->getStringAttribute(MV_FACENET_MODEL_META_FILE_PATH, &_modelMetaFilePath);
+ ret = _config->getStringAttribute(MV_FACENET_MODEL_FILE_NAME, &_modelFileName);
if (ret != MEDIA_VISION_ERROR_NONE)
- throw InvalidOperation("Fail to get model meta file path.");
+ throw InvalidOperation("Fail to get model file name.");
+
+ _modelFileName = modelDefaultPath + _modelFileName;
+
+ ret = _config->getStringAttribute(MV_FACENET_MODEL_META_FILE_NAME, &_modelMetaFileName);
+ if (ret != MEDIA_VISION_ERROR_NONE)
+ throw InvalidOperation("Fail to get model meta file name.");
+
+ _modelMetaFileName = modelDefaultPath + _modelMetaFileName;
ret = _config->getStringAttribute(MV_FACENET_OUTPUT_TENSOR_NAME, &_facenetOutputTensorName);
if (ret != MEDIA_VISION_ERROR_NONE)
throw InvalidOperation("Fail to get facenet output tensor name.");
- if (_modelMetaFilePath.empty())
+ if (_modelMetaFileName.empty())
throw InvalidOperation("Model meta file doesn't exist.");
- if (!isJsonFile(_modelMetaFilePath))
+ if (!isJsonFile(_modelMetaFileName))
throw InvalidOperation("Model meta file should be json.");
- _parser->load(_modelMetaFilePath);
+ _parser->load(_modelMetaFileName);
}
void Facenet::configure()
if (ret != MEDIA_VISION_ERROR_NONE)
throw InvalidOperation("Fail to configure output tensor info from meta file.");
- _inference->configureModelFiles("", _modelFilePath, "");
+ _inference->configureModelFiles("", _modelFileName, "");
// Request to load model files to a backend engine.
ret = _inference->load();