ARTICLE DETAIL

资讯详情

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

机器视觉检测项目落地实战:从需求评估到现场调试的关键经验

机器视觉检测项目落地实战:从需求评估到现场调试的关键经验 做机器视觉检测这行七年多被问得最多的三个问题永远是精度能做到多少什么缺陷都能看出来吗一套系统要多少钱其实这三个问题背后对应的分别是需求定义、算法选型、成本控制。很多人以为视觉检测难在算法实际上难在把检测需求翻译成工程约束。一个缺陷能不能被稳定检出往往在你选相机和光源的那一刻就已经决定了算法反而是最后一道工序。这篇文章我打算从项目落地的角度把一套机器视觉检测系统从需求评估、硬件选型、算法开发到现场调试的完整流程拆开讲。内容不会只讲原理更多是这几年踩过的坑和沉淀下来的经验。不管你是终端工厂想上视觉方案还是刚入行的工程师想系统了解这套东西应该都能从中找到对你有用的部分。1. 项目设计先想清楚“要不要做”和“怎么定方案”1.1 需求边界不是所有缺陷都值得用视觉检测很多客户找到我开口就是“我们产线上所有外观缺陷都要检测出来”。这种需求基本没法做。原因很简单视觉检测的边界能力取决于成像质量和缺陷的物理特征不是算法万能。拿到一个需求我一般先问几个问题缺陷种类有哪些每种缺陷的大小范围是多少产线节拍是多少秒一件现有良率大概什么水平检测出来之后有没有自动剔除机构这几个问题问完基本就能判断这个项目能不能做、难度有多大。最怕的是那种连缺陷定义都不清楚的产线。比如“表面不能有划痕”但划痕多深算缺陷长度超过多少毫米需要判定不良没有人说得清。这种项目要么先做缺陷样品收集和判定标准确认要么就别接。方案做得再好没有明确的判定标准验收时一定扯皮。还有一个经常被忽视的问题是检测节拍对方案的约束。如果产线节拍是2秒一件那相机的曝光、触发、传输、算法处理、结果输出整个链路必须在2秒内跑完。这意味着你可能不能选太高分辨率的相机因为数据量大了处理时间就上去了。检测精度和节拍有时是矛盾的需要提前在方案阶段做平衡。1.2 成像方案光照和角度永远是第一优先级我做了这么多年视觉项目总结成一句话成像方案做好了检测算法用最简单阈值分割就能搞定成像方案没做好上深度学习也救不回来。成像方案的核心是四个要素光源类型、打光角度、相机选型、镜头选型。这四者的组合决定了图像的质量也就是“缺陷在图像上到底清不清楚”。举个例子检测金属表面的划痕用普通的白色环形光效果往往很差因为环形光是从四周打过来的划痕产生的散射光无法有效进入到镜头视场内。换成一字条形光从侧面低角度打光划痕部分会显得很亮背景是暗的对比度立刻出来了。这种“暗场照明”的方式对表面划痕、压伤、轻微凹凸都有奇效。背光照明则是检测轮廓缺陷、尺寸测量、有无检测的首选。产品放在光源和相机之间产品不透明就会在图像上形成清晰的黑色轮廓边缘极其锐利尺寸测量精度能提高不少。这个阶段的核心教训是光源测试一定要拿真实样品做而且要多拿几个良品和不良品。很多供应商会提供打光测试服务但测试时的样品状态必须跟你产线上的实际状态一致否则现场一定翻车。1.3 成本预估别只盯着硬件价格一套机器视觉检测系统的成本由三块构成硬件采购、软件开发调试、后期维护。很多第一次上视觉的客户只问硬件多少钱忽略了开发调试这块的大头。硬件成本大致是这样的结构工业相机和镜头占总成本的三成左右光源和光源控制器占一成到两成工控机占两成剩下的是支架、线缆、传感器、安装调试等杂项。软件开发这块主要看你用现成的视觉库还是定制开发定制开发的人工成本往往比硬件还高。比较典型的整套费用区间简单的尺寸测量、有无检测项目用国产工业相机加配套软件十万以下可以做下来涉及多相机、深度学习、复杂机构集成的项目三十万到五十万很正常如果要做高速在线全检加自动剔除还要联动产线PLC做数据追溯费用就更高了。但我建议上视觉检测的工厂不要只算投入也算一下回报。一个人工质检岗位一年的人力成本加上社保福利也要五六万起步而且人工检测的漏检率在疲劳状态下会明显上升。视觉系统的价值不只是替代人工而是把判定标准固定下来不随人情绪变化而波动。2. 硬件选型相机、镜头、光源和工控机怎么配2.1 相机选型分辨率、帧率和接口怎么确定相机是视觉系统的眼睛选型的逻辑是从需求倒推的。先确定最少需要看清多大的缺陷再算需要多少分辨率最后反推帧率是否满足节拍要求。具体算法是这样比如你要检测一个10mm×10mm的工件最小的缺陷是0.1mm为了保证检测稳定一个缺陷至少要在图像上占3个像素以上。那么相机视场的短边至少要有10mm/0.1mm×3300像素算上边缘余量500万像素的相机约2500×1900已经很宽裕了。如果检测精度要求更高那就要上1200万甚至2900万像素的相机但分辨率越高数据处理越慢成本和工控机压力也越大。帧率的计算也很关键。产线节拍如果是2秒一件那相机的帧率至少要有0.5fps理论上就够。但实际要考虑触发信号的延迟、曝光时间、图像传输时间和算法处理时间建议选择帧率至少为节拍需求2倍以上的相机留出足够余量。黑白相机和彩色相机的选择同样有讲究。绝大多数尺寸测量和表面缺陷检测黑白相机的灰度图像就足够了而且黑白相机的价格更低、帧率更高、图像数据量更小。只有需要检测颜色差异、色差分析的时候才需要彩色相机。我自己做过的项目里八成以上用的都是黑白相机。2.2 镜头选型焦距和工作距离的匹配镜头选型需要考虑的主要参数有焦距、靶面尺寸、接口类型和畸变水平。焦距决定了视野的大小。假设相机感光芯片短边尺寸是5.6mm工作距离是300mm视野短边想覆盖50mm那么焦距的计算公式是焦距工作距离×芯片短边/视野短边300×5.6/50≈33.6mm。实际选型时选35mm的定焦镜头就能满足。如果工作距离不够、视野又要大那就只能选择更短焦距的镜头。这里容易踩的坑是忽视镜头的畸变。普通工业镜头在视场边缘会有一定程度的畸变如果客户要求全视场尺寸测量精度都很高那就一定要选低畸变级别的远心镜头或者双远心镜头。远心镜头还有一个特点就是物体在景深范围内移动时放大倍率基本不变这对高度有波动的工件尺寸测量特别友好。接口方面现在主流是C接口常见的是500万像素、1200万像素镜头。注意镜头靶面尺寸要等于或大于相机芯片尺寸否则图像四周会发暗或者出现黑角。2.3 光源选型四种常用光源的应用场景光源是视觉系统里最容易被低估的组件但它的重要性怎么强调都不过分。常用的光源有四种环形光源用的是LED灯珠排成圆环打光均匀适合做字符识别、定位、表面颜色识别等条形光源需要配合角度支架使用适合检测金属、玻璃等高反光表面的划痕和凹凸同轴光源通过半反半透镜使光线垂直照射物体表面适合检测高反射率表面的细小缺陷比如晶圆片上的划伤背光源提供均匀的平行光适合检测轮廓尺寸、孔洞有无、透明物体的内部异物。光源颜色也有讲究。彩色物体在同色光照射下会变亮在异色光照射下会变暗利用这个特性可以进行颜色增强。比如在红色产品表面检测黑色缺陷用蓝色光源照射缺陷和背景的对比度会大大增强。光源控制器也很关键尤其是需要频闪的时候。工业相机一般可以通过硬件触发信号来控制光源亮灭在相机曝光瞬间闪光这样能大幅延长LED光源的寿命。2.4 工控机配置算力不需要盲目堆料视觉系统的工控机配置取决于算法复杂度。如果只是传统的模板匹配、阈值分割、Blob分析用酷睿i5级别的CPU加16GB内存就能跑得很流畅不需要独立显卡。但如果是跑深度学习模型做外观缺陷检测那就要考虑GPU了。深度学习推理对显卡的需求跟模型大小和输入图像分辨率相关。一般YOLO系列的检测模型用一张RTX 3060级别的显卡就能做到几十毫秒到一百毫秒级别的推理速度。但如果同时接多个相机、做多路并行检测或者图像分辨率特别高那就要上更好的卡。我个人的建议是工控机的性能预留20%到30%的余量就可以了不要太激进。因为工控机性能越高价格越贵发热量也越大对现场环境的适应性反而变差。3. 软件与算法实现从图像到检测结果的完整链路3.1 传统视觉和深度学习怎么取舍很多人一上来就问“你们用的是什么AI算法”其实视觉检测里面传统算法依然占据很大比例。我的经验是能通过成像方案把问题简化的尽量用传统算法传统算法搞不定的再上深度学习。传统算法可解释性强出问题容易排查速度也快适合稳定的、固定姿态的场景。深度学习的优势在于对复杂纹理、变化姿态、模糊缺陷的适应性强但模型的可解释性弱需要大量标注样本。一个比较典型的分配方式是定位、尺寸测量、有无检测、字符识别用传统算法表面纹理缺陷、复杂背景下的异物检测、小目标缺陷检测用深度学习。3.2 图像预处理先把底子打好无论用什么算法图像预处理都是绕不开的一步。常见的预处理操作包括灰度变换、滤波降噪、形态学操作、阈值分割、边缘检测。灰度变换是把图像灰度范围拉伸到全动态范围提升对比度高斯滤波和中值滤波是去除传感器噪声的常用方法但滤波核太大会把细小缺陷给抹掉所以核大小要跟缺陷尺寸匹配形态学操作中的腐蚀、膨胀、开运算、闭运算主要用于去除小噪点、连接断开的区域。像检测小划痕时我常用“顶帽变换”这个操作它能从图像中提取出比周围背景亮的小目标同时滤掉粗糙背景纹理的干扰。预处理做完之后再用阈值分割把目标区域和背景分离开。阈值的选择方法很多固定阈值在光照稳定的场景下效果最好但如果现场光照有变化就要用自适应阈值或者大津法这类自动计算阈值的方法。3.3 定位与测量保证检测区域始终对准在线检测过程中相机不会每次都能拍到完全一样位置的工件所以第一步通常都是先定位。定位的常用方法是模板匹配从标准图像中截取一个特征明显的区域作为模板然后在新图像中搜索与模板最相似的位置。模板匹配有很多算法变种基于灰度相似度的NCC匹配速度快但对旋转和缩放不鲁棒基于形状特征的匹配对亮度变化不敏感可以支持一定角度的旋转适合工件姿态有轻微变化的情况。定位出工件位置后把检测ROI区域做一个坐标偏移再去对应位置做缺陷检测。测量方面像素当量的标定是前提。所谓像素当量就是图像中一个像素代表物理世界多少毫米。标定的方法是放一个已知尺寸的标定板或者高精度量块测量其在图像中占据多少像素然后用物理尺寸除以像素数得到像素当量。做项目的时候每次更换相机镜头或者调整工作距离都要重新做一次标定。3.4 深度学习模型的落地流程如果用传统算法搞不定那就要上深度学习。深度学习做缺陷检测的流程是采集数据、标注数据、训练模型、评估模型、部署推理。数据采集是深度学习项目里最花时间的环节也是最关键的。一个实用的缺陷检测模型每个缺陷类别至少要有几百张图。这些图最好从真实产线上采集包含各种光照、角度、污染情况。我见过很多项目失败在数据上——算法工程师在实验室里用几张图训练了一个模型一到现场就被各种没有见过的光线变化打败。后来我的做法是开发阶段就要到现场采集尽可能多的数据包括不同班次、不同操作员、不同材料批次的变化。标注数据是另一个容易踩坑的环节。缺陷标注规范很重要什么样的阴影算缺陷什么样的纤维算脏污这个判定标准必须和客户一起确认清楚。否则标注人员凭自己感觉标注模型学的标准就乱了。模型训练和部署是工程问题。训练可以使用开源框架在自己的电脑或服务器上做。部署时要把模型转换并封装成可调用的接口放在工控机上运行。3.5 结果判定和数据追溯算法检测完之后还需要一套完整的判定逻辑和统计管理。判定逻辑不止是“有缺陷就NG”你可能需要根据缺陷的面积、数量、位置做分级处理。比如面积小于0.1平方毫米的点状缺陷判为可接受的“A级”面积大于这个值的判为“B级不合格”。这些规则都要做成可配置的参数方便现场工艺人员调整。现在的工厂都要求数据追溯视觉检测系统也需要记录每一件产品的检测结果、检测时间、对应的参数设置并把数据上传到产线MES系统里。这样一旦出现质量客诉可以倒查当时的检测图像和结果数据。4. 部署与调试现场才是真正的考场4.1 现场环境的稳定性是第一生命线实验室里跑得好好的方案一到现场就失灵这种情况我见过太多次。最大的原因就是现场环境跟实验室环境不一致。光照变化是最大的敌人。产线旁边开了个窗户中午太阳光照进来画面亮度就变了阈值分割立刻不稳定。解决的办法有几个把检测工位用遮光罩围起来使用主动光源并将相机曝光时间固定避免自动曝光带来的亮度跳变使用光源控制器保证光源亮度稳定不要随时间衰减。震动是另一个常见问题。传送带或者检测机台本身的震动会导致图像模糊进而影响测量精度。解决方法是把相机安装在独立的支架上尽量不从机台上引过来如果必须安装在机台上要加防震垫同时把曝光时间调短一些以减少震动对图像的影响。4.2 参数优化与防误判设计视觉检测系统上线之后的参数优化是一个持续的过程。刚调试好的参数可能在小批量验证时很好但跑了一周之后客户可能反馈误杀率偏高——把一些现场认为是可接受的轻微外观偏差判定成了NG。解决误杀率的方法通常有两个方向一是增加判定规则的维度比如不只靠缺陷面积再加上缺陷的长宽比、灰度差异等特征二是做多级判定第一级先把可疑区域找出来第二级用更精细的特征做二次确认。这里有个非常实用的技巧把相机拍摄的原图保存下来配合检测结果一起归档。每次客户投诉误杀直接翻那段时间的图像看看当时算法到底为什么这么判。我一般要求系统至少保存一到三个月的历史图像占用的存储空间不大但排查问题的时候太管用了。4.3 与PLC和产线的信号对接视觉检测系统不是一个孤立的设备它需要和产线的PLC做信号交互。标准的对接方式是当工件运行到检测工位时传感器通常是光电传感器触发PLCPLC给相机发一个触发信号相机开始拍照。拍照完成后检测系统通过IO信号把OK或NG结果发给PLCPLC再控制后端的剔除机构把NG产品推掉。这里最常见的问题是通信时序不对。触发信号来了相机还在传上一张图像结果是OK了剔除机构还没到位NG产品已经跑到下一工位了。解决方法是先在实验室用信号发生器模拟整个时序确认图像采集和结果输出的时间预算再在现场联调。还有一种情况是视觉检测软件和PLC之间的通信协议不匹配。现在主流的方式是用TCP/IP或者Profinet做数据交互但老设备上还大量使用串口和IO信号。遇到这种情况就加一个IO控制模块把视觉系统的判断结果通过IO卡转接给PLC简单可靠。5. 常见问题与排查技巧实录5.1 做视觉项目必踩的坑我把这些年遇到的高频问题整理成了一张速查表方便大家排查时对照参考。问题现象可能原因排查思路图像偏暗或过亮曝光时间不当、光源亮度衰减先查曝光时间是否与环境亮度匹配再检查光源控制器输出电压图像模糊对焦不准、镜头没锁紧、机台震动用清晰度评价工具实时显示调整对焦环到最佳位置并锁紧检测结果不稳定工件位置变化大、光照变化、算法阈值过紧先检查定位是否稳定再检查环境光遮蔽最后放宽阈值对比误杀率高判定规则单一、缺陷样本没覆盖增加判定特征维度补充现场样本重新调参漏检率高成像对比度不足、算法漏检、样本不足优先优化打光和成像再考虑换算法或加深度学习与其他设备通信异常时序不对、协议不匹配、线缆接触不良用抓包工具看通信日志用信号发生器做联调排查的基本思路一定要按顺序来先看成像再看算法最后看通信。成像出问题的时候后端的算法再努力也是白费。5.2 几个提高项目成功率的实操建议第一个建议是样品确认阶段一定要拿真实产线不良品来测不要拿实验室人工做出来的模拟样品。模拟样品和真实缺陷在形态、灰度分布上往往有差异算法在模拟样品上表现很好一到实际产品上就失灵了。第二个建议是图像保存功能一定要做。不光是NG图片要保存OK图片也要保存一部分。这能让工程师随时查看系统运行中的图像质量变化比如光源有没有衰减、镜头有没有脏污、环境光有没有干扰。后期优化参数时这批历史图片也是最宝贵的数据资产。第三个建议是参数配置要外置化。把光源亮度、曝光时间、判定阈值等关键参数都写到配置文件里方便现场调试时快速修改。更讲究一点的做法是做一个简单的参数配置界面让现场工程师不用改代码就能调参数。5.3 和客户沟通的几个经验做视觉检测项目技术只是一方面沟通能力也很关键。客户不懂技术细节但关心三件事能不能帮我检测出所有不良判错的概率是多少出现问题谁来解决跟客户沟通时我习惯先把“能做到什么”和“不能做到什么”说清楚。视觉检测存在误判概率是行业常识但客户不一定是这种预期。把缺陷的种类、误杀和漏检的取舍、需要现场配合的条件提前讲明白后面验收会顺利很多。最怕的是售前吹得天花乱坠售后面临各种解释不清楚的麻烦。另外项目过程中一定要定期跟客户同步进展。视觉检测项目的问题往往联调阶段才暴露出来比如算法检出的“缺陷”客户不认可或者客户产线的产品型号变化导致原有的检测参数失效。每周给客户一个验收报告的形式列出检测了多少件产品、判了多少个NG、其中误杀多少个、有没有漏检用数据说话问题就很好推进。做了这么多年视觉检测项目我最大的体会是这个行业真正的门槛不在算法代码而在于把“用户需求”翻译成“工程可实现方案”的能力。成像搞不定算法再花哨也没用算法搞不定就用流程和管理来兜底。每一个环节稳扎稳打视觉检测系统才能真正在产线上稳定运行。最后再分享一点项目上线不等于结束前三个月才是真正的磨合期密切关注系统的运行数据及时调整参数才能达到最优状态。
返回列表