包曉敏,魯耀文
(浙江理工大學 信息學院,浙江 杭州 310018)
印刷電路板(Printed Circuit Board,PCB)是現(xiàn)代社會工業(yè)化的基礎(chǔ),從計算機、通信設(shè)備到電子玩具都離不開它。近年來,隨著生產(chǎn)工藝的不斷提高,PCB正在向高密度多層板發(fā)展。當這些高密度多層板在生產(chǎn)工序的最后一道檢查中被發(fā)現(xiàn)有缺陷而不能使用時,其代價是很大的[1]。目前,裸板缺陷檢測有幾種常用方法[2-3]:人工目測、接觸式檢測和非接觸式檢測。傳統(tǒng)的PCB檢測方式依靠人眼和目鏡,由于操作簡單、投資低廉曾被廣泛應用。但隨著加工工藝水平的提高,人工目檢的方式對這些高精度的PCB越來越無能為力,而且這種方法對人類的健康損傷也非常大,因此逐漸開始被淘汰。與此同時,自動光學檢測(Automatic Optical Inspection,AOI)技術(shù)越來越多地被用到PCB的視覺檢測[4]。AOI系統(tǒng)在進行PCB缺陷檢測時,具有檢測速度快、無損傷和檢測可靠等特點,但該技術(shù)主要掌握在外國公司手里,例如2004年在以色列成立的奧蒂瑪(Optima)公司[5]的AOI檢測儀AI388、全球知名的以色列奧寶科技[6]推出的Power Vision Discovery,F(xiàn)usion產(chǎn)品。國內(nèi)對PCB板自動檢測系統(tǒng)的研究大約始于90年代,由于各種因素的影響,對于PCB缺陷的自動光學檢測系統(tǒng)的研究也停留在一個相對初期的水平[7]。
研發(fā)出一款基于機器視覺的PCB自動檢測系統(tǒng)具有很高的經(jīng)濟價值和重要的科學研究意義,特別是對元器件的自動檢測意義重大,可以降低電路板的損壞,并提高電路板的質(zhì)量和安全性。本系統(tǒng)基于Labview2018軟件平臺,利用IMAQ Vision圖像處理模塊[8]對PCB進行檢測,在搭建系統(tǒng)時成本低廉,適用于大多數(shù)中小型企業(yè),能大大降低成本,同時也能提高其核心競爭力。
系統(tǒng)由硬件和軟件兩部分組成。系統(tǒng)硬件包括工業(yè)CCD相機[9]、光學鏡頭、箱式光源、圖像采集卡、傳送軌道以及工業(yè)計算機,這一部分負責待檢測PCB的傳送、PCB圖像的采集;系統(tǒng)軟件由建立模板模塊、跟蹤模塊、PCB元器件缺陷檢測模塊和數(shù)據(jù)記錄模塊組成,這一部分負責在復雜環(huán)境下實時、準確地檢測出PCB表面電子元器件存在的缺陷,記錄檢測數(shù)據(jù)。PCB元器件檢測系統(tǒng)整體組成如圖1所示。

圖1 PCB元器件檢測系統(tǒng)整體組成
系統(tǒng)流程如圖2所示。

圖2 系統(tǒng)流程
檢測系統(tǒng)開始工作之后,流水線上的PCB開始流入工業(yè)CCD相機視場范圍內(nèi),當PCB完全流入,截取CCD相機視場范圍內(nèi)任意位置的PCB圖像作為一次模板。以一次模板為標準進行實時跟蹤,當流水線上的PCB在CCD工業(yè)相機視場正中間位置時,截取該位置的PCB圖作為二次模板。
然后以二次模板為標準再次對流水線上的PCB進行實時跟蹤,當流水線上的PCB再次出現(xiàn)在CCD相機視場正中間位置時,截取該位置的PCB圖作為送去檢測的測試圖。最后,對測試圖進行缺陷檢測,并記錄檢測的數(shù)據(jù)。
機器視覺系統(tǒng)的檢測算法對光照很敏感,每次送去檢測的測試圖亮度不一樣,會極大地干擾檢測結(jié)果。因此,在誤差允許范圍內(nèi),每次送去檢測的測試圖亮度要保持一致,并且盡可能是CCD工業(yè)相機視場中亮度最大的,此外也要保證每次送去檢測的測試板圖是在CCD工業(yè)相機視場的同一位置處獲取的,所以本系統(tǒng)中每次送去檢測的測試圖選擇的位置是CCD工業(yè)相機視場正中間位置。
當截取工業(yè)CCD相機視場正中央位置的PCB圖作為實時跟蹤模板時,由于流水線上的PCB一直在流動,故不能保證截取的PCB圖恰好位于相機視場正中間位置,所以需要先隨機截取CCD工業(yè)相機視場中任意位置的PCB圖作為一次模板,然后以一次模板為標準進行實時跟蹤,當流水線上的PCB在CCD工業(yè)相機視場正中間位置時,截取該位置的PCB圖作為二次模板。
建立二次模板的流程如圖3所示。

圖3 建立模板流程
二次模板建立流程如下:
① 首先在流水線上的PCB完全流入CCD工業(yè)相機的視場中時,截取CCD相機視場范圍內(nèi)任意位置的PCB圖像作為一次模板。一次模板制作過程如圖4所示。

圖4 一次模板制作過程
② 然后對一次模板進行學習,提取需要進行跟蹤的信息制作成學習模板,也就是后面圖像用來比對的模板。
③ 利用CCD工業(yè)相機實時采集流水線上的PCB圖作為與學習模板的匹配圖。
④ 把實時采集的PCB圖與學習模板進行圖像匹配。
⑤ 經(jīng)匹配后得到流水線上PCB在攝像頭視場中的位置信息。
⑥ 最后判斷此刻返回的位置坐標是否處于CCD工業(yè)相機視場的中間位置。若滿足條件,則截取當前位置的PCB圖,得到二次模板,即實時跟蹤時用的模板,程序結(jié)束;若不滿足條件,則返回步驟②,程序繼續(xù)運行。
圖像模式匹配是指通過分析模板圖像和目標圖像中灰度、邊緣、外形結(jié)構(gòu)以及對應關(guān)系等特征的相似性和一致性,從目標圖像中尋找與模板圖像相同或相似區(qū)域的過程。圖像的模式匹配過程一般包括學習(Learning)和匹配(Matching)2個階段。在學習階段,算法會從模板圖像中提取用于進行圖像匹配的特征信息,并將它們以便于搜索的方式存放在模板圖像中以備后用。在圖像匹配階段,算法從被測目標圖像中提取同類型的特征信息,分析它們與模板圖像中特征信息的相似性和一致性,以確定目標圖像中與模板圖像相匹配的區(qū)域。
圖像匹配三要素包括特征空間、相似性度量和搜索策略[10]。基于圖像特征的匹配方法[11-13]是目前采用最多的,該方法提取各類圖像中保持不變的特征。本文采用的是圖像的角點(Corner Point)特征,它可定義為圖像中2個邊緣的交點,或目標輪廓線上曲率的局部極大點。圖像在角點處不僅梯度的數(shù)值大,而且梯度方向的變化速率也很大。也就是說,角點顯示了圖像在二維空間內(nèi)灰度變化劇烈的位置,它和周圍鄰點有著明顯的差異。因此可以通過計算圖像中的角點獲知圖像中各個局部的信息,從而實現(xiàn)對圖像的一種抽象描述。而基于該抽象描述,可以進行圖像的匹配工作。角點特征具有計算量少,匹配簡單以及旋轉(zhuǎn)、平移、放縮不變性等特點,因此在圖像配準與匹配、目標識別、運動分析和目標跟蹤等應用領(lǐng)域都起著非常重要的作用。
以Harris算法提取角點的步驟如下:
① 計算圖像I(x,y)在水平和垂直2個方向的梯度Ix和Iy。2個方向上的圖像梯度可通過在圖像上移動算子[-1,0,1]或其轉(zhuǎn)置,并進行卷積運算得到。
④ 計算每個像素的Harris角點檢測的響應值R,并將小于閾值的R置為零。
⑤ 在3 pixel×3 pixel或5 pixel×5 pixel鄰域內(nèi)進行非最大值抑制,將局部最大值點作為角點輸出。
Harris角點檢測算法不僅對光照和對比度的變化可保持不變,還能對圖像的旋轉(zhuǎn)保持不變。
Harris算法檢測到的角點數(shù)據(jù)量大,且不容易進行比較,因此還需要尋找更合適的數(shù)學方法對它們進行描述。利用BRISK特征描述方法能把檢測到的角點特征進行二進制編碼,即可得到二值方式描述的角點特征向量。最后由二進制位描述的特征向量的比較,計算其漢明距離(Hamming Distance)來快速實現(xiàn)。然后設(shè)定一個閾值,當2個特征向量的漢明距離大于該閾值時,就說明2個圖像的差異較大,反之說明2個圖像相近。
本系統(tǒng)使用像素為1.19×107pixel(4 000 pixel×3 000 pixel)像素的CCD工業(yè)相機,由于需要判斷跟蹤到的PCB圖是否位于CCD相機視場的正中間位置,因此需要建立直角坐標系來量化實時跟蹤到的PCB在CCD相機視場中的位置。直角坐標系的建立如圖5所示。

圖5 直角坐標
以CCD相機獲取的PCB圖的左端頂點o點為坐標原點,水平方向和豎直方向分別為x軸和y軸,其中y軸上的o點下方為正方向,x軸上的o點右側(cè)為正方向。以一個像素為直角坐標系的單位刻度,所以CCD相機的視場在y軸方向最大值為3 000 pixel。
系統(tǒng)實時跟蹤步驟如下:
① 二次模板建立好之后,利用Labview2018的IMAQ Vision模塊的IMAQ dx Grab VI函數(shù)實時抓取CCD工業(yè)相機視場中的PCB圖作為被測目標圖像。
② 對二次模板進行學習,從二次模板圖像中提取用于進行圖像匹配的角點特征信息,并將它們以便于搜索的方式存放在二次模板圖像中。
③ 把實時抓取的PCB圖與二次模板進行圖像匹配。
④ 返回跟蹤到的二次模板在CCD工業(yè)相機視場中的坐標信息,二次模板如圖6所示,返回的坐標位置如圖7中A,B點所示,A和B兩點的坐標分別為(xa,ya),(xb,yb)。

圖6 二次模板

圖7 PCB板的坐標
⑤ 根據(jù)返回跟蹤的PCBA和B兩點的坐標,利用Labview2018中IMAQ Vision模塊的IMAQ Overlay Rectangle VI函數(shù),在實時抓取的PCB圖的圖層中用紅色的矩形框?qū)崟r標記出匹配到的PCB的位置。標記效果如圖8(a)和圖8(b)所示。對比可以看出,跟蹤到的二次模板在CCD工業(yè)相機的視場不同位置處都實時被標記出。

圖8 實時標記PCB的位置
⑥ 圖7中C點是跟蹤到的二次模板的中心點,由上文CCD相機的視場在y軸方向最大值為3 000 pixel,所以跟蹤到的二次模板的中心點C的縱坐標yc=1 500 pixel時,表明此時跟蹤到的二次模板的位置位于CCD相機視場的正中間。此時把截取的該位置的PCB圖作為送去缺陷檢測的測試圖。在直角坐標系中,yc可以用ya和yb來表示:
(1)
判斷yc是否等于1 500,若滿足條件則截取該位置的二次模板作為送去缺陷檢測的測試圖,程序結(jié)束;若不滿足條件,則程序返回步驟③繼續(xù)運行。實時跟蹤流程如圖9所示。

圖9 實時跟蹤流程
缺陷檢測流程如圖10所示。

圖10 缺陷檢測流程
對PCB板上元器件檢測時,不同的元器件以及元器件檢測的內(nèi)容不同要建立不同的檢測模板,例如對電解電容極性的檢測和存在性的檢測,需要分別建立對應的檢測模板。由于PCB板上元器件種類眾多,與之對應的檢測模板種類也很多,因此本文就以對電解電容極性的檢測模板建立為例來說明建立檢測模板的流程。流程如下:
① 在模板管理界面要檢測電解電容,點擊電解電容檢測按鈕,模板管理界面如圖11所示。

圖11 模板管理界面
② 在電解電容極性的檢測模板建立界面,首先點擊電解電容大圖按鈕,框取的電解電容就會加載出來。然后框取電解電容的本體,點擊框選電容小圖按鈕,加載出框選的電解電容本體,點擊檢測匹配按鈕,程序檢測出電解電容極性,最后點擊退出按鈕退出該界面,回到模板管理界面。電解電容極性的檢測模板建立界面如圖12所示。

圖12 電解電容極性的檢測模板建立界面
③ 在模板管理界面中點擊添加按鈕,把建立的電解電容極性檢測模板加入到元器件信息庫,用于后面的檢測。
跟蹤得到的測試圖和實際模板圖空間位置上會出現(xiàn)誤差,使元器件定位的時候造成困難,本文采用彩色模板匹配方法進行模板圖-測試圖校正,算法步驟如下:
① 在模板圖上框出一塊校準區(qū)域mark[14]作為圖像匹配的模板,在測試圖上截取出包含mark區(qū)域的部分,如圖13所示。

圖13 Mark圖
② 以圖13(a)為模板,以圖13(b)為被測目標進行彩色圖像匹配,得出匹配的具體位置坐標。
③ 計算出模板圖和測試圖在水平x方向和豎直y方向上的像素誤差。
④ 根據(jù)計算出來的像素誤差來校準正測試圖。校正效果如圖14所示。

圖14 校正效果
程序會根據(jù)元器件信息庫保存的元器件檢測模板信息,對元器件選擇相應的檢測算法,最后得出PCB元器件缺陷檢測的結(jié)果。
基于機器視覺的PCB檢測系統(tǒng)對流水生產(chǎn)線上的每塊PCB板上的元器件進行缺陷檢測之后,要實時記錄元器件檢測的數(shù)據(jù),方便分析檢測系統(tǒng)對PCB的檢測準確率以及檢測設(shè)備的穩(wěn)定性,為后續(xù)的大數(shù)據(jù)建立奠定基礎(chǔ),以及作為工廠產(chǎn)線插件員工業(yè)績的考核依據(jù)。
檢測系統(tǒng)每檢測完成一個PCB都會記錄下該PCB的檢測結(jié)果以及元器件的信息統(tǒng)計結(jié)果。對于檢測完成的PCB需要收集的信息有:測試用時、PCB編號、已經(jīng)檢查測PCB總數(shù)、測試結(jié)果和測試錯誤信息等。數(shù)據(jù)記錄流程如圖15所示。

圖15 數(shù)據(jù)記錄流程
當運行系統(tǒng)時,系統(tǒng)會跳到軟件登陸界面,系統(tǒng)有檢測員、糾錯員和管理員3個入口,不同人用不同密碼選擇不同入口就可以進入相應的界面,進行不同的操作[15]。軟件登陸界面如圖16所示。

圖16 軟件登陸界面
管理員進入系統(tǒng)之后,系統(tǒng)會跳到模板管理界面,在模板管理界面里,新建模板按鍵和加載模板按鍵分別用來建立和加載放置檢測數(shù)據(jù)的文夾。其中名稱、類型、相似度閾值、刪除和添加按鍵都是負責把建立的元器件的檢測模板添加到元器件信息庫里。界面最右邊的二極管檢測方法1、二極管檢測方法2、C-電解電容、電解電容匹配、顏色提取、直方圖-自適應插座、直方圖-藍色插座、直方圖-紅色插座和二維碼等按鍵,是對不同的元器件建立檢測模板時所選擇的對應按鍵。在傳送帶檢測界面中,模板設(shè)置選項中的保存模板、保存空板、測試圖以及拍照按鈕和選擇模板按鈕來制作一次模板。傳送帶實時顯示的是CCD工業(yè)相機實時抓取的流水線上的PCB圖片,制作二次模板按鍵和開始匹配按鍵分別控制二次模板的建立和實時跟蹤的開啟。傳送帶檢測界面如圖17所示。

圖17 傳送帶檢測界面
系統(tǒng)檢測效果如圖18所示。當系統(tǒng)對跟蹤到的PCB板檢測完成之后,檢測結(jié)果會在界面最右側(cè)的圖中顯示出來。圖中用綠色矩形框框住的元器件表示檢測結(jié)果正確的元器件,用紅色矩形框覆蓋住的元器件則表示檢測結(jié)果錯誤的元器件,如圖18(a)和圖18(b)所示。圖18(a)中,OK指示燈亮起,表示檢測的PCB板上的元器件全部安裝正確。

圖18 系統(tǒng)檢測效果
圖18(b)顯示,NG指示燈亮起,表示檢測的PCB板上的元器件插件有錯誤的情況,錯誤就是被紅色矩形框覆蓋的電解電容插反了。
在實際的流水線生產(chǎn)中,PCB上的元器件漏查或者插反的情況是隨機的,為了測試系統(tǒng)檢測的準確率,提前將準備好的有缺陷的PCB和達標的PCB混合在一起,進行檢測,記錄下檢測情況。采用威能P3板進行實驗,測試系統(tǒng)的性能,威能P3板如圖19所示。

圖19 威能P3
威能P3單塊板上有元器件35個,用于檢測的威能P3板共計150塊,其中有4塊板是提前準備的有缺陷的板,每一塊板都有一個元器件是提前設(shè)置錯誤的。第1塊PCB電解電容的極性插反,第2塊PCB電解電容發(fā)生了傾斜,第3塊PCB紅色插座沒有插,第4塊PCB黃色繼電器傾斜。系統(tǒng)檢測到的有缺陷的元器件與模板圖上元器件的對比如圖20所示。

圖20 模板圖元器件與測試圖元器件對比
此次測試中出現(xiàn)了誤報的情況,其中PCB編號為46和87的板子分別出現(xiàn)電解電極性判斷誤報和二極管極性判斷誤報,其中電解電容誤報由于電解電容亮環(huán)較暗無法判斷;二極管極性過薄無法判斷,誤報圖像如圖21所示。

圖21 誤報對比
設(shè)計了基于機器視覺的PCB檢測系統(tǒng),逐步介紹了實現(xiàn)系統(tǒng)的關(guān)鍵技術(shù)以及算法,最后對系統(tǒng)的實驗結(jié)果進行了分析。經(jīng)實驗結(jié)果證明,本系統(tǒng)能穩(wěn)定、高效、快捷地對工廠流水生產(chǎn)線上的PCB實時檢測,能大大提高檢測的準確率,彌補了由于人工檢測的高錯誤率,也為企業(yè)節(jié)省了人工檢測的成本。但美中不足之處在于,對于極個別的元器件,存在誤報的情況以及系統(tǒng)對于遮擋的或者傾斜的元器件無法準確檢測,有待于以后的進一步研究。