torchshow

torchshow

一行代码实现计算机视觉数据可视化

TorchShow是一个为计算机视觉项目开发的开源可视化工具。它能自动识别并处理各种张量类型,包括RGB图像、灰度图像、掩码等。支持单张和批量图像、视频、光流等多种数据的可视化。TorchShow以一行代码实现数据可视化的简洁特性,显著提升了项目开发和调试效率。适用于需要频繁验证张量数据的研究人员和开发者。

TorchShow张量可视化计算机视觉调试工具图像处理Github开源项目
<div align="center">

TorchShow标志

PyPI版本 下载量 许可证

</div>

Torchshow只需一行代码即可可视化您的数据。它旨在帮助调试计算机视觉项目。

Torchshow自动推断张量的类型,如RGB图像、灰度图像、二值掩码、分类掩码(自动应用调色板)等,并在需要时执行必要的反归一化。

支持的类型:

  • RGB图像
  • 灰度图像
  • 二值掩码
  • 分类掩码(整数标签)
  • 多张图像
  • 视频
  • 多个视频
  • 光流(由flow_vis提供支持)

v0.5.1新特性

  • 修复np.int弃用问题。
  • 可在可视化张量列表时指定nrowsncols
  • 修复保存图像时出现的意外空白。

查看完整的更新日志

安装

PyPI安装:

pip install torchshow

或者,您可以直接从此仓库安装以测试最新功能。

pip install git+https://github.com/xwying/torchshow.git@master

基本用法

TorchShow的使用非常简单。只需导入包并用一行代码可视化您的数据:

import torchshow as ts ts.show(tensor)

如果您在没有显示器的服务器上工作,可以使用ts.save(tensor)命令(自0.3.2版本起)。

import torchshow as ts ts.save(tensor) # 图像将保存在./_torchshow/***.png下 ts.save(tensor, './vis/test.jpg') # 您可以指定保存路径。

API参考

请查看此页面获取详细的API参考。

示例

目录

1. 可视化图像张量

可视化类图像张量并不困难,但可能会很繁琐。您通常需要将张量转换为具有适当形状的NumPy数组。在许多情况下,图像在数据加载器中被归一化,这意味着您必须对其进行反归一化才能正确显示。

如果您需要经常验证张量的外观,TorchShow是一个非常有用的工具。

使用Matplotlib使用TorchShow
图像张量已被归一化,所以Matplotlib无法正确显示它。TorchShow自动进行转换。

2. 可视化掩码张量

对于与语义分割或实例分割相关的项目,我们经常需要可视化掩码张量——无论是真实标注还是模型预测。使用TorchShow可以轻松完成这一任务。

使用Matplotlib使用TorchShow
不同实例具有相同的颜色。某些类别缺失。TorchShow在可视化过程中自动应用调色板。

3. 可视化批量张量

当张量是一批图像时,TorchShow会自动创建网格布局来可视化它们。也可以手动控制行数和列数。

4. 可视化特征图

如果输入张量有超过3个通道,TorchShow将会像批次可视化一样可视化每个通道。这对于可视化特征图很有用。

5. 使用自定义布局可视化多个张量

TorchShow提供了更灵活的方式来使用自定义布局可视化多个张量。

要控制布局,将张量放入列表的列表中作为二维数组。以下示例将创建一个2 x 3的网格布局。

ts.show([[tensor1, tensor2, tensor3],
         [tensor4, tensor5, tensor6]])

值得一提的是,不需要填满网格中的所有位置。以下示例在2 x 3的网格布局中可视化5个张量。

ts.show([[tensor1, tensor2],
         [tensor3, tensor4, tensor5]])

6. 查看像素的更丰富信息

从v0.4.1版本开始,TorchShow允许你通过简单地将鼠标悬停在感兴趣的像素上来获取更丰富的信息。这对于某些类型的张量(如分类掩码和光流)非常有帮助。

目前,TorchShow显示以下信息:

  • Mode:可视化模式。
  • Shape:张量的形状。
  • XY:鼠标光标的像素位置。
  • Raw:(X, Y)位置的原始张量值。
  • Disp:(X, Y)位置的显示值。

注意:如果信息没有显示在状态栏上,尝试调整窗口大小,使其更宽。

可以通过ts.show_rich_info(False)关闭此功能。

7. 将张量可视化为视频片段

张量可以被可视化为视频片段,如果张量是一系列帧,这非常有帮助。这可以使用show_video函数完成。

ts.show_video(video_tensor)

也可以在自定义网格布局中可视化多个视频。

8. 在Jupyter Notebook中显示视频动画

TorchShow将视频片段可视化为matplotlib.func_animation对象,默认情况下可能无法在notebook中显示。以下示例展示了一个简单的技巧来显示它。

import torchshow as ts from IPython.display import HTML ani = ts.show_video(video_tensor) HTML(ani.to_jshtml())

9. 可视化光流

TorchShow支持可视化光流(由flow_vis提供支持)。以下是使用VSCode调试器远程连接到SSH服务器(配置了X-server)的演示。在Jupyter Notebook中运行也受支持。

10. 更改通道顺序(RGB/BGR)

默认情况下,TensorFlow以RGB模式可视化图像张量,如果你使用OpenCV加载图像,可以将设置切换到BGR模式。

ts.set_color_mode('bgr')

11. 更改反归一化预设

图像张量可能已经通过归一化函数进行了预处理。如果未指定,torchshow将自动将其重新缩放到0-1。

要更改为ImageNet归一化预设,使用以下代码。

ts.show(tensor, unnormalize='imagenet')

要使用自定义的均值和标准差值,使用以下命令。

ts.set_image_mean([0., 0., 0.]) ts.set_image_std([1., 1., 1.])

注意,一旦设置,torchshow将在后续可视化中使用这个值。这很有用,因为通常整个项目只会使用一种归一化预设。

12. 叠加可视化

在计算机视觉项目中,我们经常会处理场景的不同表示,包括但不限于RGB图像、深度图像、红外图像、语义掩码、实例掩码等。有时,叠加这些不同的数据进行可视化会非常有帮助。从v0.5.0版本开始,TorchShow提供了一个非常有用的API ts.overlay()用于此目的。

在下面的例子中,我们有一个RGB图像和其对应的语义掩码。让我们首先使用TorchShow查看它们的样子。

import torchshow as ts ts.show(["example_rgb.jpg", "example_category_mask.png"])

现在我想将遮罩覆盖在RGB图像上以获得更多见解,使用TorchShow可以通过一行代码轻松实现。

import torchshow as ts ts.overlay(["example_rgb.jpg", "example_category_mask.png"], alpha=[1, 0.6])

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

热门AI工具AI办公办公工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

模型训练热门AI工具内容创作智能问答AI开发讯飞星火大模型多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

热门AI工具生产力协作转型TraeAI IDE
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

AI助手热门AI工具AI创作AI辅助写作讯飞绘文内容运营个性化文章多平台分发
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多