diff --git a/AIEngineModule/include_base/AI_Factory.h b/AIEngineModule/include_base/AI_Factory.h index 4b00fd0..9da2ebb 100644 --- a/AIEngineModule/include_base/AI_Factory.h +++ b/AIEngineModule/include_base/AI_Factory.h @@ -170,8 +170,10 @@ public: std::shared_ptr CELL_Mark; std::shared_ptr CELL_Align; - std::shared_ptr CELL_CA_Det; - std::shared_ptr CELL_TA_Det; + std::shared_ptr CELL_BCA_Det; + std::shared_ptr CELL_BTA_Det; + std::shared_ptr CELL_DCA_Det; + std::shared_ptr CELL_DTA_Det; std::shared_ptr CELL_CA_Cls; std::shared_ptr CELL_TA_Cls; diff --git a/AIEngineModule/src/AI_Factory.cpp b/AIEngineModule/src/AI_Factory.cpp index cb88e9a..4410eae 100644 --- a/AIEngineModule/src/AI_Factory.cpp +++ b/AIEngineModule/src/AI_Factory.cpp @@ -37,34 +37,56 @@ int AIFactory::InitALLAIModle(GPU_Config gupconfig) return 1; } - if (!CELL_CA_Det) + if (!CELL_BCA_Det) { - CELL_CA_Det = AIModel_Base::GetInstance(); + CELL_BCA_Det = AIModel_Base::GetInstance(); AIModel_Base::AIModelRun_Config edge_config; edge_config.gpuconfig.copy(gupconfig); - edge_config.strPath = "/home/aidlux/BOE/UseModel_CellAOI/Detect_CA.engine"; - edge_config.strName = "CA_Det"; + edge_config.strPath = "/home/aidlux/BOE/UseModel_CellAOI_CD/Detect_BCA.engine"; + edge_config.strName = "BCA_Det"; edge_config.inputType = AIModel_Base::Input_HWC; edge_config.Stream_num = 2; - CELL_CA_Det->Init(edge_config); + CELL_BCA_Det->Init(edge_config); } - if (!CELL_TA_Det) + if (!CELL_BTA_Det) { - CELL_TA_Det = AIModel_Base::GetInstance(); + CELL_BTA_Det = AIModel_Base::GetInstance(); AIModel_Base::AIModelRun_Config edge_config; edge_config.gpuconfig.copy(gupconfig); - edge_config.strPath = "/home/aidlux/BOE/UseModel_CellAOI/Detect_TA.engine"; - edge_config.strName = "TA_Det"; + edge_config.strPath = "/home/aidlux/BOE/UseModel_CellAOI_CD/Detect_BTA.engine"; + edge_config.strName = "BTA_Det"; edge_config.inputType = AIModel_Base::Input_HWC; edge_config.Stream_num = 2; - CELL_TA_Det->Init(edge_config); + CELL_BTA_Det->Init(edge_config); + } + if (!CELL_DCA_Det) + { + CELL_DCA_Det = AIModel_Base::GetInstance(); + AIModel_Base::AIModelRun_Config edge_config; + edge_config.gpuconfig.copy(gupconfig); + edge_config.strPath = "/home/aidlux/BOE/UseModel_CellAOI_CD/Detect_DCA.engine"; + edge_config.strName = "DCA_Det"; + edge_config.inputType = AIModel_Base::Input_HWC; + edge_config.Stream_num = 2; + CELL_DCA_Det->Init(edge_config); + } + if (!CELL_DTA_Det) + { + CELL_DTA_Det = AIModel_Base::GetInstance(); + AIModel_Base::AIModelRun_Config edge_config; + edge_config.gpuconfig.copy(gupconfig); + edge_config.strPath = "/home/aidlux/BOE/UseModel_CellAOI_CD/Detect_DTA.engine"; + edge_config.strName = "DTA_Det"; + edge_config.inputType = AIModel_Base::Input_HWC; + edge_config.Stream_num = 2; + CELL_DTA_Det->Init(edge_config); } if (!CELL_Align) { CELL_Align = AIModel_Base::GetInstance(); AIModel_Base::AIModelRun_Config edge_config; edge_config.gpuconfig.copy(gupconfig); - edge_config.strPath = "/home/aidlux/BOE/UseModel_CellAOI/Align.engine"; + edge_config.strPath = "/home/aidlux/BOE/UseModel_CellAOI_CD/Align.engine"; edge_config.strName = "Align"; edge_config.inputType = AIModel_Base::Input_HWC; CELL_Align->Init(edge_config); @@ -74,7 +96,7 @@ int AIFactory::InitALLAIModle(GPU_Config gupconfig) CELL_Mark = AIModel_Base::GetInstance(); AIModel_Base::AIModelRun_Config edge_config; edge_config.gpuconfig.copy(gupconfig); - edge_config.strPath = "/home/aidlux/BOE/UseModel_CellAOI/Cell_marker.engine"; + edge_config.strPath = "/home/aidlux/BOE/UseModel_CellAOI_CD/Cell_marker.engine"; edge_config.strName = "Mark"; edge_config.inputType = AIModel_Base::Input_HWC; CELL_Mark->Init(edge_config); @@ -84,7 +106,7 @@ int AIFactory::InitALLAIModle(GPU_Config gupconfig) CELL_CA_Cls = AIModel_Base::GetInstance(); AIModel_Base::AIModelRun_Config jbl_config; jbl_config.gpuconfig.copy(gupconfig); - jbl_config.strPath = "/home/aidlux/BOE/UseModel_CellAOI/Class_10.engine"; + jbl_config.strPath = "/home/aidlux/BOE/UseModel_CellAOI_CD/Class_10.engine"; jbl_config.inputType = AIModel_Base::Input_HWC; jbl_config.strName = "CA_Class"; jbl_config.IsClass = true; @@ -95,7 +117,7 @@ int AIFactory::InitALLAIModle(GPU_Config gupconfig) CELL_TA_Cls = AIModel_Base::GetInstance(); AIModel_Base::AIModelRun_Config jbl_config; jbl_config.gpuconfig.copy(gupconfig); - jbl_config.strPath = "/home/aidlux/BOE/UseModel_CellAOI/Class_10_TA.engine"; + jbl_config.strPath = "/home/aidlux/BOE/UseModel_CellAOI_CD/Class_10_TA.engine"; jbl_config.inputType = AIModel_Base::Input_HWC; jbl_config.strName = "TA_Class"; jbl_config.IsClass = true; diff --git a/AlgorithmModule/src/ImgCheckAnalysisy.cpp b/AlgorithmModule/src/ImgCheckAnalysisy.cpp index b5145e6..d0c8013 100644 --- a/AlgorithmModule/src/ImgCheckAnalysisy.cpp +++ b/AlgorithmModule/src/ImgCheckAnalysisy.cpp @@ -1699,14 +1699,26 @@ int ImgCheckAnalysisy::AI_Detect_Thread(const cv::Mat &img, cv::Mat &ResultImg) { std::shared_ptr pAIDet; // printf("=====>>>>AI_Detect_Thread m_strCurDetChannel %s \n", m_strCurDetChannel.c_str()); - if (m_strCurDetChannel.find("CA") != std::string::npos) + if (m_strCurDetChannel.find("BCA") != std::string::npos) { // printf("=====>>>>AI_Detect_Thread USE CA %s \n", m_strCurDetChannel.c_str()); - pAIDet = AI_Factory->CELL_CA_Det; + pAIDet = AI_Factory->CELL_BCA_Det; + } + else if (m_strCurDetChannel.find("BTA") != std::string::npos) + { + pAIDet = AI_Factory->CELL_BTA_Det; + } + else if (m_strCurDetChannel.find("DCA") != std::string::npos) + { + pAIDet = AI_Factory->CELL_DCA_Det; + } + else if (m_strCurDetChannel.find("DTA") != std::string::npos) + { + pAIDet = AI_Factory->CELL_DTA_Det; } else { - pAIDet = AI_Factory->CELL_TA_Det; + pAIDet = AI_Factory->CELL_BTA_Det; } std::string strBaseLog = "AI_Detect"; @@ -1870,6 +1882,10 @@ int ImgCheckAnalysisy::Traditional_Detect_Thread(const cv::Mat &img, cv::Mat &Re return -1; } + if (DetImgInfo_shareP->bsaveProcessImg) + { + cv::imwrite(DetImgInfo_shareP->strChannel + "_AI_mask.png", ResultImg); + } m_pdetlog->AddCheckstr(PrintLevel_0, DET_LOG_LEVEL_3, strBaseLog, "Traditional_Detect End"); return 0; }