You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
2.7 KiB
122 lines
2.7 KiB
#ifndef _AIModelParam_H_
|
|
#define _AIModelParam_H_
|
|
#include <string>
|
|
#include <vector>
|
|
#include "JsonCoversion.h"
|
|
#include "AI_Moudel.hpp"
|
|
// AI-图片参数参数
|
|
struct AI_Image_Param
|
|
{
|
|
int width;
|
|
int height;
|
|
int channels;
|
|
int N;
|
|
AI_Image_Param()
|
|
{
|
|
Init();
|
|
}
|
|
void Init()
|
|
{
|
|
width = 0;
|
|
height = 0;
|
|
channels = 0;
|
|
N = 0;
|
|
}
|
|
void copy(AI_Image_Param tem)
|
|
{
|
|
this->width = tem.width;
|
|
this->N = tem.N;
|
|
this->height = tem.height;
|
|
this->channels = tem.channels;
|
|
}
|
|
void print(std::string str)
|
|
{
|
|
printf("%s n w h c= %d %d %d %d\n", str.c_str(), N, width, height, channels);
|
|
}
|
|
};
|
|
|
|
// AI-模型主要参数
|
|
struct AI_Model_Param
|
|
{
|
|
int ID;
|
|
int type;
|
|
std::string strAIModelName;
|
|
std::string strModelPath;
|
|
std::string strModelPath_1;
|
|
|
|
std::string strOutName;
|
|
AI_Image_Param in_img;
|
|
AI_Image_Param out_img;
|
|
std::shared_ptr<DetectModel> pdetect;
|
|
AI_Model_Param()
|
|
{
|
|
pdetect = NULL;
|
|
Init();
|
|
}
|
|
void Init()
|
|
{
|
|
strModelPath = "";
|
|
strAIModelName = "";
|
|
strModelPath_1 = "";
|
|
ID = 0;
|
|
type = 0;
|
|
strOutName = "";
|
|
if (pdetect != NULL)
|
|
{
|
|
pdetect->release();
|
|
}
|
|
}
|
|
// void copy(AI_Model_Param tem)
|
|
// {
|
|
// this->strModelPath = tem.strModelPath;
|
|
// this->strAIModelName = tem.strAIModelName;
|
|
// this->in_img.copy(tem.in_img);
|
|
// this->out_img.copy(tem.out_img);
|
|
// this->ID = tem.ID;
|
|
// this->type = tem.type;
|
|
// this->strOutName = tem.strOutName;
|
|
// }
|
|
void print(std::string str)
|
|
{
|
|
printf("%s modelPath %s AIModelName %s strOutName %s ID %d type %d\n", str.c_str(), strModelPath.c_str(), strAIModelName.c_str(), strOutName.c_str(), ID, type);
|
|
in_img.print("in_img");
|
|
out_img.print("out_img");
|
|
}
|
|
};
|
|
struct AI_Model_ConfigList
|
|
{
|
|
std::vector<AI_Model_Param> AIModelConfigList;
|
|
AI_Model_ConfigList()
|
|
{
|
|
Init();
|
|
}
|
|
void Init()
|
|
{
|
|
AIModelConfigList.erase(AIModelConfigList.begin(), AIModelConfigList.end());
|
|
}
|
|
|
|
void print(std::string str)
|
|
{
|
|
for (int i = 0; i < AIModelConfigList.size(); i++)
|
|
{
|
|
AIModelConfigList.at(i).print(std::to_string(i));
|
|
}
|
|
}
|
|
};
|
|
|
|
class AIModelParamJson : public JsonCoversion
|
|
{
|
|
public:
|
|
AIModelParamJson() {}
|
|
virtual ~AIModelParamJson() {}
|
|
|
|
public:
|
|
virtual Json::Value toJsonValue();
|
|
virtual void toObjectFromValue(Json::Value root);
|
|
int GetConfig(std::shared_ptr<AI_Model_ConfigList> &pconfig);
|
|
|
|
private:
|
|
std::shared_ptr<AI_Model_ConfigList> m_pconfig;
|
|
};
|
|
|
|
#endif |