
做了这么多年设计交付和工艺评审你会发现一个很微妙的事实图纸上真正致命的往往不是结构而是标注。前阵子有朋友半夜打电话说一批零件在加工现场被退回来了工艺那边拿着图纸跟设计吵了一上午——原因就是图上粗糙度标注和工艺路线对不上尺寸公差引用的基准也写错位置。他说改图本身不难难的是整卷图纸几百条标注靠人眼根本不可能逐条盯完。这个事儿后来我一直在琢磨能不能让视觉语言模型VLM直接看图纸替我做一轮“标注合规性审查”不合格就给出具体修改步骤事实证明这条路不仅能走通而且实际效果远比想象的靠谱。VLM也就是 Vision-Language Model视觉语言模型是目前工程文档智能化里最值得投入的方向之一。它同时具备图像理解和文本推理能力你直接把图纸导出的 PNG 或者 PDF 渲染图丢给它再配上一句“当前图纸是否符合标注要求如果不符合请给出修改步骤”它就能返回结构化的缺陷清单、违反的规则条目和修改建议。这篇文章把我做这套流程踩过的坑、验证过的设计思路、可以直接抄走的 Prompt 模板以及怎么处理多视图、标准冲突、幻觉数值这些问题原原本本整理出来。适合正在做图纸自动化审查、设计评审提效、工艺文件校验的工程师也适合对多模态模型落地好奇的技术同学。1. 项目背景与需求拆解1.1 图纸标注为什么必须较真图纸是设计、工艺、制造之间唯一认可的“通用语言”。这句话听过无数遍但在实际项目里真正吃透的人不多。一条线性尺寸漏标公差零件在机床上加工出来可能公差带完全失控一个粗糙度符号写成了 Ra6.3 而工艺要求是 Ra1.6表面处理成本直接翻倍焊接符号漏了坡口角度产线工人只能靠经验猜结果就是批量焊接缺陷。这些问题在出厂评审、工艺会签、来料检验环节反复出现根子不在某个人的态度而在人工审查本身存在效率上限。标注合规性不是“好看不好看”的问题它直接决定了一个零件能不能加工、能不能装配、能不能通过验收。国标体系里图纸标注涉及 GB/T 1182 几何公差、GB/T 131 表面结构、GB/T 4458 尺寸注法等多个标准一套装配图往往同时引用了十几份标准文件。审查者要做的实际上是一个非常重的多标准比对任务把图纸上几百条标注逐个与设计规范、企业标准、工艺要求核对。这个工作量靠肉眼逐条检查一天看二十张图已经到极限了。1.2 传统人工审查的“盲区”在哪我做过一个抽样统计连续三周让三位不同经验等级的工程师分别审查同一批 50 张零件图结果让人很意外——三位审查者发现的问题集合重叠率只有六成左右。也就是说同一张图纸不同人看能看到的问题并不相同。资深工程师能识别基准选择错误新工程师则更容易发现尺寸漏标但两者都会漏掉彼此发现的问题。传统审查的痛点可以归纳成四类。第一数量压力复杂装配图标注往往超过 300 条逐条核对已经超出一个人短时专注力的有效范围第二标准差异GB、ISO、ASME 并存不同客户和行业又有各自的附加要求人脑很难同时在线维护这么多规则第三跨视图一致性主视图、剖视图、局部放大图、明细栏之间需要逻辑自洽这种关联性判断对立体思维能力要求极高第四疲劳曲线长时间目检的漏检率会随连续审查时间快速上升这是生理限制跟责任心无关。1.3 VLM 技术解决了什么样的问题VLM 把“人工逐条核对”变成了“机器辅助审查”它最大的价值是零样本或少样本泛化能力。传统机器视觉方案要做图纸审查需要为每类标注训练一个检测器尺寸标注一个模型、粗糙度一个模型、形位公差一个模型然后还要写大量规则做逻辑判断。这套方案效果虽然稳定但开发周期长、维护成本高每换一个标准体系就要重新适配。VLM 完全不同。它把“看图”和“理解规则”两件事放在同一个模型里完成。你给它一张图纸再给它一段文本指令说“检查这张图是否符合这些规则”模型就能直接输出判断结果。这几年 GPT-4V、Qwen-VL、InternVL 等模型在图表理解、文档分析、工程图纸解读上的能力提升非常明显特别是对密集文本和结构化图形元素的识别已经能支撑生产级应用。它的价值不在于一次性能检查得多准而在于它把审查动作本身的边际成本降到了接近零。2. 技术原理VLM 是怎么理解图纸和标注的2.1 双模态输入的本质理解 VLM 的判断逻辑需要先懂它的输入输出机制。VLM 的核心结构通常包含三个部分视觉编码器负责把图像转换成特征向量序列文本编码器处理用户指令和规则文本跨模态融合模块负责把两类特征对齐融合最终由语言模型解码生成答案。这个机制决定了它判断图纸标注的方式和人眼完全不同。用一个生活化的类比来说图纸就像一张写满了字的海报VLM 不只是能认出海报上写了什么字它还能理解“这些文字的排版是否符合某种规则”这种抽象语义。你在指令里告诉它规则它把规则文本和图纸图像做逐层对齐匹配找出违反规则的具体区域然后把结论组织成自然语言输出。这个过程不是简单的模板匹配而是基于大规模预训练建立的跨模态语义理解。实际使用中有一个关键认知VLM 对图纸的理解深度取决于输入的图像质量、文本规则的清晰程度以及模型本身的参数规模。它不是一个黑盒魔法而是一个有明确输入输出边界的工具。你给它一张模糊的缩影图它再强也只能凭空猜测你给它一段含糊的规则描述它就很难判断哪些标注属于违规。理解这个边界是后面所有实操技巧的基础。2.2 图纸标注要求的结构化表达要让 VLM 正确判断“是否符合标注要求”必须把标注要求从自然语言拆解成结构化规则。我在项目里通常把图纸标注要求分成六个类别每一类对应一段明确的规则描述。尺寸标注类关注尺寸是否闭合、公差是否标注完整、是否出现尺寸链冲突几何公差类关注基准符号是否指向有效要素、公差带数值是否在合理范围、被测要素标注位置是否正确表面结构类关注粗糙度符号是否与工艺路线匹配、加工纹理方向符号是否合理焊接符号类关注坡口角度、焊接方法代号、焊缝位置标注是否完备标题栏与明细栏关注图号、材料牌号、版本号、签字栏是否填写齐全附加要求比如热处理硬度值范围、未注公差等级说明。结构化规则不是一个清单而是要包含“判断条件 期望值 违反后果”三个要素。举例来说一条完整规则应该是“线性尺寸若未标注公差检查标题栏是否声明未注公差按 GB/T 1804-m 执行若未声明则判定为标注缺失”。这样的规则描述方式VLM 才能准确执行。2.3 为什么大模型也会“看走眼”VLM 不是万能的我在实际测试中观察到几类典型失效模式。第一对极细小的工程符号不敏感比如形位公差框格里的基准字母在图像中被缩放到很小尺寸时识别准确率会明显下降第二数字数值的漂移比如把 Ra1.6 看成 Ra16把直径 25 看成 26这类错误在密集标注场景下尤其容易出现第三多视图关联能力受限模型在给定图像中能看到主视图和剖视图但可能无法准确判断剖切符号指向与剖视图内容是否一一对应第四谄媚倾向模型在不确定的时候倾向于给一个看起来合理但未经充分验证的答案。这些局限并不意味着技术不可用而是告诉我们设计系统时必须加一层人机复核机制。对于高价值高风险标注比如涉及安全的关键尺寸即使 VLM 给出“通过”结论也应该由人工做二次确认。这套“机器初审 人工抽检”的模式是当前阶段落地 VLM 审查最务实的路径。3. 实操流程从拿到图纸到给出修改步骤3.1 图纸预处理与视图拆分很多人第一步就做错了把整张 A0 图纸导出的 JPG 直接丢给 VLM然后抱怨识别效果差。原因很简单VLM 对图像的输入分辨率有限制A0 图纸在缩放到模型输入尺寸后原本清晰的字号可能变成几个像素点模型当然看不清。我验证过的可行方案是预处理三件套。第一导出分辨率设置CAD 软件导出 PNG 时把 DPI 设到 300确保原图在 100% 缩放时可直接阅读字号第二按视图区域拆图把整张图纸按主视图、剖视图、局部放大图、标题栏用脚本切割成多个子图每张子图单独送入模型审查第三字形保真优化如果图纸上有大量细线和小字号可以考虑在导出前关闭无关图层减少干扰信息。视图拆分这一步尤其重要。以我处理的典型零件图为例A3 图纸包含主视图、两个剖视图、一个局部放大图和标题栏。不拆分直接送模型模型会优先关注面积最大的主视图剖视图里的尺寸标注经常被忽略。拆分成子图后每个视图的标注密度显著降低模型的识别准确率有明显提升。这也是为什么我建议在预处理阶段多花一点时间做切割而不是通过堆算力解决。3.2 规则信息的注入方式VLM 不是标准库你写“请按照 GB/T 1182 检查”这句话模型可能对 GB/T 1182 的具体条文记忆不全甚至产生幻觉。规则注入的正确姿势是把本项目、本企业真正使用的关键规则以紧凑文本形式直接写在 Prompt 里。实操时我把规则组织成 JSON 结构整体粘贴进系统提示词。结构长这样每个规则对象包含类别、ID、描述、期望值三个字段。类别告诉模型这是哪类标注问题ID 用于后续结构化输出时引用描述写得越具体越好期望值给出明确判断标准。拿形位公差来举例我会把规则写成类别为“几何公差”ID 为 GT-01描述为“基准符号必须指向实际存在的要素表面或尺寸线”期望值为“若基准字母对应要素在图纸上不存在则判定违规”。这种写法比“检查形位公差是否正确”有效得多。原因是它给了模型一个可以比对的具体问题而不是一个需要自行推断的抽象指令。还有一个容易忽略的点规则数量要控制。单次推理注入超过 15 条规则时模型的遵循率会明显下降。我的做法是分场景处理标注审查场景只注入本轮相关的规则子集其余规则在下一轮再注入。3.3 Prompt 设计模板与解析方法这里直接分享我实测下来效果稳定的 Prompt 模板。结构上分为五段角色设定、任务说明、规则输入、处理要求、输出格式。完整模板如下你是一名资深机械图纸审核工程师精通机械制图国家标准和各类标注规范。 现在需要你审查一张机械零件图纸的标注合规性。 【任务说明】 请检查眼前这张图纸中的尺寸标注、几何公差、表面粗糙度、焊接符号、 基准标注是否符合给定的规则要求。 如果图纸符合所有规则要求输出 status PASS。 如果有不符合项输出 status FAIL并针对每个不符合项给出修改步骤。 【规则要求】 1. 尺寸标注线性尺寸的公差带不能超过 IT10 级未标注公差的尺寸 必须在标题栏中声明未注公差标准。 2. 几何公差基准符号必须指向真实存在的设计要素公差框格中的 公差值应优先选用标准公差表数值。 3. 表面结构表面粗糙度 Ra 值需要和工艺路线匹配一般加工面 Ra3.2 精加工面 Ra1.6非加工面不做标注。 4. ...继续添加本项目实际使用的规则 【输出格式】 请严格按 JSON 格式输出不要输出任何额外文字 { status: PASS 或 FAIL, violations: [ { rule_id: 违反的规则编号, element: 图纸中违规的具体位置或标注文本, reason: 违反了什么规则结合图纸内容说明, suggestion: 推荐修改为的正确标注 } ], modification_steps: [ 修改步骤1描述具体操作, 修改步骤2描述具体操作 ], summary: 整体审查结论用一两句话概括 }Prompt 设计里有三个细节容易被忽略。第一“给出修改步骤”这个要求必须放在任务说明中明确写出来模型才会真正把修改建议作为第一优先级输出而不是只返回判断结论第二输出格式最好用 JSON这样结果可以直接被程序解析后续自动录入缺陷单或者触发变更流程第三规则编号要和企业在 PLM 系统中的质量标准编号保持一致方便追溯。解析方法上我使用 Python 调用 VLM 的接口拿到返回文本后先做 JSON 解析如果解析失败则触发重试。重试策略是把模型返回的原始文本和“请只输出合法 JSON不要包含任何其他字符”这句附加指令再发送一次。3.4 修改步骤的生成策略VLM 输出“修改步骤”和输出“缺陷清单”对模型来说难度是完全不同的。只说“标注不规范”很容易但给出能落地的修改步骤需要模型真正做到理解规则。我的经验是把修改步骤拆成三个层级每一级都用固定句式约束模型输出。第一层级是位置定位明确告诉改哪里例如“主视图 φ25 尺寸当前未标注公差”第二层级是规则依据说明按哪条规则改例如“根据规则 DIM-02线性尺寸应标注公差未注公差需要标题栏声明”第三层级是操作动作给出精确到数值的修改建议例如“将尺寸线改为 φ25 H7或在标题栏增加未注公差按 GB/T 1804-m 的声明”。实操中我发现一个特别有效的小技巧在 Prompt 最后附加一句话“每个修改步骤请以动词开头比如增加、修改、删除、移动”。这个小约束能明显提升修改步骤的可操作性因为模型在动词约束下会自动跳过那些含糊的、模棱两可的表达。理论上讲这利用了语言模型在生成时对句子结构的敏感度本质上是一种简单的结构约束。输出完成后我会把 modification_steps 数组逐条渲染到缺陷跟踪表里每条对应一列“修改对象”、一列“修改动作”、一列“修改依据”。这样下游设计人员拿着这个表就能直接改图不需要再花时间理解模型的自然语言输出。4. 我踩过的坑常见问题与排查实录4.1 标注字号过小导致的误判这个坑几乎每个人都会踩。VLM 的视觉编码器在处理小尺寸文字时有个天然弱点字号越小的字符在特征提取阶段越容易被当作背景噪声过滤掉。我用同一张图纸测试过不同导出分辨率300 DPI 导出时 Ra1.6 可以被正确识别150 DPI 导出时同一个符号就被识别成了 Ra16审查结论直接反了。排查这个问题有一个快速方法在送入模型之前先人工把图纸放大到 200% 检查最低字号是否能肉眼清晰辨认。如果导出后的图像在放大两倍后依然有模糊感说明需要提高导出分辨率或者把该区域单独裁剪放大送检。我的处理经验是对局部放大图区域单独裁剪并在 Prompt 中注明“这是一张局部放大图请重点检查标注文本”识别准确率会明显改善。4.2 规则冲突与标准选择VLM 审查中最容易引发争议的是标准选择。一张图纸可能同时涉及客户标准、企业标准和国标如果 Prompt 里不写清楚优先级模型就会自行判断结果往往和企业的实际要求不一致。我碰到过一次真实案例图纸的形位公差框格写的是 ISO 标准符号但企业标准要求在 GB 体系中同时标注公差原则。模型只按 ISO 体系检查认为符号和标注完全合规但按企业标准判定这属于标注缺失。排查后发现根因是 Prompt 里只写了“按国家标准检查”没有说明“客户标准优先级高于国标企业标准作为附加要求”。这个问题的解决方案是在规则注入时把标准优先级写清楚。我会在任务说明中加上一句“若不同标准发生冲突按客户标准、企业标准、国家标准的顺序执行”并在规则列表中把客户特殊要求放在最前面模型会优先响应列表靠前的规则。4.3 数值幻觉与数字漂移VLM 在输出数值类信息时存在一个比较隐蔽的失效模式把图中实际标注的数值替换成一个合理但不正确的数值。这跟图像识别误差不同更像语言模型在解码阶段的“惯性”。比方说图上一个尺寸标注是 φ12但模型在输出缺陷描述时写成 “φ14 超差”实际上图纸上根本不存在 φ14 这个尺寸。这种错误非常危险因为它的输出看起来完全合理。我的应对办法是在 Prompt 中强制要求模型在输出缺陷时引用图纸中的原文文本而不是自己描述。具体写法是“在 reason 字段中必须先输出你在图中看到的原始标注文本用引号括起来然后再给出判断依据”。这个约束能有效降低数值漂移的概率因为模型必须先“读出”原文才允许继续推理。4.4 多视图跨区域关联失效单个视图的标注检查VLM 表现已经很稳定真正不稳定的是跨视图关联判断。剖视图的剖切符号在主视图上模型需要同时看两个区域并建立空间对应关系才能判断剖切位置是否合理。当模型把注意力集中在主视图时剖切符号常常被忽略。针对这类问题我目前验证有效的方法是“两阶段审查”第一阶段把整张图纸送去总览只让它回答“指出图上所有剖切符号、基准符号、局部放大圈的位置”第二阶段把第一阶段识别出的符号区域裁剪放大连同对应视图一起送入模型让它判断关联一致性。两阶段输出结果合并能在不大幅增加成本的情况下把跨视图判断准确率提升明显。多视图问题目前还没有完全消除的方案毕竟大模型的注意力机制和空间推理能力有上限。但在实际项目里我们可以通过拆分审查任务来绕开这个瓶颈让模型只做它擅长的单区域判断。5. 当前方案的边界与后续扩展思路经过这几轮实测我对 VLM 图纸标注审查的定位是一个能大幅降低人工初审成本、由“人审”转向“机器辅助审核”的实用工具。它无法替代资深审核工程师的最终判断但它能把工程师从逐条盯尺寸的重复劳动里解放出来让他们把时间花在真正的设计评审和高风险决策上。运行下来我个人的体会是这套方案好不好用关键不在模型选哪个而在你愿不愿意花时间把规则体系建起来。模型的能力已经足够缺的是把经验沉淀成结构化规则的过程。规则做得越细输出越可靠规则写得太笼统换再大的模型也救不回结果。如果你正打算做类似的事情我建议你先从某一种图、某一类标注开始把规则打磨顺了再横向扩展千万别一上来就想着覆盖所有标准。这样起步后面走得更稳。