feat 添加暗场模型

dev_lsy
liusiyang 4 weeks ago
parent c9b98e02d6
commit 2e9abdf857

@ -154,6 +154,7 @@ public:
private:
public:
std::shared_ptr<AIModel_Base> Defect;
std::shared_ptr<AIModel_Base> Defect_Dark; // 暗场检测模型(05DefectDark.engine)
std::shared_ptr<AIModel_Base> Class;
std::shared_ptr<AIModel_Base> Tag_Loc;

@ -42,12 +42,23 @@ int AIFactory::InitALLAIModle(GPU_Config gupconfig)
Defect = AIModel_Base::GetInstance();
AIModel_Base::AIModelRun_Config edge_config;
edge_config.gpuconfig.copy(gupconfig);
edge_config.strPath = "/home/aidlux/BOE/UseModel_ZB/BM/DefectLight.engine";
edge_config.strName = "Defect";
edge_config.strPath = "/home/aidlux/BOE/UseModel_ZB/BM/01DefectLight.engine";
edge_config.strName = "DefectLight";
edge_config.inputType = AIModel_Base::Input_CHW;
edge_config.Stream_num = 4;
Defect->Init(edge_config);
}
if (!Defect_Dark)
{
Defect_Dark = AIModel_Base::GetInstance();
AIModel_Base::AIModelRun_Config edge_config;
edge_config.gpuconfig.copy(gupconfig);
edge_config.strPath = "/home/aidlux/BOE/UseModel_ZB/BM/05DefectDark.engine";
edge_config.strName = "DefectDark";
edge_config.inputType = AIModel_Base::Input_CHW;
edge_config.Stream_num = 4;
Defect_Dark->Init(edge_config);
}
if (!Class)
{
Class = AIModel_Base::GetInstance();
@ -64,7 +75,7 @@ int AIFactory::InitALLAIModle(GPU_Config gupconfig)
Tag_Loc = AIModel_Base::GetInstance();
AIModel_Base::AIModelRun_Config edge_config;
edge_config.gpuconfig.copy(gupconfig);
edge_config.strPath = "/home/aidlux/BOE/UseModel_ZB/BM/BadLabel.engine";
edge_config.strPath = "/home/aidlux/BOE/UseModel_ZB/BM/02BadLabel.engine";
edge_config.strName = "Tag_Loc";
edge_config.inputType = AIModel_Base::Input_CHW;
edge_config.Stream_num = 4;
@ -75,7 +86,7 @@ int AIFactory::InitALLAIModle(GPU_Config gupconfig)
Align_Outer = AIModel_Base::GetInstance();
AIModel_Base::AIModelRun_Config edge_config;
edge_config.gpuconfig.copy(gupconfig);
edge_config.strPath = "/home/aidlux/BOE/UseModel_ZB/BM/ProductLoc.engine";
edge_config.strPath = "/home/aidlux/BOE/UseModel_ZB/BM/04ProductLoc.engine";
edge_config.strName = "Align_Outer";
edge_config.inputType = AIModel_Base::Input_CHW;
edge_config.Stream_num = 2;
@ -86,7 +97,7 @@ int AIFactory::InitALLAIModle(GPU_Config gupconfig)
Align_Inner = AIModel_Base::GetInstance();
AIModel_Base::AIModelRun_Config edge_config;
edge_config.gpuconfig.copy(gupconfig);
edge_config.strPath = "/home/aidlux/BOE/UseModel_ZB/BM/ClampLoc.engine";
edge_config.strPath = "/home/aidlux/BOE/UseModel_ZB/BM/03ClampLoc.engine";
edge_config.strName = "Align_Inner";
edge_config.inputType = AIModel_Base::Input_CHW;
edge_config.Stream_num = 2;

@ -1936,14 +1936,23 @@ int ImgCheckAnalysisy::AI_Detect_Thread(const cv::Mat &img, cv::Mat &ResultImg)
{
std::shared_ptr<AIModel_Base> pAIDet;
// printf("=====>>>>AI_Detect_Thread m_strCurDetChannel %s \n", m_strCurDetChannel.c_str());
bool bUseDarkModel = false;
std::string strCameraName;
{
// printf("=====>>>>AI_Detect_Thread USE CA %s \n", m_strCurDetChannel.c_str());
pAIDet = AI_Factory->Defect;
// 暗场图像(相机名含 "dark",与 Define_Base.h ALIGN_REUSE_* 的明/暗场判定一致)用暗场检测模型(05DefectDark.engine);
// 其余(明场)用明场检测模型(01DefectLight.engine);暗场模型未加载成功时回退明场模型
std::string strProduct;
GetProductCameraStr(strProduct, strCameraName);
bUseDarkModel = !ReplaceDarkWithBright(strCameraName).empty() && AI_Factory->Defect_Dark && AI_Factory->Defect_Dark->m_bInitSuccess;
pAIDet = bUseDarkModel ? AI_Factory->Defect_Dark : AI_Factory->Defect;
}
std::string strBaseLog = "AI_Detect";
m_pdetlog->AddCheckstr(PrintLevel_0, DET_LOG_LEVEL_3, strBaseLog, "AI_Detect Start");
m_pdetlog->AddCheckstr(PrintLevel_1, DET_LOG_LEVEL_3, strBaseLog, "Detect Model %s (camera %s)",
bUseDarkModel ? "DefectDark" : "DefectLight", strCameraName.c_str());
long t1, t2, t3;
t1 = CheckUtil::getcurTime();

Loading…
Cancel
Save