1. 项目概述与核心瓶颈最近在折腾多模态大语言模型MLLM的视觉感知任务时我发现一个挺有意思的现象模型明明接入了各种强大的视觉专家工具比如DepthAnything做深度估计LoFTR做特征匹配但任务表现就是上不去。这感觉就像给一个顶级厨师配了全套米其林厨房设备结果他只用菜刀切了个黄瓜其他高级功能全浪费了。问题出在哪我仔细复盘了论文《Don’t Show Pixels, Show Cues: Unlocking Visual Tool Reasoning in Language Models via Perception Programs》以及自己的一些实验发现核心瓶颈其实不在工具本身也不在模型大小而在于我们给模型“喂”信息的方式。MLLM无论是GPT-5 Mini、Gemini 2.5 Pro还是开源的InternVL、Qwen3VL其本质是语言模型。它们最擅长处理和理解的是结构化的、符号化的语言信息。然而当我们把视觉工具如深度估计器、光流计算器的输出——通常是高维、密集的像素级数据比如一张HxW的深度图每个像素一个浮点数——直接塞给MLLM时就产生了一种根本性的“表征错配”。模型需要从这一大堆数字里费力地“解读”出我们人类一眼就能看出的“线索”哪个物体更近相机在向左还是向右移动这两张图的哪个点是对应的这种错配导致了几个典型问题信息过载与噪声一张640x480的深度图有超过30万个数据点对MLLM的文本序列而言是巨大的噪声和干扰。推理负担转移模型被迫执行本应由预处理步骤完成的“特征提取”工作从像素中归纳高级语义这并非其设计初衷。语言先验主导当视觉信号难以解析时模型会倾向于依赖训练数据中的语言统计规律先验来“猜”答案而不是基于真实的视觉证据进行推理。论文中的实验也证实了这一点即使提供了精确的深度图GPT-5 Mini也无法正确恢复出 patch 之间的远近顺序。因此解决问题的关键思路变得清晰我们需要一个“翻译官”将视觉工具输出的“机器视觉语言”像素、向量场翻译成MLLM母语的“自然语言摘要”。这就是Perception ProgramsP2的核心思想。它不是训练一个新模型也不是设计复杂的工具调用链而是一种训练无关、模型无关的表示层转换方法。P2将原始工具输出重构成一个紧凑的、结构化的、基于文本的“程序”或“摘要”明确告诉模型有什么线索What它在哪Where以及可选的不同部分之间有什么关系How。2. Perception ProgramsP2的设计哲学与通用框架P2的设计非常巧妙它没有引入任何新的神经网络参数而是定义了一套统一的、可跨模态泛化的“语言原生”表示规范。你可以把它理解为一套针对视觉信息的“结构化数据交换格式”就像JSON或YAML之于通用数据但它是专门为MLLM的阅读理解而优化的。2.1 核心设计原则从像素到符号P2的构建基于一个简单的观察人类在解决视觉问题时并不会在脑中“渲染”整个像素网格。我们提取的是高级的、符号化的线索。例如判断深度时我们关注的是“A物体挡住了B物体的一部分所以A更近”判断相机运动时我们关注的是“背景中的树在向左移动所以相机在向右平移”。P2的目标就是将工具输出的密集数据压缩成这种符号化的线索描述。其通用框架包含几个核心组件基元Primitives这是构成摘要的基本单元集合P。每个基元p代表图像中的一个有意义的空间支撑区域Sp可以是一个网格块、一个点、一个检测框等。规范化位置Normalized Location为了消除图像分辨率的影响所有空间坐标都被归一化到一个固定的范围如[0, 1000]。对于一个点(x, y)其规范化坐标为(floor(1000*x/W), floor(1000*y/H))。对于区域则使用其中心点。读取值Read-out这是核心代表从该基元对应的视觉模态数据中提取出的关键信息rp。对于深度可能是该区域的最小/最大深度值对于光流可能是平均流动方向“左”或“右”对于物体检测则是置信度分数。标签Label可选用于补充说明如物体类别。关系Relations可选一组描述基元之间关系的三元组(pa, π, pb)例如(patch_12, in-front-of, patch_13)。这显式地编码了空间或语义关系进一步降低了模型的推理负担。最终一个P2实例被序列化为一个YAML风格的文本块。这种格式对MLLM极其友好因为它本质上是一段结构清晰的文本模型可以像阅读一段描述性文字一样直接解析其中的事实线索、位置、关系并进行逻辑推理。2.2 构建算法与实操要点P2的构建过程是确定性的、无需学习的。其通用算法如论文中Algorithm 1所示可以概括为以下几步我在实现时也严格遵循了这个流程基元提取根据任务和模态定义如何从原始数据D深度图、光流场、匹配点对等中划分出基元。例如对于深度和光流通常将图像划分为P x P的规则网格每个网格单元就是一个基元。对于物体检测每个检测框就是一个基元。信息读取遍历每个基元p从其空间支撑区域Sp中计算读取值rp。这是最关键的一步决定了摘要的信息密度和有效性。计算方式必须与任务高度相关。关系提取可选基于所有基元的读取值计算并生成关系三元组。通常需要设定一个阈值τ来过滤掉噪声引起的微小差异。序列化输出将上述所有信息基元集合、每个基元的(p, cp, rp, bp)、关系集合按照预定义的模板格式化为文本。实操心得网格粒度选择网格大小P是一个重要的超参数。太粗如3x3会丢失大量细节太细如32x32则会使摘要变得冗长失去“摘要”的意义并可能重新引入噪声。论文中的实验表明对于深度任务10x10到16x16的网格能在信息保留和摘要简洁性之间取得很好的平衡。在实际应用中建议根据任务复杂度进行网格搜索。一个实用的启发性规则是确保每个网格单元大致对应一个可能感兴趣的语义区域如一个物体或物体的一部分。3. 六大视觉模态的P2实例化详解P2框架的强大之处在于其通用性。下面我将结合论文和自身实验详细拆解六个BLINK任务中P2的具体实现。这是将理论落地的核心。3.1 相对深度估计任务给定一张图像和几个标记点A, B, C...判断这些点的相对远近顺序。工具单目深度估计模型如DepthAnything。输出为与图像同尺寸的深度图D(x, y)值越大表示越近。P2实例化基元将深度图划分为P x P的网格。每个网格单元Sp是一个基元。读取值rp对于每个网格记录该区域内深度的最小值min(D)和最大值max(D)。rp [min_depth, max_depth]。提供范围而非单一均值能保留深度变化的区间信息对判断“前景物体边缘与背景”的关系尤其有用。关系对于相邻的网格单元(a, b)计算它们的平均深度μa和μb。如果μa μb ττ为一个小的容差阈值如0.05则生成关系(a, in-front-of, b)反之则生成(b, in-front-of, a)。这显式地编码了局部深度顺序。输出示例primitives: - id: patch_0_0 center: [120, 80] depth_range: [0.85, 0.92] - id: patch_0_1 center: [120, 240] depth_range: [0.70, 0.78] ... relations: - [patch_0_0, in-front-of, patch_0_1] - [patch_1_2, behind, patch_1_3]给模型的提示Prompt在提供了几个示例后最终的提示会包含图像、问题“点A、B、C哪个最近”、点的坐标也以P2格式提供以及最重要的——整个图像的深度P2摘要。模型的任务就变成了在P2摘要中查找每个点所在区域或最近区域的深度范围并利用显式的关系网络进行排序推理。3.2 多视角推理相机运动方向任务给定一段视频的两帧判断相机是向左还是向右移动。工具光流估计模型如RAFT。输出为光流向量场F(x, y) (u, v)其中u代表水平位移。P2实例化基元同样划分为P x P网格。读取值rp计算每个网格内水平光流分量u的平均值ū。rp ‘left’ if ū 0 else ‘right’。这里进行了极大的抽象只关心方向不关心具体位移大小因为任务本质是二分类决策。关系此任务通常不需要显式关系因为“向左”或“向右”的投票已经足够。输出示例primitives: - id: patch_0_0 center: [150, 200] flow_direction: right - id: patch_0_1 center: [450, 200] flow_direction: left - id: patch_1_0 center: [150, 600] flow_direction: right ...实操技巧背景区域的光流方向通常更可靠。可以在生成P2后简单统计哪个方向的出现频率更高作为人工验证。但MLLM能够从P2中自己发现这一点例如它可能会推理“图像中央和下方的多数区域显示向右运动尽管左上角有少量向左运动的噪声但整体趋势表明相机在向左移动因为物体在画面中向右移。”3.3 视觉对应匹配任务给定两张在不同条件下如光照、视角拍摄的同一场景图片以及左图中的一个点在右图中找出其对应点。工具稠密特征匹配模型如LoFTR。输出为一组匹配点对{((x1_i, y1_i), (x2_i, y2_i))}。P2实例化基元每个匹配点对就是一个基元。无需划分网格。读取值rp这里的设计很巧妙。我们将左图点的规范化坐标作为基元的位置cp将右图对应点的规范化坐标作为读取值rp。即cp norm(x1, y1),rp norm(x2, y2)。输出示例primitives: - id: match_1 src_point: [255, 128] # 左图点坐标 tgt_point: [280, 130] # 右图对应点坐标 (rp) - id: match_2 src_point: [400, 300] tgt_point: [420, 310] ...为什么有效当MLLM需要为左图一个特定点(x_q, y_q)在右图候选点{A, B, C, D}中找匹配时它可以在P2中寻找src_point最接近(x_q, y_q)的匹配项然后查看其tgt_point与哪个候选点最接近。这本质上将复杂的图像匹配问题转化为了P2空间内的最近邻搜索问题而MLLM非常擅长这种基于距离的比较和推理。3.4 拼图任务任务给出一张右下角缺失的图像以及两个候选补丁A和B选择哪个能正确补全图像。工具计算图像块之间在结构、边缘、颜色等方面的相似度如SSIM, 梯度互相关等。P2实例化基元定义四个基元(left, A),(top, A),(left, B),(top, B)。分别代表候选补丁A的左边缘、上边缘以及B的左边缘、上边缘。读取值rp对于每个基元如(left, A)计算原图缺失区域相邻的左侧边界条带与候选补丁A的左侧边缘条带之间的综合相似度得分0到1之间。输出示例primitives: - id: left_edge_A candidate: A edge_type: left similarity_score: 0.87 - id: top_edge_A candidate: A edge_type: top similarity_score: 0.92 - id: left_edge_B candidate: B edge_type: left similarity_score: 0.45 - id: top_edge_B candidate: B edge_type: top similarity_score: 0.38模型推理模型接收到这个摘要后推理变得直截了当“候选补丁A的左边缘和上边缘与缺失区域的连续性都非常好分数高而B的边缘匹配度很差。因此A是正确的选择。” P2将需要像素级比较的全局图像一致性判断简化为了几个关键边缘的分数比较。3.5 物体定位任务在图像中定位特定描述的物体如“最左边的杯子”。工具开放词汇目标检测器如LLMDet或GroundingDINO。输出一系列检测框包含类别标签、置信度和坐标。P2实例化基元每个检测框为一个基元。读取值rp检测置信度。标签bp物体类别。位置cp检测框的规范化坐标[x0, y0, x1, y1]。输出示例primitives: - id: obj_1 label: cup confidence: 0.95 bbox: [120, 350, 180, 420] - id: obj_2 label: cup confidence: 0.88 bbox: [450, 320, 520, 410] - id: obj_3 label: book confidence: 0.97 bbox: [300, 200, 600, 300]优势相比于输入原始的检测结果列表或更糟糕的——让MLLM直接从图像中找出物体P2提供了结构化、归一化且带有语义标签的信息。模型要回答“最左边的杯子”只需找出所有label为‘cup’的基元比较其bbox的x0值左边界即可。3.6 语义对应匹配任务与视觉对应类似但更注重语义层面的匹配如不同实例的同一类物体。工具语义特征提取器如DIFT。计算源图一点与目标图多个候选点之间的特征相似度。P2实例化基元每个目标图候选点A, B, C, D为一个基元。读取值rp该候选点与源图点的特征相似度得分。位置cp候选点的规范化坐标。输出示例primitives: - id: candidate_A point: [320, 150] similarity_score: 0.12 - id: candidate_B point: [500, 160] similarity_score: 0.85 - id: candidate_C point: [310, 400] similarity_score: 0.09 - id: candidate_D point: [480, 380] similarity_score: 0.21推理简化任务直接简化为“找出similarity_score最高的基元”。P2完美地将基于深度特征向量的相似度计算问题转换为了MLLM最擅长的在结构化数据中查找极值的问题。4. 实验配置、结果分析与实战启示论文在BLINK基准的六个感知任务上进行了全面评估对比了三种设置标准仅图像问题、原始工具图像问题原始工具输出、P2图像问题P2摘要。使用的模型涵盖了前沿闭源模型GPT-5 Mini, Gemini 2.5 Pro和主流开源模型InternVL3.5-2B/4B, Qwen3VL-4B。4.1 核心结果解读P2带来显著且一致的提升在所有模型和所有任务上P2都大幅超越了“标准”和“原始工具”设置。例如GPT-5 Mini在多视角推理任务上准确率从41.35%标准和45.11%原始工具跃升至86.47%在相对深度任务上从52.42%/65.05%提升至81.45%。这强力证明了表征转换的有效性。原始工具输入可能有害值得注意的是在某些情况下如Gemini 2.5 Pro在多视角推理上提供原始工具输出反而比只给图像表现更差33.83% vs 48.12%。这说明未经处理的密集像素信息对MLLM不仅是无用的更是干扰性的噪音。P2彻底消除了这种负面影响。让小模型媲美大模型配备P2的40亿参数开源模型InternVL3.5-4B, Qwen3VL-4B在多项任务上达到了甚至超过了使用原始工具的千亿参数前沿模型GPT-5 Mini, Gemini 2.5 Pro的性能。例如InternVL3.5-4BP2在多视角推理上达到94.73%超过了GPT-5 Mini原始工具的45.11%。这意味着P2用极低的成本无需训练将小模型的感知推理能力提升到了一个新的高度。超越复杂的前沿方法P2的性能也显著超过了需要训练、强化学习或复杂智能体框架的方法如LATTE、Thyme、Visual Sketchpad、MMFactory等。这凸显了解决表征对齐这一根本瓶颈有时比设计更复杂的模型或流程更有效。4.2 关键分析模型真的在“看”吗论文通过一系列精巧的分析实验深入探究了MLLM处理视觉信息的本质深度模态分析研究者让GPT-5 Mini根据深度图“复述”出P2摘要即完成深度值填空然后评估其复述的P2在真实任务上的有效性。结果发现复述的P2中各区域深度值的相对排序Kendall‘s Tau随着网格变细而迅速下降至接近0。这意味着模型无法从密集深度图中可靠地提取出空间顺序信息。使用复述的P2进行HardBLINK任务准确率始终徘徊在50%左右随机水平而使用真实P2则随着网格变细性能提升。这证明性能提升并非来自模型隐含的深度理解能力而是完全依赖于P2提供的、模型可读的显式顺序信息。视觉对应分析让模型根据连线图复述匹配点的坐标。结果显示模型经常犯一种“偷懒”错误直接将左图点的坐标复制为右图点的坐标而不是根据视觉内容进行推断。这再次说明模型在处理原始视觉对应数据时倾向于走捷径而非真正理解。这些分析从根本上解释了为什么P2有效它绕过了MLLM不擅长的低级视觉特征提取直接为其提供了高级的、符号化的、与语言推理兼容的视觉证据。4.3 实战部署指南与注意事项基于论文和我的实践经验如果你想在自己的项目中应用P2思想可以遵循以下步骤识别任务与模态明确你的任务是否属于“感知推理”型——即答案高度依赖于从图像中提取的某种物理或几何属性深度、运动、对应关系、相对位置等。如果是那么P2很可能适用。选择合适的专家工具为你的目标模态选择一个可靠的、离线的视觉工具深度估计、光流、特征匹配、检测器等。工具的质量上限决定了P2信息的上限。设计P2摘要模式这是最具创造性的部分。你需要思考基元是什么网格、点、框、区域从工具输出中提取什么作为rp方向、区间、分数、坐标、标签是否需要关系顺序、相邻、相似如何序列化YAML、JSON、自定义的清晰文本格式核心原则是提取对最终决策最关键的信息并丢弃冗余的、低级的细节。集成到推理流程预处理阶段运行视觉工具生成原始输出。转换阶段运行你编写的P2生成器将原始输出转换为文本摘要。提示构建将问题、图像或图像引用、以及P2摘要一起构建成最终提示词输入MLLM。务必提供少量示例few-shot教会模型如何解读P2格式。迭代与优化网格大小/基元粒度通过验证集调整找到信息量与简洁性的平衡点。读取值计算尝试不同的统计量均值、中值、最值、方差。对于深度[min, max]可能比单一均值更好。提示词工程明确指示模型“基于提供的Perception Program进行推理”并给出推理格式的要求。重要避坑指南工具误差传播P2只是信息的“翻译官”如果上游工具出错如深度估计严重错误P2会将错误信息忠实传递。因此选择鲁棒的工具至关重要。模态局限性P2目前针对的是有明确工具可解的感知任务。对于更开放、需要复杂常识或世界知识融合的视觉问答VQAP2可能不足需要与其他技术结合。计算开销P2生成本身几乎无开销但依赖的视觉工具如深度估计可能有计算成本。需要在流水线中考虑。过度抽象风险过度压缩信息可能导致丢失关键细节。例如在非常复杂的场景中仅用“左/右”表示光流可能不够可能需要加入“运动幅度”的粗略量化如“轻微左移”、“大幅右移”。5. 延伸思考与未来方向Perception Programs 为我们打开了一扇窗让我们看到多模态推理的瓶颈可能不在于模型规模或工具数量而在于模态间的“接口”设计。它本质上是一种“特征工程”但是是在一个更高级的、面向大模型语义空间的层面上。我个人在实践中体会到这套方法的优雅之处在于其简洁性和通用性。它不需要动模型不需要漫长的训练只需要对任务和工具输出有深刻的理解就能设计出有效的“翻译”规则。这给很多资源有限但想快速提升MLLM感知能力的团队提供了捷径。未来的探索方向可能会包括自动化P2生成能否用一个小型模型或规则系统自动为新的视觉任务设计出最优的P2摘要模式多模态P2融合对于需要结合深度、检测、分割等多种线索的任务如何设计统一的P2框架来融合不同模态的摘要动态P2根据问题的不同动态决定摘要的粒度和重点。例如对于“前景物体是什么”可能提供物体检测P2对于“它离摄像头多远”则切换到深度P2。超越视觉这一思想是否可以扩展到其他模态如音频将频谱图转为“音高-时间”摘要、传感器数据将IMU数据转为“动作序列”描述等。总而言之Perception Programs 提醒我们在追求更大模型、更多工具的同时不妨回头审视一下信息传递的路径是否畅通。有时候让模型“听得懂”比给它“更多的声音”更重要。通过精心设计一种模型能理解的语言来描述世界我们就能更有效地激发现有大模型的潜力。