YOLOv8 | 热力图可视化 | 即插即用 | GradCam

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

本文提供YOLOv8项目及各种改进模型输出特征的热力图可视化代码,即插即用,不需要对源码做任何修改。有GradCAMPlusPlus, GradCAM, XGradCAM可选。


一、YOLOv8热力图可视化代码

代码如下:

import warnings

warnings.filterwarnings('ignore')
warnings.simplefilter('ignore')
import torch, cv2, os, shutil
import numpy as np

np.random.seed(0)
import matplotlib.pyplot as plt
from tqdm import trange
from PIL import Image
from ultralytics.nn.tasks import DetectionModel as Model
from ultralytics.utils.torch_utils import intersect_dicts
from ultralytics.utils.ops import xywh2xyxy
from pytorch_grad_cam import GradCAMPlusPlus, GradCAM, XGradCAM
from pytorch_grad_cam.utils.image import show_cam_on_image
from pytorch_grad_cam.activations_and_gradients import ActivationsAndGradients


def letterbox(im, new_shape=(640, 640), color=(114, 114, 114), auto=True, scaleFill=False, scaleup=True, stride=32):
    # Resize and pad image while meeting stride-multiple constraints
    shape = im.shape[:2]  # current shape [height, width]
    if isinstance(new_shape, int):
        new_shape = (new_shape, new_shape)

    # Scale ratio (new / old)
    r = min(new_shape[0] / shape[0], new_shape[1] / shape[1])
    if not scaleup:  # only scale down, do not scale up (for better val mAP)
        r = min(r, 1.0)

    # Compute padding
    ratio = r, r  # width, height ratios
    new_unpad = int(round(shape[1] * r)), int(round(shape[0] * r))
    dw, dh = new_shape[1] - new_unpad[0], new_shape[0] - new_unpad[1]  # wh padding
    if auto:  # minimum rectangle
        dw, dh = np.mod(dw, stride), np.mod(dh, stride)  # wh padding
    elif scaleFill:  # stretch
        dw, dh = 0.0, 0.0
        new_unpad = (new_shape[1], new_shape[0])
        ratio = new_shape[1] / shape[1], new_shape[0] / shape[0]  # width, height ratios

    dw /= 2  # divide padding into 2 sides
    dh /= 2

    if shape[::-1] != new_unpad:  # resize
        im = cv2.resize(im
要在Yolov8中添加热力,可以借鉴Yolov5的热力生成方法。首先,在原始版本的Yolov8中,可以按照Yolov5的生成热力的代码进行搭建。这些代码可以在yolo-gradcam的代码库中找到,这个代码库提供了Yolov5和Yolov7的热力可视化代码,是即插即用的,不需要对源码进行任何修改。 通过使用这些代码,您可以在原始版本的Yolov8中生成热力。这些热力可以帮助您可视化模型在像中的注意力分布,从而更好地理解模型的决策过程。 需要注意的是,在修改了Yolov8的模型后,生成热力的代码需要进行相应的修改。但是这个修改可以在原始版本的Yolov8生成热力的代码基础上进行修改。 总结来说,要在Yolov8中添加热力,可以使用Yolov5的生成热力的代码,这些代码是即插即用的。在修改了Yolov8的模型后,需要对生成热力的代码进行相应的修改。这样就可以在Yolov8中获得热力了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [yolov5热力生成和修改](https://blog.csdn.net/qq_34424944/article/details/129813801)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [YOLOV8-gradcam 热力可视化 即插即用 不需要对源码做任何修改!](https://blog.csdn.net/qq_37706472/article/details/128714604)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 42
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值