赞
踩
写在前面:
知识来源
yolov5-GradCam可视化
https://github.com/z1069614715/objectdetection_script/tree/master/yolo-gradcam
步骤:
pip install grad-cam
下载对应版本的py文件,放在yolov5的目录下
yolov5_heatmap
参数的解释
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对应的权重】还是挺有效果的。
如果不想要对应的标签框的话,可以注释掉第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)
其他的话
个人感觉
总体上讲究一个玄学把,多试几张图片,然后把自己需要的最好的结果贴上去就行了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。