发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种插件视觉检测识别方法、可读存储介质及设备。
本发明解决其技术问题所采用的技术方案是:根据本发明的一方面,提供一种插件视觉检测识别方法,包括以下步骤:
S10、获取待检测识别的成品线路板的多角度多方位的图片;
S20、对每个所述图片进行畸变并抽取各个元器件的元器件区域图像;
S30、根据所述元器件区域图像对所述成品线路板进行插件视觉检测识别;所述插件视觉检测识别包括所述元器件的插件浮高歪斜检测识别、以及所述元器件的插件漏件检测识别;
S40、得到所述元器件的插件检测识别结果并进行输出。
优选地,所述S10、获取待检测识别的成品线路板的多角度多方位的图片,之后还包括步骤:
S11、获取待检测识别的所述成品线路板的GERBER文件和/或BOM文件,所述GERBER文件包括元器件名称及其对应的位置信息、角度信息以及尺寸信息,所述BOM文件包括元器件名称及其对应的位置信息、以及贴装工艺,所述贴装工艺包括SMT贴片工艺和/或DIP插件工艺。
优选的,所述多角度多方位的图片包括所述成品线路板的正面图像、斜面图像和/或正侧面图像;其中,所述正面图像包括所述成品线路板的俯视图像和/或仰视图像;所述正侧面图像包括所述成品线路板的正前视图像、正后视图像、正左视图像和/或正右视图像;所述斜面图像包括所述成品线路板的任意角度任意方位的图像。
优选的,所述S20、对每个所述图片进行畸变并抽取各个元器件的元器件区域图像,包括步骤:
S201、分别初始化标定每个所述图片的Mark点坐标(x1, y1)、(x2, y2)、(x3,y3),设置超参数L,所述超参数L为搜索边长,以所述超参数L为三个边长,以所述Mark点为中心点的方形区域内应用霍夫变换,检测所述方形区域内与半径阈值R差值最小的圆形,将检测到的三个所述圆形的圆点(x1', y1')、(x2', y2')、(x3', y3')作为所述图片的Mark点坐标;
S202、所述图片经仿射变换处理后得到变换图像,消除所述图片因所述成品线路板相对于拍摄镜头的偏移旋转而造成的偏差,修正不同的元器件的相对位置;所述仿射变换的计算公式为:
求解出π,tx,ty;其中π为所述图片的图像旋转缩放变化量,(tx,ty)表示平移量;
S203、判断所述变换图像是正面图像、斜面图像或正侧面图像,如是正面图像或正侧面图像,则执行步骤S204;如是斜面图像,则执行步骤S205;
S204、直接从所述GERBER文件获取所述元器件的中心点及其尺寸信息,并截取所述元器件对应的元器件区域图像;
S205、根据所述GERBER文件及所述斜面图像的侧视角度进行斜面变换,并截取所述元器件对应的元器件区域图像;
所述斜面变换具体包括:若所述拍摄镜头相对于垂直线Y轴的倾斜角度为δ,所述元器件的中心点及其尺寸信息的变换公式为x=x,y=y*cosδ,w=w*cosδ,h=h*cosδ,若所述拍摄镜头相对于水平线X轴的倾斜角度为α,所述元器件的中心点及其尺寸信息的变换公式为x=x*cosα,y=y,w=w*cosα,h=h*cosα;
S206、对于无法从所述GERBER文件中获取所述元器件的中心点及其尺寸信息的,则获取所述元器件的初始化中人工标注的元器件区域图像。
优选的,所述插件浮高歪斜是指在所述元器件区域的所述元器件底部未紧贴PCBA表面或元器件底部平面与PCBA平面明显不平行;所述S30、根据所述元器件区域图像对所述成品线路板进行插件视觉检测识别,包括以下步骤:
S301、对所述元器件的所有所述元器件区域图像进行霍夫变换,将所述元器件区域图像进行Canny边缘检测,得到边缘检测的二值图,获取轮廓直线;具体为:
初始化(θ,p)空间,N(θ,p)=0,其中,所述N(θ,p)表示在直线上的像素点的个数,对于每个所述像素点(x,y),在参数空间中找出令x*cosθ+y*sinθ=p的(θ,p)坐标,N(θ,p)=N(θ,p)+1,统计所有所述N(θ,p)的大小,取出N(θ,p)>threshold的参数,其中threshold为预设阈值;
S302、将所述轮廓直线进行非极大值抑制,去除距离或倾角度数相近的重合直线以及边缘噪音信息;
S3021、将所有的所述轮廓直线汇集成直线集合S;
S3022、每次随机选择一条所述轮廓直线后将与之倾角度数相差小于阈值的从所述直线集合S中去除;
S3023、最后获取所述直线集合S中的直线倾角γ1。
S303、将所述轮廓直线的直线倾角与数据库内的标准轮廓直线进行比对,计算偏离角度γ,γ=|γ1-γ2 |,其中,γ1为所述轮廓直线的直线倾角,γ2为所述数据库中的标准图片的轮廓直线的直线倾角,如果所述γ大于阈值γ0,则转到步骤S306,否则转到步骤S304;
S304、将所述元器件区域图像与所述数据库内的标准元器件区域图像进行高斯模糊平滑去噪,通过二维高斯函数G(x,y)分配权重,对周边点加权求和并获取中心点的高斯模糊值,重复这个过程得到高斯模糊后的元器件区域图像;二维高斯函数G(x,y)的计算公式为:
S305、计算像素级距离d;当所述像素级距离d大于阈值d0,则转到步骤S306;否则认定所述成品线路板为良品;
S306、认定为插件浮高,并反馈所述插件浮高位置及浮高方位信息。
优选的,所述插件漏件检测识别包括所述元器件的插件少件、插件错件和/或插件反件,所述插件少件是指所述元器件区域原本存在的元器件未能正确嵌入到正确位置,导致所述元器件目标区域为空;所述插件错件是指所述元器件区域中被嵌入了错误的其他类型的元器件;所述插件反件是指所述元器件区域的元器件的放置方式错误,所述放置方式错误包括水平翻转和/或垂直翻转;
所述S30、根据所述元器件区域图像对所述成品线路板进行插件视觉检测识别,包括以下步骤:
S311、对所述元器件区域图像进行归一化处理,计算所述元器件区域图像的方向梯度直方图特征向量f;
S312、将所述元器件区域图像的方向梯度直方图特征向量f与数据库内的标准元器件的方向梯度直方图特征向量f
pos进行比较,计算方向梯度直方图特征向量之间的欧式距离e,如果所述欧式距离e大于阈值e
0,则认定为所述插件少件,并反馈少件信息,否则进入步骤S313;所述欧式距离e的计算方式为:
;
其中f为所述元器件区域图像的方向梯度直方图特征向量,fpos为数据库内的标准元器件的方向梯度直方图特征向量;
S313、使用CTPN文字检测算法提取所述元器件的表面的文字区域,对提取到的所述文字区域进行光学字符识别,得到所述元器件的表面印刷的文字内容;
S314、将所述元器件的文字内容与数据库内的标准文字内容进行比对,计算二者的最小编辑距离jedit,根据所述最小编辑距离jedit和所述数据库内的标准文字内容的长度lword进行计算重叠度overlap=jedit/lword,如果所述overlap<0.2,则所述元器件的方向正确;否则反馈方向错误信息;所述编辑距离为两个字符串之间,由一个转成另一个所需要的最少编辑操作次数。
所述S311、对所述元器件区域图像进行归一化处理,计算所述元器件区域图像的方向梯度直方图特征向量f,包括以下步骤:
S3111、计算所述元器件区域图像的每个像素点(x,y)的水平方向梯度幅值Cx (x,y)和竖直方向梯度幅值Cy (x,y);
Cx (x,y)=H(x+1,y)-H(x-1,y);
Cy (x,y)=H(x,y+1)-H(x,y-1);
其中Cx(x,y),Cy(x,y),H(x,y)分别为所述像素点(x,y)的水平方向梯度、竖直方向梯度及其像素值;
S3112、将所述元器件区域图像划分成预设大小的多个单元图像,并分别计算每个所述单元图像的梯度方向;
每个所述像素点(x,y)的梯度幅值C(x,y)和梯度方向β(x,y)分别为:
S3113、统计每个所述梯度方向出现的次数得到所述单元图像的特征向量,计算每个所述单元图像的特征向量,最后首尾拼接在一起形成所述元器件区域图像的方向梯度直方图特征向量f。
所述S30、根据所述元器件区域图像对所述成品线路板进行插件视觉检测识别,包括以下步骤:
S321、获取所述元器件区域图像的正面图像p,与所述数据库内的标准图像ppos使用双线性插值法进行缩放为统一预设固定尺寸;
所述双线性插值法的计算公式Dst(x',y')为:
Dst(x',y')=(1-u)*(1-v)Src(x,y)+(1-u)*v*Src(x,y+1)+u*(1-v)*Src(x+1,y)+u*v*Src(x+1,y+1);
其中(x',y')为待插值的数据点的坐标;Dst表示目标图像;Src表示源图像;u,v为以浮点数表示的(x,y)的小数部分;
S322、将所述元器件区域图像切割划分为n个部分图像p
i,所述数据库内的对应的标准部分图像为
,i=1,2…n,计算每个所述部分图像的图像直方图h
i及其对应的标准部分图像直方图
,计算比较得出每个所述部分图像的图像相似度;所述部分图像的图像相似度S
i的计算公式为:
其中,
是待测的部分图像和所述数据库内的标准部分图像的像素直方图,
为所述部分图像直方图的每个取值,其中,RGB图像的直方图有768个取值;
S323、对n个所述部分图像的图像相似度加权平均得到所述元器件区域图像的图像相似度S;如果所述图像相似度S小于阈值S0,则认定为所述插件少件,并反馈插件少件信息;否则进入步骤S324;
S324、使用CTPN文字检测算法提取所述元器件的表面的文字区域,对提取到的所述文字区域计算像素间的欧式距离k,如所述欧式距离k大于阈值k
0,则反馈方向错误信息;所述欧式距离k的计算方式为:
;
其中f为所述元器件区域图像的方向梯度直方图特征向量,fpos为数据库内的标准元器件的方向梯度直方图特征向量。
所述S30、根据所述元器件区域图像对所述成品线路板进行插件视觉检测识别,包括以下步骤:
S331、判断所述元器件区域图像的表面是否有丝印,如有,则进入步骤S332,如无,则进入步骤S337;
S332、将所述元器件区域图像转化为灰度图,使用基于Wall算法的自适应阈值算法对所述灰度图进行二值化处理得到二值化图;
S333、使用二维高斯核函数对所述二值化图进行滤波降噪处理去除所述二值化图中的噪点;二维高斯核函数F(x,y)的计算公式为:
其中A为归一化系数,u为均值,σ为方差;
S334、对滤波降噪处理后的所述二值化图进行膨胀处理,用局部区域的最大值来填充整个区域,使文本区域连接成一个整体,再检测文本区域轮廓,过滤掉不符合要求的区域,保留所述文本区域;膨胀的计算公式为:
S335、截取得到的所述文本区域,在所述二值化图的基础上对所述文本区域进行光学字符识别,得到文字内容;
S336、将所述文字内容与数据库内的标准文字内容进行比对,计算二者的最小编辑距离jedit,根据所述最小编辑距离jedit和所述数据库内的标准文字内容的长度lword进行计算重叠度overlap=jedit/lword,如果所述overlap<0.2,则认定为所述元器件方向正确;否则反馈方向错误信息;所述最小编辑距离为两个字符串之间,由一个转成另一个所需要的最少编辑操作次数;
S337、对所述图像进行线性归一化处理,计算所述元器件与所述数据库内的标准元器件的特征距离df,如果所述特征距离df大于阈值df0,则认定为所述元器件出现异常,并反馈错误信息;所述归一化处理的计算公式为:
其中h,w为所述图像的高和宽,xi, yi为所述元器件与标准元器件的像素值。
根据本发明另一方面,还提供一种计算机可读的存储介质,所述存储介质上存储有计算机程序,所述计算机程序被执行时实现上述的插件视觉检测识别方法。
根据本发明再一方面,还提供一种插件视觉检测识别设备,包括处理器及存储器;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述处理器执行上述的插件视觉检测识别方法。
实施本发明插件视觉检测识别方法、可读存储介质及设备的技术方案,具有如下优点或有益效果:本发明通过采用卷积神经网络快速学习识别成品线路板的插件的各种缺陷,通过大数据学习训练,可以快速识别出插件浮高、插件的错、漏、反、多、歪斜等缺陷,识别效率高,准确率高。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下文将要描述的各种示例性实施例将要参考相应的附图,这些附图构成了示例性实施例的一部分,其中描述了实现本发明可能采用的各种示例性实施例,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。应明白,它们仅是与如所附权利要求书中所详述的、本发明公开的一些方面相一致的装置和方法的例子,还可使用其他的实施例,或者对本文列举的实施例进行结构和功能上的修改,而不会脱离本发明的范围和实质。在其他情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“厚度”、“上下前后左右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”、“顺时针”、“逆时针”指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的元器件或插件必须具有的特定的方位、以特定的方位构造和操作,因此,不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定的“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体连接;可以是机械连接,也可以是电连接或可以相互通讯连接;可以是直接相连,也可以是通过中间媒介简介相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
需要说明的是:本发明实施例中的前后、左右、上下及顶部、中部及底部仅是为了便于对实施例的描述而进行的限定,并非通常意义上前后、左右、上下及顶部、中部及底部的方位限定。具体的,前方为平行于生产检测流水线方向的成品线路板的前面,后方为平行于生产检测流水线方向的成品线路板的后面,左右方为垂直于生产检测流水线的方向,X轴方向为与生产检测流水线平行的方向,Y轴方向为与生产检测流水线垂直的方向,Z轴方向为与成品线路板垂直的方向,X轴方向、Y轴方向、Z轴方向均相互垂直,XY平面为与成品线路板平行的平面,YZ平面为与成品线路板垂直的平面。
在本发明实施例中,成品线路板分为单面板和双面板,单面板是指在PCB空板的单面经过SMT上件,再经过DIP插件形成的单面PCBA,而双面板是指在PCB空板的双面经过SMT上件,再经过DIP插件形成的双面PCBA。针对单面板的成品线路板的检测识别,只需正上方、前后左右、斜上方进行拍摄获取线路板图像即可。而对于双面板则还需要获取反面图像,可以在成品线路板下面设置拍摄装置来拍摄,也可以将成品线路板翻转通过设置在顶部的拍摄装置来拍摄。
在本发明实施例中,在PCBA加工过程中,要用到贴片元器件和插件元器件,本发明插件和元器件均为插件元器件,成品线路板要检测识别插件的缺陷具体包括:插件错件、插件少件或多件、插件反向、插件破损、插件浮高歪斜(即为插件浮高或歪斜)等缺陷,主要包括:插件错件(即为安装了错误的元器件)、插件少件或多件(即为PCBA上应该有元器件的位置而没有安装该元器件或者不应该安装的地方安装了元器件)、插件反向(即为元器件安装方向错误)、插件破损(即为元器件表面或侧面有裂痕或者破损)、插件污损(即为元器件表面有脏污遮盖字符或空白区域)、插件浮高歪斜(即为元器件底部未紧贴PCBA表面或元器件底部平面与PCBA平面明显不平行)。焊点不良包括:焊点连锡(即为两个或多个独立的焊脚之间连在一起)、空焊(即为焊点看似焊接了实际焊锡与器件插脚未紧密连接)、多锡(即为焊锡量过多,出现焊点顶部大或者包焊的现象)、少锡(即为焊点出现孔洞、焊点凹陷或焊锡与焊盘平齐没有明显的爬锡现象)、锡珠锡渣(即为PCBA空白区域出现锡渣或者锡珠)、拉尖(即为插件脚顶部或侧面出现拉丝现象)、字符或图形错误(即为元器件正面或者侧面字符或图形与标准不符)等可能存在的诸多缺陷。
具体的,不同的缺陷需要从不同角度来获取成品线路板的图像,具体包括:(1)从顶部正面拍摄成品线路板,用于采集获取成品线路板的内容包括:插件错件、插件少件或多件、插件反向、插件污损、焊点连锡、空焊、多锡、少锡、锡珠锡渣、拉尖、字符或图形错误等;(2)从正前后左右拍摄成品线路板,用于采集获取成品线路板的内容包括:插件破损、插件浮高歪斜、字符或图形错误等;(3)从斜上方拍摄成品线路板,用于采集获取成品线路板的内容包括:插件错件、插件浮高歪斜、字符或图形错误等。为此,需要设置不同的拍摄装置来获取成品线路板的上下、左右、前后全方位图像,进而可以更加全面准确的对成品线路板进行检测识别分类。
本发明插件视觉检测识别方法实施例,既可用于最终成品线路板的检测,也可用于生产过程中的质量监控;即可用于单面成品线路板,也可用于双面成品线路板等。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一:
如图1所示,本发明提供一种插件视觉检测识别方法实施例,包括以下步骤:
S10、获取待检测识别的成品线路板的多角度多方位的图片;
S20、对每个所述图片进行畸变并抽取各个元器件的元器件区域图像;
S30、根据所述元器件区域图像对所述成品线路板进行插件视觉检测识别;所述插件视觉检测识别包括所述元器件的插件浮高歪斜检测识别、以及所述元器件的插件漏件检测识别;
S40、得到所述元器件的插件检测识别结果并进行输出。
在本实施例中,所述多角度多方位的图片包括所述成品线路板的正面图像、斜面图像和/或正侧面图像;所述正面图像包括所述成品线路板的俯视图像和/或仰视图像;所述正侧面图像包括所述成品线路板的正前视图像、正后视图像、正左视图像和/或正右视图像;所述斜面图像包括成品线路板的任意角度任意方位的图像。
在本实施例中,所述S10、获取待检测识别的成品线路板的多角度多方位的图片,之后还包括步骤:
S11、获取待检测识别的所述成品线路板的GERBER文件和/或BOM文件,所述GERBER文件包括元器件名称及其对应的位置信息、角度信息以及尺寸信息,具体的,包括GERBER映射表(提供GERBER坐标到图像坐标的映射以及元器件在图像上的实际尺寸,所述BOM文件包括元器件名称及其对应的位置信息、以及贴装工艺,所述贴装工艺包括SMT贴片工艺和/或DIP插件工艺。
如图2所示,所述S20、对每个所述图片进行畸变并抽取各个元器件的元器件区域图像,包括以下步骤:
S201、分别初始化标定每个所述图片的Mark点坐标(x1, y1)、(x2, y2)、(x3,y3),设置超参数L,所述超参数L为搜索边长(具体如50-100px等),以所述超参数L为三个边长,以所述Mark点为中心点的方形区域内应用霍夫变换,检测所述方形区域内与半径阈值R差值最小的圆形,将检测到的三个所述圆形的圆点(x1', y1')、(x2', y2')、(x3', y3')作为所述图片的Mark点坐标;
S202、所述图片经仿射变换处理后得到变换图像,消除所述图片因所述成品线路板相对于拍摄镜头的偏移旋转而造成的偏差,修正不同的元器件的相对位置;所述仿射变换的计算公式为:
求解出π,tx,ty;其中,π反映了图像旋转缩放变化(即π为所述图片的图像旋转缩放变化量),(tx,ty)表示平移量;
S203、判断所述变换图像是正面图像、斜面图像或正侧面图像,如是正面图像或正侧面图像,则执行步骤S204;如是斜面图像,则执行步骤S205;
S204、直接从所述GERBER文件获取所述元器件的中心点及其尺寸信息(具体位置,元器件矩形区域长宽等),并截取所述元器件对应的元器件区域图像;
S205、根据所述GERBER文件及所述斜面图像的侧视角度进行斜面变换,并截取所述元器件对应的元器件区域图像;
所述斜面变换具体包括:若所述拍摄镜头相对于垂直线Y轴的倾斜角度为δ,所述元器件的中心点及其尺寸信息的变换公式为x=x,y=y*cosδ,w=w*cosδ,h=h*cosδ,若所述拍摄镜头相对于水平线X轴的倾斜角度为α,所述元器件的中心点及其尺寸信息的变换公式为x=x*cosα,y=y,w=w*cosα,h=h*cosα;
S206、对于无法从所述GERBER文件中获取所述元器件的中心点及其尺寸信息的,则获取所述元器件的初始化中人工标注的元器件区域图像。
在本实施例中,所述插件浮高歪斜是指在所述元器件区域的所述元器件底部未紧贴PCBA表面或所述元器件底部平面与PCBA平面明显不平行;如图3所示,所述S30、根据所述元器件区域图像对所述成品线路板进行插件视觉检测识别(即插件浮高歪斜检测识别),包括以下步骤:
S301、对所述元器件的所有所述元器件区域图像进行霍夫变换,将所述元器件区域图像进行Canny边缘检测,得到边缘检测的二值图,获取轮廓直线;具体的,初始化(θ,p)空间,N(θ,p)=0,其中,所述N(θ,p)表示在直线上的像素点的个数,对于每个所述像素点(x,y),在参数空间中找出令x*cosθ+y*sinθ=p的(θ,p)坐标,N(θ,p)=N(θ,p)+1,统计所有所述N(θ,p)的大小,取出N(θ,p)>threshold的参数,其中threshold为预设阈值。
S302、将所述轮廓直线进行非极大值抑制,去除距离或倾角度数相近的重合直线以及边缘噪音信息;具体包括步骤:
S3021、将所有的所述轮廓直线汇集成直线集合S;
S3022、每次随机选择一条所述轮廓直线后将与之倾角度数相差小于阈值的从所述直线集合S中去除;
S3023、最后获取所述直线集合S中的直线倾角γ1。
S303、将所述轮廓直线的直线倾角与数据库内的标准轮廓直线进行比对,计算偏离角度γ,γ=|γ1-γ2 |,其中γ1为所述轮廓直线的直线倾角,γ2为所述数据库中的标准图片的轮廓直线的直线倾角,如果所述γ大于阈值γ0,则转到步骤S306,否则转到步骤S304;
S304、将所述元器件区域图像与所述数据库内的标准元器件区域图像进行高斯模糊平滑去噪,通过二维高斯函数G(x,y)分配权重,对周边点加权求和并获取中心点的高斯模糊值,重复这个过程得到高斯模糊后的元器件区域图像;具体的,二维高斯函数G(x,y)的计算公式为:
S305、计算像素级距离d;当所述像素级距离d大于阈值d
0,则转到步骤S306;否则认定所述成品线路板为良品;具体的,所述像素级距离d的计算公式为:
。
S306、认定为插件浮高,并反馈所述插件浮高位置及浮高方位信息。
本发明通过采用卷积神经网络快速学习识别成品线路板,通过大数据学习训练,可以快速识别出插件浮高歪斜等缺陷,识别效率高,准确率高。
在本实施例中,所述插件漏件检测识别包括所述元器件的插件少件、插件错件和/或插件反件,所述插件少件是指所述元器件区域原本存在的元器件未能正确嵌入到正确位置,导致所述元器件目标区域为空;所述插件错件是指所述元器件区域中被嵌入了错误的其他类型的元器件;所述插件反件是指所述元器件区域的元器件的放置方式错误,所述放置方式错误包括水平翻转和/或垂直翻转。
在本实施例中,S30、根据所述元器件区域图像对所述成品线路板进行漏件检测识别(插件漏件检测识别),具体包括以下三个方案:
方案一:
如图4所示,S30、根据所述元器件区域图像对所述成品线路板进行插件视觉检测识别,包括以下步骤:
S311、对所述元器件区域图像进行归一化(contrast-normalized)处理,计算所述元器件区域图像的方向梯度直方图(Histogram of oriented gradient,HOG)特征向量f;
S312、将所述元器件区域的直方图特征向量特征f与数据库内的标准元器件的方向梯度直方图特征向量f
pos进行行比较,计算方向梯度直方图特征向量之间的欧式距离e,如果e大于阈值e
0,则认定为插件少件,并反馈少件信息(Element Lost),否则进入步骤S313;所述欧式距离e的计算方式为:
;
其中f为所述元器件区域图像的方向梯度直方图特征向量,fpos 为数据库内的标准元器件的方向梯度直方图特征向量;
S313、使用CTPN(Connectionist Text Proposal Network)文字检测算法提取所述元器件表面的文字区域,对提取到的文字区域进行光学字符识别,得到所述元器件表面印刷的文字内容;
S314、将所述元器件的文字内容与数据库内的标准文字内容进行比对,计算二者的最小编辑距离jedit,根据所述最小编辑距离jedit和数据库内的文字内容的长度lword进行计算重叠度overlap=jedit/lword,如果所述overlap<0.2,则所述元器件方向正确;否则反馈方向错误信息;具体的,所述编辑距离(Minimum Edit Distance,MED),又称Levenshtein距离,是指为两个字符串之间,由一个转成另一个所需要的最少编辑操作次数。
具体的,所述S311、对所述元器件区域图像进行归一化处理,计算所述元器件区域图像的方向梯度直方图特征向量f,包括以下步骤:
S3111、计算所述元器件区域图像的每个像素点(x,y)的水平方向梯度幅值Cx(x,y)和竖直方向梯度幅值Cy (x,y);
Cx (x,y)=H(x+1,y)-H(x-1,y);
Cy (x,y)=H(x,y+1)-H(x,y-1);
其中Cx(x,y),Cy (x,y),H(x,y)分别为所述像素点(x,y)的水平方向梯度、竖直方向梯度以及像素值;
S3112、将所述元器件区域图像划分成预设大小的单元图像,并分别计算每个所述单元图像的梯度方向;
具体的,所述像素点(x,y)的梯度幅值C(x,y)和梯度方向β(x,y)分别为:
S3113、统计每个梯度方向出现的次数得到所述单元图像的特征向量,计算每个所述单元图像的特征向量,最后收尾拼接在一起形成所述元器件区域图像的方向梯度直方图特征向量f。
方案二:
所述S30、根据所述元器件区域图像对所述成品线路板进行插件视觉检测识别,包括以下步骤:
S321、获取所述元器件区域图像的正面图像p,与数据库内的标准图像ppos使用双线性插值法进行缩放为统一预设固定尺寸;具体的,p是一个三维矩阵,大小为w*h*3,值为0-255,从RGB三维信息描述图像内容。
具体的,所述双线性插值法的计算公式Dst(x',y')为:
Dst(x',y')=(1-u)*(1-v)Src(x,y)+(1-u)*v*Src(x,y+1)+u*(1-v)*Src(x+1,y)+u*v*Src(x+1,y+1);
其中(x',y')为待插值的数据点的坐标;Dst表示目标图像;Src表示源图像;u,v表示浮点数表示的(x,y)的小数部分;
S322、将所述元器件区域图像切割划分为n个部分图像p
i,所述数据库内的对应的标准图像为
,i=1,2…n计算每个部分图像的图像直方图h
i及其对应的标准图像直方图
,计算比较得出每个部分图像的图像相似度;
具体的,h
i是图像直方图,统计了每种颜色出现的次数,是一个向量,lh
i是向量里的每个数,比如说h
i=[1,2,3],
=[4,5,6],那么len(h
i )=3,
分别为3,3,3再执行求和。
具体的,所述部分图像的图像相似度Si的计算公式为:
其中,
是待测图像和所述数据库内的标准图像(良品)的像素直方图,
为图像直方图的每个取值,其中,RGB图像的直方图有768个取值(256*3)。
S323、对n个部分图像的图像相似度加权平均得到所述元器件区域图像的图像相似度S;如果S小于阈值S0,则认定为插件少件,并反馈少件信息;否则进入步骤S324;
S324、使用CTPN文字检测算法提取元器件表面的文字区域,再对提取到的文字区域计算像素间的欧式距离k,如k大于阈值k0,则反馈错误信息。
其中f为所述元器件区域图像的方向梯度直方图特征向量,fpos 为数据库内的标准元器件的方向梯度直方图特征向量。
方案三:
S30、根据所述元器件区域图像对所述成品线路板进行插件视觉检测识别,包括以下步骤:
S331、判断所述元器件区域图像的表面是否有丝印,如有,则进入步骤S332,如无,则进入步骤S337;
S332、将所述元器件区域图像转化为灰度图,使用基于Wall算法的自适应阈值算法对所述灰度图进行二值化处理得到二值化图;
S333、使用二维高斯核函数对所述二值化图进行滤波降噪处理去除二值化图中的噪点;具体的,二维高斯核函数F(x,y)的计算公式为:
其中A为归一化系数,u为均值,σ为方差。
S334、对滤波降噪处理后的所述二值化图进行膨胀处理,用局部区域的最大值来填充整个区域,使文本区域连接成一个整体,再检测文本区域轮廓,过滤掉不符合要求的区域,保留文本区域;具体的,膨胀是形态学术语,是求局部最大值的操作;具体的,膨胀的计算公式为:
;
具体的,膨胀与双线性插值不一样,此处的Pst不是方法名,指的是目标图像中的像素点(x,y)。
S335、截取得到的文本区域,在二值化图的基础上对所述文本区域进行光学字符识别,得到文字内容;
S336、将所述文字内容与数据库内的标准文字内容进行比对,计算二者的最小编辑距离jedit;具体的,根据所述最小编辑距离jedit和数据库内的标准文字内容的长度lword计算重叠度overlap=jedit/lword,如果所述overlap<0.2,则所述元器件方向正确;否则反馈方向错误信息;所述最小编辑距离为两个字符串之间,由一个转成另一个所需要的最少编辑操作次数;
S337、对所述图像进行线性归一化处理,计算所述元器件与所述数据库内的标准元器件的特征距离df,如果所述特征距离df大于阈值df0,则认定为所述元器件出现异常,并反馈错误信息;所述归一化处理的计算公式为:
其中h,w为所述图像的高和宽,xi, yi为所述元器件与标准元器件的像素值。
本发明通过采用神经网络算法快速学习识别成品线路板的元器件,通过大数据学习训练,可以快速识别出插件漏件等缺陷,识别效率高,准确率高。
实施例二:
本发明还提供一种计算机可读的存储介质,该存储介质上存储有计算机程序,所述计算机程序被执行时实现上述实施例一的插件视觉检测识别方法。
实施例三:
本发明还提供一种插件视觉检测识别设备实施例,包括处理器及存储器;其中,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使处理器执行上述实施例一的插件视觉检测识别方法。
在阅读完上文描述的内容之后,本领域的普通技术人员应当明白,本文描述的各种特征可通过方法、数据处理设备或计算机程序产品来实现。因此,这些特征可部采用硬件的方式、全部采用软件的方式或者采用硬件和软件结合的方式来表现。此外,上述特征也可采用存储在一种或多种计算机可读存储介质上的计算机程序产品的形式来表现,该计算机可读存储介质中包含计算机可读程序代码段或者指令,其存储在存储介质中。可读存储介质被配置为存储各种类型的数据以支持在装置的操作。可读存储介质可以由任何类型的易失性或非易失性存储设备或者它们的组合实现。如静态硬盘、随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)、光存储设备、磁存储设备、快闪存储器、磁盘或光盘和/或上述设备的组合。
以上仅为本发明的较佳实施例而已,本领域技术人员知悉,在不脱离本发明的精神和范围的情况下,可以对这些特征和实施例进行各种改变或等同替换。另外,在本发明的教导下,可以对这些特征和实施例进行修改以适应具体的情况及材料而不会脱离本发明的精神和范围。因此,本发明不受此处所公开的具体实施例的限制,所有落入本申请的权利要求范围内的实施例都属于本发明的保护范围。