首页IT科技pyecharts热力图(YOLOV8-gradcam 热力图可视化 即插即用 不需要对源码做任何修改!)

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

时间2025-05-04 23:06:31分类IT科技浏览4851
导读: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(r20230117113354.jpg, result) model = yolov8_heatmap(**get_params()) 这行代码为初始化 model(r20230117113354.jpg, result) 第一个参数是图片的路径      ,第二个参数是保存路径                  ,比如是result的话           ,其会创建一个名字为result的文件夹,如果result文件夹不为空                  ,其会先清空文件夹            。

运行输出如下:

运行后其会输出你的结构                 ,你可以根据这个结构去选择你的层号,然后还会有一行: Transferred 475/475 items

这个非常重要            ,这个如果分子不等于分母的话                 ,那证明你的cfg文件和你的模型权重不匹配!

然后下方有一个进度条:

QA: 为什么进度条还没有满就停止了呢?

因为后面的目标已经不满足置信度的设定值                 。 这个进度条的长度126是什么意思?

这个就是之前设定的参数ratio的作用      ,其只会选择前0.02的目标进行热力图可视化      。

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

4. 查看输出

打开设定的保存路径result文件夹下:

在这里                 ,你可以挑选效果比较好的出来进行展示                 。

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

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

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

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
reacthooks自动生成路由(ReactHooks之useEffect) 知名seo快排(解锁你网站潜力!SEO快速排名软件平台助你一臂之力)