当前位置:   article > 正文

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

yolov图片注意力图

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

步骤:

  1. 安装对应的库
pip install grad-cam
  • 1
  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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

在运行以后这两个数值差一才是正确的。
在这里插入图片描述
然后 那个运行的进度条并不需要走到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)

  • 1
  • 2

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/286158
推荐阅读
相关标签
  

闽ICP备14008679号