【yolov5 注意力热力图grad-cam的使用教程】

写在前面:
知识来源
yolov5-GradCam可视化
https://github.com/z1069614715/objectdetection_script/tree/master/yolo-gradcam

步骤:

  1. 安装对应的库
pip install grad-cam
  1. 下载对应版本的py文件,放在yolov5的目录下
    yolov5_heatmap

  2. 参数的解释

def get_params():
    params = {
    	# 这两个改的是权重和对应的参数文件
        'weight': 'runs/train/exp/weights/best.pt',
        'cfg': 'models/yolov5m.yaml',
        # 使用的设备
        'device': 'cuda:0',
        # 这下面三个可以酌情试一试
        'method': 'XGradCAM', # GradCAMPlusPlus, GradCAM, XGradCAM 都能试
        'layer': 'model.model[-2]', # 倒数第二层的效果会比较好,倒数第一次也可以试一下
        'backward_type': 'class', # class or conf,如果是多类别的话,用class,单类别的用conf
        # 下面两个可以不用改变了。
        'conf_threshold': 0.6, # 0.6 可以调低一点,太大没有意义
        'ratio': 0.02 # 0.02-0.1 选前多少的输出热力图
    }
    return params

在运行以后这两个数值差一才是正确的。
在这里插入图片描述
然后 那个运行的进度条并不需要走到100才是正确的,虽然数值越大,输出的特征热力图就越大
具体的图的示例【这里使用的是yolov5-7.0版本的yolov5s对应的权重】还是挺有效果的。
bus类的注意力热力图
人的注意力热力图
如果不想要对应的标签框的话,可以注释掉第98行

            # cam_image = self.draw_detections(post_boxes[i], self.colors[int(post_result[i, 1:].argmax())], f'{self.model_names[int(post_result[i, 1:].argmax())]} {post_result[i][0]:.2f}', cam_image)

其他的话
个人感觉
总体上讲究一个玄学把,多试几张图片,然后把自己需要的最好的结果贴上去就行了。

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值