项目需求:
某集成商有一个牛奶包装生产日期打印质量的检测需求,内容为检测牛奶包装上的生产日期打印质量,判断是否有打花,缺码,污点的情况,设备根据检测结果,将打印质量不良的包装剔除。
检测对象:
方案设计:
视觉方案
成像方案部分:
相机:MV-CA013-20GM 镜头:MVL-HF3528M-6MP
光源:MV-LLES-175-30-W 视场范围:60 mm * 40mm
工作距离:350mm 光源距离:180mm
需求难点:
作为检查对象,字符信息实时在变化,位置也不固定,有一定的波动,包装个体之间的差异导致字符的背景也有明暗变化的情况,因此使用传统的缺陷检测算法很难实现
算法实现:
考虑到项目的难点,利用深度学习缺陷检测的方式搭建算法方案,首先通过特征匹配和仿射变换定位字符位置,并将原图裁剪成260*160大小的图片。流程如下:
图像预处理流程
原图 裁剪后的图片
通过图像预处理,将原始图像裁剪成260*160分辨率的小图,一方面可以使得样本的的背景更加简单,较少干扰。同时,低分辨率的样本可以较少算法对硬件的依赖。提升检测效率。模型训练时,选择300张NG的样本和300张OK的样本,保证NG的样本中包含所有缺陷的纹理。具体模型训练的过程略。得到缺陷检测的模型后,进行测试,测试的算法流程如下:
缺陷检测流程
通过测试发现,OK的样本和NG的样本在概率图的呈现形式上有明显的差异,通过blob工具,开启面积和阈值使能,过滤干扰项,达到字符缺陷检测的效果。测试样本集中,OK的样本为800张,NG的样本为400张,OK的全部识别正常,NG的误识别为4张,综合识别率为99.7%。
总结:
在实际的应用环节发现,终端客户对字符缺陷的需求要大于字符识别的需求,实际的喷码过程中,喷码错误的可能性非常低,往往会有设备异常导致的喷码缺陷,这类缺陷是客户需要剔除的,深度学习缺陷检测技术刚好可以应对这类复杂的缺陷检测需求。