ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

让AI看懂硬件图纸:多模态视觉模型在原理图审核与PCB检查中的落地实践

让AI看懂硬件图纸:多模态视觉模型在原理图审核与PCB检查中的落地实践 做硬件设计这些年有个感受越来越强烈硬件工程师一天到晚看的全是“图”——原理图、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扔给视觉模型做预审然后再由资深工程师人工复核。流程很简单在立创EDA或AD里将原理图按页导出为高清PNG分辨率设置为300DPI以上。把图纸和审核提示词一起发送给视觉模型。模型输出问题清单每条标注页码、区域、问题描述、严重等级和修改建议。工程师对照标记逐项确认再回设计工具修改。审核提示词我用的模板大概是这样可以按需调整你是一名资深硬件设计评审专家。我会给你一张原理图页面。请仔细检查以下内容 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表确认贴的料是否正确。比如板上丝印是R305BOM里对应100k 0603实际贴出来的是10kAI结合色环颜色、封装尺寸和印字信息能大致判断异常。不过色环电阻识别一直不太稳定特别是四环五环颜色在不同色温光照下偏差很大我试过加一个白平衡校正再识别效果稍微好一些但依然只能当粗筛。如果做更高端的PCB审查可以把Gerber文件转成PCB渲染图用视觉模型检查丝印压焊盘、位号重叠、器件间距过近这些问题。这些在传统DRC里也能报但DRC往往报一堆假错AI看图反而能按“视觉合理性”过滤一批提高人工复核效率。3.4 调试阶段示波器波形与仪器读数识别最后一块是调试场景。很多硬件工程师调板时一个人忙不过来尤其嵌入式系统调试时要同时看代码、查手册、盯波形。现在完全可以把示波器屏幕拍照丢给AI辅助系统让它直接读取波形参数。实际操作用手机拍下示波器的波形显示区域或者用示波器的截图导出功能保存BMP/PNG。把图片交给视觉模型让它读取当前波形是哪个通道测的是什么信号频率、周期、幅值、占空比、上升沿时间等关键参数波形是否存在过冲、振铃、纹波、抖动等异常给出与手册要求的对比结论。我试过一个实际案例某块板子的SPI时钟信号拍照给AI它读出频率约36MHz示波器本身显示也是36.2MHz非常接近。另外有一次I2C总线的SDA信号有轻微毛刺模型直接标出“疑似信号完整性问题建议检查上拉电阻阻值和走线阻抗”这个结论基本说到点子上了。不过波形识别也有很坑的地方。手机拍摄示波器屏幕经常有摩尔纹和反光AI会误读数值。我的建议是优先用示波器的Save/Export功能导出高清截图实在不行再拍照拍照时关掉闪光灯、用低角度消除反光并裁剪到只保留波形区域。还有一个坑屏幕上的菜单栏文字和测量框会被模型误当作信号参数需要在提示词里明确“忽略屏幕上方和右侧菜单只分析波形区域内的曲线”。4. 实操搭建一个能“看图”的硬件设计辅助Agent4.1 最小系统的三层架构我把这套视觉辅助系统落地成三个层输入层支持文件上传原理图PNG/PDF、PCB渲染图、示波器截图和手机拍照统一在服务端转换格式PDF转图片图片统一走预处理管线。处理层图像校验检查是否模糊、是否过大预处理增强选择对应场景的提示词模板调用多模态模型或私有化模型可选视觉RAG检索关联资料。输出层结构化输出为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: fdata:image/png;base64,{img_b64}}} ]} ], temperature: 0.1 }, headers{Authorization: Bearer your-api-key}, timeout120 ) 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照片遇到什么奇葩识别结果可以在评论区聊聊说不定下一期就用你的案例做调试样本。
返回列表