【OpenMMLab】mmyolov2可视化

可视化

特征图可视化

可视化为深度学习模型的训练和测试过程提供了直观的解释。

在MMYOLO中,可以使用VisualizerMMEngine中提供的feature map可视化,具有以下特点:

  • 支持基本绘图界面和特征图可视化。
  • 支持选择模型中的不同层来获取特征图。显示方式包括squeeze_meanselect_maxtopk。用户还可以使用 自定义特征图显示的布局arrangement

特征图生成

您可以使用demo/featmap_vis_demo.py快速查看可视化结果。为了更好地理解所有功能,我们在此处列出了所有主要参数及其功能,如下所示:

  • img: 要可视化的图像。可以是单个图像文件或图像文件路径列表。

  • config:算法的配置文件。

  • checkpoint:对应算法的权重文件。

  • --out-file:获取的特征图在您设备上的保存路径。

  • --device:用于图像推理的硬件。例如,--device cuda:0表示使用第一个 GPU,而--device cpu表示使用 CPU。

  • --score-thr:置信度分数阈值。只会显示置信度分数高于此阈值的 bboxes。

  • --preview-model: 如果需要预览模型。这可以使用户更直接地理解特征层的结构。

  • --target-layers: 得到可视化特征图结果的特定层。

    • 如果只有一个参数,则该特定层的特征图将被可视化。例如,--target-layers backbone、 --target-layers neck、 --target-layers backbone.stage4等。
    • 如果参数是一个列表,对应层的所有特征图都会被可视化。例如,--target-layers backbone.stage4 neck表示同时输出backbone的stage4层和neck的三层,一共四层feature maps。
  • --channel-reduction:如果需要将多个通道压缩成一个通道,然后将其与图片叠加显示,因为输入张量通常有多个通道。这里可以使用三个参数:

    • squeeze_mean:使用均值函数将输入通道C压缩为一个通道,输出维度变为(1, H, W)。
    • select_max:在空间空间对输入通道C求和,维度变为(C, )。然后选择值最大的通道。
    • None:表示不需要压缩。在这种情况下,topk可以通过topk参数选择激活度最高的特征图进行显示。
  • --topk: 仅当channel_reduction参数为时有效None。它topk根据激活程度选择通道,然后将其与图像叠加显示。可以使用--arrangement参数指定显示布局,参数是由空格分隔的两个数字组成的数组。例如,--topk 5 --arrangement 2 3表示激活度最高的五个特征图显示在 中2 rows and 3 columns。同样,--topk 7 --arrangement 3 3表示激活度最高的七个特征图显示在 中3 rows and 3 columns

    • 如果topk不为-1,则选择topk通道按激活程度高低顺序显示。
    • 如果topk为-1,则通道号C必须为1或3,表示输入数据为图片。否则,将出现错误提示用户使用压缩频道channel_reduction
  • 考虑到输入的特征图通常很小,为了便于可视化,该函数默认会对特征图进行上采样。

注意:当图像和特征图比例不同时,draw_featmap函数会自动进行升采样对齐。如果你的图片Pad在inference的时候有preprocessing之类的操作,得到的feature map是用 处理的Pad,直接upsample图片可能会出现错位问题。

使用示例

以预训练的 YOLOv5-s 模型为例。请将模型权重文件下载到根目录。

cd mmyolo
wget https://download.openmmlab.com/mmyolo/v0/yolov5/yolov5_s-v61_syncbn_fast_8xb16-300e_coco/yolov5_s-v61_syncbn_fast_8xb16-300e_coco_20220918_084700-86e02187.pth

(1) 将多通道特征图压缩成单通道select_max并显示。通过提取backbone层的输出进行可视化,将生成图中三个输出层的特征图backbone

python demo/featmap_vis_demo.py demo/dog.jpg \
                                configs/yolov5/yolov5_s-v61_syncbn_fast_8xb16-300e_coco.py \
                                yolov5_s-v61_syncbn_fast_8xb16-300e_coco_20220918_084700-86e02187.pth \
                                --target-layers backbone \
                                --channel-reduction select_max

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值