工程师在算法上调了三天调不出来,最后发现是把灯换个角度五分钟就解决了——这种事在视觉行业反复发生。本文给出一条可操作的判断线,避免把照明问题误当成算法问题。
把整条链路拆开看:
关键结论:如果图像上根本没有灰度差,算法再强也做不出来。算法能做的是在已有的灰度差上做分割、拟合、分类,不能凭空创造信息。
所以排查顺序永远是先看图,再改算法。
以下六类情况,调算法基本是浪费时间,应该改照明:
反过来,以下四类问题改照明没用,应该在算法或系统侧解决:
遇到「算法做不出来」,按三步定位:
这三步几分钟就能走完,比在算法里试参数快得多。
第二步的量化判据值得单独说一句:把缺陷区与背景区的平均灰度差,和背景区的灰度标准差放在一起比。如果差值小于标准差的几倍,说明特征淹没在噪声里,这时候任何算法都很难稳定分离,必须先从照明上把差值拉大。
还有一个现实理由支持「先改照明」:
更重要的是鲁棒性:靠照明做出来的灰度差是物理性的,对批次变化稳定;靠算法硬凑出来的判据,往往只对当前批次的样本有效。
选型阶段的走法见机器视觉光源选型流程。
照明负责把物理特征变成灰度差,镜头与相机负责把灰度差忠实记录下来,算法负责把灰度差变成判定结果。关键结论是如果图像上根本没有灰度差,算法再强也做不出来。算法能做的是在已有的灰度差上做分割、拟合、分类,不能凭空创造信息,所以排查顺序永远是先看图再改算法。
特征与背景灰度几乎一样,要换波长把差异放大;高度差看不见,正面光下刻痕几乎不可见,要改掠射角度;局部过曝亮斑,属于反光问题不是算法问题;整幅亮度不均,全局阈值必然失效;边缘过渡带太宽,多是背光发散或工作距离不对;灰度随时间漂移。这六类调算法基本是浪费时间。
镜头渐晕,四角发暗是镜头的光学特性,换再均匀的灯也没用,要靠平场校正;传感器像元响应不一致,属于相机侧问题,同样靠平场校正;工件姿态不固定,照明依赖姿态,姿态随机变化时应该靠定位与仿射变换处理或改用对姿态不敏感的方案;特征本身在公差内波动,这是真实的过程波动,要靠统计过程控制。
三步测试:把图拿出来肉眼看,如果人眼都分不出缺陷在哪那就是照明问题;量一下灰度差,取缺陷区与背景区各一片区域算平均灰度差,差值小到和噪声同量级就是照明没把特征做出来;换角度再拍一张,如果换个角度灰度差立刻变大就确认是照明问题。这三步几分钟就能走完,比在算法里试参数快得多。
两个理由。成本上,改照明是加一片漫射板、换个角度、换种光色,成本从几十元到一盏灯、时间以小时计;改算法要重新设计特征、重新标注、重新验证,时间以天计而且往往越改越脆弱。鲁棒性上,靠照明做出来的灰度差是物理性的、对批次变化稳定,靠算法硬凑出来的判据往往只对当前批次的样本有效。
基本不能。如果人眼都分不出缺陷在哪,说明照明没把特征做成可分的灰度差,这时候算法能做的只是在噪声里找规律,结果是阈值越调越松、误判越来越多。正确做法是回到照明:换波长、改角度、加漫射板或换照明结构,先把灰度差做出来再谈算法。
照明问题最快的收敛方式是真工件,不是讨论。寄一件样品,附上图纸和你真正要判的特征,我们跑完把结果报给你 —— 包括哪些特征结论是「用光源解决不了」。我们不做「什么都能测」的承诺,只给可验证的结论。
您将收到我们最新的动态资讯