|
|
|
|
@ -1556,6 +1556,7 @@ int ImgCheckAnalysisy::ConfigCheck(cv::Mat img)
|
|
|
|
|
|
|
|
|
|
int ImgCheckAnalysisy::AI_Detect_Thread(const cv::Mat &img, cv::Mat &ResultImg)
|
|
|
|
|
{
|
|
|
|
|
std::string cur_time_s = CheckUtil::getCurTimeHMS();
|
|
|
|
|
// 依次使用多个检测模型,各模型输出 mask 取并集作为最终 outmask;
|
|
|
|
|
// Defect_QueXi 模型是否参与合并由基础参数 Merge_QueXi 开关控制
|
|
|
|
|
std::vector<std::shared_ptr<AIModel_Base>> pAIDetList;
|
|
|
|
|
@ -1685,12 +1686,10 @@ int ImgCheckAnalysisy::AI_Detect_Thread(const cv::Mat &img, cv::Mat &ResultImg)
|
|
|
|
|
// 目录结构:/home/aidlux/BOE/ZB_SOCKET/AI_Detect/<模型名称>/<产品ID>/
|
|
|
|
|
if (m_pbaseCheckFunction->saveImg.bSaveAIDetImg && !modelMaskFull.empty())
|
|
|
|
|
{
|
|
|
|
|
std::string strSaveDir = "/home/aidlux/BOE/AI_Detect/KK/" + strModelName + "/" + DetImgInfo_shareP->strImgProductID + "/";
|
|
|
|
|
std::string strSaveDir = "/home/aidlux/BOE/AI_Detect/" + DetImgInfo_shareP->strImgProductID + "/";
|
|
|
|
|
CheckUtil::CreateDir(strSaveDir);
|
|
|
|
|
std::string strSavePath_in = strSaveDir + m_strCurDetChannel + "_in.png";
|
|
|
|
|
std::string strSavePath_out = strSaveDir + m_strCurDetChannel + "_out.png";
|
|
|
|
|
cv::imwrite(strSavePath_in, detInputImg);
|
|
|
|
|
cv::imwrite(strSavePath_out, modelMaskFull);
|
|
|
|
|
std::string strSavePath_out = strSaveDir + cur_time_s + "_" + m_strCurDetChannel + "_" + strModelName + "_out.png";
|
|
|
|
|
CheckUtil::SaveImgAsync(strSavePath_out, modelMaskFull);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 4、mask 结果放入队列,用于 AIMaskDet 加速 blob 计算(整图 ROI)
|
|
|
|
|
@ -1745,6 +1744,13 @@ int ImgCheckAnalysisy::AI_Detect_Thread(const cv::Mat &img, cv::Mat &ResultImg)
|
|
|
|
|
|
|
|
|
|
m_pdetlog->AddCheckstr(PrintLevel_0, DET_LOG_LEVEL_3, strBaseLog, "AI_Detect End");
|
|
|
|
|
|
|
|
|
|
if (m_pbaseCheckFunction->saveImg.bSaveAIDetImg )
|
|
|
|
|
{
|
|
|
|
|
std::string strSaveDir = "/home/aidlux/BOE/AI_Detect/" + DetImgInfo_shareP->strImgProductID + "/";
|
|
|
|
|
CheckUtil::CreateDir(strSaveDir);
|
|
|
|
|
std::string strSavePath_in = strSaveDir + cur_time_s + "_" + m_strCurDetChannel + "_in.png";
|
|
|
|
|
CheckUtil::SaveImgAsync(strSavePath_in, m_CheckResult_shareP->cutSrcimg);
|
|
|
|
|
}
|
|
|
|
|
// 临时存图
|
|
|
|
|
if (DetImgInfo_shareP->bsaveProcessImg)
|
|
|
|
|
{
|
|
|
|
|
|