具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
图1为本发明实施例提供的基板检测方法的实现流程图,详述如下:
在S101中,获取包含集成电路模块的初始图像。
在本实施例中,集成电路模块是由一个或多个IC芯片结合其它电子器件及基板布线等构成的电路模块。生产过程中通常将多个集成电路模块组成阵列在一块电路基板上进行生产加工及检测,之后再对电路基板进行切割,分割成各个集成电路模块。
初始图像可由高清工业相机、摄像机等图像采集装置对电路基板上的电路集成模块进行拍摄得到。初始图像可以是整个电路基板的图像,也可以是电路基板上部分集成电路模块的图像。获取到的初始图像中可包含单个集成电路模块或多个集成电路模块,例如初始图像中包含的集成电路模块可以是5×6,4×10,5×12等模块阵列。
可选地,在获取到初始图像后,可以首先对初始图像进行滤波等预处理,以消除初始图像中的干扰信息,便于后续对初始图像的标记识别,提高识别准确度。
在S102中,根据预置模板,对所述初始图像中集成电路模块对应的模块区域进行定位。
在本实施例中,在进行基板检测之前,可以根据用户选择确定适合的预置模板,或接收用户上传的图像作为预置模板。预置模板可以为与初始图像包含相同集成电路模块的图像。预置模板中集成电路模块对应区域的形状、数量和排列均与初始图像中相同,例如初始图像中包含4×10的模块阵列,则在检测之前可以选择对应的包含4×10的模板阵列的预置模板。可选地,预置模板也可以是包含单个集成电路模块的图像,电路模块的轮廓与初始图像中任意一个集成电路模块的轮廓相同。
预置模板可以为滤除干扰后,具有清晰的集成电路模块轮廓的图像。在对初始图像中集成电路模块对应的模块区域进行定位时,可以根据预置模块搜素查找初始图像中的模块区域,从而实现精准定位。
可选地,可以根据用户选择确认与预置模板对应的模板参数。模板参数可包括搜索角度、搜索角度步进值和搜索范围等,通过模板参数可以进一步提高定位的准确度和定位速度,从而提高基板检测的稳定性和检测效率。
在S103中,识别定位出的模块区域中的标记,并根据识别结果对所述模块区域对应的集成电路模块进行分类。
在本实施例中,若初始图像中包含多个模块区域,则分别识别各个模块区域中的标记。单个模块区域中可能包含一种或多种标记,也可能没有包含任何标记。识别结果可以包括模块区域中未包含标记,模块区域中包含标记以及模块区域中包含标记的种类等情况结果。相应的,集成电路模块的分类也可与识别结果相对应分为若干类,对于具体的分类方式可根据实际情况而定,在此不作限定。分类结束后可保存检测数据,以便后续加工使用。
本发明实施例根据预置模板对初始图像中集成电路模块对应的模块区域进行精准定位,通过图像处理识别模块区域中的标记,实现对基板上集成电路模块的检测,能够一次性检测多个集成电路模块,提高检测效率;通过预置模板提高定位精度,进而提高检测准确度和稳定性;通过图像识别,能够实现对多种标记的识别检测。
作为本发明的一个实施例,可以通过训练获得位置校正信息,通过位置校正信息对初始图像中未能定位出的模块区域进行重新定位,从而减少集成电路模板漏检的情况。如图2所示,在S101之前,基板检测方法还可包括:
在S201中,对所述预置模板中的模块区域进行预设次数的定位。
其中,预设模板中含有多个模块区域时,可以分别对各个模块区域进行预设次数的定位,例如,预设次数可以设为10次,那么对各个模块区域分别进行10次定位。可以按照预设顺序依次对多个模块区域进行定位。
在S202中,根据定位结果生成位置校正数据;所述位置校正数据包括所述预置模板中各个模块区域的相对位置信息。
根据S201中的定位,可以获得各个模块区域的在预设模板中的位置信息,其中各模块区域的位置信息可以是将所有预设次数定位获得的位置信息取均值。根据各个模块的位置信息可以求出位置校正数据,位置校正数据用于对初始图像中未能定位出的模块区域进行重新定位。
进一步的,在S102之后,S103之前,还可以包括:
在S203中,判断是否定位出所述初始图像中所有的模块区域。
在本实施例中,基板检测装置可以通过对比预置模板中的模块区域个数与识别出的初始图像中的模块区域个数,判断初始图像中模块区域是否全部被识别定位出来。若识别出的初始图像中的模块区域个数小于预置模板中的模块区域个数,则表明没有定位出初始图像中所有的模块区域。
基板检测装置也可以设置预设区域个数,预设区域个数等于初始图像中包含的所有模块区域的个数。对比识别出的初始图像中的模块区域个数与预设区域个数,若识别出的所述初始图像中的模块区域个数小于预设区域个数,则表明没有定位出初始图像中所有的模块区域。
在S204中,若没有定位出所述初始图像中所有的模块区域,则根据所述位置校正数据对所述初始图像中没有被定位出的模块区域进行定位。
在本实施例中,位置校正数据中包括预置模板中各个模块区域的相对位置信息。由于预置模板与初始图像中的模板区域相同,所以根据位置校正数据可以得到初始图像中的各个模块区域的相对位置信息,结合已经定位出的初始图像中的模块区域的位置信息,可以求出初始图像中没有被定位出的模块区域的位置,实现定位。
通过训练得到位置校正数据,根据位置校正数据对初始图像中没有被定位出的模块区域进行定位,能够避免因定位不到模块区域而不能进行标记检测的问题,从而减少集成电路模板漏检的情况,降低漏检率。
作为本发明的一个实施例,如图3所示,S103可包括:
在S301中,识别所述模块区域是否包含预设标记种类中的标记。
其中,预设标记种类可以包括初始图像中模块区域可能出现的标记种类。
作为本发明的一个实施例,所述预设标记种类包括第一类标记和第二类标记;所述第一类标记包括激光标记和/或颜料笔标记,所述第二类标记包括金刚笔标记。S301可以具体包括:
识别所述模块区域中是否包含第一类标记;
若所述模块区域中包含第一类标记,则将所述模块区域对应的集成电路模块划分为第一次品类;
若所述模块区域中没有包含第一类标记,则识别所述模块区域中是否包含第二类标记;
若所述模块区域中包含第二类标记,则将所述模块区域对应的集成电路模块划分为第二次品类。
在本实施例中,预设标记种类可以包含两类,其中第一类标记中的标记可以为采用激光打点形成的标记和采用颜料笔划叉的标记中的一种或两种,第二类标记包括金刚石笔做的标记。另外,第一类标记还可以包含粘贴物标记等其他标记,在此不作限定。
对模块区域对应的集成电路模块进行分类可以分为三类,合格品类、第一次品类和第二次品类。其中第一次品类还可以根据标记的不同划分为激光标记次品类和颜料笔标记次品类等。此外,还可以根据模块区域的标记进行对集成电路模块的分类,各种标记的集成电路模块对应划分到各种标记对应的类别中。
采用激光打点或颜料笔划叉等的第一类标记,位置有规律且缺陷清晰可见,通过图像处理的方式识别速度较快,因此,首先识别模块区域中是否包含第一类标记。金刚石笔等形成的第二类标记,通常为人工标记,标记划痕的位置、形状、深度可能因人而异,尤其是划痕与丝印、电路部分交织一起时情况复杂很多,通过图像处理的的手段识别速度较慢,且识别的稳定性和可靠性较差。
通过先识别第一类标记再识别第二类标记的方式,如果在模块区域内识别出第一类标记,则直接将模块区域对应的集成电路模块划分为第一次品类,不会在对该模块区域进行第二类标记的识别,从而避免识别第二类标记的复杂的图像处理过程,提高识别速度,进而提高基板检测的检测效率。
容易想到的,基板外观检测装置的处理器处理能力较强时,也可以同时对第一类标记和第二类标记进行识别,或者先进行第二类标记识别再进行第一类标记识别,在此不作限定。
在S302中,若所述模块区域没有包含预设标记种类中的标记,则将所述模块区域对应的集成电路模块划分为合格品类。
在本实施例中,若在模块区域没有包含预设标记种类中的标记,表明该模块区域对应的集成电路模块在生产加工过程中未被标记为坏品,则通过基板检测将该集成电路模块划分为合格品类。
作为本发明的一个实施例,如图4所示,所述识别所述模块区域中是否包含第一类标记可以包括:
在S401中,对所述模块区域进行二值化处理,提取所述模块区域中的连通区域。
在S402中,根据所述连通区域的属性判断所述模块区域是否包含第一类标记。
在本实施例中,可以采用Blob分析来对模块区域进行图像处理。Blob分析可以将图像进行二值化,分割得到前景和背景,然后进行连通区域检测。第一类标记特征较为明显,可以通过二值化处理和提取连通区域来识别模块区域是否包含第一类标记。其中,连通区域的属性可以为连通区域的个数、位置、形状和面积大小等。
作为本发明的一个实施例,如图5所示,所述识别所述模块区域中是否包含第二类标记包括:
在S501中,对所述模块区域进行傅里叶变换处理,得到所述模块区域对应的频域图像。
在S502中,根据所述第二类标记的特征,判断所述模块区域对应的频域图像是否包含所述第二类标记。
在本实施例中,第二类标记为金刚笔形成的标记等,标记划痕的位置、形状、深度各不相同,且部分标记划痕与丝印、电路部分重叠在一起,极大增加了图像识别的难度,通过二值化处理和提取连通区域无法有效识别模块区域是否包含第二类标记。
由于第二类标记在频域图像中的特征更为清晰,易于提取,所以可以通过傅里叶变换先将模块区域从时域转换为频域,再根据第二类标记的频域特征,在模块区域的频域图像中判断是否包含第二类标记,从而实现第二类标记的识别。
可选地,在识别到模块区域对应的频域图像包含第二类标记后,还可以提取模块区域中第二类标记的特征信息,以便后续根据第二类标记的特征信息对第二次品类中的集成电路模块进行进一步分类。在S502之后,还包括:
若所述模块区域对应的频域图像包含所述第二类标记,则从所述频域图像中提取所述第二类标记对应的区域;
对所述第二类标记对应的区域进行傅里叶逆变换,得到所述第二类标记在所述模块区域中的对应位置;
从所述模块区域中提取所述第二类标记的特征信息。
在本实施例中,可以通过傅里叶逆变换查找到第二类标记在模板图像中的位置,提取到第二类标记的特征信息。其中,特征信息可以包括第二类标记的长度、宽度和面积等。可以通过Halcon高斯算子,实现亚像素级特征提取。该算子可对图像进行高斯滤波,不仅效率很高,同时稳定性也很高。
本发明实施例能够实现120mm×100mm较大视野内的精确检测;单视野超过60片集成电路模块的定位和外观检测,视觉时间不超过150ms;根据模块排列特点自动修正模块位置,防止因视野较大时镜头畸变带来的影响;检测方法可靠性达99.99%;提高基板检测的检测效率,降低误检率,提高生产产能,同时节约成本。
本发明实施例根据预置模板对初始图像中集成电路模块对应的模块区域进行精准定位,通过图像处理识别模块区域中的标记,实现对基板上集成电路模块的检测,能够一次性检测多个集成电路模块,提高检测效率;通过预置模板提高定位精度,进而提高检测准确度和稳定性;通过图像识别,能够实现对多种标记的识别检测。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
对应于上文实施例所述的基板检测方法,图6示出了本发明实施例提供的基板检测装置的示意图。为了便于说明,仅示出了与本实施例相关的部分。
参照图6,该装置包括获取模块61、定位模块62和识别模块63。
获取模块61,用于获取包含集成电路模块的初始图像。
定位模块62,用于根据预置模板,对所述初始图像中集成电路模块对应的模块区域进行定位。
识别模块63,用于识别定位出的模块区域中的标记,并根据识别结果对所述模块区域对应的集成电路模块进行分类。
优选地,该装置还可包括训练模块和校正模块。
训练模块,用于对所述预置模板中的模块区域进行预设次数的定位;根据定位结果生成位置校正数据;所述位置校正数据包括所述预置模板中各个模块区域的相对位置信息;
校正模块,用于根据预置模板,判断是否定位出所述初始图像中所有的模块区域;若没有定位出所述初始图像中所有的模块区域,则根据所述位置校正数据对所述初始图像中没有被定位出的器件区域进行位置校正。
优选地,识别模块63用于:
识别所述模块区域是否包含预设标记种类中的标记;
若所述模块区域没有包含预设标记种类中的标记,则将所述模块区域对应的集成电路模块划分为合格品类。
优选地,所述预设标记种类包括第一类标记和第二类标记;所述第一类标记包括激光标记和/或颜料笔标记,所述第二类标记包括金刚笔标记;所述识别模块63用于:
识别所述模块区域中是否包含第一类标记;
若所述模块区域中包含第一类标记,则将所述模块区域对应的集成电路模块划分为第一次品类;
若所述模块区域中没有包含第一类标记,则识别所述模块区域中是否包含第二类标记;
若所述模块区域中包含第二类标记,则将所述模块区域对应的集成电路模块划分为第二次品类。
优选地,识别模块63用于:
对所述模块区域进行二值化处理,提取所述模块区域中的连通区域;
根据所述连通区域的属性判断所述模块区域是否包含第一类标记。
优选地,识别模块63用于:
对所述模块区域进行傅里叶变换处理,得到所述模块区域对应的频域图像;
根据所述第二类标记的特征,判断所述模块区域对应的频域图像是否包含所述第二类标记。
本发明实施例根据预置模板对初始图像中集成电路模块对应的模块区域进行精准定位,通过图像处理识别模块区域中的标记,实现对基板上集成电路模块的检测,能够一次性检测多个集成电路模块,提高检测效率;通过预置模板提高定位精度,进而提高检测准确度和稳定性;通过图像识别,能够实现对多种标记的识别检测。
图7是本发明一实施例提供的基板检测终端设备的示意图。如图7所示,该实施例的基板检测终端设备7包括:处理器70、存储器71以及存储在所述存储器71中并可在所述处理器70上运行的计算机程序72,例如基板检测程序。所述处理器70执行所述计算机程序72时实现上述各个基板检测方法实施例中的步骤,例如图1所示的步骤101至103。或者,所述处理器70执行所述计算机程序72时实现上述各装置实施例中各模块/单元的功能,例如图6所示模块61至63的功能。
示例性的,所述计算机程序72可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器71中,并由所述处理器70执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序72在所述基板检测终端设备7中的执行过程。例如,所述计算机程序72可以被分割成获取模块、定位模块和识别模块,各模块具体功能如下:
获取模块,用于获取包含集成电路模块的初始图像。
定位模块,用于根据预置模板,对所述初始图像中集成电路模块对应的模块区域进行定位。
识别模块,用于识别定位出的模块区域中的标记,并根据识别结果对所述模块区域对应的集成电路模块进行分类。
所述基板检测终端设备7可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述基板检测终端设备可包括,但不仅限于,处理器70、存储器71。本领域技术人员可以理解,图7仅仅是基板检测终端设备7的示例,并不构成对基板检测终端设备7的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述基板检测终端设备还可以包括输入输出设备、网络接入设备、总线、显示器等。
所称处理器70可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器71可以是所述基板检测终端设备7的内部存储单元,例如基板检测终端设备7的硬盘或内存。所述存储器71也可以是所述基板检测终端设备7的外部存储设备,例如所述基板检测终端设备7上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器71还可以既包括所述基板检测终端设备7的内部存储单元也包括外部存储设备。所述存储器71用于存储所述计算机程序以及所述基板检测终端设备所需的其他程序和数据。所述存储器71还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。