柔性电路板与普通印刷电路板的检测对象基本上是一样的,通常都是检测线路的断路、短路、缺损等类型的缺陷。实现起来相对比较麻烦。这里说的是麻烦,而不是困难。
对于这种类型的柔性电路板,使用高角度的光源进行照明,如同轴光源、线光源等进行照明,即可将电路板表现为白色,而线路本身则表现为黑色,非常有利于图像处理。
可以使用高分辨率的面阵相机,也可以使用高分辨率的线扫描相机,因为电路板比较大,而要求的精度比较高,因此需要考虑高分辨率。
尽量使用好品质的镜头,这样可以降低图像的畸变、分辨率不均匀等情况的发生。
图像处理是本项目的难点所在。因为产品比较大,而线路比较细小,比较多,因此要想准确的判断出其位置与缺陷,就需要能够比较精确的定位然后再分区做处理。可以尝试使用粒子分析、寻找边缘、黄金模板匹配等算法。在Halcon中有类似的范例,使用的是差分方法来处理的(使用膨胀/腐蚀/开/闭等形态学的方法,将毛刺和凹坑消除掉,再和原始图像求绝对差,从而得到毛刺的凹坑的位置),这种方法的效果上相对比较好,但是需要图像视野比较小,分辨率要足够高:
Halcon中的范例,先对原始图像使用开操作,再对原始图像使用闭操作,之后使用动态阈值算子,求开后图像和闭后图像不相等的地方。这种方法在Halcon中处理很简单,三个算子就处理了。但是在NI VISION中处理起来就比较麻烦。而且NI VISION中的开和闭操作的效果,和Halcon中的开和闭效果还有所不同:
从上面的效果来看,HALCON中的开和闭,重点是处理了PCB线路板的断开位置以及毛刺位置。NI视觉中,也有类似的方法,开和闭操作的方法效果上类似:
但是NI视觉中,并没有动态阈值的方法,可以求开和闭操作后不相等的位置。但是可以使用绝对差来求有差异的位置,之后再考虑使用阈值得到缺陷区域:
从最后的阈值效果来看,NI视觉和HALCON中的效果基本上类似,细节上可能是有差异的,这里就不仔细研究了。
★★★★★
缺陷检测相对来说还是比较难搞的,对于上面的这种项目,应该使用传统的算法就可以处理了。当然,相机分辨率还是需要再高一些,然后检测的区域再小一些,这样得到的图像精度可能会更高一些。当然,也不是说分辨率越高越好,而是要使用开、闭操作时,有限的参数能够处理毛刺、凹坑、断裂等。如果分辨率非常高,而使用有限的开闭都不能消除毛刺、凹坑,那么就需要更大的参数,会增加处理耗时。