资讯动态

如何可视化TIPSv1-So400m/14的1024个空间Patch特征:PCA可视化实战

发布时间:2026/10/22 1:56:37 来源:尧图企业网站定制
【免费下载链接】tipsv1-so400m14项目地址https://ai.gitcode.com/hf_mirrors/google/tipsv1-so400m14点击查看免费下载TIPSv1-So400m/14TIPSICLR 2025 提出的对比式视觉语言模型最大的亮点之一就是它能输出带空间信息的图像特征一张 448×448 的图片会被切成 1024 个 Patch每个 Patch 得到一个 1152 维向量。这些高维向量肉眼当然看不见但用PCA 降到 3 个主成分就能画出一张语义地图直观看出模型认为图片的哪些区域在表达什么。本文将带你从加载模型到跑通 PCA 可视化手把手完成 TIPSv1-So400m/14 的 1024 个空间 Patch 特征可视化。一、TIPSv1-So400m/14 是什么TIPSText-Image Pre-training with Spatial awareness是 Google DeepMind 的视觉语言模型家族So400m/14是其中的 v1 版本视觉编码器ViT-So400m/1427 层 Transformerpatch size 为 14共约 413M 参数文本编码器27 层 Transformer约 448M 参数输入分辨率原生 448×448图像归一化到[0, 1]不需要ImageNet 均值/方差对齐方式对比学习图像全局向量与文本向量在同一 1152 维空间对齐关键区别在于普通 CLIP 类模型只给你一个整图向量而 TIPS 的 Patch 特征保留了位置信息这正是空间特征可视化zero-shot 分割、语义 Map的基础。模型配置可以在 config.json 中查看例如vision_config中的image_size: 448、patch_size: 14config.json视觉骨干的实现见 image_encoder.py 中的vit_so400m工厂函数。二、1024 个 Patch 特征是怎么来的这是理解可视化的前提算一笔简单的账448 ÷ 14 32每行/每列的 Patch 数 32 × 32 1024 个 Patch调用model.encode_image(pixel_values)后会返回一个TIPSv2ImageOutput对象包含三类输出输出字段形状含义cls_token(B, 1, 1152)全局图像向量与文本塔对齐用于零样本分类register_tokens(B, 1, 1152)第二个 CLS token在合成 caption 上训练patch_tokens(B, 1024, 1152)每个 Patch 的空间特征本文的主角其中patch_tokens的定义与提取逻辑分别在 modeling_tips.py 和 modeling_tips.py 中 官方说明做零样本分类要用第一个cls_token在 web alt-text 上训练做空间可视化则用patch_tokens。详见 README.md 的 Visualize spatial features 一节。三、PCA 可视化完整步骤可运行代码1. 安装依赖pip install transformers torch torchvision sentencepiece scikit-learn requests2. 加载模型from transformers import AutoModel model AutoModel.from_pretrained(google/tipsv1-so400m14, trust_remote_codeTrue) model.eval()3. 准备图片并编码图片只需ToTensor()归一化到[0, 1]不要做 ImageNet 归一化import requests from PIL import Image from torchvision import transforms url https://huggingface.co/spaces/google/TIPSv2/resolve/main/examples/zeroseg/pascal_context_00049_image.png image Image.open(requests.get(url, streamTrue).raw).convert(RGB) transform transforms.Compose([ transforms.Resize((448, 448)), transforms.ToTensor() ]) pixel_values transform(image).unsqueeze(0) out model.encode_image(pixel_values) print(out.patch_tokens.shape) # (1, 1024, 1152)4. PCA 降到 3 通道并映射成彩色图核心只有两行先fit_transform到 3 个主成分再 reshape 回 32×32 的空间网格最后用 sigmoid 把数值压到[0, 1]提升对比度import numpy as np from sklearn.decomposition import PCA feat out.patch_tokens[0].detach().cpu().numpy() # (1024, 1152) rgb PCA(n_components3, whitenTrue).fit_transform(feat) # (1024, 3) rgb rgb.reshape(32, 32, 3) rgb 1 / (1 np.exp(-2.0 * rgb)) # sigmoid 映射到 [0, 1]对比度更好5. 显示并保存32×32 直接看会有点马赛克用最近邻放大到 448 即可对齐原图网格import matplotlib.pyplot as plt rgb_big np.kron(rgb, np.ones((14, 14, 1))) # 每个 Patch 放大 14×14 像素 fig, axes plt.subplots(1, 2, figsize(10, 5)) axes[0].imshow(image) axes[0].set_title(Original) axes[1].imshow(rgb_big) axes[1].set_title(PCA visualization of 1024 spatial patches) for ax in axes: ax.axis(off) plt.tight_layout() plt.savefig(tipsv1_pca_map.png, dpi150) plt.show()四、效果解读与调参技巧颜色 语义同一颜色区域的 Patch 在特征空间中距离更近通常对应同一语义区域如道路、天空、车辆所以这张图也常被当作 zero-shot 语义分割的起点。whitenTrue很重要白化让三个主成分方差归一否则某个方向会主导整张图的颜色。sigmoid 系数可调-2.0 * rgb中的系数控制对比度想更锐利可加大到 3~4。不同分辨率输入只要是 14 的整数倍即可模型会自动对位置编码做双线性插值见 image_encoder.py 的interpolate_pos_encoding此时reshape的网格尺寸要相应改成H/14, W/14。保存为分割 Mask如果只想得到类别 Mask可对 Patch 特征与多个文本查询如F.normalize(model.encode_text(classes))做相似度取 argmax思路与 README 的零样本分类一致。五、常见问题 FAQQ1为什么一定是 1024 个 Patch因为 448÷1432网格是 32×32。若换分辨率如 336×336Patch 数就是 24×24576。Q2cls_token和register_tokens该用哪个与文本塔对齐、做零样本分类用第一个cls_tokenregister_tokens由合成 caption 训练主要用于内部计算可视化空间特征时两者都不参与。Q3没有 GPU 能跑吗So400m 约 413M 视觉参数单张 448×448 图片在 CPU 上也能完成一次前向只是耗时较长建议使用torch.no_grad()encode_image内部已带。六、相关文件资料文件说明README.md模型介绍、用法示例与 PCA 可视化官方代码config.json视觉/文本双塔结构配置1152 维、27 层、patch 14modeling_tips.pyTIPSv2Model封装encode_image/encode_text入口image_encoder.pyViT-So400m/14 视觉编码器实现text_encoder.py27 层文本 Transformer 与 SentencePiece 分词configuration_tips.pyTIPSv2Config配置类定义model.safetensors预训练权重文件tokenizer.modelSentencePiece 词表跑通这一遍后你就把 TIPSv1-So400m/14 最独特的空间感知能力看明白了——1024 个 Patch 特征经 PCA 三通道映射就能把不可见的高维语义变成一张肉眼可读的彩色地图 。赞分享【免费下载链接】tipsv1-so400m14项目地址https://ai.gitcode.com/hf_mirrors/google/tipsv1-so400m14点击查看免费下载相关推荐看见图像的空间灵魂tipsv1-g14-lowres 逐 patch 空间特征 PCA 可视化技巧看见图像的空间灵魂tipsv1 g14 lowres 逐 patch 空间特征 PCA 可视化技巧 TIPSText Image Pre trainin看见图像在思考什么tipsv1-l14空间特征PCA可视化完全教程附32×32特征图代码看见图像在思考什么tipsv1 l14空间特征PCA可视化完全教程附32×32特征图代码 tipsv1 l14 是 Google 开源的 TIPSTex3行代码实现视觉模型特征可视化timm库特征空间降维全指南3行代码实现视觉模型特征可视化timm库特征空间降维全指南 你是否曾困惑于深度神经网络如何看待图像训练好的模型输出分类结果时内部特征空间究竟呈现怎样的人工智能计算机视觉深度学习上一篇终极B站成分检测器完整指南3秒看透评论区用户的真实身份下一篇为什么你的Windows和Office激活总是失败5分钟掌握KMS智能激活的核心技巧创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑