Dichao-Liu / CMAL

44 stars 11 forks source link

您好,请问可否提供可视化Grad-CAM的代码 #1

Open CHENSY-SIYU opened 1 year ago

Dichao-Liu commented 1 year ago

您好,我用的是这里的代码,您可以参照。

CHENSY-SIYU commented 10 months ago

您好,我尝试进行了一下,想问您一下就是,实验中fig5是如何实现的呢,我尝试使用utils里的showimage,但是发现色彩失真

CHENSY-SIYU commented 10 months ago

还想问一下oval的可视化是选择的哪一层的特征呢

Dichao-Liu commented 8 months ago

@CHENSY-SIYU 您好,showimage函数是我自己做实验的时候,用来粗略地展示一下图片以便于调整代码与参数的。你发现颜色失真,可能是没有把tensor归一化到图像。比如feature是一个tensor (size: Num_Batch 3 H * W),您可能需要先做

#min_max normalization
    f_max,_ = feature.view(feature.size(0),-1).max(1)
    f_min,_ = feature.view(feature.size(0),-1).min(1)
    f_max = f_max.unsqueeze(-1).unsqueeze(-1)
    f_min = f_min.unsqueeze(-1).unsqueeze(-1)
    feature = (feature-f_min)/(f_max-f_min+1e-6)
# 把值调整到[0, 255],转换成uint8格式
    f = feature[i]
    im = (torch.round(f.permute(1,2,0).clamp(0.0,1.0)*255)).cpu().numpy().astype(np.uint8)

oval所基于的特征是map1, map2, map3的结合,您可以参照utils里highlight_im函数。