大模型视觉 · 外观质检 / 落地方案

食品包装行业:奶粉勺六面外观视觉检测落地方案

一只奶粉勺、六个面、脏污裂纹缺料—— 用六相机环绕工位一次拍全,再把「像不像缺陷」变成事件层里可改的毫米数

本篇要点

六相机环绕工位布局:上下前后左右六路同时对准奶粉勺
图 01六相机环绕工位示意。上下两路垂直对置,前后两路水平对置,左右两路带倾角补侧面;六路共用同一组成像参数,工件到位后同时触发。

奶粉勺是奶粉罐里的标配量具,注塑成型、表面光洁,但来料与注塑过程会带入脏污、裂纹、缺料、变形等外观不良。这类件体积小、价值低、批量大,外观质检长期靠人工目检——六面翻转、逐件过目,一个班次下来漏检率随疲劳直线上升;不良图片和结论也很少留下结构化记录,回头追溯只能靠记忆。本方案要解决的不是「有没有模型」,而是把六面外观检测收敛成可配置、可复核、可复制的检测口径。

01/09现场问题

难点是面太多,而缺陷太小

奶粉勺的缺陷清单不长:脏污、裂纹、缺料、变形,加上注塑常见的飞边与缩痕。难点在三个附加条件。其一,六个面都要检——勺头内外、勺柄正反、两侧边缘,任何一面漏检都直接流向消费者。其二,缺陷尺寸小且形态相近,0.1 mm 的脏点和正常注塑纹理在普通照明下几乎无法区分。其三,工件是反光注塑件,环境光一变,同一件的成像就跟着变,传统阈值法根本守不住。

更麻烦的是标准的弹性。「多小的脏污算 NG」这件事,不同客户、不同批次往往有不同答案。传统 AOI 的做法是先按一个假定档位收样本、训模型、调阈值,等标准明确了再重来一轮——这一轮返工的成本,往往比第一轮还高。所以本方案从一开始就把最小检出档位当作一个待填的参数来设计,而不是当作一个已知条件。

六面外观检测要交付的不是识别率,而是一条可量化的检出下限,以及标准变化时只改一个数字的能力。

02/09六面覆盖

六相机环绕,一次拍全

六面检测最直觉的做法是单相机加翻面机构,拍六次。但翻面意味着二次定位,六次曝光意味着六倍节拍,而奶粉勺的产线节拍是以秒计的。方案因此采用六相机环绕工位:上下、前后、左右各一只,工件到位静止后六路同时触发,单件六面在一次节拍内完成。

这个布局的关键不是相机数量,而是光轴的相互关系。上下两路垂直对置,覆盖勺头内凹面与勺柄背面;前后两路水平对置,覆盖勺头前端与勺柄尾端;左右两路带 30° 倾角,补出两侧边缘与勺头侧壁。六路之间没有机械运动,也就没有重复定位误差;每一路的视场都留出装夹余量,工件在工装里的微小偏移不会把边缘切出画幅。

值得指出的是,六路对软件是同一套。无论六只相机还是一只相机拍六次,进入状态机的都是「六面结论」六个事件,按同一个工件编号汇合,任一面命中即整件 NG。六相机只是把「六次」压缩成「一次」,检测口径不变。

03/09成像口径

0.023 mm/pixel,缺陷在画面里占多少像素

采样精度必须先定下来。现有配置是 2000 万像素彩色相机、16 mm 定焦镜头、白色环形光源,工作距离 240 mm,单帧视场 128 × 85 mm。按 5496 × 3672 计算,横向 128 mm 对 5496 像素,约 0.023 mm/pixel;纵向 85 mm 对 3672 像素,约 0.023 mm/pixel,两个方向一致。

成像口径:左侧光路侧视,右侧像素尺与典型缺陷的像素占比
图 02成像口径。左侧为光路侧视:相机、16 mm 镜头、环形光源与工件的相对位置;右侧为 0.023 mm/pixel 下的像素尺,以及 0.1 mm 脏点、0.5 mm 裂纹、1.0 mm 缺料在画面中的像素占比。

由此可以核出三个数。其一,奶粉勺长边约 110 mm,128 mm 视场留出装夹余量后单帧覆盖整件,无需分段拍摄。其二,0.1 mm 脏点约占 4.3 像素,已经接近像素级分割的检出下限;0.5 mm 裂纹约 22 像素,1.0 mm 缺料约 43 像素,这两个量级足够让分割贴住轮廓。其三,400 µs 短曝光加黑色背景,把环境光和注塑件的方向性反光一并压住,缺陷与正常面的灰度差拉开——这是后续分割能稳定工作的前提。

环形光源贴得比镜头近(220 mm 对 240 mm),是为了让入射角更陡,把勺头内凹面的阴影区压小。光源稳定性是这套配置里唯一需要现场守住的变量:注塑件表面反光强,光源亮度漂移 5 %,同一处的灰度就可能漂出阈值带。因此注意事项里明确要求「光源稳定,需要一定的避光」——这不是锦上添花,是硬约束。

04/09缺陷样例

六面实拍,缺陷长什么样

以下六张是六路相机在同一节拍内拍到的实际效果,已按面别裁切。可以看到,脏污在勺头内凹面表现为一片不规则暗斑,裂纹在勺柄正面表现为一条细线,缺料在边缘表现为轮廓内缩——三类缺陷在成像上的形态差异很大,这也是它们必须分成不同事件、共用同一套分割底座的原因。

上相机拍到的勺头内凹面,可见一处脏污暗斑
图 03上相机视角:勺头内凹面。中央偏左的暗斑为脏污,面积约 0.8 mm²,在 0.023 mm/pixel 下约 1500 像素,分割掩膜可以完整贴住。
前相机拍到的勺柄正面,可见一条细裂纹
图 04前相机视角:勺柄正面。裂纹长约 0.6 mm、宽不足 0.1 mm,在画面中呈一条断续细线;这类目标用框回归几乎无法贴合,必须走像素级分割。
左相机拍到的勺头侧壁,可见边缘缺料
图 05左相机视角:勺头侧壁。边缘缺料表现为轮廓局部内缩,深度约 0.3 mm;这类缺陷的判据是「相对标准轮廓的径向内缩」,与圆环磕边的判据形式一致。

需要说明的是,这批图是打光实验阶段的输出,曝光与背景已按正式口径固化,但缺陷样本量还不足以覆盖所有形态。正式上线前需要按「正常、明显缺陷、临界缺陷、干扰项」四类补齐样本谱,尤其是临界样本——它直接决定了最小检出档位定在哪里才既不漏检也不虚报。

05/09张量流

六条支路,汇进同一条工作流

视觉智能体部署在边缘侧:配置、推理、展示与结果输出在同一套软件里完成,零代码拖拉编排——从算子库拖出节点、按数据流连接。本项目的流很规整:触发后六路并行采图,每路先预处理(定位与归一化)、再语义分割、再事件探测,六路事件汇入同一个状态机,之后接存图与上位机通讯。

张量流编辑器:工业相机 → 图像预处理 → 语义分割 → 事件探测 → 状态机,再分存图与串口输出
界面 01张量流画布。左侧为算子库,画布上按数据流依次连接工业相机、图像预处理、语义分割、事件探测、状态机;状态机输出分两路,一路存图归档,一路经串口设备发 OK/NG 给上位机。双击节点进入子编辑器:语义分割 → 标注工具,事件探测 → GPU 事件编排器,状态机 → 状态图编辑器。

这条流的结构与产品规格无关,换一种勺型只需改标定值、样本与阈值,流本身可以直接复用到同类工位。六路并行对边缘 GPU 的算力要求不高:单路 5496 × 3672 的语义分割在边缘 GPU 上约 80 ms,六路并行约 120 ms,加上事件判定与状态机流转,单件总耗时控制在 200 ms 以内,远低于产线节拍。

06/09语义分割

像素级掩膜,用 1–10 张样本把新形态定下来

奶粉勺的缺陷边界大多不规则:脏污是任意形状的斑,裂纹是细碎的线,缺料是渐变的轮廓内缩——框回归很难贴合,而后续的尺寸判定又完全依赖轮廓精度。方案因此走像素级语义分割:在标注工具里用少量现场图定义「脏污」「裂纹」「缺料」三个类别,产品侧按 1–10 张样本图、数分钟配置 起步,输出掩膜后再算面积、长度或最大外接尺寸。

语义分割标注工具:左侧标注画布、右侧检测结果,底部保存标注 → 迁移 → 检测闭环
界面 02语义分割标注工具。左侧为标注画布,右侧为检测结果,同一帧对照;缺陷类型下拉当前选中「01 脏污」。底部形成保存标注 → 迁移 → 检测的闭环,训练产物回填给张量流的语义分割节点。

这一步是「六面外观检测」能落地的前提。少样本底座意味着新增一类缺陷不必重启一轮采集与长训——不同批次、不同颜色的勺型之间,形态相近的类别往往只需少量补标即可迁移。训练与推理都在边缘 GPU 本地完成,工位画面不出厂,既保实时性,也减少数据外传。

07/09事件判定

把掩膜变成「脏污超 0.5 mm²」

分割只负责看见像素,业务要的是可判定事件。事件在 GPU 事件编排器里搭:由「物体存在」确认掩膜命中目标类别,再由「面积检测」或「长度检测」取掩膜尺寸与毫米阈值比较,两者经「与」汇合。脏污档位就是在这里落地的——先由「物体存在」确认掩膜命中脏污类,再由「面积检测」取掩膜面积与平方毫米阈值比较。

GPU 事件编排器:物体存在与宽度检测经与门汇合,右侧事件张量列出四个事件
界面 03GPU 事件编排器。示例配置「脏污超限」:左侧原语库拖入「物体存在」与「宽度检测」,经「与 (AND)」汇合;右侧事件张量列出四个事件,E3「六面全OK」由六个面别的事件引用组合而成。

把阈值放在事件层而不是模型里,是这套结构的关键。0.3 mm² 与 0.5 mm² 共用一条掩膜、共用一个模型,改验收档位只改一个数字;同理,裂纹长度的上限、缺料深度的容差,都在配方里改,感知层不动。这一点对频繁变更公差的产线尤其重要。

08/09状态机

六面全 OK 才放行

六路判定带来一个人工目检没有的问题:一件产品会产生六个结论,必须有东西把它们收成一个结论。状态机把离散事件编成现场流程:工件到位后进入六面采图,六路判定全部合格才放行并计数,任一面命中即转 NG,存图时把面别、类别与尺寸一并记录下来。NG 件离位进入待复核,复判后重新到位再检。

状态图编辑器:等待到位、六面采图、判定中、放行四个状态,事件标签挂在转移连线上
界面 04状态图编辑器。S0 等待到位 → S1 六面采图 → S2 判定中 → S3 放行;E4「六面全OK」走 S3,E1–E3 任一面超限即转 NG。右侧事件张量与状态-动作张量随配置实时更新。

机器给出的不是「某一帧看起来像不像」,而是「这一件在当前配方下是否允许过站」——带面别、带类别、带毫米、可复核。

09部署闭环

边缘本地推理,样本与结论一起沉淀

整套系统落在五层结构上:六只相机与环形光源负责采集;千兆工业以太网在内网传输,图像不出厂区;边缘 GPU 完成分割推理、事件判定与状态机流转;前端提供实时画面、NG 报警、人工复核与按时间/件号/面别检索的追溯;配方统一管理相机参数、标定值、模型版本与阈值。原图、掩膜、结果图与结论按件归档,既是追溯材料,也是下一轮优化的样本来源。

对这个尚未锁定标准的项目,归档还有一层额外价值:系统跑起来之后,每一件的缺陷尺寸分布都会被记下来,几周之后就有了一张真实的尺寸分布。最小检出档位可以定在数据上,而不是定在感觉上

系统硬件配置

下表只定设备类别与配置方向;具体型号在实物复核与节拍确定后冻结。

#设备配置方向用途
1工业相机2000 万像素彩色、外触发六路采集,对应 ≈ 0.023 mm/pixel
2工业镜头16 mm 定焦匹配 128 × 85 mm 单帧视场,WD 240 mm
3环形光源白色环形,220 mm 工作距离陡入射角压反光,黑色背景吸杂散光
4光源控制器4 通道 × 2六路光源独立触发与亮度管理
5定位工装六面定位 + 黑色背景守住重复摆放与成像一致性
6到位传感器 / PLC 接口工业开关量或通讯接口触发采图、接收 OK/NG、控制过站
7边缘计算单元满足六路并行推理与数据保存分割推理、事件判定、界面与归档
8HMI 与声光报警工业显示器、三色灯、蜂鸣器现场显示、报警、复核与操作

实施节奏

顺序上有一处与常规不同:标准对齐排在样本采集之前。判据没定就开始标注,标注规范会随判据一起返工。

阶段周期主要工作输出物
标准对齐1 周明确各类缺陷的最小检出档位、允许范围与复核规则验收判据表 · 标注规范
成像固化1 周锁定曝光与光源亮度,工装重复定位复核,用标准件标定 mm/pixel成像标定记录 · 工装验收项
样本与标注1–2 周采集正常、明显缺陷、临界缺陷与干扰样本,按统一标准标注样本库 · 标注一致性核对
试点部署1–2 周配方、事件阈值与状态机联调,六面结论汇合与上位机对接上线系统 · 配置记录
试运行优化2 周按误报/漏报样本调整阈值与模型,用实测分布回定档位优化报告 · 尺寸分布 · 运维手册

适用边界也说清楚。本方案面向表面型缺陷,即在六面外观上造成可见异常的脏污、裂纹、缺料与变形;如果验收范围还包括内部气泡、熔接线这类结构型缺陷,环形光从外部照明的做法就不再适用,需要另配透射或 X 光作为第二套配方,属于另一条技术路径。文中所有量测值取自打光实验阶段的输出,用于确定量级;最小检出档位与 OK/NG 界限,以正式样件和客户验收标准为准。

BLUE

Blue

工业视觉算法工程师 · 本文作者

计算机视觉方向,长期做光学成像与缺陷分割的工程落地。习惯先把打光与采样口径定住,再谈模型;近年主要用少样本视觉大模型替代逐类调参的传统 AOI,参与过 3C 结构件、家电五金、锂电与汽车零部件的产线检测与 SOP 过程监控部署,也负责现场标定、配方管理与上线后的持续迭代。