Skip to content

about visulization/关于可视化 : in mmdetection/在mmdetection框架中 #1062

@PanffeeReal

Description

@PanffeeReal

Prerequisite

🐞 Describe the bug

当使用mmyolo/demo下的boxam_vis_demo.py文件在mmdetection框架上进行可视化时,例如对于fcos模型,由于其采用resnet+fpn的结构,因此--target-layers 设置为neck.fpn_convs[4]时,使用gradcam方法会出现以下Nonetype的错误:
Traceback (most recent call last):
File "demo/boxam_vis_demo.py", line 276, in
main()
File "demo/boxam_vis_demo.py", line 239, in main
grayscale_boxam = boxam_detector_visualizer(image, targets=targets)
File "/home/lpf/mmyolo/mmyolo/utils/boxam_utils.py", line 287, in call
return self.cam(img, targets, aug_smooth, eigen_smooth)[0, :]
File "/home/lpf/anaconda3/envs/mmyolo/lib/python3.8/site-packages/pytorch_grad_cam/base_cam.py", line 209, in call
return self.forward(input_tensor, targets, eigen_smooth)
File "/home/lpf/anaconda3/envs/mmyolo/lib/python3.8/site-packages/pytorch_grad_cam/base_cam.py", line 109, in forward
loss = sum([target(output) for target, output in zip(targets, outputs)])
File "/home/lpf/anaconda3/envs/mmyolo/lib/python3.8/site-packages/pytorch_grad_cam/base_cam.py", line 109, in
loss = sum([target(output) for target, output in zip(targets, outputs)])
File "/home/lpf/mmyolo/mmyolo/utils/boxam_utils.py", line 434, in call
loss_key in self.ignore_loss_params:
TypeError: argument of type 'NoneType' is not iterable

如果将可视化方法改为ablationcam,则不会报错,可以运行,但结果只有检测框,没有热图显示

Environment

当使用mmyolo/demo下的boxam_vis_demo.py文件在mmdetection框架上进行可视化时,例如对于fcos模型,由于其采用resnet+fpn的结构,因此--target-layers 设置为neck.fpn_convs[4]时,使用gradcam方法会出现以下Nonetype的错误:
Traceback (most recent call last):
File "demo/boxam_vis_demo.py", line 276, in
main()
File "demo/boxam_vis_demo.py", line 239, in main
grayscale_boxam = boxam_detector_visualizer(image, targets=targets)
File "/home/lpf/mmyolo/mmyolo/utils/boxam_utils.py", line 287, in call
return self.cam(img, targets, aug_smooth, eigen_smooth)[0, :]
File "/home/lpf/anaconda3/envs/mmyolo/lib/python3.8/site-packages/pytorch_grad_cam/base_cam.py", line 209, in call
return self.forward(input_tensor, targets, eigen_smooth)
File "/home/lpf/anaconda3/envs/mmyolo/lib/python3.8/site-packages/pytorch_grad_cam/base_cam.py", line 109, in forward
loss = sum([target(output) for target, output in zip(targets, outputs)])
File "/home/lpf/anaconda3/envs/mmyolo/lib/python3.8/site-packages/pytorch_grad_cam/base_cam.py", line 109, in
loss = sum([target(output) for target, output in zip(targets, outputs)])
File "/home/lpf/mmyolo/mmyolo/utils/boxam_utils.py", line 434, in call
loss_key in self.ignore_loss_params:
TypeError: argument of type 'NoneType' is not iterable

如果将可视化方法改为ablationcam,则不会报错,可以运行,但结果只有检测框,没有热图显示

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions