去年秋天,福建一家饮料代工厂的老板找到我们。他们主要给几个区域品牌代工PET瓶装水,有一条高速灌装线,额定速度每分钟600瓶。问题提得很直接:人工灯检漏检导致客户投诉越来越多了。

投诉的内容集中——瓶盖没旋紧(运输渗漏)、液位不满(消费者觉得"缺斤短两")、标签歪斜(影响品牌形象)、喷码模糊(批次追溯困难)。最严重的一次,有客户收到一瓶盖子完全没旋上的水,直接在电商平台上给了差评,还拍了视频发到抖音上。

老板说,他们已经配了6个灯检工,每班3人轮岗,站在灌装线两边盯着看。但每分钟600瓶的速度,相当于每秒钟10个瓶子从眼前过,一瓶一瓶看根本不现实。灯检工的实际做法是"抽检"——几分钟看一段,没发现问题就继续放行。漏检率有多高?没人知道确切数字,但品控经理估算至少有15-20%的次品会漏过去。

这篇文章记录了我们怎么用AI视觉来做高速灌装线的在线全检,以及这个过程中遇到的种种问题。

一、现场情况摸底

第一次去车间是在一个周三下午,灌装线正在生产550ml纯净水。在车间里待了两个多小时,一边看一边记:

和品控经理聊了聊,他说了一句话让我印象很深:"做饮料这么多年,我知道灯检就是个心理安慰——瓶子跑那么快,人眼根本看不过来。" 这句话基本就定调了:必须做在线全检,而且必须是机器视觉。

二、方案设计

方案的核心思路:在灌装线和旋盖机之后、贴标机之后、喷码机之后分别布置视觉检测工位,用一台边缘AI网关统一处理3个工位的图像,检出不合格品后通过气动剔除装置在输送带末端剔除。

第一工位:瓶盖+液位检测(灌装后、贴标前)

这个工位最考验速度。瓶子刚从旋盖机出来,每分钟要处理近600个。分3个检测任务并行运行:

光学方案:顶部用环形LED光源(白光,提供均匀的顶光照明),相机用200万像素全局快门工业相机,镜头焦距8mm,视场覆盖一个瓶盖完整区域。侧方用背光+前光组合——瓶子背面放一块均匀背光板,前面用条形光源补光,让液位线形成清晰的黑白分界线。

第二工位:标签检测(贴标后)

瓶子经过贴标机后进入第二工位。这里检测:标签是否贴到位(上沿和下沿是否在规定的区域内)、标签有无明显歪斜(歪斜角超过设定阈值判定不合格)、标签有无气泡/褶皱/破损。检测需要覆盖瓶身180°的范围(瓶子另一面看不见),所以用了一个90°棱镜+双侧相机方案——两台相机从两侧同时拍摄,覆盖整个瓶身圆周。

第三工位:喷码检测(喷码后)

瓶底喷码,喷的是生产日期和批次号。检测任务:喷码是否清晰可读(对比度是否符合OCR识别要求)、喷码位置是否在指定区域内(偏移超过3mm判定不合格)、是否有缺码(喷码机故障导致漏喷)。

这个环节用了OCR模型——先定位喷码区域,然后用轻量级OCR模型读取字符,再逐个比较字符的完整性。难点在于瓶底是曲面,喷码在曲面上的变形会导致OCR识别困难。

剔除机制

任何工位检出不合格品,边缘AI网关立即发送剔除信号给PLC,PLC在输送带末端的气动剔除站执行剔除操作。考虑到从检测到剔除之间瓶子已经前进了约2-3米(大约0.25-0.3秒),需要在PLC里做一个移位寄存器——用编码器跟踪瓶子位置,把检测结果写入移位寄存器的对应位,等到该瓶子到达剔除位时才触发气动推杆。

教训:最开始我们以为检测到不合格就能立刻剔除,完全忘了输送带是连续运转的。瓶子检测完了已经往前走了一两米,气动推杆推的是后面的瓶子。这是做硬件集成的新手最容易犯的错误——"检测"和"执行"之间隔着物理距离。编码器位置跟踪是必修课。

边缘网关

3个检测工位共5台工业相机(1台顶部 + 1台侧方 + 2台标签 + 1台瓶底),全部通过GigE接口连接到一台边缘AI网关。网关规格:

三、实施过程

第一周:光学方案验证和打光调试

光学方案是整个项目的基石。我们先在离线环境下搭建了一个模拟工位,用相同的瓶子和相机验证各检测项的光学条件。

瓶盖+液位工位是最先调试的。顶部环形光拍瓶盖没有问题,但液位检测出了状况。问题的核心是:PET瓶是透明的、水也是透明的——水、瓶壁、空气三者之间的折射率非常接近,普通正面光照明下液位线完全看不到。

试了4种光学方案:

  1. 正面背光:在瓶子背面放LED背光板——能看到液位线,但冷凝水在瓶身上形成的水滴干扰严重,水滴的边缘被误判为液位线。
  2. 侧面漫射光+偏光滤镜:减少冷凝水反光——有一定效果,但相机帧率下降(加了偏光滤镜进光量减少了约一半),需要更强的补光。
  3. 红外光照明:利用水在近红外波段吸收率高的特性——有效!在850nm红外光下,水呈现深色,瓶壁和空气相对较亮,液位线对比度很高。最终方案选了红外背光+红外滤镜。
  4. 结构光方案:用线激光在瓶身表面打一条线——理论上最精确,但安装空间不够,放弃了。

标签工位:标签的问题是瓶子是圆柱形的,标签贴在弧面上,从正面拍中间清楚、两边模糊、或者反过来。我们用两台相机从不同角度拍,然后用图像拼接算法合成一个完整的展开图。照明方面用了两个条形光源从左右两侧45°打光,平衡曲面上的光照不均。

瓶底喷码工位:瓶底透光,喷码是黑墨打在透明PET上,对比度不错。但曲面变形是OCR的主要敌人——同一行喷码字符在瓶底边缘比在中心小得多。解决方案是在训练OCR模型时,把不同曲率位置的喷码图片都加入训练集,让模型适应这种变形。

第二周:相机安装和产线集成

离线调试好了,接下来是上产线。安装花了不少功夫:

踩坑:第一天上产线测试时发现液位检测工位的图像全是糊的——不是对焦问题,是快门速度跟不上线速。瓶子在600瓶/分钟的线速下移动速度是约1.2米/秒。我们用的全局快门相机需要快门速度至少1/2000s才能拍清楚运动中的瓶子。但红外光的效果需要更长的曝光时间来补偿进光量。折中方案是把红外光强度提高(换了大功率红外灯),快门设为1/2500s,图像清楚了。

第三周:模型训练和阈值标定

模型训练分4个独立模型:

4个模型部署到边缘网关后,做一个帧级别的推理调度——每收到一次触发信号,5张图片并行推理,4个模型同时跑,总推理时间控制在100ms以内(从图像采集到输出检测结论)。

关于推理速度有个教训:最开始我们是在CPU上跑的,4个模型串行推理,一张图片的平均耗时约120ms,5张图像加起来超过600ms——完全跟不上线速。换到NPU推理后,4个模型并行推理,Total time降到约85ms,才算够用。如果算力不够,宁可减分辨率、减模型精度,也得保证推理速度。

第四周:试运行和调优

试运行阶段每天生产约10小时,我们全程在场记录。

第一天的崩溃:系统上线第一天,剔除率高达12%——即12%的瓶子被判不合格被推下线。品控经理一看就急了,说我们正常次品率只有3-4%,你们的系统是不是有问题?

排查下来有几个原因:

调了三天之后,剔除率降到约5.5%,其中经人工复判确认真正不合格品约占总产量的4.2%——和品控经理之前估算的3-4%基本吻合。约1.3%的剔除是误报(正常瓶被推下了线)。误报比例在预期范围内,后续还可以通过模型迭代进一步降低。

真实检出:试运行第二周,系统检出一批瓶盖有系统性问题——某次原料切换后,瓶盖供应商同一批次的盖子偏大,导致旋盖机设定的力矩无法拧紧。人工灯检完全没发现,AI视觉检出了连续12瓶盖子未旋到位。品控紧急换了盖子和调整力矩,避免了3000箱产品的质量事故。这个事件之后,操作工对系统的态度明显转变了——从"这个机器老是乱报警"变成了"今天AI抓了几个坏的?"

四、实际效果

系统跑了约3个月后,我们和数据团队一起做了效果评估。

漏检率大幅下降
人工灯检阶段漏检率约15-20%,AI全检上线后,漏检率降到约2-3%(即合格品被误判为不合格的误报率约1.5%,不合格品漏过的漏检率约0.5%)。客户投诉量下降了约八成。
灯检工位从6人减到2人
原来每班3人做灯检(两班倒共6人),AI全检系统上线后,灯检工位改为"AI初检+人工复判"——AI剔除的不合格品由1名质检员复判确认,另一人处理设备报警和日常维护。6人减到2人,人工成本有明显节约。剩下的灯检工转岗到其他工序,没有裁员。
产线效率提升
人工灯检时,灯检工有时候跟不上速度会暂缓输送带,导致灌装机间歇停机(灌装机不能装满了再等)。AI检测没有这个瓶颈,输送带可以全速运行。产线利用率从85%提升到约93%。

也有一些没想到的问题。

问题1:红外光源衰减。3个月后液位检测工位的红外光源明显变暗了。排查发现是大功率LED红外灯在高湿环境下散热不良,LED光衰加速。换了防水等级更高的IP66红外灯,并在灯罩内加了散热风扇。

问题2:标签检测的"新标签综合征"。每次客户换新包装(新标签设计、新材质),模型需要约1-2天的新数据来微调。品控现在养成了习惯——新包装上线前提前一周通知我们做模型适配。

问题3:瓶底喷码的脏码。喷码机偶尔会喷出模糊的码——不是喷码机坏了,而是瓶底在灌装过程中沾了水,墨水打在湿的表面就晕开了。生产线在喷码工位前加了一个吹气干燥装置后,问题基本解决。

五、我的思考

这个项目做下来,几个体会比较深:

高速产线的AI视觉,瓶颈往往不在AI而在光学。模型精度做到98-99%不难,难的是让相机在600瓶/分钟、高湿、振动、冷凝水的环境下稳定拍出清晰的图片。红外光的发现是这个项目最大的转折点——如果没有液位检测的光学突破,模型再强也没用。

"检测-剔除"之间的物理距离是新手最容易被忽视的坑。一开始我们花了大量时间搞模型精度,但真正上线时出问题的反而是剔除逻辑和编码器跟踪。模型精度从95%提到98%可能花了两周,但编码器跟踪的逻辑bug修复花了三天。做工业项目的精力分配,应该和做纯软件项目完全不一样。

全检和抽检的心理影响完全不同。抽检时操作工知道"大概没问题就行",心态上是放松的。全检系统上线后,每个人都看到精确的检测数据——今天多少个瓶盖不合格、液位超了多少次、哪个环节问题比较多。数据透明之后,灌装段的操作工会主动去调整旋盖机的力矩参数,贴标机的操作工会注意标签卷的张力。品控经理说了一句话:"以前靠抽检的时候,大家觉得'差不多就行了'。现在每瓶都检、每个数据都记录,大家就较真了。"

消费品行业的质量投诉成本比工厂行业高得多。一瓶盖子没旋紧的水,被消费者拍个视频发到社交媒体上,品牌方的损失可能比那一箱水的成本高几百倍。这就是为什么即使AI视觉方案初期投入不低,饮料厂的ROI也比大多数制造行业更容易算清楚。

六、给你的建议

如果你的产线也在考虑上AI视觉全检,几个经验供参考:

  1. 先搞定光学,再谈AI——花足够的时间在现场做打光测试。好的打光方案可以降低模型复杂度,坏的打光方案即使模型再强也救不回来。
  2. 高速线必须用全局快门——卷帘快门下运动的瓶子会产生果冻效应,检测精度会大打折扣。
  3. 编码器位置跟踪是必修课——"检测"和"剔除"之间隔着物理距离,不要以为检测到结果就能立刻执行。
  4. 留足误报空间——上线第一周误报率可能会偏高,给现场团队打好预防针。同时设计好"人工复判"的流程,让AI剔除的瓶子有人确认而不是直接丢掉。
  5. 瓶型和产品变更要做好配置管理——不同的瓶型、不同的标签材质、不同的液位线需要不同的检测参数。提前设计好切换逻辑,不要等上线了才现场改。
  6. 高湿环境要注意传感器的长周期可靠性——红外光源衰减、镜头冷凝水、传感器接口氧化,这些问题是高湿食品/饮料车间的常态。防护等级和定期维护计划要提前规划。