去年下半年,一家昆山的电子接插件厂找到我们。他们主要生产排针排母连接器,用在工控设备、汽车电子上。PIN针间距最小的那款是0.5mm——比一根头发丝粗不了多少。

就是这种细小的PIN针,在冲压和组装过程中偶尔会弯。按照他们的说法,良品率其实不低,弯针率大约在2%左右。问题在于——这2%的不良品流到客户那里,投诉起来就不是小事。一台设备几十上百个PIN针,有一个弯的,整条产线就得停下来排查。

他们的质检方式是:每个产品从产线上拿下来,放到显微镜下,工人一个个数PIN针。一个人一天能看3000个产品,眼睛累得发胀。而且检查全凭经验,PIN针弯一点点,在显微镜下看得很清楚,但在流水线上手一抖就漏了。

这篇文章就记录我们是怎么用边缘AI视觉方案帮他们解决这个问题的。不说效果多好,只说做了什么、踩了什么坑。

一、现场情况摸底

去工厂待了两天,摸清了几个关键信息:

和老板聊预算的时候,他的态度很明确——先拿一条线试,有效果再推广。

二、方案设计

接插件PIN针检测在视觉领域其实有不少方案。但大多数是国外品牌做的大设备,一台十几万甚至几十万,对中小型供应商来说不太现实。我们的思路是用性价比更高的方案把这件事做下来。

检测对象分析

0.5mm间距的PIN针,单根针直径0.3mm。要看清这么小的目标,需要满足几个条件:

硬件选型

最终配置:

最花时间的是光源方案。PIN针是不锈钢材质,表面像镜子一样反光。一开始用了环形光,拍出来的照片全是光斑,PIN针顶部根本看不清。后来试了同轴光+穹顶光的组合才搞定——同轴光提供垂直照明,穹顶光把环境散射光均匀化。

算法方案

检测流程分两步:

第一步:PIN针定位与计数。用轻量级目标检测模型(YOLOv8n)识别每个PIN针的位置。如果检测到的PIN针数量少于设计针数,直接判定为"缺针"。

第二步:PIN针形态分析。对每个PIN针的检测框做二次分析:

模型在边缘AI网关上运行,单次推理约300ms,加上前后处理总耗时约800ms,满足3秒的节拍要求。

为什么选边缘计算不上云

一共三个原因:

三、实施过程

第一周:相机安装和初步调试

机架做好后,现场安装用了两天。相机固定在产线上方,产品通过传送带送到检测位,光电传感器触发拍照。

调试阶段第一个坑——振动。产线运行时传送带电机有轻微振动,相机拍出来的照片边缘有微小模糊。别小看这零点几毫米的模糊,在要分辨0.05mm偏移的场景里,直接影响检测精度。解决方案是在相机支架底部加橡胶减震垫,同时把相机的曝光时间缩短到1毫秒以内。

第二个坑——焦距校准。不同款连接器的高度不一样(决定PIN针面到镜头的距离),换产品型号时焦距要重新调。后来做了一个可调节的Z轴滑台,每次换产品型号手拧几下就行。

第二至三周:数据采集和模型训练

数据采集最费工夫。我们从产线拿了约5000个产品——其中有良品,也有各种缺陷品。

关键问题:缺陷样本不够。2%的弯针率听起来不少,但算到单一缺陷类别就很少了。个别类型的缺陷(比如PIN针缺失)可能好几天才碰到一个。

解决方式:

总共标注了约8000张图片,其中缺陷样本约1200张。

模型训练用YOLOv8n在RK3588的NPU上做量化部署。初次训练完精度还可以——在测试集上检出率约96%,但误报有点多(约5%)。主要问题是把PIN针表面的轻微脏污误判为弯曲。

教训:单纯加更多训练数据无法解决这个问题。后来在二次分析阶段加了一个"脏污过滤"逻辑——计算PIN针顶部区域的灰度方差,如果方差过大说明表面有脏污,降低这枚PIN针的异常得分。这个后处理把误报率从5%降到了约1.5%。

第四周:上线试运行

系统上线第一周,不敢直接取代人工。方案是并线运行——AI检完后人工再检一遍。

这一周暴露了几个问题:

四、实际效果

检出率:约97%
对明显的弯曲和缺失几乎100%检出,临界弯曲(0.05-0.08mm偏移)检出率约92%。整体比人工目检的95%检出率略高。
在线检测速度:约2.5秒/件
包括拍照、传输、推理、判定全过程。配合自动上下料机构,节拍刚好对齐产线速度。
误报率:稳定在约1.5%
误报件主要是PIN针表面有加工油污的产品(油污被误判为弯曲)。经过后处理的油污过滤逻辑后,约一半的误报被消除了。

另外有一个数据没有在前期预期到——过程数据反哺了工艺改进。系统记录了每个产品的PIN针位置偏移量分布。两个月的数据积累下来,发现其中一列PIN针的平均偏移量比其他列大。排查发现是冲压模具的对应位置有磨损。换模具后,那列针的良率明显回升。

五、遇到的问题和解决办法(踩坑汇总)

光源反射问题:前面说了,金属PIN针反光严重。试了环形光、条形光、同轴光、穹顶光四种方案,最后同轴+穹顶组合最好。但不同PIN针材质(镀金、镀锡、裸铜)反光特性不同,换镀层后要微调光源亮度。

多型号切换:工厂有3款常用型号加若干小批量型号。不同型号的PIN针数量、排布、间距都不同。方案是给每个型号建一个配置文件,存PIN针数量、标准间距、ROI区域、检测阈值。换型号时扫码枪一扫,系统自动加载对应配置。

模型泛化问题:同一型号不同批次的PIN针,表面状态有差异(有的批次表面更亮)。初始模型在一个批次上效果不错,换了批次后误报增加了。解决方案是在部署后持续收集新批次的样本,每两周做一次增量微调。

和MES系统的对接:客户希望检测结果直接写入MES系统,每个产品有唯一的检测报告。边缘AI网关通过Modbus TCP把结果传给PLC,PLC再传给MES。中间调试Modbus的地址映射花了两天——一个地址写错了,结果产量数据全是乱的。

六、个人思考

这个项目做完,有几条感受:

微小缺陷的视觉检测,物理层面的问题比算法更难。光源、焦距、减振、散热——这些硬件问题花的时间比模型训练多一倍。算法包打天下的想法在工业场景里不太现实。

样本不平衡是现实问题,不是理论问题。论文里可以各种采样方法,实际就是找不到足够的缺陷样品。数据增强和合成样本能缓解,但解决不了根本。最好的策略是在系统上线后持续收集新缺陷——越跑数据越强。

操作工的信任是最容易被忽略的环节。产线上的质检员一开始不信任AI的判断,经常把AI判为良品的再检一遍。后来让质检员参与到标注工作中——让她们标注缺陷图片,她们参与了就信了。这个经验在最开始的方案里完全没有考虑。

AI检测的价值不止在替代人工。系统跑出来的过程数据——每个PIN针的位置偏移、每个产品的偏移分布——这些数据反哺工艺改进的价值,可能比替代目检更大。但这个价值需要跑几个月才能体现出来。

七、给你的建议

如果你也在考虑类似的微小零件视觉检测项目:

  1. 先花一周时间搞定光源方案——打光不好什么算法都救不了。拿样品来试,不同角度、不同光源类型、不同亮度的组合,试到满意再往下走
  2. 缺陷样本至少准备500张以上才有实用价值——不要上来就追求模型精度,先把样本池做扎实
  3. 给后处理留足够的设计空间——纯靠模型判断容易误报,加上一些规则逻辑(PIN间距一致性、灰度变化、面积比)能大幅提升效果
  4. 预留相机物理调节机构——Z轴滑台、减震底座、镜头锁紧,这些看似基础的机械结构决定了系统能稳定运行多久
  5. 让现场质检员参与——她们最清楚"什么算不良",她们的参与能显著降低系统上线的阻力
  6. 做好连续运行的节奏——边缘AI网关放在车间里,散热、电源稳定、光源寿命都要经过连续24小时的考验