我的编程空间,编程开发者的网络收藏夹
学习永远不晚

YOLOV8-gradcam 热力图可视化 即插即用 不需要对源码做任何修改!

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

YOLOV8-gradcam 热力图可视化 即插即用 不需要对源码做任何修改!

YOLOV8 GradCam 热力图可视化.

本文给大家带来yolov8-gradcam热力图可视化,这个可视化是即插即用不需要对源码做任何修改喔!给您剩下的不少麻烦!
代码链接:yolo-gradcam
里面还有yolov5和v7的热力图可视化代码,也是即插即用不需要对源码做任何修改喔!

先来看一下效果图

请添加图片描述
这个是由官方权重yolov8m实现的。

操作教程 哔哩哔哩视频

1. 从github中下载源码到自己的代码路径下。

在这里插入图片描述
简单来说就是直接复制到你的v8代码文件夹下即可,路径一定要放对,不然会找不到一些包。

2. 修改参数

def get_params():    params = {        'weight': 'yolov8m.pt',        'cfg': 'ultralytics/models/v8/yolov8m.yaml',        'device': 'cuda:0',        'method': 'GradCAM', # GradCAMPlusPlus, GradCAM, XGradCAM        'layer': 'model.model[8]',        'backward_type': 'all', # class, box, all        'conf_threshold': 0.6, # 0.6        'ratio': 0.02 # 0.02-0.1    }    return params

主要参数都在这个函数里面,其中解释如下:

  • weight
    权重路径。
  • cfg
    配置文件路径。(需要跟权重所训练出来的配置文件一致)
  • device
    运行的设备。cpu:cpu,gpu:cuda:0
  • method
    默认是GradCAM,还支持GradCAMPlusPlus和XGradCAM。但是作者这边实测都是GradCAM效果最好。
  • layer
    在这里插入图片描述
    代码中的model.model[8]就是上图所示,经测试,对于yolov8,使用5-9效果还可以,至于对于自己的数据集,这个就需要慢慢测试了。
    所以如果需要修改求梯度的层,只需要修改数字即可,比如我想用第9层,也就是model.model[9]。
  • backward_type
    反向传播的变量。这里默认是all,也就是score+box进行反向传播,然后进行梯度求和。
    其中还支持score和box。建议使用all,效果不佳再换。
  • conf_threshold
    置信度阈值,默认0.6。
  • ratio
    取前多少数据,默认是0.02,就是只取置信度(yolov8为类别最大概率为置信度)排序后的前百分之2的目标进行计算热力图。
    这个可能比较难理解,一般0.02就可以了,这个值不是越大越好,最大建议是0.1

3.运行

if __name__ == '__main__':    model = yolov8_heatmap(**get_params())    model(r'20230117113354.jpg', 'result')
model = yolov8_heatmap(**get_params()) 这行代码为初始化model(r'20230117113354.jpg', 'result') 第一个参数是图片的路径,第二个参数是保存路径,比如是result的话,其会创建一个名字为result的文件夹,如果result文件夹不为空,其会先清空文件夹。

在这里插入图片描述
运行输出如下:
在这里插入图片描述
运行后其会输出你的结构,你可以根据这个结构去选择你的层号,然后还会有一行:

Transferred 475/475 items

这个非常重要,这个如果分子不等于分母的话,那证明你的cfg文件和你的模型权重不匹配!
然后下方有一个进度条:

QA:

  1. 为什么进度条还没有满就停止了呢?
    因为后面的目标已经不满足置信度的设定值。
  2. 这个进度条的长度126是什么意思?
    这个就是之前设定的参数ratio的作用,其只会选择前0.02的目标进行热力图可视化。

那么其实我们可以看到ratio等于0.02已经足够了,其他目标都是小于0.6的置信度。

4. 查看输出

打开设定的保存路径result文件夹下:
在这里插入图片描述
在这里,你可以挑选效果比较好的出来进行展示。

最后我这里做了一个实验,分别是对7,8,9layer进行实验:

请添加图片描述
请添加图片描述
请添加图片描述
这个实验主要是给大家看下,不同的layer,不同的backward_type,不同的method出来的效果都不一样,有些可能效果很差,需要自行调整测试,热力图这个东西是比较玄学的,有些结果会比较乱,有些结果会比较可观,有些图它可能就是热力图效果不好也有可能。

最后祝大家都能出到满意的图,如果可以的话github帮忙点个star,博文也帮忙点个赞,谢谢大家咯!

来源地址:https://blog.csdn.net/qq_37706472/article/details/128714604

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

YOLOV8-gradcam 热力图可视化 即插即用 不需要对源码做任何修改!

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录