fix 根据参数配置进行BQ检测(v1.3.2)

dev_lsy
liusiyang 3 weeks ago
parent 53878afe4f
commit 6c5f6a9d55

@ -696,7 +696,6 @@ int CameraCheckAnalysisy::preDet_BQ(const cv::Mat &L255CutImg, std::shared_ptr<I
{
long ts = CheckUtil::getcurTime();
m_pCheck_Result->cameraBaseResult->pBQ_Result = std::make_shared<BQ_Result>();
m_pCheck_Result->cameraBaseResult->pBQ_Result->bShield_BQ = m_AnalysisyConfig.commonCheckConfig.baseConfig.bShield_BQ;
// Det_BQ 已从 Base 层移至 Channel 层
ChannelCheckFunction *pChannelFuntion_BQ = GetChannelFuntion(L255->strChannel);
@ -724,8 +723,7 @@ int CameraCheckAnalysisy::preDet_BQ(const cv::Mat &L255CutImg, std::shared_ptr<I
return re;
}
// 如果要屏蔽标签
if (m_pCheck_Result->cameraBaseResult->pBQ_Result->bShield_BQ)
// 默认屏蔽标签
{
m_pdetlog->AddCheckstr(PrintLevel_2, "preDet_BQ", "shieldBQ is Open");
cv::Mat detImg_mask = m_pCheck_Result->cameraBaseResult->pEdgeDetResult->shieldMask;
@ -740,13 +738,12 @@ int CameraCheckAnalysisy::preDet_BQ(const cv::Mat &L255CutImg, std::shared_ptr<I
boundingRect = boundingRect & cv::Rect(0, 0, detImg_mask.cols, detImg_mask.rows);
if (boundingRect.width > 0 && boundingRect.height > 0)
{
// 同时屏蔽主AI避免重复检测
detImg_mask(boundingRect).setTo(255);
m_pCheck_Result->cameraBaseResult->pBQ_Result->pBQ_expandedRoiList.push_back(boundingRect);
// 保存裁剪图像供独立BQ AI检测
if (pChannelFuntion_BQ && pChannelFuntion_BQ->function.f_Det_BQ.bBQ_AI_Det)
{
m_pCheck_Result->cameraBaseResult->pBQ_Result->pBQ_expandedRoiList.push_back(boundingRect);
cv::Mat bqCrop = L255CutImg(boundingRect).clone();
m_pCheck_Result->cameraBaseResult->pBQ_Result->pBQ_cropImages.push_back(bqCrop);
}
@ -757,10 +754,6 @@ int CameraCheckAnalysisy::preDet_BQ(const cv::Mat &L255CutImg, std::shared_ptr<I
cv::imwrite("sheildImg.png", m_pCheck_Result->cameraBaseResult->pEdgeDetResult->shieldMask);
}
}
else
{
m_pdetlog->AddCheckstr(PrintLevel_2, "preDet_BQ", "shieldBQ is false");
}
std::shared_ptr<BQ_Result> pBQ_Result = m_pCheck_Result->cameraBaseResult->pBQ_Result; // BQ 检测结果
pBQ_Result->BQ_centerPoint.erase(pBQ_Result->BQ_centerPoint.begin(), pBQ_Result->BQ_centerPoint.end());
for (int i = 0; i < pBQ_Result->pBQ_roiList.size(); i++)

@ -170,7 +170,7 @@ int ImgCheckAnalysisy::GetStatus()
std::string ImgCheckAnalysisy::GetVersion()
{
return std::string("BOE_1.3.1_" + std::string(__DATE__) + "_" + std::string(__TIME__));
return std::string("BOE_1.3.2_" + std::string(__DATE__) + "_" + std::string(__TIME__));
}
std::string ImgCheckAnalysisy::GetErrorInfo()
@ -2212,7 +2212,13 @@ int ImgCheckAnalysisy::AI_Detect_BQ()
// 提交任务限制并发数不超过2避免占用过多资源
if (submitted < bqNum && runner->GetProcessingCount() < 2)
{
cv::Mat bqCrop = m_pImageAllResult->cameraBaseResult->pBQ_Result->pBQ_cropImages.at(submitted);
cv::Rect bqRoi = m_pImageAllResult->cameraBaseResult->pBQ_Result->pBQ_expandedRoiList.at(submitted);
cv::Rect validRoi = bqRoi & cv::Rect(0, 0, AI_detImage.cols, AI_detImage.rows);
cv::Mat bqCrop;
if (validRoi.width > 0 && validRoi.height > 0)
{
bqCrop = AI_detImage(validRoi).clone();
}
if (!bqCrop.empty())
{
cv::Mat resizedCrop;
@ -2220,7 +2226,7 @@ int ImgCheckAnalysisy::AI_Detect_BQ()
std::shared_ptr<AIMulThreadRunBase::AITask> task = std::make_shared<AIMulThreadRunBase::AITask>();
task->id = submitted;
task->roi = cv::Rect(0, 0, modelInputSize.width, modelInputSize.height);
task->roi = cv::Rect(0, 0, validRoi.width, validRoi.height);
task->input = resizedCrop;
task->output = std::make_shared<cv::Mat>();
task->engine = pAI_Model;

@ -466,6 +466,7 @@ struct BasicConfig
height_max = 999999;
bDrawShieldRoi = false;
bShield_ZF = false;
bShield_BQ = true;
bDrawPreRoi = false;
fUP_IOU = 0.9;
bCal_ImageScale = false;

Loading…
Cancel
Save