包曉敏,魯耀文
(浙江理工大學(xué) 信息學(xué)院,浙江 杭州 310018)
印刷電路板(Printed Circuit Board,PCB)是現(xiàn)代社會工業(yè)化的基礎(chǔ),從計(jì)算機(jī)、通信設(shè)備到電子玩具都離不開它。近年來,隨著生產(chǎn)工藝的不斷提高,PCB正在向高密度多層板發(fā)展。當(dāng)這些高密度多層板在生產(chǎn)工序的最后一道檢查中被發(fā)現(xiàn)有缺陷而不能使用時(shí),其代價(jià)是很大的[1]。目前,裸板缺陷檢測有幾種常用方法[2-3]:人工目測、接觸式檢測和非接觸式檢測。傳統(tǒng)的PCB檢測方式依靠人眼和目鏡,由于操作簡單、投資低廉曾被廣泛應(yīng)用。但隨著加工工藝水平的提高,人工目檢的方式對這些高精度的PCB越來越無能為力,而且這種方法對人類的健康損傷也非常大,因此逐漸開始被淘汰。與此同時(shí),自動光學(xué)檢測(Automatic Optical Inspection,AOI)技術(shù)越來越多地被用到PCB的視覺檢測[4]。AOI系統(tǒng)在進(jìn)行PCB缺陷檢測時(shí),具有檢測速度快、無損傷和檢測可靠等特點(diǎn),但該技術(shù)主要掌握在外國公司手里,例如2004年在以色列成立的奧蒂瑪(Optima)公司[5]的AOI檢測儀AI388、全球知名的以色列奧寶科技[6]推出的Power Vision Discovery,F(xiàn)usion產(chǎn)品。國內(nèi)對PCB板自動檢測系統(tǒng)的研究大約始于90年代,由于各種因素的影響,對于PCB缺陷的自動光學(xué)檢測系統(tǒng)的研究也停留在一個(gè)相對初期的水平[7]。
研發(fā)出一款基于機(jī)器視覺的PCB自動檢測系統(tǒng)具有很高的經(jīng)濟(jì)價(jià)值和重要的科學(xué)研究意義,特別是對元器件的自動檢測意義重大,可以降低電路板的損壞,并提高電路板的質(zhì)量和安全性。本系統(tǒng)基于Labview2018軟件平臺,利用IMAQ Vision圖像處理模塊[8]對PCB進(jìn)行檢測,在搭建系統(tǒng)時(shí)成本低廉,適用于大多數(shù)中小型企業(yè),能大大降低成本,同時(shí)也能提高其核心競爭力。
系統(tǒng)由硬件和軟件兩部分組成。系統(tǒng)硬件包括工業(yè)CCD相機(jī)[9]、光學(xué)鏡頭、箱式光源、圖像采集卡、傳送軌道以及工業(yè)計(jì)算機(jī),這一部分負(fù)責(zé)待檢測PCB的傳送、PCB圖像的采集;系統(tǒng)軟件由建立模板模塊、跟蹤模塊、PCB元器件缺陷檢測模塊和數(shù)據(jù)記錄模塊組成,這一部分負(fù)責(zé)在復(fù)雜環(huán)境下實(shí)時(shí)、準(zhǔn)確地檢測出PCB表面電子元器件存在的缺陷,記錄檢測數(shù)據(jù)。PCB元器件檢測系統(tǒng)整體組成如圖1所示。
圖1 PCB元器件檢測系統(tǒng)整體組成
系統(tǒng)流程如圖2所示。
圖2 系統(tǒng)流程
檢測系統(tǒng)開始工作之后,流水線上的PCB開始流入工業(yè)CCD相機(jī)視場范圍內(nèi),當(dāng)PCB完全流入,截取CCD相機(jī)視場范圍內(nèi)任意位置的PCB圖像作為一次模板。以一次模板為標(biāo)準(zhǔn)進(jìn)行實(shí)時(shí)跟蹤,當(dāng)流水線上的PCB在CCD工業(yè)相機(jī)視場正中間位置時(shí),截取該位置的PCB圖作為二次模板。
然后以二次模板為標(biāo)準(zhǔn)再次對流水線上的PCB進(jìn)行實(shí)時(shí)跟蹤,當(dāng)流水線上的PCB再次出現(xiàn)在CCD相機(jī)視場正中間位置時(shí),截取該位置的PCB圖作為送去檢測的測試圖。最后,對測試圖進(jìn)行缺陷檢測,并記錄檢測的數(shù)據(jù)。
機(jī)器視覺系統(tǒng)的檢測算法對光照很敏感,每次送去檢測的測試圖亮度不一樣,會極大地干擾檢測結(jié)果。因此,在誤差允許范圍內(nèi),每次送去檢測的測試圖亮度要保持一致,并且盡可能是CCD工業(yè)相機(jī)視場中亮度最大的,此外也要保證每次送去檢測的測試板圖是在CCD工業(yè)相機(jī)視場的同一位置處獲取的,所以本系統(tǒng)中每次送去檢測的測試圖選擇的位置是CCD工業(yè)相機(jī)視場正中間位置。
當(dāng)截取工業(yè)CCD相機(jī)視場正中央位置的PCB圖作為實(shí)時(shí)跟蹤模板時(shí),由于流水線上的PCB一直在流動,故不能保證截取的PCB圖恰好位于相機(jī)視場正中間位置,所以需要先隨機(jī)截取CCD工業(yè)相機(jī)視場中任意位置的PCB圖作為一次模板,然后以一次模板為標(biāo)準(zhǔn)進(jìn)行實(shí)時(shí)跟蹤,當(dāng)流水線上的PCB在CCD工業(yè)相機(jī)視場正中間位置時(shí),截取該位置的PCB圖作為二次模板。
建立二次模板的流程如圖3所示。
圖3 建立模板流程
二次模板建立流程如下:
① 首先在流水線上的PCB完全流入CCD工業(yè)相機(jī)的視場中時(shí),截取CCD相機(jī)視場范圍內(nèi)任意位置的PCB圖像作為一次模板。一次模板制作過程如圖4所示。
圖4 一次模板制作過程
② 然后對一次模板進(jìn)行學(xué)習(xí),提取需要進(jìn)行跟蹤的信息制作成學(xué)習(xí)模板,也就是后面圖像用來比對的模板。
③ 利用CCD工業(yè)相機(jī)實(shí)時(shí)采集流水線上的PCB圖作為與學(xué)習(xí)模板的匹配圖。
④ 把實(shí)時(shí)采集的PCB圖與學(xué)習(xí)模板進(jìn)行圖像匹配。
⑤ 經(jīng)匹配后得到流水線上PCB在攝像頭視場中的位置信息。
⑥ 最后判斷此刻返回的位置坐標(biāo)是否處于CCD工業(yè)相機(jī)視場的中間位置。若滿足條件,則截取當(dāng)前位置的PCB圖,得到二次模板,即實(shí)時(shí)跟蹤時(shí)用的模板,程序結(jié)束;若不滿足條件,則返回步驟②,程序繼續(xù)運(yùn)行。
圖像模式匹配是指通過分析模板圖像和目標(biāo)圖像中灰度、邊緣、外形結(jié)構(gòu)以及對應(yīng)關(guān)系等特征的相似性和一致性,從目標(biāo)圖像中尋找與模板圖像相同或相似區(qū)域的過程。圖像的模式匹配過程一般包括學(xué)習(xí)(Learning)和匹配(Matching)2個(gè)階段。在學(xué)習(xí)階段,算法會從模板圖像中提取用于進(jìn)行圖像匹配的特征信息,并將它們以便于搜索的方式存放在模板圖像中以備后用。在圖像匹配階段,算法從被測目標(biāo)圖像中提取同類型的特征信息,分析它們與模板圖像中特征信息的相似性和一致性,以確定目標(biāo)圖像中與模板圖像相匹配的區(qū)域。
圖像匹配三要素包括特征空間、相似性度量和搜索策略[10]?;趫D像特征的匹配方法[11-13]是目前采用最多的,該方法提取各類圖像中保持不變的特征。本文采用的是圖像的角點(diǎn)(Corner Point)特征,它可定義為圖像中2個(gè)邊緣的交點(diǎn),或目標(biāo)輪廓線上曲率的局部極大點(diǎn)。圖像在角點(diǎn)處不僅梯度的數(shù)值大,而且梯度方向的變化速率也很大。也就是說,角點(diǎn)顯示了圖像在二維空間內(nèi)灰度變化劇烈的位置,它和周圍鄰點(diǎn)有著明顯的差異。因此可以通過計(jì)算圖像中的角點(diǎn)獲知圖像中各個(gè)局部的信息,從而實(shí)現(xiàn)對圖像的一種抽象描述。而基于該抽象描述,可以進(jìn)行圖像的匹配工作。角點(diǎn)特征具有計(jì)算量少,匹配簡單以及旋轉(zhuǎn)、平移、放縮不變性等特點(diǎn),因此在圖像配準(zhǔn)與匹配、目標(biāo)識別、運(yùn)動分析和目標(biāo)跟蹤等應(yīng)用領(lǐng)域都起著非常重要的作用。
以Harris算法提取角點(diǎn)的步驟如下:
① 計(jì)算圖像I(x,y)在水平和垂直2個(gè)方向的梯度Ix和Iy。2個(gè)方向上的圖像梯度可通過在圖像上移動算子[-1,0,1]或其轉(zhuǎn)置,并進(jìn)行卷積運(yùn)算得到。
④ 計(jì)算每個(gè)像素的Harris角點(diǎn)檢測的響應(yīng)值R,并將小于閾值的R置為零。
⑤ 在3 pixel×3 pixel或5 pixel×5 pixel鄰域內(nèi)進(jìn)行非最大值抑制,將局部最大值點(diǎn)作為角點(diǎn)輸出。
Harris角點(diǎn)檢測算法不僅對光照和對比度的變化可保持不變,還能對圖像的旋轉(zhuǎn)保持不變。
Harris算法檢測到的角點(diǎn)數(shù)據(jù)量大,且不容易進(jìn)行比較,因此還需要尋找更合適的數(shù)學(xué)方法對它們進(jìn)行描述。利用BRISK特征描述方法能把檢測到的角點(diǎn)特征進(jìn)行二進(jìn)制編碼,即可得到二值方式描述的角點(diǎn)特征向量。最后由二進(jìn)制位描述的特征向量的比較,計(jì)算其漢明距離(Hamming Distance)來快速實(shí)現(xiàn)。然后設(shè)定一個(gè)閾值,當(dāng)2個(gè)特征向量的漢明距離大于該閾值時(shí),就說明2個(gè)圖像的差異較大,反之說明2個(gè)圖像相近。
本系統(tǒng)使用像素為1.19×107pixel(4 000 pixel×3 000 pixel)像素的CCD工業(yè)相機(jī),由于需要判斷跟蹤到的PCB圖是否位于CCD相機(jī)視場的正中間位置,因此需要建立直角坐標(biāo)系來量化實(shí)時(shí)跟蹤到的PCB在CCD相機(jī)視場中的位置。直角坐標(biāo)系的建立如圖5所示。
圖5 直角坐標(biāo)
以CCD相機(jī)獲取的PCB圖的左端頂點(diǎn)o點(diǎn)為坐標(biāo)原點(diǎn),水平方向和豎直方向分別為x軸和y軸,其中y軸上的o點(diǎn)下方為正方向,x軸上的o點(diǎn)右側(cè)為正方向。以一個(gè)像素為直角坐標(biāo)系的單位刻度,所以CCD相機(jī)的視場在y軸方向最大值為3 000 pixel。
系統(tǒng)實(shí)時(shí)跟蹤步驟如下:
① 二次模板建立好之后,利用Labview2018的IMAQ Vision模塊的IMAQ dx Grab VI函數(shù)實(shí)時(shí)抓取CCD工業(yè)相機(jī)視場中的PCB圖作為被測目標(biāo)圖像。
② 對二次模板進(jìn)行學(xué)習(xí),從二次模板圖像中提取用于進(jìn)行圖像匹配的角點(diǎn)特征信息,并將它們以便于搜索的方式存放在二次模板圖像中。
③ 把實(shí)時(shí)抓取的PCB圖與二次模板進(jìn)行圖像匹配。
④ 返回跟蹤到的二次模板在CCD工業(yè)相機(jī)視場中的坐標(biāo)信息,二次模板如圖6所示,返回的坐標(biāo)位置如圖7中A,B點(diǎn)所示,A和B兩點(diǎn)的坐標(biāo)分別為(xa,ya),(xb,yb)。
圖6 二次模板
圖7 PCB板的坐標(biāo)
⑤ 根據(jù)返回跟蹤的PCBA和B兩點(diǎn)的坐標(biāo),利用Labview2018中IMAQ Vision模塊的IMAQ Overlay Rectangle VI函數(shù),在實(shí)時(shí)抓取的PCB圖的圖層中用紅色的矩形框?qū)崟r(shí)標(biāo)記出匹配到的PCB的位置。標(biāo)記效果如圖8(a)和圖8(b)所示。對比可以看出,跟蹤到的二次模板在CCD工業(yè)相機(jī)的視場不同位置處都實(shí)時(shí)被標(biāo)記出。
圖8 實(shí)時(shí)標(biāo)記PCB的位置
⑥ 圖7中C點(diǎn)是跟蹤到的二次模板的中心點(diǎn),由上文CCD相機(jī)的視場在y軸方向最大值為3 000 pixel,所以跟蹤到的二次模板的中心點(diǎn)C的縱坐標(biāo)yc=1 500 pixel時(shí),表明此時(shí)跟蹤到的二次模板的位置位于CCD相機(jī)視場的正中間。此時(shí)把截取的該位置的PCB圖作為送去缺陷檢測的測試圖。在直角坐標(biāo)系中,yc可以用ya和yb來表示:
(1)
判斷yc是否等于1 500,若滿足條件則截取該位置的二次模板作為送去缺陷檢測的測試圖,程序結(jié)束;若不滿足條件,則程序返回步驟③繼續(xù)運(yùn)行。實(shí)時(shí)跟蹤流程如圖9所示。
圖9 實(shí)時(shí)跟蹤流程
缺陷檢測流程如圖10所示。
圖10 缺陷檢測流程
對PCB板上元器件檢測時(shí),不同的元器件以及元器件檢測的內(nèi)容不同要建立不同的檢測模板,例如對電解電容極性的檢測和存在性的檢測,需要分別建立對應(yīng)的檢測模板。由于PCB板上元器件種類眾多,與之對應(yīng)的檢測模板種類也很多,因此本文就以對電解電容極性的檢測模板建立為例來說明建立檢測模板的流程。流程如下:
① 在模板管理界面要檢測電解電容,點(diǎn)擊電解電容檢測按鈕,模板管理界面如圖11所示。
圖11 模板管理界面
② 在電解電容極性的檢測模板建立界面,首先點(diǎn)擊電解電容大圖按鈕,框取的電解電容就會加載出來。然后框取電解電容的本體,點(diǎn)擊框選電容小圖按鈕,加載出框選的電解電容本體,點(diǎn)擊檢測匹配按鈕,程序檢測出電解電容極性,最后點(diǎn)擊退出按鈕退出該界面,回到模板管理界面。電解電容極性的檢測模板建立界面如圖12所示。
圖12 電解電容極性的檢測模板建立界面
③ 在模板管理界面中點(diǎn)擊添加按鈕,把建立的電解電容極性檢測模板加入到元器件信息庫,用于后面的檢測。
跟蹤得到的測試圖和實(shí)際模板圖空間位置上會出現(xiàn)誤差,使元器件定位的時(shí)候造成困難,本文采用彩色模板匹配方法進(jìn)行模板圖-測試圖校正,算法步驟如下:
① 在模板圖上框出一塊校準(zhǔn)區(qū)域mark[14]作為圖像匹配的模板,在測試圖上截取出包含mark區(qū)域的部分,如圖13所示。
圖13 Mark圖
② 以圖13(a)為模板,以圖13(b)為被測目標(biāo)進(jìn)行彩色圖像匹配,得出匹配的具體位置坐標(biāo)。
③ 計(jì)算出模板圖和測試圖在水平x方向和豎直y方向上的像素誤差。
④ 根據(jù)計(jì)算出來的像素誤差來校準(zhǔn)正測試圖。校正效果如圖14所示。
圖14 校正效果
程序會根據(jù)元器件信息庫保存的元器件檢測模板信息,對元器件選擇相應(yīng)的檢測算法,最后得出PCB元器件缺陷檢測的結(jié)果。
基于機(jī)器視覺的PCB檢測系統(tǒng)對流水生產(chǎn)線上的每塊PCB板上的元器件進(jìn)行缺陷檢測之后,要實(shí)時(shí)記錄元器件檢測的數(shù)據(jù),方便分析檢測系統(tǒng)對PCB的檢測準(zhǔn)確率以及檢測設(shè)備的穩(wěn)定性,為后續(xù)的大數(shù)據(jù)建立奠定基礎(chǔ),以及作為工廠產(chǎn)線插件員工業(yè)績的考核依據(jù)。
檢測系統(tǒng)每檢測完成一個(gè)PCB都會記錄下該P(yáng)CB的檢測結(jié)果以及元器件的信息統(tǒng)計(jì)結(jié)果。對于檢測完成的PCB需要收集的信息有:測試用時(shí)、PCB編號、已經(jīng)檢查測PCB總數(shù)、測試結(jié)果和測試錯(cuò)誤信息等。數(shù)據(jù)記錄流程如圖15所示。
圖15 數(shù)據(jù)記錄流程
當(dāng)運(yùn)行系統(tǒng)時(shí),系統(tǒng)會跳到軟件登陸界面,系統(tǒng)有檢測員、糾錯(cuò)員和管理員3個(gè)入口,不同人用不同密碼選擇不同入口就可以進(jìn)入相應(yīng)的界面,進(jìn)行不同的操作[15]。軟件登陸界面如圖16所示。
圖16 軟件登陸界面
管理員進(jìn)入系統(tǒng)之后,系統(tǒng)會跳到模板管理界面,在模板管理界面里,新建模板按鍵和加載模板按鍵分別用來建立和加載放置檢測數(shù)據(jù)的文夾。其中名稱、類型、相似度閾值、刪除和添加按鍵都是負(fù)責(zé)把建立的元器件的檢測模板添加到元器件信息庫里。界面最右邊的二極管檢測方法1、二極管檢測方法2、C-電解電容、電解電容匹配、顏色提取、直方圖-自適應(yīng)插座、直方圖-藍(lán)色插座、直方圖-紅色插座和二維碼等按鍵,是對不同的元器件建立檢測模板時(shí)所選擇的對應(yīng)按鍵。在傳送帶檢測界面中,模板設(shè)置選項(xiàng)中的保存模板、保存空板、測試圖以及拍照按鈕和選擇模板按鈕來制作一次模板。傳送帶實(shí)時(shí)顯示的是CCD工業(yè)相機(jī)實(shí)時(shí)抓取的流水線上的PCB圖片,制作二次模板按鍵和開始匹配按鍵分別控制二次模板的建立和實(shí)時(shí)跟蹤的開啟。傳送帶檢測界面如圖17所示。
圖17 傳送帶檢測界面
系統(tǒng)檢測效果如圖18所示。當(dāng)系統(tǒng)對跟蹤到的PCB板檢測完成之后,檢測結(jié)果會在界面最右側(cè)的圖中顯示出來。圖中用綠色矩形框框住的元器件表示檢測結(jié)果正確的元器件,用紅色矩形框覆蓋住的元器件則表示檢測結(jié)果錯(cuò)誤的元器件,如圖18(a)和圖18(b)所示。圖18(a)中,OK指示燈亮起,表示檢測的PCB板上的元器件全部安裝正確。
圖18 系統(tǒng)檢測效果
圖18(b)顯示,NG指示燈亮起,表示檢測的PCB板上的元器件插件有錯(cuò)誤的情況,錯(cuò)誤就是被紅色矩形框覆蓋的電解電容插反了。
在實(shí)際的流水線生產(chǎn)中,PCB上的元器件漏查或者插反的情況是隨機(jī)的,為了測試系統(tǒng)檢測的準(zhǔn)確率,提前將準(zhǔn)備好的有缺陷的PCB和達(dá)標(biāo)的PCB混合在一起,進(jìn)行檢測,記錄下檢測情況。采用威能P3板進(jìn)行實(shí)驗(yàn),測試系統(tǒng)的性能,威能P3板如圖19所示。
圖19 威能P3
威能P3單塊板上有元器件35個(gè),用于檢測的威能P3板共計(jì)150塊,其中有4塊板是提前準(zhǔn)備的有缺陷的板,每一塊板都有一個(gè)元器件是提前設(shè)置錯(cuò)誤的。第1塊PCB電解電容的極性插反,第2塊PCB電解電容發(fā)生了傾斜,第3塊PCB紅色插座沒有插,第4塊PCB黃色繼電器傾斜。系統(tǒng)檢測到的有缺陷的元器件與模板圖上元器件的對比如圖20所示。
圖20 模板圖元器件與測試圖元器件對比
此次測試中出現(xiàn)了誤報(bào)的情況,其中PCB編號為46和87的板子分別出現(xiàn)電解電極性判斷誤報(bào)和二極管極性判斷誤報(bào),其中電解電容誤報(bào)由于電解電容亮環(huán)較暗無法判斷;二極管極性過薄無法判斷,誤報(bào)圖像如圖21所示。
圖21 誤報(bào)對比
設(shè)計(jì)了基于機(jī)器視覺的PCB檢測系統(tǒng),逐步介紹了實(shí)現(xiàn)系統(tǒng)的關(guān)鍵技術(shù)以及算法,最后對系統(tǒng)的實(shí)驗(yàn)結(jié)果進(jìn)行了分析。經(jīng)實(shí)驗(yàn)結(jié)果證明,本系統(tǒng)能穩(wěn)定、高效、快捷地對工廠流水生產(chǎn)線上的PCB實(shí)時(shí)檢測,能大大提高檢測的準(zhǔn)確率,彌補(bǔ)了由于人工檢測的高錯(cuò)誤率,也為企業(yè)節(jié)省了人工檢測的成本。但美中不足之處在于,對于極個(gè)別的元器件,存在誤報(bào)的情況以及系統(tǒng)對于遮擋的或者傾斜的元器件無法準(zhǔn)確檢測,有待于以后的進(jìn)一步研究。