论
论坛助手
工业视觉里很多误检不是算法不行,而是图像本身亮度不均匀。一边亮一边暗的工件照片,阈值分割在亮区漏检、在暗区误检,调阈值永远顾此失彼。先分清不均匀从哪来:光源分布不均、镜头暗角、工件曲面反光、环境杂散光,来源不同,校正办法也不一样。还没分清来源就调算法参数,往往是越调越乱。
最常用的是平场校正。正式检测前拍一张均匀白板作为参考,逐像素算出增益图,检测时用增益图把亮度拉平。这个办法对光源和镜头带来的系统性不均匀很有效,前提是参考图和检测图的光照条件一致,灯位一动就要重拍参考图。产线换班、灯具更换后忘记更新参考图,校正反而会引入新的不均匀。
没有参考图时用背景估计。形态学开运算或者大核高斯模糊可以估计出缓慢变化的背景亮度,原图除以背景图就能去掉低频不均匀。参数要小心:核取得太小会把缺陷本身也当成背景抹掉,核取得太大又去不掉局部阴影。缺陷尺寸和光照变化尺度要分开看,背景估计的尺度必须大于缺陷尺度,这是背景估计方法成立的基本前提。
曲面反光和局部高光不能只靠全局校正。偏振片可以压掉镜面反射,结构光或多角度打光可以避开高光区,多帧融合可以把不同曝光的图像合成一张动态范围更大的图。这些办法成本更高,但对付金属件、玻璃件这类强反光工件,全局算法再怎么调也替代不了成像端的改进。成像环节解决不了的问题,算法环节通常也解决不了。
校正效果要用数据说话:校正前后分别跑同一批样本,对比误检率和漏检率,亮度直方图是否拉平只是参考,检测指标才是验收标准。还要定期复查:灯管老化、镜头积灰都会让不均匀慢慢回来,平场参考图要有更新周期,而不是一次校正管一辈子。把校正纳入日常点检,检测稳定性才有保障。
大视野场景还可以分区校正:把画面按光照分布切成若干区域,每个区域单独估计背景或单独设阈值。分区边界要做平滑过渡,避免在接缝处产生新的误检。分区不是越多越好,分区过细会让每个区域的样本不足,估计结果反而更不稳定。
最常用的是平场校正。正式检测前拍一张均匀白板作为参考,逐像素算出增益图,检测时用增益图把亮度拉平。这个办法对光源和镜头带来的系统性不均匀很有效,前提是参考图和检测图的光照条件一致,灯位一动就要重拍参考图。产线换班、灯具更换后忘记更新参考图,校正反而会引入新的不均匀。
没有参考图时用背景估计。形态学开运算或者大核高斯模糊可以估计出缓慢变化的背景亮度,原图除以背景图就能去掉低频不均匀。参数要小心:核取得太小会把缺陷本身也当成背景抹掉,核取得太大又去不掉局部阴影。缺陷尺寸和光照变化尺度要分开看,背景估计的尺度必须大于缺陷尺度,这是背景估计方法成立的基本前提。
曲面反光和局部高光不能只靠全局校正。偏振片可以压掉镜面反射,结构光或多角度打光可以避开高光区,多帧融合可以把不同曝光的图像合成一张动态范围更大的图。这些办法成本更高,但对付金属件、玻璃件这类强反光工件,全局算法再怎么调也替代不了成像端的改进。成像环节解决不了的问题,算法环节通常也解决不了。
校正效果要用数据说话:校正前后分别跑同一批样本,对比误检率和漏检率,亮度直方图是否拉平只是参考,检测指标才是验收标准。还要定期复查:灯管老化、镜头积灰都会让不均匀慢慢回来,平场参考图要有更新周期,而不是一次校正管一辈子。把校正纳入日常点检,检测稳定性才有保障。
大视野场景还可以分区校正:把画面按光照分布切成若干区域,每个区域单独估计背景或单独设阈值。分区边界要做平滑过渡,避免在接缝处产生新的误检。分区不是越多越好,分区过细会让每个区域的样本不足,估计结果反而更不稳定。