一种应用于底片检查机的网格区域识别方法及装置
技术领域
本申请涉及光学检测技术领域,特别涉及一种应用于底片检查机的网格区域识别方法及装置。
背景技术
底片(也称菲林)作为印制线路板(Printed Circuit Board,PCB)制造链的前端,其品质直接影响PCB产品的质量(注:底片与最终PCB产品的关系类似于胶卷与照片的关系)。底片缺陷是PCB产品的主要缺陷来源之一,因此对底片中存在的缺陷进行检查显得极为重要。底片检查机也称底片自动光学检测仪(Automatic Optical Inspect,AOI)是PCB工厂中被用来检查底片缺陷的设备,其工作原理为:首先通过解析CAM(Computer AidedManufacturing)资料(注:CAM资料即为PCB设计资料,包含导线、焊盘、圆弧等数据,是PCB生产必备的文件)得到导电图形数据并根据导电图形数据绘制得到模板图像,然后利用光学成像设备对底片进行采集得到实际图像,最后通过比对模板图像与实际图像检测出缺陷。
在实际应用中,并不是所有通过底片AOI检测出的缺陷都要向用户报告。如图1中所示,缺陷1是导电图形上的缺陷,会影响PCB产品的导电性能,所以需要报告出来;而缺陷2是落在网格区域内的缺陷,则不需要报告出来,因为在PCB设计规则中,一般网格区域的作用是提高线路板的抗热变形能力、导热能力和抗电磁干扰能力,并不具备真正的导电作用,也就是说网格区域内有缺陷并不影响PCB产品的导电性能。因此,在得到模板图像后需要将其中的网格区域识别出来,以便于将落在网格区域中的缺陷过滤掉,不报告出来。
传统的网格区域识别方法是通过对CAM资料进行分析来实现的,其大致步骤为:首先解析CAM资料得到直导线数据并根据解析结果绘制成模板图像,然后人工观察模板图像找到网格区域并手动设定网格区域位置,接着将落在所设定网格区域内的直导线的宽度作为网格直线宽度,最后找出所有与网格直线宽度相同的直导线并绘制它们得到网格区域。传统方法具有以下缺点:1)CAM资料中的直线数据较多时,效率低下;2)根据直线宽度进行判断可能会把真正的导电图形误识别为网格区域;3)只对直线进行判断,没有识别出标准网格及变形网格;4)CAM设计规则不统一,设计人员水平参差不齐,CAM资料多变样化导致网格区域并不一定是直线相交而形成,也可能是在大铜皮上挖孔形成。综上所述,网格区域识别方法效率低且不准确。
发明内容
本申请的目的在于提供一种应用于底片检查机的网格区域识别方法及装置,以解决网格区域识别方法效率低且不准确的问题。
一方面,根据本申请的实施例,提供了一种应用于底片检查机的网格区域识别方法,包括:
获取输入的图像;
预处理所述图像,得到二值化图像;
第一次Blob分析所述二值化图像,得到第一次Blob分析结果;
如果所述第一次Blob分析结果不为空,第二次Blob分析所述二值化图像,得到第二次Blob分析结果;
聚类分析所述第二次Blob分析结果,得到网格模式数组;
如果所述网格模式数组不为空,根据所述网格模式数组分析所述第一次Blob分析结果,得到网格区域数组;
根据所述网格区域数组生成网格区域图像。
进一步地,所述第一次Blob分析二值化图像,得到第一次Blob分析结果的步骤,包括:
第一次Blob分析二值化图像,得到白色区域所对应的Blob区域特征数据;
判断每个Blob区域特征数据中的内孔个数是否大于预设孔个数阈值;
如果是,将所述Blob区域加入到第一次Blob分析结果中。
进一步地,所述第二次Blob分析所述二值化图像,得到第二次Blob分析结果的步骤,包括:
第二次Blob分析所述二值化图像,得到黑色区域所对应的Blob区域特征数据;
遍历所述黑色区域所对应的Blob区域特征数据,提取标准网格和变形网格所对应的Blob区域特征数据到第二次Blob分析结果中。
进一步地,所述聚类分析第二次Blob分析结果,得到网格模式数组的步骤,包括:
以Blob区域的宽度,高度,像素面积与包围盒面积比例和周长为特征对第二次Blob分析结果的Blob区域进行分组;
选取组内元素总数排名在预设范围内的分组作为候选聚类组;
依次取所述候选聚类组中的一组作为待分析组,判断所述待分析组的元素个数是否大于组内元素总数阈值;
如果大于,计算所述待分析组内每个元素与同一组内其它元素的最近邻间距;
对所述最近邻间距做直方图统计,得到峰值对应的间距;
如果峰值对应间距满足间距阈值,存储所述待分析组的网格模式特征参数至网格模式数组中。
进一步地,所述聚类分析第二次Blob分析结果,得到网格模式数组的步骤,包括:
以Blob区域的宽度,高度,像素面积与包围盒面积比例和周长为特征对第二次Blob分析结果的Blob区域进行分组;
选取组内元素总数排名在预设范围内的分组作为候选聚类组;
依次取所述候选聚类组中的一组作为待分析组,判断所述待分析组的元素个数是否小于组内元素总数阈值;
如果不小于,计算所述待分析组内元素的最小外接包围盒,将包围盒划分为大小等同的单元;
将所述待分析组内的元素分配到划分的单元中,计算密度最大的单元;
存储所述密度最大单元内元素的网格模式特征参数至网格模式数组中。
进一步地,根据所述网格模式数组分析所述第一次Blob分析结果,得到网格区域数组的步骤,包括:
遍历所述第一次Blob分析结果,计算每个Blob区域中每个内孔的特征数据;
根据所述内孔的特征数据和所述网格模式数组,判断是否存在对应的网格模式;
如果存在,记录网格区域外边缘点和所述内孔的边缘点到网格区域数组中。
进一步地,记录网格区域外边缘点和所述内孔的边缘点到网格区域数组中的步骤之前,还包括:
识别所述内孔的类型,记录到网格数组中,所述类型包括标准网格,变形网格和较大内孔。
进一步地,所述网格模式特征参数包括长度、宽度和周长,所述特征数据为长度、宽度和周长。
进一步地,根据所述网格区域数组生成网格区域图像的步骤,包括:
遍历所述网格区域数组,将网格区域的外轮廓和内轮廓点集逼近成一个带孔多边形;
根据带孔多边形的位置进行行扫描,得到网格区域游程;
填充网格区域游程,生成网格区域图像。
另一方面,根据本申请的实施例,提供了一种应用于底片检查机的网格区域识别装置,包括:
获取单元,用于获取输入的图像;
预处理单元,用于预处理所述图像,得到二值化图像;
第一分析单元,用于第一次Blob分析所述二值化图像,得到第一次Blob分析结果;
第二分析单元,用于如果所述第一次Blob分析结果不为空,第二次Blob分析所述二值化图像,得到第二次Blob分析结果;
聚类分析单元,用于聚类分析所述第二次Blob分析结果,得到网格模式数组;
第三分析单元,用于如果所述网格模式数组不为空,根据所述网格模式数组分析所述第一次Blob分析结果,得到网格区域数组;
图像生成单元,用于根据所述网格区域数组生成网格区域图像。
由以上技术方案可知,本申请实施例提供一种应用于底片检查机的网格区域识别方法及装置。本申请所提出的网格区域识别方法的具体实现过程中,对经过预处理的二值化图像进行了正反两次Blob分析,这样不仅能识别出标准网格和变形网格,也能精确识别出网格区域,这样在进行底片缺陷过滤时,不仅能过滤掉落在标准网格和变形网格内的缺陷,就是落在网格区域内线上的缺陷也能被过滤掉。本申请所提出的方法的对由解析结果绘制的最终图像进行处理和分析的,与基于CAM资料分析的方法相比,具有效率快,不受CAM资料设计规则不统一、直线多等因素的干扰,识别结果准确的优点
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为底片缺陷的示意图;
图2为根据本申请实施例示出一种应用于底片检查机的网格区域识别方法的流程图;
图3为根据本申请实施例示出输入的图像;
图4为根据本申请实施例示出生成的网格区域图像;
图5为根据本申请实施例示出一种应用于底片检查机的网格区域识别装置的结构框图。
具体实施方式
参阅图2,本申请的实施例提供一种应用于底片检查机的网格区域识别方法,包括:
步骤S1、获取输入的图像,输入图像如图3所示;
步骤S2、预处理所述图像,得到二值化图像;
图像预处理是对输入图像进行二值化、反色等图像处理,目的是得到网格区域为白色、标准网格为黑色的二值化图像。
步骤S3、第一次Blob分析所述二值化图像,得到第一次Blob分析结果;
第一次Blob分析是指以黑色为背景、白色为目标,对经过图像预处理后得到的二值化图像进行Blob分析,得到白色区域所对应的Blob区域特征数据。
如果所述第一次Blob分析结果不为空,执行步骤S4、第二次Blob分析所述二值化图像,得到第二次Blob分析结果;
如果所述第一次Blob分析结果为空,也就是说没有满足孔个数阈值要求的Blob区域,则认为当前图像中不含网格区域,直接结束。
第二次Blob分析是指以白色为背景,黑色为目标,对经过图像预处理后得到的二值化图像进行Blob分析,得到黑色区域所对应的Blob区域特征数据。通过第二次Blob分析,能提取出标准网格、变形网格及其它区域图形对应的Blob区域特征。对于含有网格区域的图像,第二次Blob分析的目的是提取标准网格和变形网格所对应的Blob区域特征数据。
步骤S5、聚类分析所述第二次Blob分析结果,得到网格模式数组;
聚类分析的目的是找出第二次Blob分析结果中可能存在的网格模式,因此其输入为第2次Blob分析的结果,输出则为通过聚类分析得到的网格模式及其对应的参数,即网格模式特征参数。
如果所述网格模式数组不为空,执行步骤S6、根据所述网格模式数组分析所述第一次Blob分析结果,得到网格区域数组;
如果网格模式数组为空,则说明当前图像不存在网格区域,算法结束。
利用得到的网格模式数组对第一次Blob分析结果进行分析,目的是识别出标准网格、变形网格和较大内孔,标准网格所在的Blob区域即为网格区域。
步骤S7、根据所述网格区域数组生成网格区域图像,生成的网格区域图像如图4所示。
本申请提出的网格区域识别方法是基于图像处理与分析技术和聚类分析算法实现的,其原理是:首先对输入图像进行正反两次Blob分析(Blob分析是一种常用的图像处理与分析工具,也称为连通区域分析或者块分析,Blob分析的输入为二值化图像,通过设定背景和前景像素值,判定与前景像素值相同且位置连通的区域为一个Blob,Blob分析的输出是所有连通区域及其对应的特征数据,比如宽度、高度、周长、内孔个数、边界点位置等),然后以Blob的周长、长、宽为特征进行聚类分析得到网格模式,最后依据网格模式并结合Blob分析结果识别出标准网格和变形网格,进而识别出网格区域。
需要说明的是,如图3所示,网格区域1是指以黑色为背景,白色为目标的连通区域;网格区域内孔2是指网格区域内黑色的孔,如图3所示,包括标准网格和变形网格形成的孔、圆孔以及不规则形状的孔;标准网格3是指标准网格指的是规则且数量较多未被其它导电图形掩盖的黑块;变形网格4是指标准网格被其它导电图形部分掩盖时会形成变形网格。
进一步地,所述第一次Blob分析二值化图像,得到第一次Blob分析结果的步骤,包括:
第一次Blob分析二值化图像,得到白色区域所对应的Blob区域特征数据;
判断每个Blob区域特征数据中的内孔个数是否大于预设孔个数阈值;
如果是,将所述Blob区域加入到第一次Blob分析结果中。
对图像进行第一次Blob分析,得到白色区域和较大内孔区域。在得到Blob区域特征后,以区域内孔个数为判断依据,依次判断所得到的Blob区域,若满足孔个数要求即大于所设定的孔个数阈值则将Blob区域加入到第一次Blob分析结果中作为候选网格区域。
进一步地,所述第二次Blob分析所述二值化图像,得到第二次Blob分析结果的步骤,包括:
第二次Blob分析所述二值化图像,得到黑色区域所对应的Blob区域特征数据;
遍历所述黑色区域所对应的Blob区域特征数据,提取标准网格和变形网格所对应的Blob区域特征数据到第二次Blob分析结果中。
进一步地,聚类分析有两种方法,方法一是所述聚类分析第二次Blob分析结果,得到网格模式数组的步骤,包括:
第1步、以Blob区域的宽度,高度,像素面积与包围盒面积比例和周长为特征对第二次Blob分析结果的Blob区域进行分组;
通过判断Blob区域的宽度,高度,像素面积与包围盒面积比例和周长的差值是否在规定范围内,如果在规定范围内,则将元素归为一组。
第2步、选取组内元素总数排名在预设范围内的分组作为候选聚类组;
预设范围可以是总数排名前五名,也可以是前六名,具体的根据实际情况判定。
第3步、依次取所述候选聚类组中的一组作为待分析组,
第4步、判断所述待分析组的元素个数是否大于组内元素总数阈值;
如果不大于,执行第3步,如果大于,执行第4步、
第5步、计算所述待分析组内每个元素与同一组内其它元素的最近邻间距;
第6步、对所述最近邻间距做直方图统计,得到峰值对应的间距;
如果峰值对应间距满足间距阈值,执行第7步;如果峰值对应间距不满足间距阈值,执行第3步。
第7步、存储所述待分析组的网格模式特征参数至网格模式数组中。
第8步:输出网格模式数组,聚类分析结束。
进一步地,方法二是所述聚类分析第二次Blob分析结果,得到网格模式数组的步骤,包括:
第1步、以Blob区域的宽度,高度,像素面积与包围盒面积比例和周长为特征对第二次Blob分析结果的Blob区域进行分组;分组方法同上
第2步、选取组内元素总数排名在预设范围内的分组作为候选聚类组;
第3步、依次取所述候选聚类组中的一组作为待分析组,
第4步、判断所述待分析组的元素个数是否大于组内元素总数阈值;
如果小于,执行第3步,如果不小于,执行第5步。
第5步、计算所述待分析组内元素的最小外接包围盒,将包围盒划分为大小等同的单元;
第6步、将所述待分析组内的元素分配到划分的单元中,计算密度最大的单元;
第7步、存储所述密度最大单元内元素的网格模式特征参数至网格模式数组中,执行第3步。
第8步:输出网格模式数组,聚类分析结束。
方法二引入基于密度的聚类分析方法,在效率上比方法一更快。
进一步地,根据所述网格模式数组分析所述第一次Blob分析结果,得到网格区域数组的步骤,包括:
遍历所述第一次Blob分析结果,计算每个Blob区域中每个内孔的特征数据;
根据所述内孔的特征数据和所述网格模式数组,判断是否存在对应的网格模式;
进一步地,所述网格模式特征参数包括长度、宽度和周长,所述特征数据为长度、宽度和周长。
内孔的长度、宽度、和周长与网格模式数组中的某一网格模式的长度、宽度和周长的差值在预设范围内,则判断该内孔有对应的网格模式。
如果存在,记录网格区域外边缘点和所述内孔的边缘点到网格区域数组中。
进一步地,记录网格区域外边缘点和所述内孔的边缘点到网格区域数组中的步骤之前,还包括:
识别所述内孔的类型,记录到网格数组中,所述类型包括标准网格,变形网格和较大内孔。
较大内孔是除了标准网格孔和变形网格孔之外的其它内孔,较大内孔的长宽都比标准网格孔大。
网格数组存储的是标准网格和变形网格的位置,即把标准网格和变形网格都识别
网格区域数组中只含有每个网格区域的外轮廓和内轮廓(可能没有)点集,显然这些点集不能被直接用来进行缺陷过滤,因此将网格区域数组转换成更易使用的图像很有必要。具体地,根据所述网格区域数组生成网格区域图像的步骤,包括:
遍历所述网格区域数组,将网格区域的外轮廓和内轮廓点集逼近成一个带孔多边形;
根据带孔多边形的位置进行行扫描,得到网格区域游程;
填充网格区域游程,生成网格区域图像。
如图4所示,最终的网格区域图像是一幅,此最终图像包含了网格区域数组中的所有网格区域。
由以上技术方案可知,本申请实施例提供一种应用于底片检查机的网格区域识别方法。本申请所提出的网格区域识别方法在具体实现过程中,对经过预处理的二值化图像进行了正反两次Blob分析,这样不仅能识别出标准网格和变形网格,也能精确识别出网格区域,这样在进行底片缺陷过滤时,不仅能过滤掉落在标准网格和变形网格内的缺陷,就是落在网格区域内线上的缺陷也能被过滤掉。本申请所提出的方法是对由解析结果绘制的最终图像进行处理和分析的,与基于CAM资料分析的方法相比,具有效率快,不受CAM资料设计规则不统一、直线多等因素的干扰,识别结果准确的优点。
参阅图5,本申请的实施例提供了一种应用于底片检查机的网格区域识别装置,包括:
获取单元101,用于获取输入的图像;
预处理单元102,用于预处理所述图像,得到二值化图像;
第一分析单元103,用于第一次Blob分析所述二值化图像,得到第一次Blob分析结果;
第二分析单元104,用于如果所述第一次Blob分析结果不为空,第二次Blob分析所述二值化图像,得到第二次Blob分析结果;
聚类分析单元105,用于聚类分析所述第二次Blob分析结果,得到网格模式数组;
第三分析单元106,用于如果所述网格模式数组不为空,根据所述网格模式数组分析所述第一次Blob分析结果,得到网格区域数组;
图像生成单元107,用于根据所述网格区域数组生成网格区域图像。
进一步地,第一分析单元包括:
第一分析子单元,用于第一次Blob分析二值化图像,得到白色区域所对应的Blob区域特征数据;
第一判断单元,用于判断每个Blob区域特征数据中的内孔个数是否大于预设孔个数阈值;
第一存储单元,用于如果是,将所述Blob区域加入到第一次Blob分析结果中。
进一步地,第一分析单元包括:
第二分析子单元,用于第二次Blob分析所述二值化图像,得到黑色区域所对应的Blob区域特征数据;
提取单元,用于遍历所述黑色区域所对应的Blob区域特征数据,提取标准网格和变形网格所对应的Blob区域特征数据到第二次Blob分析结果中。
进一步地,所述聚类分析单元包括:
第一分组单元,用于以Blob区域的宽度,高度,像素面积与包围盒面积比例和周长为特征对第二次Blob分析结果的Blob区域进行分组;
第一选取单元,用于选取组内元素总数排名在预设范围内的分组作为候选聚类组;
第二判断单元,用于依次取所述候选聚类组中的一组作为待分析组,判断所述待分析组的元素个数是否大于组内元素总数阈值;
第一计算单元,用于如果大于,计算所述待分析组内每个元素与同一组内其它元素的最近邻间距;
统计单元,用于对所述最近邻间距做直方图统计,得到峰值对应的间距;
第二存储单元,用于如果峰值对应间距满足间距阈值,存储所述待分析组的网格模式特征参数至网格模式数组中。
进一步地,所述聚类分析单元包括:
第二分组单元,用于以Blob区域的宽度,高度,像素面积与包围盒面积比例和周长为特征对第二次Blob分析结果的Blob区域进行分组;
第二选取单元,用于选取组内元素总数排名在预设范围内的分组作为候选聚类组;
第三判断单元,用于依次取所述候选聚类组中的一组作为待分析组,判断所述待分析组的元素个数是否小于组内元素总数阈值;
第二计算单元,用于如果不小于,计算所述待分析组内元素的最小外接包围盒,将包围盒划分为大小等同的单元;
第三计算单元,用于将所述待分析组内的元素分配到划分的单元中,计算密度最大的单元;
第三存储单元,用于存储所述密度最大单元内元素的网格模式特征参数至网格模式数组中。
进一步地,所述第三分析单元包括:
第四计算单元,用于遍历所述第一次Blob分析结果,计算每个Blob区域中每个内孔的特征数据;
第四判断单元,用于根据所述内孔的特征数据和所述网格模式数组,判断是否存在对应的网格模式;
记录单元,用于如果存在,记录网格区域外边缘点和所述内孔的边缘点到网格区域数组中。
进一步地,所述第三分析单元还包括:
识别单元,用于识别所述内孔的类型,记录到网格数组中,所述类型包括标准网格,变形网格和较大内孔。
进一步地,所述图像生成单元包括:
带孔多边形形成单元,遍历所述网格区域数组,将网格区域的外轮廓和内轮廓点集逼近成一个带孔多边形;
行扫描单元,用于根据带孔多边形的位置进行行扫描,得到网格区域游程;
填充单元,用于填充网格区域游程,生成网格区域图像。
由以上技术方案可知,本申请实施例提供一种应用于底片检查机的网格区域识别方法及装置。本申请所提出的网格区域识别方法在具体实现过程中,对经过预处理的二值化图像进行了正反两次Blob分析,这样不仅能识别出标准网格和变形网格,也能精确识别出网格区域,这样在进行底片缺陷过滤时,不仅能过滤掉落在标准网格和变形网格内的缺陷,就是落在网格区域内线上的缺陷也能被过滤掉。本申请所提出的方法是对由解析结果绘制的最终图像进行处理和分析的,与基于CAM资料分析的方法相比,具有效率快,不受CAM资料设计规则不统一、直线多等因素的干扰,识别结果准确的优点。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
本领域技术人员在考虑说明书及实践这里公开的申请后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。