美文网首页
mmseg画指定层的类别激活热力图cam

mmseg画指定层的类别激活热力图cam

作者: JIAWEIJIAWEI | 来源:发表于2024-01-04 13:50 被阅读0次

1,安装grad-cam

pip install grad-cam

2, mmsegmentation目录下运行,
参数依次如下(不需要引号):

python tools/analysis_tools/visualization_cam.py 
'Path to img'
'Path to Config file'
'Path to Checkpoint file'
--out-file 'Path to output prediction file,如1.png'
--cam-file 'Path to output cam file,如2.png'
--target-layers 'Target layers to visualize CAM,可参考log file,如decode_head.align.conv’
--category-index ‘Category to visualize CAM’
--device ‘Device used for inference,如cuda:0’

--target-layers也可以通过

python tools/misc/print_config.py 'Path to Config file' --graph

来获取。或者直接查看log文件。

一些如相加,上采样等层不存在,需要修改代码,将其定义为一个层即可,如:

class AddLayer(nn.Module):
    def __init__(self):
        super(AddLayer, self).__init__()

    def forward(self, x, y):
        return x + y
output=a+b

改为

self.ADD=AddLayer()

output=self.ADD(a,b)

报错:TypeError: init() got an unexpected keyword argument 'use_cuda'

 with GradCAM(
            model=model,
            target_layers=target_layers, 
            use_cuda=torch.cuda.is_available()) as cam:

改成

 with GradCAM(
            model=model,
            target_layers=target_layers) as cam:

去掉use_cuda=torch.cuda.is_available()

报错:cv2.error: OpenCV(4.8.1) /io/opencv/modules/imgcodecs/src/loadsave.cpp:1120: error: (-2:Unspecified error) could not find encoder for the specified extension in function 'imencode'
检查以下参数
--out-file 'Path to output prediction file,如1.png'
--cam-file 'Path to output cam file,如2.png'

相关文章

网友评论

      本文标题:mmseg画指定层的类别激活热力图cam

      本文链接:https://www.haomeiwen.com/subject/ppcbndtx.html