计算机视觉特征图可视化与注意力图可视化(持续更新)

1.YOLOv5 特征图可视化

可视化代码:

def feature_visualization(x, module_type, stage, n=2, save_dir=Path('runs/detect/exp')):"""x:              Features to be visualizedmodule_type:    Module typestage:          Module stage within modeln:              Maximum number of feature maps to plotsave_dir:       Directory to save results"""if 'Detect' not in module_type:batch, channels, height, width = x.shape  # batch, channels, height, widthif height > 1 and width > 1:f = save_dir / f"stage{stage}_{module_type.split('.')[-1]}_features.png"  # filenameblocks = torch.chunk(x[0].cpu(), channels, dim=0)  # select batch index 0, block by channelsn = min(n, channels)  # number of plotsfig, ax = plt.subplots(math.ceil(n / 2), 2, tight_layout=True)  # 8 rows x n/8 colsax = ax.ravel()plt.subplots_adjust(wspace=0.05, hspace=0.05)for i in range(n):ax[i].imshow(blocks[i].squeeze())  # cmap='gray'ax[i].axis('off')LOGGER.info(f'Saving {f}... ({n}/{channels})')plt.savefig(f, dpi=300, bbox_inches='tight')plt.close()np.save(str(f.with_suffix('.npy')), x[0].cpu().numpy())  # npy save

使用:

feature_visualization(features, name, stage_id, save_dir=ROOT / "visual")

结果示例:

 2.优化的特征图可视化

可视化代码:

def feature_visualization(x, module_type, stage, n=2, save_dir=Path('runs/detect/exp')):"""x:              Features to be visualizedmodule_type:    Module typestage:          Module stage within modeln:              Maximum number of feature maps to plotsave_dir:       Directory to save results"""if 'Detect' not in module_type:batch, channels, height, width = x.shape  # batch, channels, height, widthif height > 1 and width > 1:f = save_dir / f"stage{stage}_{module_type.split('.')[-1]}_features.png"  # filenameblocks = torch.chunk(x[0].cpu(), channels, dim=0)  # select batch index 0, block by channelsn = min(n, channels)  # number of plotsfig, ax = plt.subplots(math.ceil(n / 2), 2, tight_layout=True)  # 8 rows x n/8 colsax = ax.ravel()plt.subplots_adjust(wspace=0.05, hspace=0.05)for i in range(n):block = blocks[i].squeeze().detach().numpy()block = (block - np.min(block)) / (np.max(block) - np.min(block))temp = np.array(block * 255.0, dtype=np.uint8)temp = cv2.applyColorMap(temp, cv2.COLORMAP_JET)ax[i].imshow(temp, cmap=plt.cm.jet)  # cmap='gray'ax[i].axis('off')LOGGER.info(f'Saving {f}... ({n}/{channels})')plt.savefig(f, dpi=300, bbox_inches='tight')plt.close()np.save(str(f.with_suffix('.npy')), x[0].cpu().numpy())  # npy save

使用:

feature_visualization(features, name, stage_id, save_dir=ROOT / "visual")

结果示例:

 优化的可视化代码可视化结果更加清晰

参考:GitHub - z1069614715/objectdetection_script: 一些关于目标检测的脚本的改进思路代码,详细请看readme.md

3.注意力图可视化(YOLO)

可视化代码:

def show_CAM(save_img_path, image, feature_maps, class_id, all_ids=97, image_size=(640, 640), normalization=True):"""save_img_path: save heatmap images pathfeature_maps: this is a list [tensor,tensor,tensor], tensor shape is [1, 3, N, N, all_ids]normalization: Normalize score and class to 0 to 1image_size: w, h"""SHOW_NAME = ["score", "class", "class*score"]img_ori = imagelayers0 = feature_maps[0].reshape([-1, all_ids])layers1 = feature_maps[1].reshape([-1, all_ids])layers2 = feature_maps[2].reshape([-1, all_ids])layers = torch.cat([layers0, layers1, layers2], 0)if normalization:score_max_v = 1.score_min_v = 0.class_max_v = 1.class_min_v = 0.else:score_max_v = layers[:, 4].max()  # compute max of score from all anchorscore_min_v = layers[:, 4].min()  # compute min of score from all anchorclass_max_v = layers[:, 5 + class_id].max()  # compute max of class from all anchorclass_min_v = layers[:, 5 + class_id].min()  # compute min of class from all anchorfor j in range(3):  # layerslayer_one = feature_maps[j]# compute max of score from three anchor of the layerif normalization:anchors_score_max = layer_one[0, :, :, :, 4].max(0)[0].sigmoid()# compute max of class from three anchor of the layeranchors_class_max = layer_one[0, :, :, :, 5 + class_id].max(0)[0].sigmoid()else:anchors_score_max = layer_one[0, :, :, :, 4].max(0)[0]# compute max of class from three anchor of the layeranchors_class_max = layer_one[0, :, :, :, 5 + class_id].max(0)[0]scores = ((anchors_score_max - score_min_v) / (score_max_v - score_min_v))classes = ((anchors_class_max - class_min_v) / (class_max_v - class_min_v))layer_one_list = []layer_one_list.append(scores)layer_one_list.append(classes)layer_one_list.append(scores * classes)for idx, one in enumerate(layer_one_list):layer_one = one.cpu().numpy()if normalization:ret = ((layer_one - layer_one.min()) / (layer_one.max() - layer_one.min())) * 255else:ret = ((layer_one - 0.) / (1. - 0.)) * 255ret = ret.astype(np.uint8)gray = ret[:, :, None]ret = cv2.applyColorMap(gray, cv2.COLORMAP_JET)ret = cv2.resize(ret, image_size)img_ori = cv2.resize(img_ori, image_size)show = ret * 0.50 + img_ori * 0.50show = show.astype(np.uint8)cv2.imwrite(os.path.join(save_img_path, f"{j}_{SHOW_NAME[idx]}.jpg"), show)

 使用:

show_CAM(ROOT/"visual",cv2.imread(path),ret[1],0,  # 指的是你想查看的类别 这个代码中我们看的是bear 所有在coco数据集中是2180+ 5,  # 80+5指的是coco数据集的80个类别+ x y w h score 5个数值image_size=(640, 640),  # 模型输入尺寸# 如果为True将置信度和class归一化到0~1,方便按置信度进行区分热力图,# 如果为False会按本身数据分布归一化,这样方便查看相对置信度。normalization=True)

结果示例:

 参考:GitHub - z1069614715/objectdetection_script: 一些关于目标检测的脚本的改进思路代码,详细请看readme.md

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/65487.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

可视化图形开发工具

你看银行,那么牛逼,有使用先进技术了吗?还都是使用20年前的技术。 所以, 1,技术应该服务实际场景,别去学习那些先进的技术,先进的那些用不上。 2,编程语言和框架,就应…

整理可视化大屏设计教程与相关资源,大屏设计,可视化

GIT地址: https://gitee.com/AiShiYuShiJiePingXing/bigscreen 点击前往GIT查看 一、基础概念 1.1 什么是数据可视化 把相对复杂、抽象的数据通过可视的方式以人们更易理解的形式展示出来的一系列手段叫做数据可视化,数据可视化是为了更形象地表达数…

可视化系统不止炫酷!带你领略强大的交互操控功能

大数据产业创新服务媒体 ——聚焦数据 改变商业 01 高视觉效果与强大交互功能并重 数据可视化是利用视觉的方式将那些海量的、复杂的、潜逻辑的数据展现出来,改变了传统业务系统数据呈现复杂枯燥、难以理解的困境,实现了信息的有效传达。 人机交互是指人…

04 可视化开发工具

04 可视化开发工具 点击这个按钮切换到可视化编辑器 来到我们的可视化编辑页面 我们来看一下每个部分的功能 先格式化一下页面 具体代码如下 <template><view class"page"></view> </template> <script> export default {data()…

22 款设计和可视化神经网络的工具

点击上方“算法猿的成长“&#xff0c;关注公众号&#xff0c;选择加“星标“或“置顶” 总第 143 篇文章&#xff0c;本文大约 3000 字&#xff0c;阅读大约需要 10 分钟 前言 深度学习领域&#xff0c;最常见的就是各种网络模型&#xff0c;那么在写论文或者文章&#xff0c;…

GUI可视化利器,让实时数据可视化so easy

PyQtGraph主要使用领域为:数学/科学/工程应用等; PyQtGraph为PyQt5/PyQt6/PySide2等图形用户界面 (GUI) 开发框架的一款强大可视化工具,底层为NumPy (快速科学计算)、Qt的GraphicsView框架 (2D图形可视化)、OpenGL (3D图形可视化); 相比于之前的工具,PyQtGraph在以下方面…

一款可视化在线图表工具

大家好&#xff0c;我是小z 发现一个宝藏数据网站&#xff0c;可以让我们告别代码绘制出精美的数据可视化作品(一些不想写代码的小伙伴们有福了哈)。PlotDB-你的资料数据化服务平台。是一个由宝岛台湾的数据公司制作而成&#xff0c;官网&#xff1a;https://plotdb.com/。下面…

让数据变得更直观:10款常用的可视化工具(解决99%的可视化大屏需求)

不管是跟上司汇报工作&#xff0c;还是向客户介绍项目&#xff0c;在工作中各种与【汇报】有关的事情&#xff0c;都离不开图表。漂亮而有视觉冲击力的图表可以给你的工作大大加分&#xff0c;让对方直观理解你想表达的内容&#xff0c;而大屏能将图表和数据展现到极致。 这篇…

数据可视化:大屏可视化设计全流程教程

什么是数据可视化 数据可视化是利用各类图表及图形化的设计手段将复杂不直观的数据有逻辑的呈现出来&#xff0c;而数据可视化工具就是生成这种呈现的软件。数据可视化为用户提供了交互式探索和分析数据的直观手段&#xff0c;使他们能够有效地识别有趣的模式、推断相关性和因…

数据可视化之数据可视化展示平台

一.前言 数据可视化展示平台&#xff0c;是指使用多种表格和图表类型来展示多维分析结果的数据分析展示方式&#xff0c;借助于图形化手段&#xff0c;清晰有效地传达与沟通信息。通过可视化分析&#xff0c;您可以美学形式与分析功能并进&#xff0c;直观地传达关键的方面与特…

值得推荐的13款可视化软件,快收藏!

数据可视化力求用图表结合的方式把所有的数据整合在某一图像上&#xff0c;这样呈现在观众眼前的画面不仅仅是美观&#xff0c;且比以往长篇大论或是密密麻麻的数据表格更直观易懂&#xff0c;更便于观察分析。到今年上半年为止&#xff0c;国内外已经有了很多发展的较好的数据…

B端大屏可视化设计参考网站分享、大数据可视化设计

B端大屏可视化设计参考网站分享、大数据可视化设计 大屏可视化参考网站&#xff1a; 1. 易知微 https://easyv.cloud/market 浅色风格的大屏可视化可以参考此网站的设计 2. 数字像素&#xff08;原Tob design&#xff09; https://www.shuzixs.com/#/works 有丰富的可视化界…

可视化:这十个数据可视化工具软件平台你必须知道

工欲善其事&#xff0c;必先利其器&#xff01;选择一款好的数据可视化工具&#xff0c;除了能提高数据可视化的工作效率&#xff0c;还能让你的数据以酷炫的图表形式展示出来&#xff0c;从而方便后续的数据分析工作。随着可视化技术的发展&#xff0c;国内国外出现了很多数据…

数据可视化UI设计素材资源文件sketch大屏可视化数据展示

数据是企业的上帝之眼&#xff0c;数据可视化就发挥了很大的作用。很多从事B端产品设计的小伙伴在日常工作中遇到数据可视化的场景比较多&#xff0c;也得益于PSD素材较多&#xff0c;所以用的设计工具大多是Photoshop&#xff0c;但Photoshop用于UI设计太过臃肿&#xff0c;图…

可视化大屏设计工具平台

1、阿里云DataV 阿里云出品的专业大屏数据可视化服务&#xff0c; 旨在让更多的人看到数据可视化的魅力&#xff0c;帮助非专业的工程师通过图形化的界面轻松搭建专业水准的可视化应用&#xff0c;满足您会议展览、业务监控、风险预警、地理信息分析等多种业务的展示需求。 h…

基于Yolov7图像识别的CF自瞄

提示&#xff1a;本文只做学习和交流使用&#xff0c;本人不推荐使用&#xff0c;还是老老实实靠技术上分吧。 文章目录 前言 一、yolov7环境配置 二、yolov7代码与预训练模型下载 三、采集CF图像数据集 四、CF图像数据集标注 1.Anconda环境使用pip安装labelimg 2、数据…

阿里国际站商品发布odoo插件

阿里国际站商品发布odoo插件&#xff0c;支持全新的阿里api接口&#xff0c;支持手动批量&#xff0c;预约发布&#xff0c;功能强大&#xff0c;可支持odoo13 14版本,自行开发&#xff0c;提供源码&#xff0c;售后支持服务。 可试用。

iOS 集成阿里百川最新版(3.1.1.96) 实现淘宝授权登录以及调用淘宝客户端商品详情页...

公司最近要做第三方登录&#xff0c;由于是做导购项目&#xff0c;必不可少的有淘宝的授权登录。本来就是一个授权登录&#xff0c;没什么大不了的。但淘宝的无线开放业务——阿里百川更新的最新版本3.1.1.96&#xff0c;开发文档不是不详细&#xff0c;是很不详细。于是乎就自…

电商直播风起,阿里再次大象起舞

“大象跳舞”这个说法被大家所熟知&#xff0c;始自于IBM前任CEO郭士纳的自传《谁说大象不能跳舞&#xff08;Who Says Elephants Can’t Dance&#xff1f;&#xff09;》&#xff0c;在这本书中&#xff0c;郭士纳详实地介绍了他如何通过一步步改革让IBM起死回生&#xff0c;…

阿里巴巴发布AliGenie 语音开放平台 “智联网”战略又落一子

10月12日消息&#xff0c;在2017杭州•云栖大会上&#xff0c;阿里巴巴人工智能实验室发布了AliGenie 开放平台&#xff0c;主要包括三大部分&#xff1a;精灵技能市场、硬件开放平台、行业解决方案&#xff0c;全面赋能智能家居、新制造、新零售、酒店、航空等服务场景。 阿里…