CN110334433B - 一种pcb封装文件自动生成方法 - Google Patents

一种pcb封装文件自动生成方法 Download PDF

Info

Publication number
CN110334433B
CN110334433B CN201910593806.9A CN201910593806A CN110334433B CN 110334433 B CN110334433 B CN 110334433B CN 201910593806 A CN201910593806 A CN 201910593806A CN 110334433 B CN110334433 B CN 110334433B
Authority
CN
China
Prior art keywords
image
points
pad
line
point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910593806.9A
Other languages
English (en)
Other versions
CN110334433A (zh
Inventor
郑亚莉
孙羽轩
廖文杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN201910593806.9A priority Critical patent/CN110334433B/zh
Publication of CN110334433A publication Critical patent/CN110334433A/zh
Application granted granted Critical
Publication of CN110334433B publication Critical patent/CN110334433B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • Architecture (AREA)
  • Multimedia (AREA)
  • Image Analysis (AREA)

Abstract

该发明公开了一种PCB封装文件自动生成方法,涉及计算机视觉中的图像识别和电子辅助设计领域,特别是涉及利用元器件封装工程图中焊盘分布的理解和识别来实现PCB封装文件自动生成技术。本发明利用元器件的封装工程图实现自动焊盘识别和理解,辅以人工核查交互式,可以快速准确的自动生成封装文件。该技术可以减少电路板物理设计人员实现标准和非标准元器件的PCB封装文件创建的工作量,利于电子辅助设计产业实现快速开发及更新换代。

Description

一种PCB封装文件自动生成方法
技术领域
本发明涉及计算机视觉中的图像识别和电子辅助设计领域,特别是涉及利用元器件封装工程图中焊盘分布的理解和识别来实现PCB封装文件自动生成技术。
背景技术
在传统的电子电路设计流程中,PCB封装文件的准备是电路物理设计的第一步,即构建电子元器件的外形(Footprint),包括引脚顺序、尺寸等。如果PCB封装数据库中不存在该器件的封装文件,或者存在但无法有效的检索,则需要由PCB封装工程师在完全理解器件手册的基础上,为每个器件手动创建。人工通过理解工程图绘制封装这一过程费时费力且容易因为人为的因素出错,不符合产业快速、高效设计的需求。如果引用了错误的元器件封装,这将导致后续的电路板焊接等问题,甚至电路调试失败,昂贵器件烧毁等严重问题。因此,需要尽量减少人为犯错的环节,快速而准确的建立PCB封装文件。
在对工程图识别的领域中,研究人员投入了大量精力致力于将手工绘制的工程图数字化,以迎合现代计算机高速批量运算的需求。工程图是工程界用来准确表达物体形状、大小和有关技术要求的技术文件,常用的工程图包括机械工程图、电子工程图等,工程图自动识别技术也主要针对这些类型的工程图。但是工程图数字化的过程仅仅是将纸质的工程图转化为矢量存储的格式,对于工程图本身没有能够很好地区分和理解,无法根据工程图完成进一步的批量和快速生产与开发。另一方面,现有的芯片焊盘图的识别主要针对真实图像识别,而非工程图识别。而本专利主要针对电子元器件的工程图进行检测和识别。通过图像识别技术,自动检测和识别电子元器件底视图中的焊盘物理性状、尺寸参数和分布,生成PCB封装描述文件,辅助PCB封装文件生成,从而减少PCB封装文件生成的工作量。电子元器件的底视图通常来源于器件手册。本专利中使用了相关申请专利“一种PCB元器件封装库的创建与查询方法”(CN201811240822.1)中有关于PCB封装描述文件的定义。
发明内容
本发明的目的是利用电子元器件工程图的焊盘检测与参数识别等技术,辅以人工核查,生成PCB封装描述文件,进而提供一种PCB封装文件自动生成方法。
本发明的技术方案是一种PCB封装文件自动生成方法,该方法包括:
步骤1:对电子元器件焊盘底视图依次进行灰度化、去噪、二值化和反色处理;
步骤2:对封装视图中的关键目标检测与识别;
其中关键目标包括长方形焊盘、圆形焊盘、椭圆形焊盘、斜线阴影区域、尺寸箭头标记、尺寸数字标记、1脚标记;根据各个元器件生产商的规范,有不同的焊盘形式,包括:圆形焊盘、长方形焊盘,阴影表示焊盘区域;
步骤2.1检测封闭轮廓,单个封闭轮廓作为一个对象被单独被分割出来;
进一步的,所述封闭轮廓检测方法如下:
1)首先遍历图像,寻找图像中的“轮廓点”;“轮廓点”定义为该点的8连通区域内既包含黑色像素点,也包括白色像素点的点;找到“轮廓点”之后,利用轮廓跟踪的方式获得整个轮廓,并将获得的轮廓存储下来;
2)对于每一个轮廓,其存储的轮廓信息采用折线段拟合,记每个折线段的拐点为(xC,yC),每个轮廓的拐点集合为T,则整幅图像被分割为多个由拐点表示的轮廓T1,T2,T3,...;同时,取每个轮廓的最小矩形包围盒包围的图像,即为分割后的图像区域,记为{I1,I2,I3,...};
步骤2.2识别出圆形焊盘;
1)圆形焊盘初定位
首先求解图像中各个边缘像素点的梯度;圆形图像边缘点的梯度即是圆的法线,该法线通过圆心;求解出被最多直线穿过的点获得圆心的坐标;随后计算图像中圆心附近的白色像素到圆心的距离,多个相同距离的点构成给一个完整的圆;从{I1,I2,I3,...}分别查找完整的圆,记检测到的含有圆形图像区域集合为{ICC1,ICC2,ICC3,...};
2)圆形焊盘验证
采用一个标准圆形图像Icircle作为模板,分别对标准圆形和定位到的焊盘图外轮廓链码求解HU矩;首先定义p+q阶中心矩
Figure BDA0002116942360000021
式中,f(x,y)为图像坐标(x,y)上的像素点的值,
Figure BDA0002116942360000022
Figure BDA0002116942360000023
为图像的重心,M和N为图像的长和高;定义归一化的中心矩
Figure BDA0002116942360000024
利用归一化的中心矩构造7个HU矩M1~M7,7个HU矩计算如下:
M1=η2002
M2=(η2002)2+4η112
M3=(η30-3η12)2+(η2103)2
M4=(η3012)2+(η2103)2
M5=(η30-3η12)(η3012)[(η3012)2-3(η2103)2]+(3η2103)(η2103)[3(η3012)2-(η2103)2]
M6=(η2002)[(η3012)2-(η2103)2]+4η113012)(η2103)
M7=(3η2103)(η3012)[(η3012)2-3(η2103)2]+(3η2103)(η2103)[3(η3012)2-(η2103)2]
分别计算{ICC1,ICC2,ICC3,...}集合中每个元素与标准圆Icircle的HU矩相似度;计算公式如下:
Figure BDA0002116942360000031
式中
Figure BDA0002116942360000032
Figure BDA0002116942360000033
分别表示标准圆形封装图的HU矩和图像ICC1,ICC2,ICC3,...的第i阶HU矩;计算值Isim越小表示输入的图像越接近标准焊盘;取计算出Isim值小于阈值δ1的图像为圆形焊盘分割图像,记为圆形焊盘集合{PC1,PC2,PC3,...};
3)合并重复识别的圆形焊盘
利用聚类方法合并同一位置重复识别的圆形焊盘得到{C1,C2,C3,...};
步骤2.3:识别出方形焊盘;
1)检测出角点
计算{I1,I2,I3,...}{C1,C2,C3,...}两个集合的差集,找到相应的拐点集合{T1’,T2’,...};计算每个拐点集合中的拐点夹角;
进一步的,所述步骤2.3的1)中检测出角点的计算步骤如下:
设相邻的三个拐点分别为(xC1,yC1)、(xC2,yC2)和(xC3,yC3),则三个拐点之间的矢量表达式为
Figure BDA0002116942360000034
Figure BDA0002116942360000035
计算
Figure BDA0002116942360000036
Figure BDA0002116942360000037
两个向量之间的夹角为
Figure BDA0002116942360000038
判断该夹角是否为90°,如果是则判断两条边形成直角;两条边所夹拐点(xC2,yC2)就被记录为一个角点,两条边和角点组成的角,其角平分线可以用向量
Figure BDA0002116942360000039
表示;取该向量和水平方向的夹角
Figure BDA00021169423600000310
勾该角点的方向;记一个完整的角点为(xCP,yCP,θCP),其中(xCP,yCP)为该角点的坐标,θCP为该角点的方向;
2)对角点分组和对焊盘进行验证;
进一步的,所述步骤2.3中2)的具体方法为:
首先对角点进行配对;遍历已经获得的角点,假设存在四个角点(xCP1,yCP1,θCP1)、(xCP2,yCP2,θCP2)、(xCP3,yCP3,θCP3)、(xCP4,yCP4,θCP4),且
CP1CP2|=90°
CP2CP3|=90°
CP3CP4|=90°
CP4CP1|=90°
则这四个角点的方向互相正交,可以将其分配为一组;分组过程中,每个角点可以属于多个组别;
其次,判断角点之间的相互连接关系;针对角点(xCP1,yCP1,θCP1)、(xCP2,yCP2,θCP2),取步进距离
Figure BDA0002116942360000041
其中,m=max(|xCP2-xCP1|,|yCP2-yCP1|);依次判断坐标([xCP1+nΔx],[yCP1+nΔy])(0<n<m)的点是否为有效像素点;判断的所有坐标点中,有效像素点比例高于某一阈值δ2,则认为角点之间相互连通;
若同一分组的四个角点,且相邻的角点相互连通,则将这四个角点划分为一个方形焊盘,记为Pr,并计算Pr的面积;以所有方形焊盘面积为对象,做直方图统计,选出面积出现次数最多的值S;如果出现同一角点分属多个组的特殊情况,例如某一角点同时属于Pr1和Pr2,那么选择面积最接近S的组,作为焊盘对象,删除其他识别到的方形;记识别到的焊盘{R1,R2,R3,...};
步骤2.4识别出椭圆形焊盘;
椭圆形焊盘由两个半圆和两条直线连接而成;通过识别半圆及半圆之间的连接线完成对椭圆焊盘的检测;
进一步的,所述步骤2.4的具体方法为:
1)半圆定位
首先求解图像中各个边缘像素点的梯度;圆形图像边缘点的梯度即是圆的法线,法线通过圆心;求解出被多条直线穿过的点即可获得圆心的坐标,记为(xo,yo);随后计算图像中圆心附近的白色像素到圆心的距离,假设有n个点到圆心的距离为r,且n>Tsc(Tsc为一阈值δ3),则认为圆心处可能存在半圆,记这n个点的坐标为(x1,y1)、(x2,y2)、...、(xn,yn);分别计算这些点与圆心连线相对于水平方向的夹角
Figure BDA0002116942360000051
若θi均匀分布在区间[θk,θk+180°]内,θk为一任意角度,则认为此处存在一个半圆,记为OSC,同时取θSC=θk-90°为该半圆的方向;
2)半圆连接线检测
若两个半圆的方向θSC1和θSC2满足θSC1SC2=0°,且两个半圆的半径满足rSC1=rSC2,则认为这两个半圆OSC1和OSC2有可能构成一个椭圆形焊盘;此时检测两个半圆之间的连接线来判断其是否构成一个椭圆焊盘;连接线检测和判断方法如下:
记rSC=rSC1=rSC2,θSC=|θSC1|=|θSC2|,记两个半圆的圆心分别为(xSC1,ySC1)和(xSC2,ySC2),取步进距离
Figure BDA0002116942360000052
其中,m=max(|xSC2-XSC1|,|ySC2-ySC1|);依次判断坐标([xSC1+nΔx±rSC cosθSC],[ySC1+nΔy±sinθSC])(0<n<m)的点是否为有效像素点;当有效像素点比例高于某一阈值δ4,则认为两个半圆之间有连接线相连,并判断两个半圆及其连接线构成一个椭圆形焊盘,记为{E1,E2,E3,...};
步骤2.5检测出斜线阴影部分;
首先利用霍夫直线检测获得图像中具有一定长度的直线段;之后分别计算所有直线相对于水平方向的夹角,并剔除夹角呈0°和90°的直线段,剩余直线段均为斜线;将剩余斜线段扩展为散点;
进一步的,所述步骤2.5中的斜线段扩展为散点的方法为:
假设检测到的斜线的两个端点分别为(x1,y1)和(x2,y2);则扩展后的散点坐标
Figure BDA0002116942360000053
Figure BDA0002116942360000054
式中x1≤i≤x2,h为一个常数;
对生成的散点做聚类处理,再对聚类完成的散点求取矩形外包围盒,即可获得斜线阴影区域;
步骤2.6检测出箭头并计算出箭头指向,并将属于同于标注内容的两个箭头进行配对;
进一步的,所述步骤2.6的具体方法为:
1)线宽识别和干扰线擦除
首先利用霍夫直线检测提取出图像中具有一定长度的线条信息;设提取的线条两端点为A(x1,y1)和B(x2,y2),取步进距离
Figure BDA0002116942360000061
其中,m=max(|x2-x1|,|y2-y1|),则将线条法向的像素点表示为([x1+nΔx±kΔy],[y1+nΔy±kΔx])(0<n<m,k>0);依次判断线条法向点的可延展宽度,并求取平均值dl作为该直线的线条宽度;对整幅图像求取最长的数条直线的线条宽度dl1、dl2、dl3、...,并求取平均值dlavg作为该输入图像的线条宽度;利用开运算擦除干扰线;取运算核的边长为dlavg,利用该运算核对二值反色图像做开运算,即可擦除图像中的无关线条,留下箭头图像,记为Iwipe
2)箭头粗定位
利用步骤2.1的方式对擦除了干扰线的图像重新分割,分割得到的图像记为IW1,IW2,IW3,...;取标准箭头模板的图像Iarrow,计算Iarrow的HU矩和IW1,IW2,IW3,...的HU矩,并计算相似度Isim;若Isim小于一定的阈值δ5,则认为该图像为候选箭头图像,记为IAC1,IAC2,IAC3,...;
3)箭头精确定位
假设粗定位得到的箭头图像IAC在一个中心坐标为(xAC,yAC),宽度为wAC,高度为hAC的矩形包围盒中;在Iwipe中截取中心坐标为(xAC,yAC),宽度为1.5wAC,高度为1.5hAC的矩形图像I′AC;对I′AC用双线性插值的方法转变为尺寸大小HAC×WAC的正方形图像I″AC;取运算核大小为Hk×Wk,对I″AC做腐蚀运算,得到图像I″′AC;此时,I″′AC中只有一个较小的三角形图像;对I3求取最小包围三角形,可以获得最小外包三角形的三个顶点数据(xA,yA)、(xB,yB)和(xC,yC);
4)箭头指向识别和配对
精确定位后的三角形的三个顶点分别为(xA,yA)、(xB,yB)和(xC,yC),则该三角形的重心G的坐标为
Figure BDA0002116942360000062
记为(xG,yG);另取三角形图像的外包围盒中心坐标(xm,ym);则三角形的箭头指向可以用向量
Figure BDA0002116942360000063
表示;并根据如下步骤筛选成对的箭头:首先计算所有箭头指向向量
Figure BDA0002116942360000064
和水平线的夹角θi;取夹角相同的两个箭头,假设其外包围盒中心坐标分别为(x1,y1)和(x2,y2),夹角均为θ1;计算包围盒中心坐标连线对水平线夹角θ2;若θ1≈θ2,则将两个箭头配对;如果同一个箭头有多个配对的时候,则按照从左至右、从上至下的方式依次配对;
步骤2.7:识别出标注中的数字;
步骤2.1中获取了分割后的图像I1,I2,I3,...;将I1,I2,I3,...送入训练完毕的神经网络中分类,共分为数字{0,1,...,9}、字母{a,b,c,...,A,B,C,...}、符号{.}、其他特殊字符;
步骤2.8:识别出焊盘1脚;
在前述识别分割出的图像I1,12,13,...中检测特殊标记或者数字“1”,找到其最近的焊盘位置,标记为1脚焊盘;
步骤3:封装关键信息理解
取全图最左下角焊盘中心为坐标原点;水平向右方向为x轴正方向,竖直向上方向为y轴正方向;针对如下内容完成对封装关键信息的理解;
1)根据距离最近的原则,将识别的标注线、数字和箭头标注步骤2识别的每个焊盘目标的尺寸信息,包括:圆形焊盘{C1,C2,C3,...}、长方形焊盘{R1,R2,R3,...}、椭圆形{E1,E2,E3,...};其中圆形焊盘包含半径,方形焊盘包括长宽,椭圆形焊盘包括半径和长宽;
2)根据识别的标注线、数字和箭头标注各焊盘之间的距离信息,包括横向距离和纵向距离;相等的距离,只标记一个;具体步骤如下:配对箭头和箭头对应的标注指明了封装图中的实际距离,用Dr表示实际距离;根据已有实际距离推理未标注距离,假设Dr表示坐标(x1,y1)的像素点和坐标(x2,y2)的像素点之间的实际距离;而在这两个像素点之间平均分布着n个焊盘;则这n个焊盘,相邻两个焊盘之间的实际距离为
Figure BDA0002116942360000071
步骤4:人机交互式的人工核查;此步骤将由PCB封装工程师对步骤2中关键目标中的焊盘检测和尺寸标记进行核实;如果发生焊盘错检,切换至错检模式,通过不同的鼠标点击和键盘按键等配合方式标记错检,引导更正错检;如果发生焊盘漏检,切换至漏检模式,通过不同的鼠标点击和键盘按键等配合方式标记漏检,引导更正漏检;PCB封装工程师进一步核查焊盘尺寸数值、尺寸单位、焊盘分布,一脚位置等关键因素;如果发生错误和遗漏,更正修改;
步骤5:PCB封装描述文件生成;由步骤2检测和步骤3核实的关键目标,创建以焊盘为对象,尺寸、坐标、形状、一脚位置等焊盘描述属性的PCB封装描述文件;
步骤6:PCB封装文件生成;根据生成的PCB封装描述文件,利用常用的EDA设计的二次开发程序,直接生成PCB封装文件。
本发明利用元器件的封装工程图实现自动焊盘识别和理解,辅以人工核查交互式,可以快速准确的自动生成封装文件。该技术可以减少电路板物理设计人员实现标准和非标准元器件的PCB封装文件创建的工作量,利于电子辅助设计产业实现快速开发及更新换代。
附图说明
图1为自动PCB封装文件生成方法流程图;
图2为待处理PCB封装底视图示意图(圆形a、方形b、椭圆形c焊盘底视图);
图3为圆形焊盘检测示意图;
图4为圆形焊盘检测示意图;
图5为椭圆形焊盘检测示意图;
图6为处理后的箭头检测示意图;
图7为圆形形焊盘关键目标检测和识别结果实例图;
图8为长方形焊盘关键目标检测和识别结果实例图;
图9为焊盘1脚特殊标记示例图;
图10为斜线扩展示意图。
具体实施方式
一种PCB封装文件自动生成方法,该方法包括:
步骤1:电子元器件焊盘底视图输入。
由用户提供待创建的元器件PCB封装底视图。用户的数据输入有多种形式,可以包括bmp图片、png图像、jpg图片、pdf文档等多种形式,也可以直接截图上传,如图2所示。本发明在封装工程图统一处理时使用二维数组保存工程图像信息,即将输入数据统一成灰度图像,提供给后级处理。输入的电子元器件封装工程图通过去噪、二值化和反色处理,提供给后续步骤使用。
步骤2:封装视图中的关键目标检测与识别。
其中关键目标主要包括长方形焊盘、圆形焊盘、椭圆形焊盘、斜线阴影区域、尺寸箭头标记、尺寸数字标记、1脚标记等。根据各个元器件生产商的规范,有不同的焊盘形式,例如圆形焊盘、长方形焊盘,阴影表示焊盘区域等。
2.1对象分割
单个封闭轮廓作为一个对象被单独被分割出来。封闭轮廓检测方法如下:
1)首先遍历图像,寻找图像中的“轮廓点”。“轮廓点”定义为该点的8连通区域内既包含黑色像素点,也包括白色像素点的点。找到“轮廓点”之后,利用轮廓跟踪的方式获得整个轮廓,并将获得的轮廓存储。
2)对于每一个轮廓,其存储的轮廓信息可以用折线段拟合,记每个折线段的拐点为(xC,yC),每个轮廓的拐点集合为T,则整幅图像被分割为多个由拐点表示的轮廓T1,T2,T3,...。同时,取每个轮廓的最小矩形包围盒包围的图像,即为分割后的图像区域,记为{I1,I2,I3,...}。
2.2识别圆形焊盘
1)圆形焊盘初定位
首先求解图像中各个边缘像素点的梯度。圆形图像边缘点的梯度即是圆的法线,这些直线通过圆心。求解出被最多直线穿过的点即可获得圆心的坐标。随后计算图像中圆心附近的白色像素到圆心的距离,多个相同距离的点构成给一个完整的圆。从{I1,I2,I3,...}分别查找完整的圆,记检测到的含有圆形图像区域集合为{ICC1,ICC2,ICC3,...}。
2)圆形焊盘验证
采用一个标准圆形图像Icircle作为模板,分别对标准圆形和定位到的焊盘图外轮廓链码求解HU矩。首先定义p+q阶中心矩
Figure BDA0002116942360000101
式中,f(x,y)为图像坐标(x,y)上的像素点的值,
Figure BDA0002116942360000102
Figure BDA0002116942360000103
为图像的重心,M和N为图像的长和高。定义归一化的中心矩
Figure BDA0002116942360000104
则可以利用归一化的中心矩构造7个HU矩M1~M7,HU矩计算如下:
M1=η2002
M2=(η2002)2+4η11 2
M3=(η30-3η12)2+(η2103)2
M4=(η3012)2+(η2103)2
M5=(η30-3η12)(η3012)[(η3012)2-3(η2103)2]+(3η2103)(η2103)[3(η3012)2-(η2103)2]
M6=(η2002)[(η3012)2-(η2103)2]+4η113012)(η2103)
M7=(3η2103)(η3012)[(η3012)2-3(η2103)2]+(3η2103)(η2103)[3(η3012)2-(η2103)2]
分别计算{ICC1,ICC2,ICC3,...}集合中每个元素与标准圆Icircle的HU矩相似度。计算公式如下:
Figure BDA0002116942360000111
式中
Figure BDA0002116942360000112
Figure BDA0002116942360000113
分别表示标准圆形封装图的HU矩和图像ICC1,ICC2,ICC3,...的第i阶HU矩。计算值Isim越小表示输入的图像越接近标准焊盘。取计算出Isim值小于某一阈值δ1的图像为圆形焊盘分割图像,记为圆形焊盘集合{PC1,PC2,PC3,...}。
3)合并重复识别的圆形焊盘
利用聚类方法合并同一位置重复识别的圆形焊盘{C1,C2,C3,...}。
2.3方形焊盘识别
1)角点检测
计算{I1,I2,I3,...}{C1,C2,C3,...}两个集合的差集,找到相应的拐点集合{T1’,T2’,...}。计算每个拐点集合中的拐点夹角,计算步骤如下:
假设相邻的三个拐点分别为(xC1,yC1)、(xC2,yC2)和(xC3,yC3),则三个拐点之间的矢量表达式为
Figure BDA0002116942360000114
Figure BDA0002116942360000115
计算
Figure BDA0002116942360000116
Figure BDA0002116942360000117
两个向量之间的夹角为
Figure BDA0002116942360000118
判断该夹角是否为90°,如果是则判断两条边形成直角。两条边所夹拐点(xC2,yC2)就被记录为一个角点,两条边和角点组成的角,其角平分线可以用向量
Figure BDA0002116942360000119
表示。取该向量和水平方向的夹角
Figure BDA00021169423600001110
为该角点的方向。记一个完整的角点为(xCP,yCP,θCP),其中(xCP,yCP)为该角点的坐标,θCP为该角点的方向。
2)角点分组和焊盘验证
首先对角点进行配对。遍历已经获得的角点,假设存在四个角点
(xCP1,yCP1,θCP1)、(xCP2,yCP2,θCP2)、(xCP3,yCP3,θCP3)、(xCP4,yCP4,θCP4),且
CP1CP2|=90°
CP2CP3|=90°
CP3CP4|=90°
CP4CP1|=90°
则这四个角点的方向互相正交,可以将其分配为一组。分组过程中,每个角点可以属于多个组别。
其次,判断角点之间的相互连接关系。针对角点(xCP1,yCP1,θCP1)、(xCP2,yCP2,θCP2),取步进距离
Figure BDA0002116942360000121
其中,m=max(|xCP2-xCP1|,|yCP2-yCP1|)。依次判断坐标([xCP1+nΔx],[yCP1+nΔy])(0<n<m)的点是否为有效像素点。判断的所有坐标点中,有效像素点比例高于某一阈值δ2,则认为角点之间相互连通。
若同一分组的四个角点,且相邻的角点相互连通,则将这四个角点划分为一个方形焊盘,记为Pr,并计算Pr的面积。以所有方形焊盘面积为对象,做直方图统计,选出面积出现次数最多的值S。如果出现同一角点分属多个组的特殊情况,例如某一角点同时属于Pr1和Pr2,那么选择面积最接近S的组,作为焊盘对象,删除其他识别到的方形。记识别到的焊盘{R1,R2,R3,...}。
2.4椭圆形焊盘识别
椭圆形焊盘由两个半圆和两条直线连接而成。通过识别半圆及半圆之间的连接线完成对椭圆焊盘的检测。
1)半圆定位
首先求解图像中各个边缘像素点的梯度。圆形图像边缘点的梯度即是圆的法线,法线通过圆心。求解出被多条直线穿过的点即可获得圆心的坐标,记为(xo,yo)。随后计算图像中圆心附近的白色像素到圆心的距离,假设有n个点到圆心的距离为r,且n>Tsc(Tsc为一阈值δ3),则认为圆心处可能存在半圆,记这n个点的坐标为(x1,y1)、(x2,y2)、,...、(xn,yn)。分别计算这些点与圆心连线相对于水平方向的夹角
Figure BDA0002116942360000122
若θi均匀分布在区间[θk,θk+180°](θk为一任意角度)内,则认为此处存在一个半圆,记为OSC,同时取θSC=θk-90°为该半圆的方向。
2)半圆连接线检测
若两个半圆的方向θSC1和θSC2满足θSC1SC2=0°,且两个半圆的半径满足rSC1=rSC2,则认为这两个半圆OSC1和OSC2有可能构成一个椭圆形焊盘。此时检测两个半圆之间的连接线来判断其是否构成一个椭圆焊盘。连接线检测和判断方法如下:
记rSC=rSC1=rSC2,θSC=|θSC1|=|θSC2|,记两个半圆的圆心分别为(xSC1,ySC1)和(xSC2,ySC2),取步进距离
Figure BDA0002116942360000131
其中,m=max(|xSC2-xSC1|,|ySC2-ySC1|)。依次判断坐标([xSC1+nΔx±rSCcosθSC],[ySC1+nΔy±sinθSC])(0<n<m)的点是否为有效像素点。当有效像素点比例高于某一阈值δ4,则认为两个半圆之间有连接线相连,并判断两个半圆及其连接线构成一个椭圆形焊盘,记为{E1,E2,E3,...}。
2.5斜线阴影部分检测
首先利用霍夫直线检测获得图像中具有一定长度的直线段。之后分别计算所有直线相对于水平方向的夹角,并剔除夹角呈0°和90°的直线段,剩余直线段均为斜线。将剩余斜线段扩展为散点,扩展方式如下:
假设检测到的斜线的两个端点分别为(x1,y1)和(x2,y2)。则扩展后的散点坐标
Figure BDA0002116942360000132
Figure BDA0002116942360000133
式中x1≤i≤x2,h为一个常数。
对生成的散点做聚类处理,再对聚类完成的散点求取矩形外包围盒,即可获得斜线阴影区域。
2.6箭头标注检测
1)线宽识别和干扰线擦除
首先利用霍夫直线检测提取出图像中具有一定长度的线条信息。设提取的线条两端点为A(x1,y1)和B(x2,y2),取步进距离
Figure BDA0002116942360000134
其中,m=max(|x2-x1|,|y2-y1|),则将线条法向的像素点表示为([x1+nΔx±kΔy],[y1+nΔy±kΔx])(0<n<m,k>0)。依次判断线条法向点的可延展宽度,并求取平均值dl作为该直线的线条宽度。对整幅图像求取最长的数条直线的线条宽度dl1、dl2、dl3、...,并求取平均值dlavg作为该输入图像的线条宽度;利用开运算擦除干扰线。取运算核的边长为dlavg,利用该运算核对二值反色图像做开运算,即可擦除图像中的无关线条,留下箭头图像,记为Iwipe
2)箭头粗定位
利用步骤2.1的方式对擦除了干扰线的图像重新分割,分割得到的图像记为IW1,IW2,IW3,...。取标准箭头模板的图像Iarrow,计算Iarrow的HU矩和IW1,IW2,IW3,...的HU矩,并计算相似度Isim。若Isim小于一定的阈值δ5,则认为该图像为候选箭头图像,记为IAC1,IAC2,IAC3,...。
3)箭头精确定位
假设粗定位得到的箭头图像IAC在一个中心坐标为(xAC,yAC),宽度为wAC,高度为hAC的矩形包围盒中。在Iwipe中截取中心坐标为(xAC,yAC),宽度为1.5wAC,高度为1.5hAC的矩形图像I′AC。对I′AC用双线性插值的方法转变为尺寸大小HAC×WAC的正方形图像I″AC。取运算核大小为Hk×Wk,对I″AC做腐蚀运算,得到图像I″′AC。此时,I″′AC中只有一个较小的三角形图像。对I3求取最小包围三角形,可以获得最小外包三角形的三个顶点数据(xA,yA)、(xB,yB)和(xC,yC)。
4)箭头指向识别和配对
精确定位后的三角形的三个顶点分别为(xA,yA)、(xB,yB)和(xC,yC),则该三角形的重心G的坐标为
Figure BDA0002116942360000141
记为(xG,yG)。另取三角形图像的外包围盒中心坐标(xm,ym)。则三角形的箭头指向可以用向量
Figure BDA0002116942360000142
表示。并根据如下步骤筛选成对的箭头:首先计算所有箭头指向向量
Figure BDA0002116942360000143
和水平线的夹角θi。取夹角相同的两个箭头,假设其外包围盒中心坐标分别为(x1,y1)和(x2,y2),夹角均为θ1。计算包围盒中心坐标连线对水平线夹角θ2。若θ1≈θ2,则将两个箭头配对;如果同一个箭头有多个配对的时候,则按照从左至右、从上至下的方式依次配对。
2.7识别数字标注
步骤2.1中获取了分割后的图像I1,I2,I3,...。将I1,I2,I3,...送入训练完毕的神经网络中分类,共分为数字{0,1,...,9}、字母{a,b,c,...,A,B,C,...}、符号{.}、其他特殊字符。。
2.8焊盘1脚估计
在前述识别分割出的图像I1,I2,I3,...中检测特殊标记或者数字“1”,找到其最近的焊盘位置,标记为1脚焊盘。
步骤3:封装关键信息理解
取全图最左下角焊盘中心为坐标原点。水平向右方向为x轴正方向,竖直向上方向为y轴正方向。针对如下内容完成对封装关键信息的理解。
2)根据距离最近的原则,将识别的标注线、数字和箭头标注步骤2识别的每个焊盘目标(圆形焊盘{C1,C2,C3,...}、长方形焊盘{R1,R2,R3,...}、椭圆形{E1,E2,E3,...})的尺寸信息;圆形焊盘包含半径,方形焊盘包括长宽,椭圆形焊盘包括半径和长宽;
3)根据识别的标注线、数字和箭头标注各焊盘之间的距离信息,包括横向距离和纵向距离。相等距离,只标记一个。具体步骤如下:配对箭头和箭头对应的标注指明了封装图中的实际距离,用Dr表示实际距离;根据已有实际距离推理未标注距离,假设Dr表示坐标(x1,y1)的像素点和坐标(x2,y2)的像素点之间的实际距离。而在这两个像素点之间平均分布着n个焊盘。则这n个焊盘,相邻两个焊盘之间的实际距离为
Figure BDA0002116942360000151
步骤4:人机交互式的人工核查。此步骤将由PCB封装工程师对步骤2中关键目标中的焊盘检测和尺寸标记进行核实。如果发生焊盘错检,切换至错检模式,通过不同的鼠标点击和键盘按键等配合方式标记错检,引导更正错检;如果发生焊盘漏检,切换至漏检模式,通过不同的鼠标点击和键盘按键等配合方式标记漏检,引导更正漏检。PCB封装工程师进一步核查焊盘尺寸数值、尺寸单位、焊盘分布,一脚位置等关键因素。如果发生错误和遗漏,更正修改。
步骤5:PCB封装描述文件生成。由步骤2检测和步骤3核实的关键目标,创建以焊盘为对象,尺寸、坐标、形状、一脚位置等焊盘描述属性的PCB封装描述文件。
步骤6:PCB封装文件生成。根据生成的PCB封装描述文件,利用常用的EDA设计的二次开发程序,直接生成PCB封装文件。
其中所述步骤2.1中2)的阈值δ1取值为0.02。
步骤2.2中3)事先定义的距离标准如下:
记最大圆形焊盘半径为rCmax,各分组之间的最小距离大于0.1rCmax
步骤2.3中2)的阈值δ2取值为0.9。
步骤2.4中1)假设有n个点到圆心的距离为r,阈值δ3取值为1.6r。
步骤2.4中2)的阈值δ4取值为0.9。
步骤2.6中2)的阈值δ5取值为2.0。
步骤2.6中3)中取HAC=WAC=200,取Hk=Wk=20。
附图2中图(a)、(b)和(c)分别为圆形焊盘、方形焊盘、椭圆形焊盘底视图。
附图3中圆圈表示圆形焊盘初步检测结果。
附图4中方框表示方形焊盘初步检测结果。
附图5中封闭区域为椭圆形焊盘检测结果。
附图6中三角形表示箭头拟合的识别结果。
附图7中圆圈表示圆形焊盘识别结果,箭头外的方框表示箭头识别结果,数字外面的方框表示标注识别结果。
附图8中圆圈表示圆形焊盘识别结果,箭头外的方框表示箭头识别结果,数字外的方框表示标注识别结果。
附图9中(a)、(b)、(c)分别为三种不同的1脚标记示意图。
附图10中线条为霍夫直线检测的斜线,散点为斜线扩展后的结果示意。

Claims (7)

1.一种PCB封装文件自动生成方法,该方法包括:
步骤1:对电子元器件焊盘底视图依次进行灰度化、去噪、二值化和反色处理;
步骤2:对封装视图中的关键目标检测与识别;
其中关键目标包括长方形焊盘、圆形焊盘、椭圆形焊盘、斜线阴影区域、尺寸箭头标记、尺寸数字标记、1脚标记;根据各个元器件生产商的规范,有不同的焊盘形式,包括:圆形焊盘、长方形焊盘,阴影表示焊盘区域;
步骤2.1:检测封闭轮廓,单个封闭轮廓作为一个对象被单独被分割出来;
步骤2.2:识别出圆形焊盘;
步骤2.2.1:圆形焊盘初定位
首先求解图像中各个边缘像素点的梯度;圆形图像边缘点的梯度即是圆的法线,该法线通过圆心;求解出被最多直线穿过的点获得圆心的坐标;随后计算图像中圆心附近的白色像素到圆心的距离,多个相同距离的点构成给一个完整的圆;从{I1,I2,I3,...}分别查找完整的圆,记检测到的含有圆形图像区域集合为{ICC1,ICC2,ICC3,...};
步骤2.2.2:圆形焊盘验证
采用一个标准圆形图像Icircle作为模板,分别对标准圆形和定位到的焊盘图外轮廓链码求解HU矩;首先定义p+q阶中心矩
Figure FDA0002116942350000011
式中,f(x,y)为图像坐标(x,y)上的像素点的值,
Figure FDA0002116942350000012
Figure FDA0002116942350000013
为图像的重心,M和N为图像的长和高;定义归一化的中心矩
Figure FDA0002116942350000014
利用归一化的中心矩构造7个HU矩M1~M7,7个HU矩计算如下:
M1=η2002
M2=(η2002)2+4η11 2
M3=(η30-3η12)2+(η2103)2
M4=(η3012)2+(η2103)2
M5=(η30-3η12)(η3012)[(η3012)2-3(η2103)2]+(3η2103)(η2103)[3(η3012)2-(η2103)2]
M6=(η2002)[(η3012)2-(η2103)2]+4η113012)(η2103)
M7=(3η2103)(η3012)[(η3012)2-3(η2103)2]+(3η2103)(η2103)[3(η3012)2-(η2103)2]
分别计算{ICC1,ICC2,ICC3,...}集合中每个元素与标准圆Icircle的HU矩相似度;计算公式如下:
Figure FDA0002116942350000021
式中
Figure FDA0002116942350000022
Figure FDA0002116942350000023
分别表示标准圆形封装图的HU矩和图像ICC1,ICC2,ICC3,...的第i阶HU矩;计算值Isim越小表示输入的图像越接近标准焊盘;取计算出Isim值小于阈值δ1的图像为圆形焊盘分割图像,记为圆形焊盘集合{PC1,PC2,PC3,...};
步骤2.2.3:合并重复识别的圆形焊盘
利用聚类方法合并同一位置重复识别的圆形焊盘得到{C1,C2,C3,...};
步骤2.3:识别出方形焊盘;
步骤2.3.1:检测出角点
计算{I1,I2,I3,...}{C1,C2,C3,...}两个集合的差集,找到相应的拐点集合{T1’,T2’,...};计算每个拐点集合中的拐点夹角;
步骤2.3.2:对角点分组和对焊盘进行验证;
步骤2.4识别出椭圆形焊盘;
椭圆形焊盘由两个半圆和两条直线连接而成;通过识别半圆及半圆之间的连接线完成对椭圆焊盘的检测;
步骤2.5检测出斜线阴影部分;
首先利用霍夫直线检测获得图像中具有一定长度的直线段;之后分别计算所有直线相对于水平方向的夹角,并剔除夹角呈0°和90°的直线段,剩余直线段均为斜线;将剩余斜线段扩展为散点;
步骤2.6检测出箭头并计算出箭头指向,并将属于同于标注内容的两个箭头进行配对;
步骤2.7:识别出标注中的数字;
步骤2.1中获取了分割后的图像I1,I2,I3,...;将I1,I2,I3,...送入训练完毕的神经网络中分类,共分为数字{0,1,...,9}、字母{a,b,c,...,A,B,C,...}、符号{.}、其他特殊字符;
步骤2.8:识别出焊盘1脚;
在前述识别分割出的图像I1,I2,I3,...中检测特殊标记或者数字“1”,找到其最近的焊盘位置,标记为1脚焊盘;
步骤3:封装关键信息理解;
取全图最左下角焊盘中心为坐标原点;水平向右方向为x轴正方向,竖直向上方向为y轴正方向;针对如下内容完成对封装关键信息的理解;
步骤3.1根据距离最近的原则,将识别的标注线、数字和箭头标注步骤2识别的每个焊盘目标的尺寸信息,包括:圆形焊盘{C1,C2,C3,...}、长方形焊盘{R1,R2,R3,...}、椭圆形{E1,E2,E3,...};其中圆形焊盘包含半径,方形焊盘包括长宽,椭圆形焊盘包括半径和长宽;
步骤3.2:根据识别的标注线、数字和箭头标注各焊盘之间的距离信息,包括横向距离和纵向距离;相等的距离,只标记一个;具体步骤如下:配对箭头和箭头对应的标注指明了封装图中的实际距离,用Dr表示实际距离;根据已有实际距离推理未标注距离,假设Dr表示坐标(x1,y1)的像素点和坐标(x2,y2)的像素点之间的实际距离;而在这两个像素点之间平均分布着n个焊盘;则这n个焊盘,相邻两个焊盘之间的实际距离为
Figure FDA0002116942350000031
步骤4:人机交互式的人工核查;此步骤将由PCB封装工程师对步骤2中关键目标中的焊盘检测和尺寸标记进行核实;如果发生焊盘错检,切换至错检模式,通过不同的鼠标点击和键盘按键等配合方式标记错检,引导更正错检;如果发生焊盘漏检,切换至漏检模式,通过不同的鼠标点击和键盘按键等配合方式标记漏检,引导更正漏检;PCB封装工程师进一步核查焊盘尺寸数值、尺寸单位、焊盘分布,一脚位置等关键因素;如果发生错误和遗漏,更正修改;
步骤5:PCB封装描述文件生成;由步骤2检测和步骤3核实的关键目标,创建以焊盘为对象,尺寸、坐标、形状、一脚位置等焊盘描述属性的PCB封装描述文件;
步骤6:PCB封装文件生成;根据生成的PCB封装描述文件,利用常用的EDA设计的二次开发程序,直接生成PCB封装文件。
2.如权利要求1所述的一种PCB封装文件自动生成方法,其特征在于所述步骤2.1中封闭轮廓检测方法如下:
步骤2.1.1:首先遍历图像,寻找图像中的“轮廓点”;“轮廓点”定义为该点的8连通区域内既包含黑色像素点,也包括白色像素点的点;找到“轮廓点”之后,利用轮廓跟踪的方式获得整个轮廓,并将获得的轮廓存储下来;
步骤2.1.2:对于每一个轮廓,其存储的轮廓信息采用折线段拟合,记每个折线段的拐点为(xC,yC),每个轮廓的拐点集合为T,则整幅图像被分割为多个由拐点表示的轮廓T1,T2,T3,...;同时,取每个轮廓的最小矩形包围盒包围的图像,即为分割后的图像区域,记为{I1,I2,I3,...}。
3.如权利要求1所述的一种PCB封装文件自动生成方法,其特征在于所述步骤2.3的1)中检测出角点的计算步骤如下:
设相邻的三个拐点分别为(xC1,yC1)、(xC2,yC2)和(xC3,yC3),则三个拐点之间的矢量表达式为
Figure FDA0002116942350000041
Figure FDA0002116942350000042
计算
Figure FDA0002116942350000043
Figure FDA0002116942350000044
两个向量之间的夹角为
Figure FDA0002116942350000045
判断该夹角是否为90°,如果是则判断两条边形成直角;两条边所夹拐点(xC2,yC2)就被记录为一个角点,两条边和角点组成的角,其角平分线可以用向量
Figure FDA0002116942350000046
表示;取该向量和水平方向的夹角
Figure FDA0002116942350000047
为该角点的方向;记一个完整的角点为(xCP,yCP,θCP),其中(xCP,yCP)为该角点的坐标,θCP为该角点的方向。
4.如权利要求1所述的一种PCB封装文件自动生成方法,其特征在于所述步骤2.4的具体方法为:
步骤2.4.1:半圆定位
首先求解图像中各个边缘像素点的梯度;圆形图像边缘点的梯度即是圆的法线,法线通过圆心;求解出被多条直线穿过的点即可获得圆心的坐标,记为(xo,yo);随后计算图像中圆心附近的白色像素到圆心的距离,假设有n个点到圆心的距离为r,且n>Tsc,Tsc为一阈值δ3,则认为圆心处可能存在半圆,记这n个点的坐标为(x1,y1)、(x2,y2)、...、(xn,yn);分别计算这些点与圆心连线相对于水平方向的夹角
Figure FDA0002116942350000048
若θi均匀分布在区间[θk,θk+180°]内,θk为一任意角度,则认为此处存在一个半圆,记为OSC,同时取θSC=θk-90°为该半圆的方向;
步骤2.4.2:半圆连接线检测
若两个半圆的方向θSC1和θSC2满足θSC1SC2=0°,且两个半圆的半径满足rSC1=rSC2,则认为这两个半圆OSC1和OSC2有可能构成一个椭圆形焊盘;此时检测两个半圆之间的连接线来判断其是否构成一个椭圆焊盘;连接线检测和判断方法如下:
记rSC=rSC1=rSC2,θSC=|θSC1|=|θSC2|,记两个半圆的圆心分别为(xSC1,ySC1)和(xSC2,ySC2),取步进距离
Figure FDA0002116942350000051
其中,m=max(|xSC2-xSC1|,|ySC2-ySC1|);依次判断坐标([xSC1+nΔx±rSCcosθSC],[ySC1+nΔy±sinθSC])(0<n<m)的点是否为有效像素点;当有效像素点比例高于某一阈值δ5,则认为两个半圆之间有连接线相连,并判断两个半圆及其连接线构成一个椭圆形焊盘,记为{E1,E2,E3,...}。
5.如权利要求1所述的一种PCB封装文件自动生成方法,其特征在于所述步骤2.5中的斜线段扩展为散点的方法为:
假设检测到的斜线的两个端点分别为(x1,y1)和(x2,y2);则扩展后的散点坐标
Figure FDA0002116942350000052
Figure FDA0002116942350000053
式中x1≤i≤x2,h为一个常数;
对生成的散点做聚类处理,再对聚类完成的散点求取矩形外包围盒,即可获得斜线阴影区域。
6.如权利要求1所述的一种PCB封装文件自动生成方法,其特征在于所述步骤2.6的具体方法为:
步骤2.6.1:线宽识别和干扰线擦除
首先利用霍夫直线检测提取出图像中具有一定长度的线条信息;设提取的线条两端点为A(x1,y1)和B(x2,y2),取步进距离
Figure FDA0002116942350000054
其中,m=max(|x2-x1|,|y2-y1|),则将线条法向的像素点表示为([x1+nΔx±kΔy],[y1+nΔy±kΔx])(0<n<m,k>0);依次判断线条法向点的可延展宽度,并求取平均值dl作为该直线的线条宽度;对整幅图像求取最长的数条直线的线条宽度dl1、dl2、dl3、...,并求取平均值dlavg作为该输入图像的线条宽度;利用开运算擦除干扰线;取运算核的边长为dlavg,利用该运算核对二值反色图像做开运算,即可擦除图像中的无关线条,留下箭头图像,记为Iwipe
步骤2.6.2:箭头粗定位
利用步骤2.1的方式对擦除了干扰线的图像重新分割,分割得到的图像记为IW1,IW2,IW3,...;取标准箭头模板的图像Iarrow,计算Iarrow的HU矩和IW1,IW2,IW3,...的HU矩,并计算相似度Isim;若Isim小于一定的阈值δ5,则认为该图像为候选箭头图像,记为IAC1,IAC2,IAC3,...;
步骤2.6.3:箭头精确定位
假设粗定位得到的箭头图像IAC在一个中心坐标为(xAC,yAC),宽度为wAC,高度为hAC的矩形包围盒中;在Iwipe中截取中心坐标为(xAC,yAC),宽度为1.5wAC,高度为1.5hAC的矩形图像I′AC;对I′AC用双线性插值的方法转变为尺寸大小HAC×WAC的正方形图像I″AC;取运算核大小为Hk×Wk,对I″AC做腐蚀运算,得到图像I″′AC;此时,I″′AC中只有一个较小的三角形图像;对I3求取最小包围三角形,可以获得最小外包三角形的三个顶点数据(xA,yA)、(xB,yB)和(xC,yC);
步骤2.6.4:箭头指向识别和配对
精确定位后的三角形的三个顶点分别为(xA,yA)、(xB,yB)和(xC,yC),则该三角形的重心G的坐标为
Figure FDA0002116942350000061
记为(xG,yG);另取三角形图像的外包围盒中心坐标(xm,ym);则三角形的箭头指向可以用向量
Figure FDA0002116942350000062
表示;并根据如下步骤筛选成对的箭头:首先计算所有箭头指向向量
Figure FDA0002116942350000063
和水平线的夹角θi;取夹角相同的两个箭头,假设其外包围盒中心坐标分别为(x1,y1)和(x2,y2),夹角均为θ1;计算包围盒中心坐标连线对水平线夹角θ2;若θ1≈θ2,则将两个箭头配对;如果同一个箭头有多个配对的时候,则按照从左至右、从上至下的方式依次配对。
7.如权利要求3所述的一种PCB封装文件自动生成方法,其特征在于所述步骤2.3.2中的具体方法为:
首先对角点进行配对;遍历已经获得的角点,假设存在四个角点(xCP1,yCP1,θCP1)、(xCP2,yCP2,θCP2)、(xCP3,yCP3,θCP3)、(xCP4,yCP4,θCP4),且
CP1CP2|=90°
CP2CP3|=90°
CP3CP4|=90°
CP4CP1|=90°
则这四个角点的方向互相正交,可以将其分配为一组;分组过程中,每个角点可以属于多个组别;
其次,判断角点之间的相互连接关系;针对角点(xCP1,yCP1,θCP1)、(xCP2,yCP2,θCP2),取步进距离
Figure FDA0002116942350000071
其中,m=max(|xCP2-xCP1|,|yCP2-yCP1|);依次判断坐标([xCP1+nΔx],[yCP1+nΔy])(0<n<m)的点是否为有效像素点;判断的所有坐标点中,有效像素点比例高于某一阈值δ2,则认为角点之间相互连通;
若同一分组的四个角点,且相邻的角点相互连通,则将这四个角点划分为一个方形焊盘,记为Pr,并计算Pr的面积;以所有方形焊盘面积为对象,做直方图统计,选出面积出现次数最多的值S;如果出现同一角点分属多个组的特殊情况,例如某一角点同时属于Pr1和Pr2,那么选择面积最接近S的组,作为焊盘对象,删除其他识别到的方形;记识别到的焊盘{R1,R2,R3,...}。
CN201910593806.9A 2019-07-03 2019-07-03 一种pcb封装文件自动生成方法 Active CN110334433B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910593806.9A CN110334433B (zh) 2019-07-03 2019-07-03 一种pcb封装文件自动生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910593806.9A CN110334433B (zh) 2019-07-03 2019-07-03 一种pcb封装文件自动生成方法

Publications (2)

Publication Number Publication Date
CN110334433A CN110334433A (zh) 2019-10-15
CN110334433B true CN110334433B (zh) 2022-03-15

Family

ID=68144110

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910593806.9A Active CN110334433B (zh) 2019-07-03 2019-07-03 一种pcb封装文件自动生成方法

Country Status (1)

Country Link
CN (1) CN110334433B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111259944B (zh) * 2020-01-10 2022-04-15 河北工业大学 基于快速PCA算法和K-means聚类算法的块石形状分类方法
CN113808067A (zh) * 2020-06-11 2021-12-17 广东美的白色家电技术创新中心有限公司 电路板检测方法、视觉检测设备及具有存储功能的装置
CN111882547A (zh) * 2020-07-30 2020-11-03 佛山市南海区广工大数控装备协同创新研究院 一种基于神经网络的pcb漏件检测方法
CN112163393A (zh) * 2020-09-10 2021-01-01 北京浪潮数据技术有限公司 一种创建pcb封装的方法、装置及设备
CN116079292B (zh) * 2023-01-31 2024-01-23 凌波微步半导体设备(常熟)有限公司 一种焊盘识别方法及半导体芯片焊线机
CN117523577A (zh) * 2023-11-22 2024-02-06 粤港澳大湾区(广东)国创中心 基于最长水平直线的引脚名称上划线检测方法及设备
CN117574851B (zh) * 2024-01-11 2024-04-19 上海合见工业软件集团有限公司 一种在eda工具中重构电路原理图的方法、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4893346A (en) * 1985-03-14 1990-01-09 Beltronics, Inc. Apparatus for automatically inspecting objects and identifying or recognizing known and unknown portions thereof, including defects and the like, and method
CN106980721A (zh) * 2017-03-21 2017-07-25 电子科技大学 一种虚焊检测有限元仿真分析方法
CN107679131A (zh) * 2017-09-22 2018-02-09 电子科技大学 一种快速谱图匹配方法
CN109241017A (zh) * 2018-10-23 2019-01-18 电子科技大学 一种pcb元器件封装库的创建与查询方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4318465B2 (ja) * 2002-11-08 2009-08-26 コニカミノルタホールディングス株式会社 人物検出装置および人物検出方法
US9858683B2 (en) * 2015-08-05 2018-01-02 Intel Corporation Method and system of planar surface detection objects in 3d space generated from captured images for image processing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4893346A (en) * 1985-03-14 1990-01-09 Beltronics, Inc. Apparatus for automatically inspecting objects and identifying or recognizing known and unknown portions thereof, including defects and the like, and method
CN106980721A (zh) * 2017-03-21 2017-07-25 电子科技大学 一种虚焊检测有限元仿真分析方法
CN107679131A (zh) * 2017-09-22 2018-02-09 电子科技大学 一种快速谱图匹配方法
CN109241017A (zh) * 2018-10-23 2019-01-18 电子科技大学 一种pcb元器件封装库的创建与查询方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于CBCT图像的PCB网表提取技术研究;黄辉;《中国优秀硕士学位论文全文数据库 信息科技辑》;20120215;I135-210 *

Also Published As

Publication number Publication date
CN110334433A (zh) 2019-10-15

Similar Documents

Publication Publication Date Title
CN110334433B (zh) 一种pcb封装文件自动生成方法
CN108596066B (zh) 一种基于卷积神经网络的字符识别方法
USRE47889E1 (en) System and method for segmenting text lines in documents
US8442319B2 (en) System and method for classifying connected groups of foreground pixels in scanned document images according to the type of marking
US8792715B2 (en) System and method for forms classification by line-art alignment
CN106960208A (zh) 一种仪表液晶数字自动切分和识别的方法及系统
CN110021028B (zh) 一种基于服装款式图的自动制衣方法
CN107016394B (zh) 一种交叉纤维特征点匹配方法
TW201339975A (zh) 條碼辨識方法及其電腦程式產品
CN112115948A (zh) 一种基于深度学习的芯片表面字符识别方法
CN109389050B (zh) 一种流程图连接关系识别方法
CN111507344A (zh) 从图像中识别出文字的方法和装置
Roy et al. Text line extraction in graphical documents using background and foreground information
Jin et al. Reference-free path-walking method for ball grid array inspection in surface mounting machines
CN113011426A (zh) 一种识别证件的方法和装置
CN115830359A (zh) 复杂场景下基于目标检测和模板匹配的工件识别计数方法
CN110288040B (zh) 一种基于拓扑验证的图像相似评判方法及设备
CN109271882B (zh) 一种区分颜色的手写体汉字提取方法
CN110263784A (zh) 智能的英语试卷成绩识别录入方法
CN111046770B (zh) 一种照片档案人物自动标注方法
CN111652200A (zh) 车险案件中从图片区分多车的处理方法、装置及设备
CN116541912A (zh) 一种基于cad图像识别生成接线图的方法及装置
CN113361547A (zh) 一种签章识别方法、装置、设备及可读存储介质
Wu et al. Semiautomatic mask generating for electronics component inspection
Vazquez et al. Topological histogram reduction towards colour segmentation

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant