- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
PCBA加工元件自动检测技术简介(下)
摘要:表面安装PCB板的自动检测是保证质量、减少制造废品浪费和返工的要求。本文研究定位和识别SMD检测图像中的多个对象的方法。表面安装器件检测的主要难点之一是元件放置的检测。元件放置缺陷如漏贴、偏位或者是错误的旋转元件是主要缺陷必须在回流焊之前或之后进行检测。本文的重点在于定位多对象的对像识别技术;使用灰色模型匹配来为一组元件创建通用的模板。研究中使用标准化互相关模板匹配方法并对限制搜索区域以减少计算量的方法进行测试。查找模板位置的方法使用了一个遗传算法,性能优越。最后列出了对典型的PCB图像的实验结果。
关键词:PCB制造;元件检测;模板匹配;遗传算法
5 搜索方法
模板匹配的搜索可以使用一个启化式的方法如遗传算法。结束搜索的判断条件由计算的NCC值决定。实验发现,0.65的NCC值是一个理想的表示找到模板匹配,停止搜索的结束条件。
5.1 遗传算法搜索
遗传算法是一个基于种群(population-based)的概率搜索算法。其使用模拟自然选择和生物遗传机制(mechanics)的算子。遗传算法开始建立一个解集的随机种群及计算每个成员的适应度值(如NCC值)。将适应度值作为依据,从种群中选择一个子集作为父母。这些父母组合产生新一代的解集称之为子代。将这些新集取代原种群的一些成员,然后计算新的适应度值。重复这样的选择和使用适应度值来产生新的种群的过程。当种群进化,也更接近最优解。
遗传算法搜索边缘像素(图5)执行时,使用一个indices determining边缘位置(x,y)坐标种群,和indices determining角度种群。不同的电阻对象在图像中的旋转角度可能不同。因此,定义了代表模板角度的角度变量。一般电阻的放置角度为0、90、180、270,所以角度向量限制为这四个值。只使用四个角度的缺点是实际的旋转角度可能是不确定的;优点是保持低的计算量。
通过在对应的边缘位置(x, y)坐标和角度计算NCC值,给每个父代(如边缘位置和角度indices)分配一个适应度值。使用Roulette-wheel selection来选择父代,然后对父代使用线性组合产生新的子代,用以下方程的计算。
(3)
其中a是值为0到1的随机权数。如果有需要,用一个宽度值来扩展子代的范围。
遗传算法能够好的解决单解问题,因此需要一个机制,当找到一个模板匹配时,让GA找到另一个解。当在源图像找到一个NCC值大于0.65(找到一个好的模板匹配)的位置时,在源图像将和模板一致的区域用一个反色的模板图像替换。一旦发生模板匹配,这个方法有效的封闭出一个区域。当找出所有元件,算法即结束。
使用遗传算法检测PCB过程如图7所示,用Matlap实现。首先,离线创建通用模板和设置对象的数量。然后,然后获取被检测PCB的图像,应用查找对象及他们的位置和旋转角度的算法。如果位置和旋转角度等于期望值,则被测PCB通过质量检查。
图7 遗传算法模板图像搜索流程图
6 应用和结果
本章测试和比较基于通用模板的不同的多对象识别技术。结果如表1所示。对标准化互相关(NCC)和最大可能模板匹配方法使用完全搜索非压缩源图像方法进行了比较。算法使用图3的通用模板对图2的6个5110和1001贴片电阻进行定位。结果表明NCC模板匹配方法比最大可能匹配方法快4倍多。使用最大可能方法,协方差矩阵的计算非常耗时。然后,对在一个预先确定的矩形区域,围绕每个已知元件目标点,使用局部搜索的方法进行了测试。这个方法大大减少了搜索时间。
如果元件错件和偏位,局部搜索方法就会失败。在这种情况下,需要对整个源图像进行搜索来查找错误放置的对象。之前讨论的Canny边缘压缩方法可以用来减少搜索点的数量,对完全搜索和遗传算法分别进行了实验并获得了结果。GA的模板位置搜索比完全搜索快6倍左右。
表1 结果
方法 | 执行时间(s) |
最大可能非压缩完全搜索 | 3303 |
NCC非压缩完全搜索 | 737.2 |
NCC Canny边缘压缩完全搜索 | 230.8 |
NCC对象目标点局部搜索 | 47.5 |
NCC Canny边缘压缩GA搜索 | 39.5 |
为了找出一个最优参数来使遗传算法的执行时间最小化,进行了实验统计分析。初始实验确定可控参数的范围,如种群大小、重组百分比、线性重组宽度、突变百分比。然后进行两组实验获得两组值的范围。第一组实验使用种群值160、200和240,重组百分比值为75%、85%和95%,突变百分比值为15%、25%和35%,线性重组宽度为0,0.1和0.2。第二组实验使用种群值80、120和160,重组百分比值为55%、65%和75%,突变百分比值为25%、35%和45%,线性重组宽度为0,0.1和0.2。
第一组实验中最优的参数是种群大小为160,重组合百分比为75%,突变百分比为35%,线性重组合宽度为0。第二组实验中最优的参数是种群大小为160,重组合百分比为75%,突变百分比为45%,线性重组合宽度为0。两组实验中的群大小、重组合百分比和线性重组合宽度的最优参数相同。唯一不明确的是突变百分比的值,进一步的实验显示35%的突变率是最优的参数。
图8显示了待定位对像总的数量和当前已经定位对象数量的变化过程。其中N的定义为:
(4)
其中:
NTOTAL=待定位对象总的数量。
NFOUND=已定位对象的数量。
图8显示了N减小到0的一系列的阶段。在第一个阶段有一个新的对象被检测出来。当所有对象都都检测出来,遗传算法结束,返回每个元件的位置和旋转角度。角度限制在0、90、180和270四个角度内。可以根据这些算法返回的值进行质量检查。当元件的旋转角度不是限制的四个角度时,算法产生的互相关值不会大于0.65,元件就识别不了。因此,识别对象的总数可以用于质量检查。图9显示了使用遗传算法多对象识别方法定位的6个元件的源图像。
图8 反复(iteration)次数和对像定位关系
图9 使用遗传算法识别和定位六个元件的源图像
关于这个方法可量测性的主要因素是通用模板的建立。在本研究中,通用模板是通过从源图像提取的大小相同的6个元件的模板建立的,这些元件的标签特征有差别。因此,方法只能搜索6个对象。图10显示了待搜索对象的数量和对应的平均搜索时间。图显示了单独搜索和同时搜索的结果。同时搜索是同时对所有对象搜索,单独搜索是每次只搜索一个对象。结果显示了当对象数量增加,同时搜索方法有更优的平均时间,是一个更好的多对象识别方法。
围绕对象点的NCC局部区域搜索方法表现很好的性能,当其是在假设对象点位置预先知道前提下的。GA方法的优点是,因为其是一个对边缘的全局搜索,所以它和摄像机的对准(alignment)没有关系。这点是很重要的,因为在生产环境下不能完全保证摄像机是对准的。
图10 遗传算法测量结果
7 结论
本文设计了多对象识别方法,并应用这个方法查找PCB上贴片元件的位置和角度,以便进行质量控制检查。基本的方法是基于对一组元件建立一个通用灰色模型模板。搜索可以限制在围绕已知对象点的局部区域或者,如果需要对整个源图像进行搜索来查找错件,则限制搜索在Canny边缘位置。
如果元件对象点预先知道,则完全搜索围绕对象点的连续小区域来寻找模板匹配是很有效的。如果需要搜索整个图像,则限制搜索区域在Canny边缘可以减少搜索时间。
当查找出所有元件,遗传算法结束,搜索性能比对同一搜索区域的完全搜索方法快6倍,也比围绕已知对象点的局部完全搜索方法快。因为遗传算法方法搜索整个图像的边缘,所以和图像的对准无关(而对通过比较两个图像来检测缺陷是必需的)。本文研究的方法也可以应用以其它应用包括机器视觉系统和卫星监测。
射频工程师养成培训教程套装,助您快速成为一名优秀射频工程师...
闂傚倸鍊搁崐鎼佸磹瀹勬噴褰掑炊椤掑鏅悷婊冪箻楠炴垿濮€閵堝懐鐤€濡炪倖妫佸Λ鍕償婵犲洦鈷戠憸鐗堝笒娴滀即鏌涢悩鍐叉诞鐎规洘鍨块獮姗€骞囨担鐟板厞婵$偑鍊栭崝鎴﹀垂閸︻厾鐭堟い鏇楀亾婵﹥妞藉Λ鍐ㄢ槈濞嗘ɑ顥i梻浣呵归敃銈夆€﹂悜鐣屽祦闁硅揪绠戠粈瀣亜閹烘垵鈧骞婂┑鍡╂富闁靛牆妫涙晶顒傜棯閺夎法孝闁宠绉电换婵嬪炊閵娿垺瀚藉┑鐐存尰閸╁啴宕戦幘瀵哥濞达絽鍟垮ú锕傚疾椤掑嫮鍙撻柛銉e妿閳藉鏌i幒鎴犱粵闁靛洤瀚伴獮鎺楀箣濠垫劒鎮i梻浣芥閸熶即宕伴弽顓炶摕闁哄洢鍨归柋鍥ㄧ節閸偄濮堥弫鍫ユ⒒娴e懙褰掝敄閸愵喖绀夌€广儱顦闂佸憡娲﹂崹浼村礃閳ь剟姊洪棃娑掑悍濠碘€虫搐閳绘捇濡堕崱娆戠槇闂佸啿鐨濋崑鎾绘煕閺囥劌澧版い锔垮嵆濮婃椽宕崟顓犲姽缂傚倸绉崇欢姘舵偘椤斿槈鐔煎礂閻撳孩鐎梻浣告啞濞诧箓宕㈣ぐ鎺戠劦妞ゆ巻鍋撻柨鏇ㄤ簻椤繐煤椤忓懎浠梺鍝勵槹鐎笛傜昂濠碉紕鍋戦崐鏍垂閻㈡潌鍥偨缁嬭銉ッ归敐鍛棌婵炵鍔戦弻宥堫檨闁告挾鍠栭悰顕€宕橀纰辨綂闂侀潧鐗嗛幊搴g玻濞戞瑧绡€闁汇垽娼у瓭闁诲孩鍑归崢濂稿煝閹炬椿鏁婇柛鎾楀拑绱抽梻浣呵归張顒勬嚌妤e啫鐒垫い鎺戝濡垹绱掗鑲╁缂佹鍠栭崺鈧い鎺戝閳ь兛绶氬浠嬵敇閻愭鍚呴梻浣瑰濞插秹宕戦幘鍓佺<闁绘瑢鍋撻柛銊ョ埣瀵濡搁埡鍌氫簽闂佺ǹ鏈粙鎴︻敂閿燂拷 | More...
闂傚倸鍊搁崐鎼佸磹瀹勬噴褰掑炊椤掑鏅悷婊冪箻楠炴垿濮€閵堝懐鐤€濡炪倖妫佸Λ鍕償婵犲洦鈷戠憸鐗堝笒娴滀即鏌涢悩鍐叉诞鐎规洘鍨块獮姗€骞囨担鐟板厞婵$偑鍊栭崝鎴﹀垂閸︻厾鐭堟い鏇楀亾婵﹥妞藉Λ鍐ㄢ槈濞嗘ɑ顥i梻浣呵归敃銈夆€﹂悜鐣屽祦闁硅揪绠戠粈瀣亜閹烘垵鈧骞婂┑鍡╂富闁靛牆妫涙晶顒傜棯閺夎法孝闁宠绉电换婵嬪炊閵娿垺瀚藉┑鐐存尰閸╁啴宕戦幘瀵哥濞达絽鍟垮ú锕傚疾椤掑嫮鍙撻柛銉e妿閳藉鏌i幒鎴犱粵闁靛洤瀚伴獮鎺楀箣濠垫劒鎮i梻浣芥閸熶即宕伴弽顓炶摕闁哄洢鍨归柋鍥ㄧ節閸偄濮堥弫鍫ユ⒒娴e懙褰掝敄閸愵喖绀夌€广儱顦闂佸憡娲﹂崹浼村礃閳ь剟姊洪棃娑辨Ф闁稿寒鍣e畷鎴﹀箻鐠囨彃鍞ㄥ銈嗗姉閸犲孩绂嶉悙顒佸弿婵☆垳鍘ф禍楣冩倵濮樼偓瀚�婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柟闂寸绾惧鏌i幇顒佹儓闁搞劌鍊块弻娑㈩敃閿濆棛顦ョ紓浣哄Т缂嶅﹪寮诲澶婁紶闁告洦鍓欏▍锝夋⒑缁嬭儻顫﹂柛鏃€鍨垮濠氭晲婢跺﹦鐤€闂傚倸鐗婄粙鎴﹀煕閹烘垟鏀介柣鎰皺婢ф梻绱掗鐣屾噰鐎殿喖顭锋俊鎼佸煛閸屾矮绨介梻浣呵归張顒傜矙閹达富鏁傞柨鐕傛嫹闂傚倸鍊搁崐鎼佸磹閹间礁纾归柣鎴eГ閸ゅ嫰鏌涢幘鑼妽闁稿繑绮撻弻娑㈩敃閿濆棛顦ラ梺姹囧€楅崑鎾舵崲濠靛顥堟繛鎴濆船閸擃參姊洪柅鐐茶嫰閸樻悂鏌i幒鐐差洭闁瑰箍鍨归埞鎴犫偓锝庝簽閸婄偤姊洪懖鈹e綊鎮樺顑芥瀺闁瑰墽绮埛鎺懨归敐鍛暈闁哥喓鍋炵换娑氭嫚瑜忛悾鐢碘偓瑙勬礃缁矂鍩ユ径鎰潊闁抽敮鍋撻柟绋垮暣濮婃椽宕ㄦ繝鍐槱闂佺ǹ绻戠粙鎾诲箲閵忋倕骞㈡繛鎴炵懅閸橆亪姊洪崜鎻掍簼缂佽鍟村畷宕囨喆閸曗晙绨婚棅顐㈡处閹搁箖骞楅悩鐫酣宕惰闊剚銇勯姀鈩冪妞ゃ垺顨嗛幏鍛村礈闊厾澶�
闂傚倸鍊搁崐鎼佸磹瀹勬噴褰掑炊椤掑鏅悷婊冪箻楠炴垿濮€閵堝懐鐤€濡炪倖妫佸Λ鍕償婵犲洦鈷戠憸鐗堝笒娴滀即鏌涢悩鍐叉诞鐎规洘鍨块獮姗€骞囨担鐟板厞婵$偑鍊栭崝鎴﹀垂閸︻厾鐭堟い鏇楀亾婵﹥妞藉Λ鍐ㄢ槈濞嗘ɑ顥i梻浣呵归敃銈夋倶濠靛鍋╅梺鍨儑闂勫嫮绱掔€n亞浠㈢€规挸妫濆铏圭磼濡搫顫嶅銈嗘⒐閻楁洖宓勫┑鐐叉▕娴滄繈鎮¢悢鍏肩厽闁哄倹瀵ч幉鎼佹煟椤撶偠瀚版い顓″劵椤﹁櫕銇勯妸銉уⅵ鐎殿噮鍋婇、姘跺焵椤掑嫮宓侀柟鐑橆殔缁秹鏌嶈閸撶喎顕i崘娴嬪牚闁割偆鍠撻崢鐢告⒑鐠団€崇仭婵犮垺枪椤e潡姊绘担铏瑰笡闁规悂绠栧畷浼村箛閺夎锕傛煕閺囥劌鐏遍柡浣稿暞閵囧嫰骞囬埡浣轰患缂備胶濮惧畷鐢垫閹惧瓨濯撮柣銈庡灠閸橈繝姊虹粙璺ㄧ闁挎洏鍨归锝嗙節濮橆厽娅滄繝銏e煐钃遍柡鍜冪秮濮婅櫣绱掑Ο鍝勵潔缂備椒鐒﹂幐鎶界嵁閹版澘绀冩い鏃囆掗幏娲⒑閼姐倕鏋戞繝銏∶嵄缂備焦菧娴滄粓鏌熺€涙ḿ绠ユ俊顖楀亾闂備胶绮笟妤呭闯閿濆宓侀悗锝庡枟閺呮繈鏌嶈閸撴稓鍒掔拠娴嬫闁靛繆妾ч幏濠氭⒑閸撴彃浜為柛鐘虫崌閸╁﹪寮撮姀锛勫幈婵犵數濮撮崐鍧楀矗閸曨剚鍙忓┑鐘插鐢盯鏌熷畡鐗堝殗闁圭厧缍婇悰顔芥償閹惧厖澹曟繝鐢靛Т濞诧箓鎮″☉銏$厱婵炴垵宕弸銈囩磼閻橀潧浠遍柡灞炬礋瀹曢亶寮撮悩鎻掝瀴缂傚倷鑳剁划顖滄崲閸繄鏆﹂柛顐f礃閸ゅ鏌涢…鎴濅簼闁绘繐绠撳濠氬磼濞嗘埈妲梺瑙勭ゴ閳ь剝绉ú顏呮櫇闁稿本鑹鹃崑宥夋⒑娴兼瑧鍒板璺烘喘瀹曟垿骞橀幇浣瑰兊濡炪倖鎸鹃崑娑㈠箺閻㈠憡鈷戦柛婵嗗濠€浼存煟閳哄﹤鐏﹂柣娑卞枛铻e〒姘煎灡鐎靛矂鏌i悩鍙夌┛鐎殿喗鎸荤粩鐔煎即閵忊檧鎷绘繛杈剧到閹诧繝骞嗛崼銉︾厽妞ゆ挾鍎愬Ο鈧Δ鐘靛仜缁绘﹢寮幘缁樻櫢闁跨噦鎷�
闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗霉閿濆牊顏犵紒鈧繝鍌楁斀闁绘ɑ褰冮埀顒€顕槐鎾愁潩鏉堛劌鏋戦梺鍝勫暙閻楀嫰鍩€椤戣法绐旂€殿喕绮欓、姗€鎮欓懠鍨涘亾閸喒鏀介柨娑樺娴犙呯磼椤曞懎鐏︾€殿噮鍋婇幃鈺冪磼濡攱瀚奸梻鍌欑贰閸嬪棝宕戝☉銏″殣妞ゆ牗绋掑▍鐘炽亜閺傛娼熷ù婊勭矋閵囧嫰骞樼捄杞版勃闂佺ǹ顑冮崕鎶藉焵椤掑喚娼愭繛鍙夌矒楠炲﹪骞樼拠鑼弨婵犮垼娉涜墝闁哄閰i弻鐔兼焽閿曗偓閺嬫稓绱掗幓鎺撳仴婵﹤顭峰畷鎺戔枎閹存繂顬夐梻浣筋嚃閸犳牠鎮ラ悡搴f殾闁圭増婢橀崡鎶芥煟韫囨凹鍤欑紓宥咃躬楠炲啫饪伴崼鐔风檮婵犮垼娉涢惌鍫ュ船閻㈠憡鈷戦悹鍥ㄥ絻閸よ京绱撳鍛棦鐎规洑鍗冲浠嬵敃閵堝嫮鐟濋梻浣告惈鐞氼偊宕曢弻銉﹀亗婵炲棗绶疯ぐ鎺撳亗閹艰揪绲鹃幉鐓庘攽閻愭潙姣嗛柛銉e妿閸橀潧顪冮妶鍡橆梿鐎规洜鏁哥划锝夊籍閳ь剟骞堥妸锔剧瘈闁告侗鍣禒鈺呮⒑閸涘﹦澧柣妤冨Т椤曪綁骞橀钘変簻闂佸憡绺块崕杈╁緤閸喒鏀介柨娑樺娴滃ジ鏌涙繝鍐ㄧ伌鐎规洜顢婇妵鎰板箳閹惧瓨鐝栨俊鐐€曠换鎰版偋閸曨垰鐒垫い鎴f硶椤︼箓鏌嶇拠鏌ュ弰妤犵偞锚閻g兘宕堕懜鏁屟冣攽閿涘嫬浜奸柛濠冪墵楠炴劖銈i崘銊х崶闁瑰吋鐣崝宥夊磻閻旇褰掓偂鎼达絾鎲奸梺鎶芥敱閸ㄥ潡寮诲☉妯锋婵鐗婇弫楣冩煟鎼达紕浠涢柣鐔叉櫊瀵顓奸崼顐n€囬梻浣告啞閹搁箖宕版惔顭戞晪闁挎繂妫涚弧鈧┑顔斤供閸樿棄鈻嶉姀銈嗏拺閻犳亽鍔屽▍鎰版煙閸戙倖瀚�
婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柛娑橈攻閸欏繐霉閸忓吋缍戦柛銊ュ€婚幉鎼佹偋閸繄鐟查梺绋匡工閻栧ジ寮诲☉銏╂晝闁绘ɑ褰冩慨搴ㄦ⒑濮瑰洤鈧宕戦幘鑸靛床婵犻潧顑嗛ˉ鍫熺箾閹存繂鑸归柛鎾插嵆濮婃椽宕ㄦ繝鍛棟缂傚倸绉撮敃顏堟偘椤曗偓瀵粙濡搁敂鍓ら梻浣告啞閹稿棝宕ラ柨瀣仸缂佺粯绻傞埢鎾诲垂椤斿彞鍝楅梻渚€娼ч悧濠囧箖閸屾凹鍤曞┑鐘崇閸嬪嫰鏌i幋鐏活亪寮搁崒鐐粹拺闁告稑锕ユ径鍕煕鐎n亜顏い銈呭€垮濠氬磼濞嗘埈妲梺纭咁嚋缁绘繂鐣峰ú顏勭妞ゆ棁鍋愰敍娑㈡⒑閻熸澘鈷旂紒顕呭灦閹繝鎮㈤悡搴n啇濠电儑缍嗛崜娆撳焵椤戞儳鈧洖鐜婚崸妤€绠涢柣妤€鐗忛崢闈涱渻閵堝棙顥嗛柛瀣姍瀹曟椽鏁愰崶锝呬壕閻熸瑥瀚粈鍐╃箾閼碱剙鏋涢柣娑卞枟閹棃濡搁敃鈧惂鍕節閵忥絾纭鹃柤娲诲灦閻涱噣骞掑Δ浣叉嫽婵炶揪绲挎灙闁诡喗鍨圭槐鎺撴媴鐟欏嫬鍞夐悗娈垮枟瑜板啴銈导鏉戦唶婵犻潧娲╃欢銏$節閻㈤潧孝闁挎洏鍊濋幃褎绻濋崶銊ヤ簵闂佸搫娲ㄩ崰鍡樼濠婂牊鐓欓柡澶婄仢椤f娊鏌熼鍨汗缂佽鲸甯¢幃鈺冪驳绾應鍋撻崸妤佺厸閻忕偛澧介埥澶嬨亜椤愶絿绠炴い銏★耿閹晠宕橀崣澶屽酱闂傚倸鍊峰ù鍥敋閺嶎厼绐楁繛鎴緛缂嶆牕顭跨捄铏圭伇缂佺姵妫冮弻锝夊籍閸屾艾浠橀梺缁樺姇閿曪箓骞夌粙娆惧悑闁搞儮鏅欑粭澶愭⒑閼姐倕鏋涢柛瀣工閵嗘帗绻濆顓犲帾闂佸壊鍋呯换鍌炲汲濞嗗繆鏀介柨娑樺濞呮洜绱掓潏銊ユ诞妞ゃ垺鐟︾缓鐣岀矙閸喖寮峰┑掳鍊楁慨鐑藉磻濞戔懞鍥敍濠靛牅绨烽梻鍌欑閹测剝绗熷Δ鍛獥婵°倐鍋撻柍璇茬Ч婵偓闁靛牆妫岄幏娲煟閻樺厖鑸柛鏂胯嫰閳诲秹骞囬悧鍫㈠幍闂佸憡鍨崐鏍偓姘炬嫹