承包网站建设的公司,dedecms 做门户网站,石碣东莞网站建设,工商企业管理就业方向YOLOV8 GradCam 热力图可视化.
本文给大家带来yolov8-gradcam热力图可视化#xff0c;这个可视化是即插即用#xff0c;不需要对源码做任何修改喔#xff01;给您剩下的不少麻烦#xff01; 代码链接#xff1a;yolo-gradcam 里面还有yolov5和v7的热力图可视化代码#…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, XGradCAMlayer: model.model[8],backward_type: all, # class, box, allconf_threshold: 0.6, # 0.6ratio: 0.02 # 0.02-0.1}return params主要参数都在这个函数里面其中解释如下
weight 权重路径。cfg 配置文件路径。(需要跟权重所训练出来的配置文件一致)device 运行的设备。cpu:cpu,gpu:cuda:0method 默认是GradCAM还支持GradCAMPlusPlus和XGradCAM。但是作者这边实测都是GradCAM效果最好。layer 代码中的model.model[8]就是上图所示经测试对于yolov8使用5-9效果还可以至于对于自己的数据集这个就需要慢慢测试了。 所以如果需要修改求梯度的层只需要修改数字即可比如我想用第9层也就是model.model[9]。backward_type 反向传播的变量。这里默认是all也就是scorebox进行反向传播然后进行梯度求和。 其中还支持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博文也帮忙点个赞谢谢大家咯