摘要:工业现场相机成像普遍存在传感器固定死像素、随机灰尘黑点、画面冗余像素量大等问题,直接开展 Blob 缺陷检测极易产生误检、漏检。本文依托康耐视 VisionPro 视觉平台,围绕3×3 中值滤波、采样卷积、CogIPTwoImageAdd 双图像素叠加三大预处理核心工具,搭建标准化预处理流水线,从随机噪点消除、图像降采样提速、固定坏像素修补三个维度优化图像质量。经工件瑕疵检测实测,预处理后 Blob 误检率由 23.7% 降至 1.9%,图像处理耗时缩短 42%,可广泛应用于五金、电子零部件在线缺陷检测场景。 关键词:VisionPro;中值滤波;采样卷积;图像相加;预处理;Blob 缺陷检测
0 引言
智能制造生产线中,工业 CCD 相机受感光芯片工艺、现场粉尘、电路干扰影响,采集原图包含两类典型缺陷:其一为随机脉冲噪点(单点小黑尘、瞬时坏像素),零散分布无固定位置;其二为芯片固有固定死像素,坐标永久不变。未做预处理直接二值化 Blob,噪点会被识别为伪缺陷,大幅降低设备稳定性。VisionPro 内置丰富图像处理算子,无需底层算法开发,通过 CogFilterImageTool、CogImageScaleTool、CogIPTwoImageAddTool 组合即可完成全链路图像优化。本文结合一线项目落地经验,拆解预处理逻辑、工具原理与工程落地流程。
1 核心预处理算法原理
1.1 3×3 中值滤波原理(CogFilterImageTool-Median3×3)
中值滤波属于非线性卷积滤波,以单个像素为中心划定 3×3 共 9 像素窗口,将窗口内灰度数值升序排序,取第 5 位中位数替换中心像素灰度值。 例:中心为故障黑点灰度 = 0,邻域像素120、122、119、118、121、123、120、117,序列:0,117,118,119,120,120,121,122,123,中位数 120 覆盖中心黑点,单点噪点直接消除。 对比均值滤波:均值为 9 像素求和取平均,容易造成工件边缘模糊;中值剔除极值噪点,最大程度保留产品轮廓,是工业去椒盐噪点首选方案。 VisionPro 配置:工具CogFilterImageTool,FilterType=CogFilterConstants.Median3x3。
1.2 采样卷积原理
采样卷积 =先卷积滤波→后图像下采样,是工业提速标准工艺,禁止颠倒顺序: 1)先卷积:3×3 中值完成全图噪点清扫,消除零散黑点; 2)后采样:借助CogImageScaleTool等比例缩小图像(常用 1/2 降采样),减少整体像素数量。 若直接先缩图再滤波,微小黑点会被压缩粘连形成连片伪瑕疵,增大后续 Blob 误判概率;先清噪再缩图,兼顾画质与运算速度,有效降低 CPU 负载。
1.3 CogIPTwoImageAddTool 双图相加修补固定坏点
CogIPTwoImageAddTool实现两张灰度图逐像素灰度相加,8bit 图像灰度上限 255,灰度溢出自动钳位 255。工程用法:离线采集空白背景坏点模板图(仅保留所有固定死像素位置),原图 + 坏点补偿模板,定点填充固定暗像素灰度,弥补中值无法处理固定坐标死像素的短板,配合 CogIPOne 单点映射实现全图坏点修复。
- InputImage1:经过中值 + 采样后的处理原图
- InputImage2:预存坏点补偿模板图
2 标准化预处理流水线设计
完整链路:原始采集图像→3×3 中值滤波(去随机黑点)→采样降采样(压缩像素、提速)→CogIPOne 定点微调→CogIPTwoImageAdd 双图相加(修复固定死像素)→Blob 缺陷分割
2.1 分步功能说明
2.2 C# 对接 VisionPro 核心代码
//1、3*3中值滤波
CogFilterImageTool median3 = new CogFilterImageTool();
median3.FilterType = CogFilterConstants.Median3x3;
median3.InputImage = srcImg;
median3.Run();
CogImage8Grey medImg = median3.OutputImage as CogImage8Grey;
//2、图像降采样(1/2缩放)
CogImageScaleTool scale = new CogImageScaleTool();
scale.InputImage = medImg;
scale.ScaleX = 0.5; scale.ScaleY = 0.5;
scale.Run();
CogImage8Grey scaleImg = scale.OutputImage as CogImage8Grey;
//3、双图相加修补坏点
CogIPTwoImageAddTool imgAdd = new CogIPTwoImageAddTool();
imgAdd.InputImage1 = scaleImg;
imgAdd.InputImage2 = badPixelTemplate;//预存坏点模板
imgAdd.Run();
CogImage8Grey finalImg = imgAdd.OutputImage as CogImage8Grey;
3 项目实测结果与数据分析
选取 200 张含随机黑点 + 固定坏像素的工件实拍图,分无预处理、仅中值滤波、完整四步预处理三组测试:
表格
| 无预处理直接 Blob | 23.7% | 112ms |
| 仅 3×3 中值 | 6.4% | 96ms |
| 完整预处理流水线 | 1.9% | 65ms |
数据表明:全套预处理方案既消除噪点误判,又通过采样压缩缩短运算时间,完全满足流水线 20 件 /s 在线检测节拍需求。
4 应用拓展与选型建议
5 结语
基于 VisionPro 的中值 + 采样卷积 + 双图相加预处理方案,用成熟封装工具替代复杂自研滤波算法,兼顾开发效率与检测稳定性,完美解决工业成像两类噪点难题。整套流程通用性强,可快速移植于尺寸测量、字符识别、外观缺陷检测各类视觉项目,是低成本优化视觉系统鲁棒性的最优路径。





