如何实现工件正反检测?
正反检测是上料检测、组装复检等应用中经常会遇到的需求,面对不同应用中的正反检测,我们如何来实现呢?

    正反检测是上料检测、组装复检等应用中经常会遇到的需求。在很多人看来,正反检测非常简单,用诸如亮度判断或图案匹配就能轻松实现。确实,如果是特征明显,或正反区分很大的工件,简单工具就能实现,如下面这类应用,使用亮度分析工具可以稳定实现正反判断,产品方案选择软件、智能相机或者视觉传感器都可以。

                       

                                                     正面                                反面

                   

                                                                                              亮度分析工具结果

 

但实际应用往往会遇到更复杂的情况,本次介绍三类在应用中遇到的正反检测复杂应用,探讨一下正反检测的不同实现方式。

应用场景1:金属扣正反检测

这个应用需要检测组装后的金属扣的正反,避免组装异常。

正面                              反面

     该应用的最大难点在于正反面的特征难以提取,工件的成像不理想,工件的正面和反面特征很细微,而且一致性很差,用图案匹配等传统工具检测不稳定,准确率低。

针对该应用特点,采用深度学习分类工具可以轻松解决该问题。

     我们采用6张正面样本+6张反面样本进行训练,只要5分钟左右就可以训练得到分类模型。

   检测时只需要一个深度学习分类工具即可实现稳定的正反检测。而且采用CPU版本可以在不增加显卡的基础上实现高速检测(20ms)。

 

算法方案及耗时

  

  

 

应用场景2:金属工件正反检测

这个应用需要检测抓取前的金属工件金属的正反,并统计正反的数量。

正面1                   正面2

反面1                   反面2

这里应用的难点是,类内差异较大,亮度特征、纹理特征等都很难稳定检测。针对这类应用,可以考虑采用异常检测功能。不同于深度学习分类工具,通过该工具可以采用少数几张正面和反面的样本进行快速在线训练。具体操作如下:

Step1:在缺陷检测工具箱中找到异常检测工具,

Step2:根据应用向导进行设置,导入少数几张(一般20张以内,可以全部是正面-OK,也可以包含反面-NG)图片进行学习,完成后即可实现正反检测。

                     

Step3: 根据需要添加小图裁剪、数据统计等工具,并设计运行界面,完成开发。

                       

 

应用场景3:轮胎正反检测

这个应用需要检测流水线过来的轮胎正反,如果是反的,需要发出信号给操作人员,进行翻转处理。

                        

                                                                  正面                              反面

这个应用中轮胎的正反区分明显,但难以用稳定特征描述,正反区分的特征是字符的正反,而且字符的位置和内容都在变化。

针对场景特点,我们采用字符定位+字符识别的方法来实现正反检测。算法方案如下:

                  

由于字符位置不固定,所以采用深度学习字符定位工具实现任意任意字符串定位,并设置字符串宽度和高度筛选条件,确保只输出长字符串,提高后续字符识别信息的可靠性。

深度学习字符识别工具直接继承字符定位结果作为ROI输入即可,不需要手动绘制。

                       

当轮胎是正面时,字符串也是正的,识别置信度较高(一般为0.9以上),当轮胎是反面时,字符也是反的,无法正常识别,识别置信度较低(一般0.5以下)。