在汽车零部件车间待过的人大概都对质检工位上的画面不陌生一盏白炽灯、一个放大镜、一双盯着零件翻来覆去看了八小时的眼睛。这套人肉检测模式撑起了整个行业多年的质量底线但它的裂缝肉眼可见——下午三点过后漏检率开始悄悄爬坡夜班凌晨的误判多到让人不想面对。我参与落地的这套内部代号为TVATest Vision Architecture的视觉检测系统就是冲着这个顽疾去的。从现场蹲点、需求拆解、硬件选型到算法调试再到跑线验收前后折腾了大半年。这篇文章把这段经历里最值钱的部分摊开来讲人工检测到底病在哪、TVA怎么对症下药、落地时哪些坑差点把项目埋了以及最终那本账算下来划不划算。适合正在思考要不要上视觉检测的制造从业者也适合对工业视觉落地有兴趣的技术朋友。1. 人工检测的劣化曲线这病不是老师傅不行是人这个环节天生有上限1.1 三班倒的眼睛漏检率为什么随疲劳指数一路飙升项目启动之前我们在客户现场做了一组很朴素的摸底。客户是给某主机厂供货的法兰轴和转向节毛坯件供应商机加工车间里有三个质检班每班两个人负责全检关键表面的划痕、磕碰、毛刺和气孔。我们按照时间段抽取了连续两周的记录结果非常扎眼上午九点到十一点漏检率大概在0.8%左右下午三点到五点这批数据上升到1.6%到2.2%到了夜班凌晨一点以后最高的一晚冲到过3.5%。同样的人、同样的零件、同样的判定标准唯一变化的是时间。这不是某个员工偷懒或者态度有问题而是注意力的生理边界问题。工业人因工程里有个概念叫警戒衰减意思是人对单调重复的视觉任务注意力集中度会在开始后四十分钟左右明显下滑。质检这个岗位看起来简单实际上是一项高负荷的认知任务——你要在流水线节拍的压迫下持续搜索那些可能只有零点几毫米的异常大脑很快就会对场景习惯化开始自动略过信息。我后来跟车间主任聊他说了一句很实在的话上午是人在看零件下午是眼睛在看零件晚上是习惯在看零件。1.2 同一颗法兰轴三个质检员三种判法第二个问题比疲劳更麻烦是标准本身的不一致。我们翻开客户的《外观检验作业指导书》上面写着不允许有可见划痕表面不得有磕碰伤这类描述。问题来了什么叫可见距离三十厘米看还是五十厘米看什么样的光照条件下看划痕长度超过多少算不合格指导书里没有一个量化的答案。于是我们就地做了一次小实验从产线上挑了100件带轻微缺陷的工件请12名在职质检员独立判定结果只有61件达成了完全一致的结论一致率61%。剩下那39件有人判合格有人判返修甚至有3件的判定结果分成三个方向。最典型的是那种在光亮面上若隐若现的细划痕A员工拿起来转了个角度说没问题抛光盘磨过就这样B员工眯着眼睛看了半天说这得修C员工干脆拿不准放进待定区。这个实验让我意识到所谓老师傅的经验本质上是一个人脑中的私有判定模型它没法完整传递。标准作业指导书写得再详细一落到真实的光线、角度和个体感受里就会产生漂移。而这个漂移就是质量客诉和内部返工的主要来源。1.3 老师傅的退休日就是质量标准清零的那一天比标准漂移更让管理层头疼的是人的流失。客户那边最资深的质检员干了十几年肉眼一扫就能判断哪些气孔是铸造允许的、哪些已经影响密封这种能力是长年累月的失败案例喂出来的。但他还有两年退休教会一个能独当一面的新质检员至少要六个月而一个刚培训出来的年轻人可能在三个月后因为倒班太辛苦就辞职了。我们驻场那段时间质检班组换了三批人。每次换人产线质量报表都要波动一个周期。车间主任半开玩笑地说老师傅退休那天就是质量标准清零的那一天。这句话虽然调侃但背后的逻辑非常硬核整个质量体系建立在不稳定的人力基础上人走、经验走、标准也跟着走。要解这道题只有把人眼判断变成可量化、可复现、可追溯的机器判断。这就是TVA立项的核心动机。2. TVA系统的架构拆解双引擎怎么把人眼变成可复现的机器眼2.1 硬件底子相机分辨率、镜头和光源的选型逻辑TVA不是什么魔法盒子硬件上就是一套标准的工业视觉组合工业相机、镜头、光源、工控机加一个控制分拣气缸的PLC。但每个组件的选型逻辑都有讲究我一个个说。先说相机。客户要检测的最小缺陷是0.1mm的划痕和压伤单个缺陷在图像上至少要覆盖3到5个像素算法才能稳定识别。我们把检测视场设计在80mm乘60mm左右所以选了500万像素级别的面阵工业相机满幅分辨率2448乘2048。算一下80mm除以2448个像素单像素对应约0.033mm0.1mm的缺陷在图像上有大约3个像素宽够用了。再往上加像素图像文件变大节拍和存储成本跟着涨不划算。再说镜头。检测对象是机加工金属件表面有弧面、台阶和反光普通定焦镜头会带来透视畸变边缘部位的尺寸和缺陷形态会走样。我们直接选了远心镜头它捕捉的是平行光能把三维零件拍平边缘和中间的比例关系不变这样后面做尺寸测量和缺陷定位才靠谱。代价是贵、体积大但检测精度要求摆在那这笔钱省不得。最后是工控机。需要说明的是纯跑传统视觉算法时一颗高性能CPU就够连独立显卡都不需要。但TVA的第二道判定要跑深度学习推理所以工控机预留了独立显卡的位置选的是带无风扇工业主板的机箱避免车间粉尘和振动影响稳定性。整体功耗控制在300W以内直接放进现有电控柜。2.2 双引擎算法传统视觉卡边界深度学习认纹理算法层面TVA没有学一个深度学习模型通吃所有缺陷的激进路线而是采用传统视觉加深度学习的双引擎串联结构。原因很实际两类缺陷的脾气完全不一样。第一类几何规则缺陷比如尺寸超差、明显缺料、磕碰伤、毛刺。这类缺陷形状相对固定、边缘清晰用传统的阈值分割、边缘提取、Blob分析就能又快又稳地识别处理时间在几十毫秒以内而且结果完全可解释——图像上哪个区域、灰度多少、连通域面积多少一条条都能倒查。深度学习做这些事反而容易过杀因为模型对没见过的类似形状会过度敏感。第二类表观纹理缺陷比如细划痕、轻微压伤、气孔群。这类缺陷没有固定的几何形状深浅不一、方向不一、光照变化下呈现很不稳定传统算法很难用一个固定阈值抓住而且误检率极高。这一部分我们交给深度学习模型用语义分割的方式逐像素判断缺陷区域。模型能学到人类很难用规则表述的纹理特征比如这个位置的研磨痕迹分布不对这条划痕的走向超出了正常加工纹理的规律。双引擎串联的逻辑是传统算法先把明显缺陷在几十毫秒内筛掉剩下的疑难杂症图像再送进深度学习模型二次判定。这样既保住了产线节拍又把误杀率控制在可接受范围。从架构上看它很像医院的分诊台——普通感冒直接开药走人疑难病例才轮到专家会诊。2.3 一条检测节拍从触发到分拣的完整路径把整套流程走一遍你就能理解它为什么能在3.5秒的产线节拍里从容完成全部判定。第一步光电传感器检测到工件到位发出硬触发信号相机瞬间曝光采集图像。这里坚持用硬触发而不是软件定时抓拍是为了保证和产线运动的严格同步避免工件位置漂移导致拍糊。第二步图像预处理包括降噪、畸变校正和灰度归一化把不同时间段光照变化带来的灰度差异先抹平一部分。第三步模板定位。工件在传送带上不可能每次停在绝对相同的位置我们用几何模板匹配找到零件的实际坐标和旋转角度然后根据这个坐标动态框出每个检测区域的ROI。这一步做不好后面所有判定都是空中楼阁。第四步传统视觉第一道判定。尺寸、轮廓、明显缺陷在这个环节被快速识别。第五步深度学习第二道判定。只有传统算法标记为疑似缺陷的区域才会进入模型推理输入图被裁剪成固定尺寸的块输出缺陷类别和置信度。第六步结果汇总。系统把两路结果合并生成OK或NG信号通过24V硬接线发给PLCPLC驱动气缸把NG工件拨到返修料道。与此同时检测图片、缺陷标记、置信度、时间戳、工件追溯码全部打包写入本地数据库再异步上报MES。从触发到分拣动作完成单件实测稳定在2.8秒左右比产线节拍3.5秒还有余量。这也是我们敢把两个工位的相机架在一条线两侧、实现六个关键面全覆盖的原因。3. 实验室到产线的决胜点光源、数据标注和接口哪一个都可能让项目翻车3.1 光源打不好算法再好也是白搭我得先泼一盆冷水视觉检测项目翻车一半以上栽在光源和现场光学环境上而不是算法。我们在实验室搭第一版样机的时候用的是暗室加漫射板图像漂亮得能当教材案例。结果设备一搬进车间问题全出来了厂房顶灯、窗户自然光、旁边电焊工位的弧光全都往检测区里渗同一个工件早上拍和下午拍灰度值能差出20%以上。第一天的误报率直接爆表车间主任在旁边看热闹我们几个人脸上挂不住。后来花了将近两周专门治光。针对金属件的反光特性最后定下来的方案是三路光源组合高角度环光负责照亮整体轮廓和磕碰伤低角度条形光以近似掠射的角度打光让浅划痕产生明暗对比被照出原形背光负责形成零件轮廓剪影供定位使用。外面再加一套半封闭遮光罩把车间环境光挡在检测区域之外。这里有个原则后来成了我们的内部规矩能用物理手段解决的光学问题绝不让算法去扛。环境光这种变量指望模型泛化去吸收最后一定会付出误报率飙升的代价。3.2 标注一致性深度学习模型学到的居然是质检员之间的分歧深度学习需要标注数据而标注这个动作本身又回到了人工判断的老路上。我们曾踩过一个很隐蔽的坑初期拉了三位工程师标注了两千张划痕缺陷图自认为速度很快后来检查发现标注框的位置、边界范围、缺陷类别标签彼此冲突的比例高达15%。这意味着什么如果拿这批数据直接训练模型学到的不是什么是划痕而是三位标注者对划痕的分歧平均值。它的判定边界会忽左忽右在产线上表现为时好时坏的抽风式误判。解决方式不复杂但很费人力改成双人独立标注加第三人仲裁的流程。两张标注图完全一致才入库有争议的先不进训练集单独放进一个争议库等现场复核确认后再补标。另外凡是质检员自己也拿不准的边界样本我们明确禁止标注。宁可数据集稍微小一点也要保证标签的一致性。模型的上限由数据质量决定而数据质量的瓶颈从来都是人对缺陷的共识程度。3.3 和MES握手接口字段比算法更容易让人返工检测系统不可能孤立存在它要跟产线设备和信息系统对话。TVA对外提供两套接口底层通过24V硬IO信号跟PLC握手控制气缸分拣上层通过OPC UA协议和Modbus TCP把检测结果上报给客户的MES系统。硬件对接顺利软件对接差点出事。问题出在数据字段设计上我们一开始按自己的习惯定义了缺陷编码比如01代表划痕、02代表压伤结果跟MES组的缺陷码表一对人家是11代表划痕、12代表压伤而且还有我们没覆盖的研磨烧伤这类条目。上线后追溯报表查不出来缺陷流向分析完全错乱最后返工了一版接口才理顺。这个教训让我养成了习惯项目启动的第一周就要拉着客户的IT和质量部门坐在一起把追溯码、批次号、料号、工位号、缺陷编码、判定结果这六类字段的命名规范逐一敲定。接口设计看起来是不起眼的脏活但它决定了系统落地后能不能真正融入质量闭环比算法本身更容易让项目延期。4. 跑线三个月漏检率、误报率和那本刺眼的投入产出账4.1 三个月跑线数据对比从胶着到稳定TVA从初始联调到稳定运行大概经历了三个阶段。我直接放一组三个月周期的实测数据比任何描述都有说服力指标人工检测基线TVA联调第一周TVA稳定运行期漏检率1.2%0.6%0.08%误报率过杀率无法统计未留证8.5%1.7%单件检测节拍3.5秒受疲劳影响3.2秒2.8秒夜班/凌晨表现漏检率翻倍仍稳定全天波动极小第一周的数据很难看过杀率高达8.5%。什么概念每检一百件好零件大约八件会被当成缺陷抓下来送返修。车间反馈炸锅是意料之中的事有人直接说这机器还不如人。但我们当时没有慌因为漏检率已经压到了人工基线的一半方向是对的问题出在判定阈值太激进。接下来的调整思路是两头一起抓一方面扩充合格样本库把车间里各种在允许范围内的加工痕迹、研磨纹路、轻微色差全部采集入库让模型知道这些正常状态不该报警另一方面把边界样本单独拉出来逐个确认后重新标注。加上优化疑似区域裁剪尺寸过杀率从8.5%压到3.2%再到稳定期的1.7%。整个过程用了将近三周中间熬了几个通宵但数据曲线说明这套方法论是有效的。4.2 过杀与漏检的跷跷板以及风险系数这个旋钮我想把过杀和漏检的关系讲透因为这是所有视觉检测系统调参的核心矛盾。任何检测系统都有一条不可避免的权衡曲线阈值定得严格漏检率下降但过杀率必然上升阈值定得宽松过杀率下来漏检率又会抬头。工业现场几乎都选择宁可错杀不可放过。逻辑很简单过杀一件代价是返修工序多走一圈最坏情况就是浪费几十块钱的工时和材料漏检一件流到客户产线上轻则被索赔重则引发批次召回那可是几十万起步的损失还可能丢掉整个项目。TVA在工程实现上做了一个非常实用的设计没有固定死判定阈值而是暴露了一个可配置的风险系数旋钮。风险系数调高系统对置信度不足的缺陷倾向于判NG调低则倾向于放行。上线初期我们刻意把风险系数拧到高位先把漏检率压到极致宁可过杀多一些让客户的审核人员确认机器不会放过任何问题。等信任建立起来再逐步下调风险系数把过杀率从8.5%降到1.7%。这个旋钮本质上是把质量策略这个管理决策变成了一个可以在界面上随时调整的参数。4.3 这笔投入到底值不值回本周期与看不见的收益最后是老板们最关心的问题钱。客户那套产线的TVA改造含两套检测工位、算法开发、集成调试和陪产优化初期总投入在几十万量级。这个数字看起来不小但账不能只看眼前这一笔。先算省下来的部分。原来一个班配2名专职质检员三班倒就是6个人一年的人力成本加上招聘、培训、社保和人员流动损耗客户那边粗算在五十万到七十万之间。TVA上线后原有人员一部分转岗做抽检复核和系统维护直接减员增效的幅度就已经覆盖了大部分投入。再算算隐性收益这部分才是真正的大头。以前质量问题是说不清、查不了账的客户投诉某个批次表面有划痕只能翻纸质记录查到的是几张手写报表根本没有任何图像凭证。现在每一件产品都有检测图片、缺陷类别、置信度、时间戳和批次追溯码客户审核问题件时十分钟就能调出完整的影像档案。质量数据从靠个人记忆变成了资产化沉淀这对通过主机厂审核和后续拿新订单价值远远超过省下的几个人力成本。客户内部做过一个测算整个系统的静态回本周期大约在14个月。但我个人觉得真正的回报是没被写进账本里的——那些因为质量追溯说不清楚而流失的订单才是无底洞。5. 踩坑实录环境光、换型参数和工人信任文档里查不到的三道关卡5.1 环境光漂移被一扇厂房天窗折磨了三天上线稳定后不久我们遇到一个非常诡异的故障上午参数一切正常误报率0.8%下午一过三点误报率突然翻倍。一开始怀疑是相机温度漂移后来怀疑是工控机负载问题折腾了两天没头绪。第三天下午我一个人蹲在检测工位旁边盯着看突然发现检测台上方的光线角度在变化——厂房顶部有一排天窗下午三点的太阳斜射进来正好照在工件的光亮平面上金属反光区域跟着移动模型的判定就乱了。解释起来一句话的事但定位过程花了整整三天。解决方式也很朴素把检测工位整体转了90度避开西晒路径再给天窗加遮光帘。从那以后现场勘察养成一个习惯不光看检测工位本身还要看它周围一天之中光线怎么变化、相邻工位振不振动、叉车经过会不会扬起灰尘。这些看起来跟算法无关的环境因素往往才是决定系统长期稳定性的关键。5.2 换型时的参数爆炸多品种小批量的一把火汽车零部件行业最大的特点之一就是多品种小批量。客户那条产线一天要换型七八次每一种法兰轴的定位坐标、检测区域、允许公差、光源亮度都不一样。如果每次换型都要工程师手动改一遍参数换型后的第一个小时必然是误杀率飙升的窗口期产线根本不答应。我们的解法是建立一个型号-参数组映射表每种产品对应一套完整配方包括模板定位、ROI坐标、阈值参数、模型版本。操作工换型时用扫码枪扫一下料号系统自动加载对应配方全程零人工干预。新产品首次调试时使用半自动学习功能工程师手扶工件跑两三个循环系统自动采集定位特征并生成参数初值再人工微调确认。这套机制用起来之后换型时间从原来的半小时人工调参压缩到三分钟内全自动切换基本和产线换模时间对齐了。5.3 最容易被低估的事怎么让一线工人相信这台机器所有技术问题解决之后最难的一关居然是人的信任。上线初期操作工人对TVA普遍抱着抵触情绪原因也很现实机器误判的时候NG品要他们去翻捡、复检、处理等于给他们添了额外的工作。更麻烦的是有几次出现过操作工觉得机器误杀直接绕过扫码枪把工件放行的行为。我后来总结信任问题的根源在于这台机器剥夺了工人的话语权。于是我们调整了策略请车间里最有经验的那位老质检员当TVA的验收裁判系统判NG的每一件产品都请他复核当着所有人的面对比机器给出的缺陷框和置信度跟他的判断对齐。一个月跑下来他的态度从这机器老出错变成了它比我看得细有些划痕我第一眼真没发现。这个转变一发生整个班组对系统的接受度就上来了再没有人偷偷放行NG品。这件事给我的体会很深视觉检测系统上线的最大风险从来不在技术而在现场对人的改变。算法可以调三个月调到收敛但人的信任一旦崩了项目做再久都会卡在收尾环节。先把人搞定技术落地反而顺畅得多。最后分享一个小经验给准备上视觉检测的同路人立项之前别急着选相机和算法先花一周时间去质检工位旁边坐着看。看人怎么翻件、报怨什么、在哪个时间点开始揉眼睛这些细节会告诉你真正的检测逻辑和阈值边界在哪里。机器要学的不仅仅是什么是缺陷更是老师傅脑子里那套从未完整写出来的判定标准——把这套标准摸透了你的系统就成功了一半。
阅读完成 · 觉得有帮助?