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'
网友评论