在产品生产过程中,产品上印刷的信息和标识是否正确是必不可少的检验过程。传统的字符检测依靠人工肉眼逐个检测产品上的字符,从而确定是否有错印/遗漏。同时,工人劳动强度大,工作时间过长会造成视觉疲劳,导致差错率高,不良品会送到客户现场。不仅会给公司带来不可避免的经济损失,而且人工测试效率低下,无法从根本上保证测试质量。
所以我们公司用机器视觉代替人眼来衡量和判断人物。通过工业相机、光源、镜头,将拍摄的样品转换成图像信号,传输到我们的图像处理系统,根据像素分布、亮度、颜色等信息转换成数字信号;图像系统对这些信号进行各种运算,提取目标的特征,然后根据判断字符的质量,提高产品出厂字符数的检测精度和自动化水平,保证产品质量,解决实际生产问题。
但是字符缺陷检测是机器视觉领域的常见要求,包括混排、多印、少印、深度、偏差等。实际项目中的角色
检测部分很容易成为项目的痛点,引发一些争议。总结一下常用的检测算法,希望能给以后类似需求的你一些参考。
一、常见算法
1.地区差异
步骤1:配准模板图像,并通过斑点分析得到标准字符区域reg 1。
步骤2:实时图像,斑点分析以获得当前图像字符区域reg 2
步骤3: reg=reg 1- reg 2缺失,reg=reg 2- reg多余
2.图像差分
图像差的思想和区域差类似,只不过是以图像为单位得到两幅图像的差,再对其进行分配好,有助于提高文字的效果。
3.对比比较
为了满足对比度差字符检测的要求,介绍两种方法。一种是直接计算平均灰度值,即判断模板图像和实时图像的平均灰度差,另一种是计算两幅图像的前景,即人物的灰度分布,并进行比较。
4.预防措施
上述算法必须在字符比较之前统一模板图像和当前图像的姿态,即达到图像对齐的效果。常用的算法是利用模板匹配获得它们之间的位置差,然后对图像或区域进行仿射变换。
二、其他
当有多个字符检测且存在相对位置差异时,考虑整体字符粗定位和单个字符细定位的方式,即单个字符分别对齐检测。
可以在UI端扩展打开一些OK和NG检测区域,对算法第一次检测出的缺陷进行二次分析。如果缺陷属于OK区域,将被过滤为OK,而属于ng区域的缺陷将被判断为ng。