☰
让AI看懂硬件图纸:多模态视觉模型在原理图审核与PCB检查中的落地实践
2026/10/4 10:25:19 网站建设 项目流程

做硬件设计这些年,有个感受越来越强烈:硬件工程师一天到晚看的全是“图”——原理图、PCB走线、数据手册里的引脚图、示波器上的波形,真正落在文字上的信息其实只是一小部分。所以AI硬件设计辅助系统做到第二阶段,我第一个要解决的就是:怎么让AI“看得见”。不是让它看图写诗,而是让它看原理图帮你查漏、看芯片手册帮你提取引脚定义、看板卡照片帮你找焊接问题。这个系列第一篇我们搭好了交互骨架,让AI能听懂工程师的自然语言需求;这一篇我重点拆解视觉模块的落地过程:怎么选多模态模型、怎么处理硬件图纸特有的识别难题、以及最终怎么用它提高硬件设计审核和调试的效率。适合正在做硬件设计的工程师,也对想用AI替代重复读图工作的新生代工程师有参考价值。

1. 为什么硬件设计辅助系统必须先解决“看得见”

1.1 硬件设计的信息载体天然是图像

先想一个问题:你在评审一块PCB或者检查一份原理图的时候,最快的信息获取方式是什么?是看图。网络标号是否连对了、电源和地有没有接反、芯片位号有没有重复、差分对的等长走线有没有问题——这些信息全在图形里。如果AI只能处理文字,那它永远只能看到工程师转述后的二手信息。转述会丢细节,而且效率极低。一块复杂主板的原理图可能有十几页,指望工程师一行行敲给AI,那还不如自己看。

这一步我理解为什么很多通用AI办公助手在硬件领域失灵:它们会写周报,但看不懂NPN管和PNP管的区别,更分不清原理图里那根短线是“连接点”还是“跨页跳线”。要让AI真正成为硬件设计辅助系统,视觉理解不是锦上添花,而是地基。只有让系统直接面对原理图、板卡照片、手册图表这些原始素材,它才有可能在真实设计流程里帮上忙,而不是停留在“问一句答一句”的玩具阶段。

1.2 从“会聊天”到“会看图”:多模态能力的分水岭

在视觉能力没有出现之前,很多AI辅助工具的做法是“文字问答”:你问它“LDO输出电容怎么选”,它根据语料库回答。这类任务不需要图像,但一旦你把手里的原理图拍照发过去,它就只能说“抱歉,我无法查看图片”。2023年之后情况变了,多模态大模型能够同时处理文本和图像输入,把图像编码成视觉token,再和文本token一起做注意力计算。这套机制对硬件设计辅助系统有个核心价值:AI可以直接分析设计图像本身,而不是依赖人工描述。

我实测过把一块电源板原理图导出成PNG直接丢给视觉大模型,它能指出七八处问题,包括一个反馈电阻网络接地错误、两个位号标反、还有一个关键信号网络标号不一致。如果换成纯文字交互,可能要说半天才能把图里的信息描述清楚。所以“看得见”是AI从“聊天机器人”升级为“设计辅助工具”的分水岭。对硬件设计这种“图比文字重要”的领域,这一步不做,后面所有的自动化都是空中楼阁。

2. 让AI“看见”的核心技术方案选型

2.1 多模态模型:主引擎怎么选

做视觉模块第一步是选模型。目前可用的多模态大模型不少,但硬件场景有自己的特殊要求。我按实际使用体验整理了一张表:

模型中文文档识别专业图表理解部署成本备注
GPT-4o / GPT-4V好较强API按量计费,偏高综合能力强,但企业数据合规要求高的场景要谨慎
Gemini 2.0较好较强,长上下文API计费适合长文档批量解析
Qwen2-VL / Qwen-VL-Max优秀好,中文标注识别强可API可私有化硬件企业落地首选之一,中英混排识别稳
InternVL较好好开源可私有化适合有GPU服务器、需要本地部署的团队
MiniCPM-V尚可中等低,可端侧轻量级,适合原型验证

选型不能只看跑分。硬件设计场景有几个特殊点:第一,原理图和手册经常是中英混排,而且字体很小,模型对中文丝印和英文专业缩写的识别都要稳;第二,图表往往密集,线条和字符交错,模型注意力容易分散;第三,很多公司的设计文档不能往外传,私有化部署的需求非常高。所以我的建议是:原型阶段用商用API快速验证效果,正式落地时优先考虑可私有化的开源模型,再配合OCR做预处理。

2.2 OCR与图像预处理:给模型“擦亮眼睛”

很多同学以为把图喂给多模态模型就行了,实际操作发现效果很差。原因很简单:模型看到的像素是原始状态,如果图片模糊、倾斜、明暗不均,视觉token里的信息就是脏的。我做的第一版系统就是直接把手机拍的手绘原理图丢给模型,结果它把电阻符号看成电容,位号一个个乱认。后来想通了:先做图像预处理,再送进模型。

常用预处理流程包括:

  • 灰度化和对比度增强:解决拍摄光线不均。我用OpenCV的cv2.convertScaleAbs配合CLAHE自适应直方图均衡,实测对浅色图纸效果明显。
  • 透视校正:把倾斜拍摄的原理图纸矫正为正视图。用cv2.findContours找图纸边缘,算出透视变换矩阵再做warpPerspective。
  • 二值化与去噪:对于CAD导出的高清图可以跳过,但对于扫描件建议做Otsu阈值分割,去掉背景网格线和噪点。
  • 分辨率控制:原理图导出时尽量用300DPI以上,PCB照片至少2000像素宽,否则小字号位号根本识别不了。

预处理这块,我踩过最大的坑是“过度处理”。有一版把原理图的底色网格线全滤掉了,结果地线符号和电源符号之间的连接点也被当噪点清掉,AI反而误判了一堆开路。预处理必须保守,目标是增强而不是重绘,宁可保留部分噪声,也不能丢失关键电气连通信息。

2.3 视觉RAG:让AI带着参考手册看图

“看得见”不只是识别图片里的字,更关键的是“知道图里那些符号是什么意思”。这里很多项目做歪了:让模型去死记所有芯片手册,不现实。我的做法是做视觉RAG:把经过整理的芯片手册关键页(引脚功能图、典型应用电路、寄存器表)转成图像块和结构化文本,建立索引。AI在看某块原理图时,先根据项目中出现的芯片型号检索相关手册页,把手册图像和原理图一起作为上下文输入,让它“带着资料看图”。

这样做的直接好处是显著降低幻觉。比如AI看到一颗“AMS1117-3.3”,如果不检索手册,它可能会凭记忆说“输入输出电容建议10uF”,但实际上手册推荐了100nF。如果把手册典型应用电路图作为参考放进去,AI的输出就更能贴合实际器件约束。像RK3588、RK3576这类主控芯片的手册动辄几百页,视觉RAG按需抽取关键图像页,比把整本PDF塞给模型要实用得多。整个检索链路我用的是图embedding加文本embedding混合,效果比单一模态检索高不少。

3. 硬件设计场景中的视觉能力落地拆解

3.1 原理图审核:AI当第二双眼睛

最现实的应用就是原理图审查。我们团队现在每周都会把改版后的原理图导出成一张长图或者分页PNG,扔给视觉模型做预审,然后再由资深工程师人工复核。流程很简单:

  1. 在立创EDA或AD里,将原理图按页导出为高清PNG,分辨率设置为300DPI以上。
  2. 把图纸和审核提示词一起发送给视觉模型。
  3. 模型输出问题清单,每条标注页码、区域、问题描述、严重等级和修改建议。
  4. 工程师对照标记逐项确认,再回设计工具修改。

审核提示词我用的模板大概是这样(可以按需调整):

你是一名资深硬件设计评审专家。我会给你一张原理图页面。请仔细检查以下内容: 1. 网络标号是否命名规范且有对应连接;是否存在悬空网络。 2. 电源和地是否正确连接;是否存在电源网络直接短接到地的风险。 3. 元件位号是否重复、缺失或与BOM不一致。 4. 去耦电容位置是否合理;高频芯片电源引脚是否都有就近电容。 5. 反馈网络、分压电阻阻值是否合理。 请按如下格式输出: - 页码:第X页 - 位置:图像中大致区域(左上/右上/中间偏左等) - 严重等级:高/中/低 - 问题描述:具体现象 - 修改建议:可行的改法

实测下来,这类任务AI对一些“低级但致命”的问题查得特别好:比如两个不同网络的标号同名、滤波电容放在芯片远端、VCC和GND接反。我拿一块BMS主控板的电源部分做过测试,AI准确指出了采样电阻的Kelvin连接画错、参考地平面分割不合理两处问题。但要承认,它对高级电源完整性、信号完整性问题的判断还很弱,毕竟那些需要仿真数据。所以AI的位置是“预审和查漏”,不是替代人工,尤其对51单片机最小系统板这类相对简单的设计,AI的预审价值会更明显。

3.2 数据手册解析:引脚图与时序图的理解

硬件工程师最烦的事情之一就是来回翻手册,几百页的芯片手册找一颗电容的推荐值要翻半天。视觉能力可以把这个过程大幅压缩。我做了个工具:上传芯片手册PDF,先用pdfplumber把文本层剥出来,同时把关键页面(引脚分配图、封装尺寸图、应用电路图)转成高清图片。文本进大模型做语义抽取,图片专门用于识别图形信息。例如要让AI提取“这颗MCU的PA9引脚是什么功能”,它会先检索到引脚图,再用视觉识别找到PA9的位置、然后交叉参考引脚功能表输出“PA9/USART1_TX,复用功能AF7,支持5V容忍”。输出结果我让它强制转成JSON,方便后续自动生成硬件设计数据库。

时序图的理解是难点。很多工程师让AI看I2C时序图,模型经常把SCL高低电平的边沿顺序搞反。我的办法是提示词里明确“先描述信号线名称和方向,再按时间轴从左到右逐个边沿描述电平跳变,最后归纳协议帧”。配合高清大图(波形曲线要清晰,别压缩太狠),实测正确率能从50%提到85%以上。不过对极其复杂的DDR时序图,目前模型仍然会翻车,需要人工再确认。

3.3 PCB图像检查:实物板与Gerber渲染图

PCB阶段,“看得见”同样能帮上忙,但需要的图像类型不同。一个很实用的场景是焊接质量粗检。用高倍镜或者手机微距拍板卡局部,让AI判断是否存在连锡、虚焊、少锡、桥接。我测过一批电源板,AI对有铅锡膏的连锡识别还算靠谱,因为这些特征明显:两个焊盘之间出现不正常的锡桥。但对虚焊判断就容易误报,因为虚焊在二维照片上往往不明显,需要透光或倾斜观察。所以针对虚焊,我的建议是让AI先给出“疑似虚焊区域清单”,再由人工用万用表或X-Ray确认。

另一个场景是实物板与BOM核对。板上的丝印位号是现成的文字信息,AI通过OCR识别丝印,再反查BOM表,确认贴的料是否正确。比如板上丝印是R305,BOM里对应100k 0603,实际贴出来的是10k,AI结合色环颜色、封装尺寸和印字信息能大致判断异常。不过色环电阻识别一直不太稳定,特别是四环五环颜色在不同色温光照下偏差很大,我试过加一个白平衡校正再识别,效果稍微好一些,但依然只能当粗筛。如果做更高端的PCB审查,可以把Gerber文件转成PCB渲染图,用视觉模型检查丝印压焊盘、位号重叠、器件间距过近这些问题。这些在传统DRC里也能报,但DRC往往报一堆假错,AI看图反而能按“视觉合理性”过滤一批,提高人工复核效率。

3.4 调试阶段:示波器波形与仪器读数识别

最后一块是调试场景。很多硬件工程师调板时一个人忙不过来,尤其嵌入式系统调试时,要同时看代码、查手册、盯波形。现在完全可以把示波器屏幕拍照丢给AI辅助系统,让它直接读取波形参数。实际操作:用手机拍下示波器的波形显示区域,或者用示波器的截图导出功能保存BMP/PNG。把图片交给视觉模型,让它读取:当前波形是哪个通道,测的是什么信号;频率、周期、幅值、占空比、上升沿时间等关键参数;波形是否存在过冲、振铃、纹波、抖动等异常;给出与手册要求的对比结论。

我试过一个实际案例:某块板子的SPI时钟信号拍照给AI,它读出频率约36MHz,示波器本身显示也是36.2MHz,非常接近。另外有一次I2C总线的SDA信号有轻微毛刺,模型直接标出“疑似信号完整性问题,建议检查上拉电阻阻值和走线阻抗”,这个结论基本说到点子上了。不过波形识别也有很坑的地方。手机拍摄示波器屏幕经常有摩尔纹和反光,AI会误读数值。我的建议是优先用示波器的Save/Export功能导出高清截图,实在不行再拍照,拍照时关掉闪光灯、用低角度消除反光,并裁剪到只保留波形区域。还有一个坑:屏幕上的菜单栏文字和测量框会被模型误当作信号参数,需要在提示词里明确“忽略屏幕上方和右侧菜单,只分析波形区域内的曲线”。

4. 实操:搭建一个能“看图”的硬件设计辅助Agent

4.1 最小系统的三层架构

我把这套视觉辅助系统落地成三个层:

  1. 输入层:支持文件上传(原理图PNG/PDF、PCB渲染图、示波器截图)和手机拍照;统一在服务端转换格式,PDF转图片,图片统一走预处理管线。
  2. 处理层:图像校验,检查是否模糊、是否过大;预处理增强;选择对应场景的提示词模板;调用多模态模型或私有化模型;可选视觉RAG检索关联资料。
  3. 输出层:结构化输出为JSON或Markdown报告;问题清单按严重程度排序;结果可以推送到企业微信或钉钉,也可以回注到设计工具。

架构上我特意把提示词模板和业务逻辑剥离。原因是你不可能每个场景都写一个独立服务,更好的做法是维护一份“场景到提示词模板、模型参数、后处理规则”的配置表。新增一个场景时,只需要加配置,不用改代码。整个系统前端就是一个简单的上传页面,文件进来后自动进入流水线,工程师在浏览器端直接看到报告,不需要关心中间调用的是哪个模型。

4.2 关键Prompt与工作流设计

视觉模块的提示词和纯文本提示词不一样,它必须引导模型“如何观察”。我的经验是四个要点:先描述后判断,让模型先复述图片里看到了什么,再下结论,这样可以减少幻觉;指定观察顺序,比如原理图先看电源网络,再看信号网络,最后看元件属性;强制输出格式,要求问题清单用序号列出,每条包含位置、等级、现象、建议;给不确定留出口,增加一句“如果无法确认,请明确说明不确定,不要猜测”,这句话非常管用,能大幅降低胡编乱造的概率。

一个简化的Python调用示例:

import base64, requests def encode_image(path): with open(path, "rb") as f: return base64.b64encode(f.read()).decode() img_b64 = encode_image("schematic_page1.png") prompt = """你是硬件设计评审专家。先简要描述这张原理图中的电源网络和地网络走向, 然后检查错误。输出格式: [{"location":"左上区域","level":"高","issue":"...","suggestion":"..."}] 如果无法确认,请明确说明不确定,不要猜测。""" resp = requests.post( "http://your-model-endpoint/v1/chat/completions", json={ "model": "qwen2-vl-72b", "messages": [ {"role": "user", "content": [ {"type": "text", "text": prompt}, {"type": "image_url", "image_url": {"url": f"data:image/png;base64,{img_b64}"}} ]} ], "temperature": 0.1 }, headers={"Authorization": "Bearer your-api-key"}, timeout=120 ) result = resp.json()["choices"][0]["message"]["content"] print(result)

注意temperature要调低,我一般用0.1到0.2。硬件设计审查具有很强的确定性逻辑,温度太高模型会开始“发挥”,输出一些貌似合理但站不住的结论。还有一点:如果模型返回的是JSON字符串,后处理一定要做容错,因为模型偶尔会在JSON前后加说明文字,我习惯用正则把最外层的大括号或中括号截出来再解析。

4.3 与AD/立创EDA的联动

真正要落地到日常设计流程里,不能每次手动导出图片再上传。我用脚本做了几个小工具:利用AD或立创EDA的导出功能,把整本原理图按页导出为PNG,并自动拼接页面索引;写了一个文件夹监听脚本,新导出的原理图页面进入指定目录后,自动触发视觉检查,完成后把报告写到同级目录的Markdown文件;检查结果回注,通过解析报告里的位号信息,自动在立创EDA的BOM界面里高亮对应元件,这一步需要软件提供API或通过CSV中间文件实现。

这个小闭环在小型项目上效率提升明显。原来人工审图一个人盯两小时,现在AI先跑一遍,很多时候能提前卡掉一批低级错误,人工复核时间压缩到三四十分钟。当然,前提是前期把提示词调好,不然满屏误报也很折磨人。我见过有些同事第一次跑出来二十多条“疑似问题”,结果一核对全是误报,差点把工具打入冷宫。调提示词至少要花一两天时间迭代,这个成本要预留。

4.4 数据准备:构建自己的视觉知识库

如果你想让AI对自家产品更“懂”,光靠通用模型不够。我的做法是积累“看板卡”的经验数据:把历次设计评审中被指出的问题图(原理图片段、PCB截图)整理成“问题-正确做法”对;用简单的标注工具在图片上画框并写中文标签,比如“连锡”“位号重叠”“电容离芯片过远”;数据多了以后,可以选择在开源模型上做LoRA微调,或者把这些样本加入视觉RAG库。

对于大多数团队,我建议先做RAG,不要急着微调。微调成本高、周期长,而且硬件设计图像样本本来就少,容易过拟合。RAG适合起步,费用低,效果可控。这个过程中最大的价值不只是训练数据,而是让团队成员“被迫”把设计规范梳理了一遍。因为要标注什么是错误,就必须先定义清楚什么是对的,这对团队流程也是一种沉淀。

5. 调参与踩坑实录(真实问题排查)

5.1 原理图OCR乱码问题

现象:AI读出来的位号总是错字,“R305”被识别成“R30S”,“C104”变成“C1U4”。排查后发现,CAD导出的PNG虽然是矢量清晰的,但缩放到Web分辨率时位号文字变成亚像素渲染,容易出现粘连。解决办法是把导出分辨率提到300DPI以上,并在预处理里做一次轻度的形态学开运算,断开粘连笔画。还有一个隐蔽问题:某些原理图使用中文宋体,小字号下OCR会混入日文假名识别结果,我通过限制识别白名单字符集解决了。现在我的预处理管线里默认就带一个“字符白名单”配置,只允许A-Z、0-9以及常见的电路符号字符,识别稳定性提升非常明显。

5.2 模型幻觉:编造不存在的引脚

这是视觉辅助系统里最危险的坑。有一次让AI读一颗FPGA的引脚图表,它一本正经地给我捏造了一个“NC_7引脚为GND”,但芯片手册里NC_7其实是“No Connect”。原因就是模型没看清图上NC/NC脚周围的标注,凭经验脑补了GND。为了防这个,我现在有两道保险。第一道是检索:用视觉RAG把对应芯片手册页拉出来,让模型对照手册作答。第二道是校验:AI输出的引脚连接关系,我会再做一个简单的脚本,把结果和已有的网表或BOM做一致性比对,不一致就打回人工。所有输出都必须带“置信度”,低于80%的自动标黄,提醒工程师不要直接采信。

5.3 时序图/波形图识别误差

波形图识别误差主要来自三点:一是图片压缩,很多聊天工具会自动压缩图片,曲线变模糊、采样点丢失;二是网格线和标尺线干扰,模型把标尺当作波形;三是屏幕截图里的菜单遮挡。解决思路很朴素:获取原图、再裁剪出波形区域、必要时用OpenCV提取曲线坐标点。更进阶的做法是让模型输出网格交点坐标,我用坐标反推周期和幅值,再与模型读出的数字做交叉验证。这个做法在SPI和I2C波形上效果不错,但在极其密集的并行总线波形上仍然吃力,暂时不推荐依赖AI做这类精确测量。

5.4 低光照与反光问题

手机拍电路板,最常见的问题就是反光。板子上有走线裸露铜箔、芯片金属顶盖、镀金焊盘,都会形成高光区域,遮挡关键信息。我有一版系统在工厂车间拍的照片上翻车,十几个焊盘全被反光盖住,AI判断成“空焊”。后来加了两个补救:一是建议拍照时用偏振镜片,消除金属表面反光;二是开发了一个简单的多曝光合成,连拍三张不同曝光的照片合成HDR图。处理后高光区域的焊盘细节回来了,AI的漏判率明显下降。硬件调试现场的光照条件千差万别,图像采集规范一定要写进操作手册里,否则算法再强也扛不住烂输入。

5.5 成本与速度权衡

多模态视觉模型每张图的token消耗不低,尤其把原理图长图喂进去,一次推理可能消耗上万视觉token。我在项目里做了三个省钱手段:一是分页切片,不整本原理图一次喂,而是一页页来,需要跨页检查时再把相关几页拼起来;二是用“低分辨率预筛加高分辨率精查”的两级流程,先用低分辨率快速识别明显问题,再对可疑区域裁剪放大调用高精度模型确认;三是本地私有化部署开源模型,长期跑下来比云端API便宜很多。预算有限的小团队,建议先用开源轻量模型处理批量简单任务,商用模型只处理复杂疑难图。这个取舍一开始就要想清楚,不然项目做到一半被API账单卡住,体验很差。

再补充一张问题速查表,方便直接对照:

问题现象可能原因排查顺序解决方案
位号识别成乱码分辨率不足、字体粘连先查导出DPI,再查字体300DPI导出、开运算断粘连、白名单过滤
AI编造不存在的引脚模型幻觉先查上下文有没有手册页视觉RAG关联手册、输出置信度
波形读数偏差大图片压缩、菜单干扰先换原图,再裁剪区域用导出截图、裁剪波形区域
焊盘反光漏检金属表面高光先补光,再用偏振镜多曝光合成、拍照规范
推理过慢、费用高单张图token过大先查分辨率,再查页面张数分页切片、分级模型

这套系统做了小半年,最深的体会是:AI“看得见”之后,真正被改变的不是审图的速度,而是硬件工程师的工作方式。以前我要么自己闷头翻手册,要么拉着同事一起盯图,现在AI先把粗活干完,我把精力放在判断它说得对不对、还有哪些它看不到的地方。人机配合的感觉有点像是带了一个“飞快但偶尔走神”的实习生,关键是要给它清晰的检查清单,并且永远保留最终判断权。后面我还会继续把这个系列写下去,如果你们在自己的项目里也让AI看过原理图或PCB照片,遇到什么奇葩识别结果,可以在评论区聊聊,说不定下一期就用你的案例做调试样本。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询