朱俊杰,巢淵,馬成霞
(江蘇理工學(xué)院機(jī)械工程學(xué)院,江蘇常州 213001)
隨著電子市場(chǎng)的快速發(fā)展,半導(dǎo)體芯片的應(yīng)用越來越廣泛,需求也在不斷增加,傳統(tǒng)的人工抽檢方法已難以滿足表面貼裝芯片高速高精度檢測(cè)的需求[1]。機(jī)器視覺技術(shù)以其高效率、高精度、高可靠性、非接觸性和客觀性強(qiáng)等優(yōu)點(diǎn),在芯片封裝模塊檢測(cè)方面得到了廣泛研究和應(yīng)用[2]。由于圖像采集系統(tǒng)捕獲的目標(biāo)并非規(guī)則地出現(xiàn),因此,在進(jìn)行芯片封裝缺陷視覺檢測(cè)前,需要對(duì)芯片圖像進(jìn)行旋轉(zhuǎn)校正,以提高后續(xù)檢測(cè)的正確率以及基于缺陷檢測(cè)的芯片分選效率[3]。
圖像傾斜校正算法研究的重點(diǎn)在于傾斜角度檢測(cè)。楊立剛等人[4]通過Hough 變換精確定位車牌位置,再利用Radon 變換獲取車牌的傾斜角度,但此方法中Hough 變換和Radon 變換計(jì)算量大,校正效率較低。汪敏倩等人[5]通過車牌圖像投影方差的規(guī)律性提取局部特征來獲得車牌水平傾斜角度或垂直錯(cuò)切角度,但對(duì)于局部規(guī)律性不明顯的圖像,此方法難以獲取精準(zhǔn)的傾斜角度。胡人偉等人[6]運(yùn)用傅里葉變換將商標(biāo)圖像從空域轉(zhuǎn)換到頻域,再通過Hough 變換求出頻譜圖像中的傾斜角度,以實(shí)現(xiàn)圖像的傾斜校正;此方法雖然只做了一次空域到頻域的變換,但耗時(shí)較長(zhǎng),實(shí)用性不強(qiáng)。鄧翔宇等人[7]通過大尺度梯度下降法實(shí)現(xiàn)簡(jiǎn)譜的粗校正,再利用小尺度梯度下降法進(jìn)行精細(xì)調(diào)整;但是當(dāng)傾斜角度超過±8°時(shí),該方法校正精準(zhǔn)性下降明顯。李青等人[8]結(jié)合Canny 邊緣檢測(cè)和Hough 變換獲取交通標(biāo)識(shí)牌矩形邊緣的4 個(gè)角點(diǎn)坐標(biāo),再應(yīng)用透視變換對(duì)其進(jìn)行校正;但該方法中Hough變換耗時(shí)長(zhǎng),且較為依賴Canny 邊緣檢測(cè)獲取的圖像邊緣,不適用于背景復(fù)雜的圖像。
傾斜角度檢測(cè)方法耗時(shí)長(zhǎng)、難以獲取精確角度,而凸包檢測(cè)則可以通過叉乘、角度和長(zhǎng)度等方法精準(zhǔn)篩選凸包頂點(diǎn),獲取包含位置和角度信息的特征點(diǎn)[9]。黃珂等人[10]通過Harris角點(diǎn)檢測(cè)算法獲取QR 碼圖像的角點(diǎn)并進(jìn)行凸包檢測(cè),以獲取QR 碼位置信息;但角點(diǎn)檢測(cè)過于依賴拍攝的圖像,難以獲取復(fù)雜背景圖像的有效角點(diǎn),且參與凸包篩選的角點(diǎn)數(shù)量較多,耗時(shí)長(zhǎng)。郭亞盛等人[11]運(yùn)用Andrew 算法獲取圓柱類零件圖像輪廓凸包,再獲取凸包的最小外接矩形以實(shí)現(xiàn)對(duì)圓柱類零件圖像的尺寸測(cè)量;但凸包篩選邊緣點(diǎn)較多,計(jì)算時(shí)間較長(zhǎng),且存在特征點(diǎn)集簇?fù)砬闆r。王亞杰等人[12]提取棋盤輪廓邊緣點(diǎn)后,運(yùn)用凸包檢測(cè)算法獲取棋盤4個(gè)頂點(diǎn)坐標(biāo),以實(shí)現(xiàn)棋盤校正;但該方法需要篩選的棋盤輪廓邊緣點(diǎn)較多,計(jì)算時(shí)間較長(zhǎng)。朱俊卿[13]采用基于凸包檢測(cè)的矩形頂點(diǎn)檢測(cè)方法定位矩形的4個(gè)頂點(diǎn),采用透視變換對(duì)畸變圖像進(jìn)行校正;但該方法需要進(jìn)行凸包篩選的點(diǎn)集較多,耗時(shí)長(zhǎng)。
針對(duì)凸包檢測(cè)耗時(shí)長(zhǎng)、特征點(diǎn)多的問題,彭志光等人[14]改進(jìn)凸包算法,對(duì)葉片型截面點(diǎn)云數(shù)據(jù)進(jìn)行排序和精準(zhǔn)分割,通過矩形區(qū)域腐蝕法確定凸包邊界區(qū)域,刪除冗余點(diǎn),以減少參與排序和生成凸包的點(diǎn)集數(shù)量,提高構(gòu)造凸包效率。張勇等人[15]根據(jù)圖像分辨率確定掃描行數(shù),保留掃描行第一個(gè)和最后一個(gè)像素點(diǎn)形成點(diǎn)集,以提高構(gòu)造凸包效率。蔡文婷等人[16]對(duì)二維條碼的邊緣點(diǎn)集進(jìn)行預(yù)處理,濾除二維條碼內(nèi)部的點(diǎn)集,再對(duì)剩余點(diǎn)集構(gòu)造凸包,從而實(shí)現(xiàn)圖像的高效定位。
在圖像傾斜校正算法研究中,旋轉(zhuǎn)變換矩陣的選擇也是校正的關(guān)鍵。旋轉(zhuǎn)變換矩陣通常有三種:一是二維歐式變換矩陣[17],該矩陣包括平移、旋轉(zhuǎn)和縮放三個(gè)基本變換矩陣,可用于對(duì)平面圖形進(jìn)行傾斜校正;二是仿射變換矩陣[18],該矩陣是在二維歐氏變換矩陣的基礎(chǔ)上增加了一個(gè)錯(cuò)切變換矩陣,從而能夠更加精確地對(duì)圖像進(jìn)行傾斜校正;三是透視變換矩陣[19],該矩陣在仿射變換矩陣的基礎(chǔ)上增加了一個(gè)透視變換矩陣,能夠?qū)θS場(chǎng)景進(jìn)行投影并進(jìn)行傾斜校正。相較于二維歐式變換矩陣,仿射變換矩陣可更精確地校正傾斜圖像。相較于透視變換矩陣,仿射變換可以保持直線的平行性,從而很好地保持圖像的形狀,而透視變換會(huì)改變圖像的形狀和大小,容易引起失真。
基于上述分析,本文通過標(biāo)記多幅芯片圖像中每個(gè)芯片的位置,改進(jìn)Andrew 算法以獲取傾斜角度和旋轉(zhuǎn)中心,運(yùn)用仿射變換實(shí)現(xiàn)多幅芯片圖像的快速校正與提取。
半導(dǎo)體芯片在封裝過程中存在尺寸公差,制造料盤承載口時(shí)會(huì)留有一定余量,導(dǎo)致芯片放置于承載口時(shí)存在一定程度的傾斜[20]。本文以QFN芯片引腳面圖像為研究對(duì)象,為了減少噪聲的影響,需要對(duì)圖像進(jìn)行預(yù)處理,獲取芯片中心焊盤和引腳邊緣點(diǎn)簡(jiǎn)化圖像信息,減少后續(xù)處理的計(jì)算量。多幅傾斜芯片圖像的預(yù)處理包括高斯濾波、灰度化和Canny邊緣檢測(cè)。如圖1所示,為預(yù)處理流程圖。
圖1 預(yù)處理流程圖
具體步驟為:
(1)采用3×3 高斯濾波器對(duì)圖像進(jìn)行卷積,以平滑圖像,減少噪聲對(duì)后續(xù)邊緣檢測(cè)的影響。
(2)對(duì)圖像進(jìn)行灰度化處理,以減少后續(xù)處理計(jì)算量。
(3)為減少噪聲影響,獲取芯片中心焊盤和引腳邊緣點(diǎn),采用Canny 邊緣檢測(cè)算法,設(shè)定低閾值為100,高閾值為200。
常見的凸包檢測(cè)算法有Graham 掃描法[21]、Andrew算法[22],其中Andrew算法是對(duì)Graham掃描法的優(yōu)化。Graham 掃描法中需要對(duì)兩個(gè)點(diǎn)算出叉乘,甚至在某些情況下還要算出兩個(gè)點(diǎn)的距離,復(fù)雜度較高且極角排序會(huì)造成丟點(diǎn)現(xiàn)象,而Andrew 算法直接通過對(duì)點(diǎn)(x,y)排序就可以實(shí)現(xiàn),降低了算法復(fù)雜度且解決了丟點(diǎn)的問題[23];但Andrew 算法在構(gòu)造凸包時(shí),存在特征點(diǎn)過多和計(jì)算時(shí)間較長(zhǎng)等問題。因此,本文對(duì)Andrew算法進(jìn)行改進(jìn)。
假設(shè)同一平面內(nèi)3 個(gè)不重合的點(diǎn)A=(XA,YA)、B=(XB,XB)、C=(XC,YC),記AB為點(diǎn)A指向點(diǎn)B的向量,AC為點(diǎn)A指向點(diǎn)C的向量。那么,向量AB=(XB-XA,YB-YA) ,向量AC=(XC-XA,YC-YA)。兩者叉積為:式中:T被稱為點(diǎn)C相對(duì)于點(diǎn)A和點(diǎn)B的凸度,通過判斷T的正負(fù),可以確定這3 個(gè)點(diǎn)的相對(duì)位置。如圖2所示,根據(jù)A、B、C這3個(gè)不重合點(diǎn)的相對(duì)位置,凸度T有3種情況:
圖2 A、B、C三個(gè)不重合點(diǎn)相對(duì)位置情況
(1)若T(A,B,C)<0 ,則AB順時(shí)針轉(zhuǎn)向AC,如圖2(a)所示。
(2)若T(A,B,C)=0,則A、B、C三點(diǎn)在同一直線上,如圖2(b)所示。
(3)若T(A,B,C)>0 ,則AB逆時(shí)針轉(zhuǎn)向AC,如圖2(c)所示。
Andrew 算法通過對(duì)點(diǎn)(x,y)排序確定構(gòu)造凸包的起始點(diǎn)和終點(diǎn),點(diǎn)集按照點(diǎn)橫坐標(biāo)x從小到大排序,在橫坐標(biāo)x相同的情況下,再按照點(diǎn)縱坐標(biāo)y從小到大排序。如圖3 所示,為采用Andrew 算法構(gòu)造凸包的示意圖。從排序后的第一個(gè)點(diǎn)p1到排序后的最后一個(gè)點(diǎn)pn,通過判斷凸度T大小順時(shí)針構(gòu)造凸包上部;再?gòu)呐判蚝蟮淖詈笠粋€(gè)點(diǎn)pn到排序后的第一個(gè)點(diǎn)p1,通過判斷凸度T大小順時(shí)針構(gòu)造凸包下部;合并凸包上部和下部保留其中一個(gè)的起點(diǎn)和終點(diǎn),獲得完整的凸包。
圖3 Andrew算法構(gòu)造凸包示意圖
由Andrew 算法構(gòu)造凸包的方法可知,當(dāng)芯片的傾斜方向不同時(shí),構(gòu)造凸包上下部的點(diǎn)集不同。為了提高凸包算法的效率,本文通過設(shè)計(jì)新的點(diǎn)集排序方式,使芯片中心焊盤左下角、右下角和右上角3個(gè)拐角的邊緣點(diǎn)在Andrew算法構(gòu)造的凸包下部,以省去獲取凸包上部點(diǎn)集環(huán)節(jié),從而大幅度減少凸包計(jì)算量。
針對(duì)Andrew 算法篩選出的凸包點(diǎn)集存在邊緣點(diǎn)簇?fù)砬闆r,首先通過限制凸度大小減少凸包點(diǎn)集的數(shù)量;再設(shè)計(jì)新點(diǎn)集的排序方法對(duì)篩選后的凸包點(diǎn)集進(jìn)行排序,濾除不需要的凸包點(diǎn)集。如圖4 所示,為改進(jìn)的Andrew 算法步驟示意圖。具體步驟為:
(1)設(shè)計(jì)新的點(diǎn)集排序規(guī)則,以坐標(biāo)系原點(diǎn)為旋轉(zhuǎn)中心將圖像逆時(shí)針旋轉(zhuǎn)45 ° ,然后將點(diǎn)從下往上排序。 經(jīng)過排序之后,得到序列φnew:p1,p2,…,pn,其中 p1是中心焊盤左下角的點(diǎn),pn是中心焊盤右上角的點(diǎn)。如圖4(a)所示,為點(diǎn)集排序示意圖。
(2)創(chuàng)建3 個(gè)拐角邊緣點(diǎn)點(diǎn)集序列ν,并在序列ν 中加入點(diǎn)p1。
(3)從第1 個(gè)點(diǎn)p1到最后1 個(gè)點(diǎn)pn逆時(shí)針構(gòu)造凸包下部得到凸包點(diǎn)集。如圖4(b)所示,為構(gòu)造凸包下部示意圖??梢钥闯?,連接凸包下部需要篩選的邊緣點(diǎn)為L(zhǎng) 型。序列φnew: p1,p2,…,pn中的點(diǎn)從p1開始逐個(gè)加入序列τ ,若序列τ 中的點(diǎn)多余1 個(gè),取出序列τ 中最后2 個(gè)點(diǎn),設(shè)定當(dāng)前點(diǎn)pi和序列τ中最后2 個(gè)點(diǎn)的凸度T(τlast-1,τlast,pi) 大小為20。若設(shè)定凸度的值較小,篩選的凸包點(diǎn)集將過多,不利于后續(xù)篩選;若設(shè)定的凸度值較大,則存在篩選后的凸包點(diǎn)集中,不能將3 個(gè)拐角點(diǎn)都包含在內(nèi)的情況。 經(jīng)過測(cè)試,選擇凸度T(τlast-1,τlast,pi)為20,這樣,篩選的凸包點(diǎn)集中能夠包含3 個(gè)拐角點(diǎn),且點(diǎn)集數(shù)量較少。判斷T(τlast-1,τlast,pi) 是否大于等于設(shè)定值,若T(τlast-1,τlast,pi)小于等于設(shè)定值,則刪除序列τ 中最后1 個(gè)點(diǎn);若T(τlast-1,τlast,pi) 大于等于設(shè)定值,則將當(dāng)前點(diǎn)pi加入序列τ 的最后。
(4)在序列ν 中加入點(diǎn)τlast。
(5)為了保證能精準(zhǔn)獲取L 型邊緣點(diǎn)的拐角邊緣點(diǎn),設(shè)計(jì)新的點(diǎn)集排序規(guī)則,以坐標(biāo)系原點(diǎn)為旋轉(zhuǎn)中心將圖像順時(shí)針旋轉(zhuǎn)45°,然后將點(diǎn)從下往上排序。如圖4(c)所示,為序列τ 的點(diǎn)集排序示意圖。將序列τ 的點(diǎn)集進(jìn)行排序,取出排序后的第1個(gè)點(diǎn)加入序列ν。
(6)在序列ν 中獲取芯片中心焊盤左下角、右下角和右上角3個(gè)拐角邊緣點(diǎn)。
由上述步驟可知,該方法不僅適用于QFN封裝芯片傾斜角度的快速獲??;而且對(duì)于和芯片中心焊盤相同類型、可通過水平或垂直輪廓線來表示傾斜角度、且存在L 型輪廓邊緣點(diǎn)的圖像,也可以應(yīng)用該算法快速獲取傾斜角度。
本文通過改進(jìn)Andrew 凸包檢測(cè)算法,快速獲取多幅芯片的傾斜角度和旋轉(zhuǎn)中心,校正多幅芯片圖像。如圖5 所示,為多幅芯片校正方法流程圖。具體步驟為:
(1)預(yù)處理。根據(jù)本文第1 節(jié)預(yù)處理方法,完成多幅芯片傾斜圖像的預(yù)處理,獲取每個(gè)芯片的邊緣點(diǎn)。
(2)邊緣點(diǎn)篩選。篩選出中心焊盤輪廓邊緣點(diǎn),剔除非中心焊盤輪廓點(diǎn)。本文通過限制Canny邊緣檢測(cè)獲取的邊緣點(diǎn)個(gè)數(shù),保留邊緣點(diǎn)個(gè)數(shù)小于500 或大于2 000 的輪廓,篩選出中心焊盤的輪廓邊緣點(diǎn),濾除其余輪廓邊緣點(diǎn)。
(3)記錄芯片位置信息。為后續(xù)應(yīng)用ROI 感興趣區(qū)域提取校正后的圖像,本文采用最小外接正矩形標(biāo)記每個(gè)芯片位置信息。當(dāng)?shù)玫侥繕?biāo)對(duì)象輪廓后,獲取包覆此輪廓的最小正矩形,并記錄其左上角坐標(biāo)和長(zhǎng)寬。
(4)獲取傾斜角度和旋轉(zhuǎn)中心。為了獲取每個(gè)芯片的傾斜角度,本文提出改進(jìn)Andrew 凸包檢測(cè)算法,篩選凸包點(diǎn),獲取每個(gè)芯片中心焊盤左下角、右上角和右下角3個(gè)拐角的邊緣點(diǎn)。計(jì)算芯片中心焊盤左下角拐角點(diǎn)和右下角拐角點(diǎn)坐標(biāo)組成的向量與坐標(biāo)x軸之間的夾角,即每個(gè)芯片的傾斜角度。設(shè)兩個(gè)坐標(biāo)點(diǎn)分別為p(x,y)、q(x,y),則圖像傾斜角度θ計(jì)算公式為:
式中:xp和yp為點(diǎn)p的橫坐標(biāo)和縱坐標(biāo);xq和yq為點(diǎn)q的橫坐標(biāo)和縱坐標(biāo)。為了獲取每個(gè)芯片的旋轉(zhuǎn)中心,應(yīng)用改進(jìn)Andrew 凸包檢測(cè)算法篩選凸包獲得中心焊盤左下角邊緣點(diǎn)和右上角邊緣點(diǎn),兩者連線的中心點(diǎn)即旋轉(zhuǎn)中心。
(5)校正傾斜芯片圖像?;诟倪M(jìn)Andrew 凸包檢測(cè)算法獲取多幅芯片傾斜角度,且以每個(gè)芯片形心為旋轉(zhuǎn)中心獲得仿射變換矩陣,通過仿射變換矩陣將傾斜圖像上的每個(gè)點(diǎn)進(jìn)行旋轉(zhuǎn)校正。在二維空間內(nèi),常見的旋轉(zhuǎn)變換矩陣有兩種:一種為繞原點(diǎn)旋轉(zhuǎn);另一種為繞任意點(diǎn)旋轉(zhuǎn)。繞原點(diǎn)旋轉(zhuǎn)的旋轉(zhuǎn)變換矩陣簡(jiǎn)單直接,但圖像旋轉(zhuǎn)中心不在原點(diǎn),需先將圖像移動(dòng)到原點(diǎn)再進(jìn)行旋轉(zhuǎn),該操作將增加計(jì)算量和實(shí)現(xiàn)難度。相比之下,繞任意點(diǎn)旋轉(zhuǎn)可以直接指定旋轉(zhuǎn)中心點(diǎn)的坐標(biāo),方便靈活。由于通過改進(jìn)Andrew 算法已經(jīng)獲取了芯片的傾斜角度和旋轉(zhuǎn)中心,因此,本文將芯片圖像繞旋轉(zhuǎn)中心旋轉(zhuǎn)以實(shí)現(xiàn)校正。設(shè)旋轉(zhuǎn)中心為(x,y),傾斜角度為θ弧度,繞旋轉(zhuǎn)中心逆時(shí)針旋轉(zhuǎn)θ的旋轉(zhuǎn)變換矩陣M1計(jì)算公式為:
繞旋轉(zhuǎn)中心順時(shí)針旋轉(zhuǎn)θ的旋轉(zhuǎn)變換矩陣M2計(jì)算公式為:
設(shè)傾斜圖像上的點(diǎn)為(x1,y1),旋轉(zhuǎn)變換矩陣M為M1或M2,旋轉(zhuǎn)后圖像上的點(diǎn)(x2,y2) 計(jì)算公式為:
(6)提取校正后的芯片圖像。根據(jù)最小外接正矩形標(biāo)記每個(gè)芯片位置信息,以芯片的左上角坐標(biāo)和芯片的長(zhǎng)寬設(shè)定矩形ROI 區(qū)域,進(jìn)而提取校正后多幅芯片圖像的矩形ROI區(qū)域。
本文通過改進(jìn)凸包檢測(cè)算法實(shí)現(xiàn)多幅芯片圖像校正,解決了傳統(tǒng)方法在處理多幅芯片圖像時(shí)必須先進(jìn)行圖像切分才能夠繼續(xù)校正的問題[20],從而有效提高了多幅圖像的校正效率。選取10 幅不同的多幅QFN 芯片引腳面圖像為實(shí)驗(yàn)對(duì)象,每幅圖像中包含9 個(gè)QFN 芯片,共90 個(gè)QFN 芯片。實(shí)驗(yàn)環(huán)境為四核十二線程、CPU@2.2 GHz、內(nèi)存16 G、Visual Studio 2017。如圖7(a)所示,為多幅芯片傾斜圖像。如圖7(b)至7(j)所示,為校正后的多幅芯片圖像,其分別對(duì)應(yīng)多幅芯片傾斜圖像中第1 至第9 個(gè)芯片。由圖7 可見,對(duì)于一幅包含9 個(gè)不同芯片的多幅QFN 芯片引腳面圖像,本文方法能夠省去單幅芯片圖像的切分環(huán)節(jié),直接完成每個(gè)芯片的校正與提取。
圖7 采用本文方法校正多幅芯片圖像
3.2.1 時(shí)間對(duì)比
對(duì)于多幅芯片圖像,傳統(tǒng)算法需要先切分,再對(duì)切分后的單幅芯片圖像進(jìn)行校正。如圖8所示,為了檢測(cè)切分多幅芯片圖像的運(yùn)行時(shí)間,本文對(duì)采集到的9 幅多幅芯片傾斜圖像進(jìn)行切分,每幅圖像中包含9 個(gè)芯片,使得切分后的圖像中僅包含單幅芯片。如圖8(a)所示,為多幅芯片傾斜圖像,如圖8(b)至8(j)所示,為切分后單幅芯片傾斜圖像,其分別對(duì)應(yīng)多幅芯片傾斜圖像中第1 個(gè)至第9個(gè)芯片。
圖8 切分多幅芯片圖像
如表1 所示,為9 張多幅芯片傾斜圖像的切分時(shí)間。從表1 可見,平均切分時(shí)間為406.67 ms,平均每個(gè)芯片的切分時(shí)間為45.18 ms。本文采用最小外接正矩形標(biāo)記芯片位置信息,應(yīng)用ROI 完成校正后的芯片圖像提取,從而直接省去如表1 所示的45.18 ms 的平均單幅芯片切分時(shí)間。
表1 切分多幅芯片圖像的時(shí)間 單位:ms
為了檢測(cè)本文方法與傳統(tǒng)Hough 變換校正方法[24]、最小外接矩形校正方法[25]、傅里葉變換校正方法[26]的時(shí)間差異,分別對(duì)9幅不同的QFN芯片引腳面圖像進(jìn)行運(yùn)行時(shí)間對(duì)比。為了保證算法對(duì)比的有效性,首先,將3 種對(duì)比算法都按上述完成芯片傾斜圖像的預(yù)處理,獲取邊緣點(diǎn);接著,獲取邊緣點(diǎn)最小外接矩形,通過限制最小外接矩形長(zhǎng)寬,篩選出芯片中心焊盤輪廓邊緣點(diǎn);最后,通過芯片中心焊盤的最小外接矩形確定旋轉(zhuǎn)中心,該旋轉(zhuǎn)中心即為最小外接矩形的中心點(diǎn)。
傳統(tǒng)Hough 變換校正方法通過Hough 變換計(jì)算芯片中心焊盤水平或垂直輪廓線的傾斜角度,再應(yīng)用仿射變換校正芯片圖像。最小外接矩形校正方法通過最小外接矩形獲取芯片中心焊盤的傾斜角度,再應(yīng)用仿射變換校正芯片圖像。傅里葉變換校正方法通過最小外接正矩形標(biāo)記芯片中心焊盤位置信息,設(shè)定矩形ROI 區(qū)域提取芯片中心焊盤圖像;再應(yīng)用傅里葉變換求出芯片中心焊盤頻域圖像,應(yīng)用Hough 變換計(jì)算頻域圖像中直線的傾斜角度;最后應(yīng)用仿射變換校正芯片圖像。如表2所示,為4種算法的運(yùn)行時(shí)間。對(duì)9 幅芯片引腳面圖像校正的平均時(shí)間,傳統(tǒng)Hough 變換校正方法為153.89 ms,最小外接矩形校正方法為120.33 ms,傅里葉變換校正方法為191.89 ms,本文方法處理單幅圖像的平均用時(shí)僅為45.11 ms;與對(duì)比方法中平均用時(shí)最少的最小外接矩形校正方法120.33 ms 相比,本文方法的平均用時(shí)少于其1/2。由于采用最小外接正矩形標(biāo)記芯片位置信息,應(yīng)用ROI 完成校正后芯片圖像的提取,省去了單幅芯片圖像切分環(huán)節(jié),本文方法校正包含9個(gè)芯片的多幅芯片圖像中每個(gè)芯片的平均時(shí)間為79.44 ms,與對(duì)比方法中校正單幅芯片平均用時(shí)最少的最小外接矩形校正方法120.33 ms 相比,本文方法校正多幅芯片圖像的平均用時(shí)少于其2/3。
表2 4種算法校正圖像的時(shí)間 單位:ms
3.2.2 角度偏差對(duì)比
如圖9 所示,通過人工標(biāo)定5 幅傾角分別為1°、2°、3°、4°、5°,規(guī)格為34 mm×30 mm×9 mm的金屬量塊圖像,對(duì)本文方法獲取傾斜角度的準(zhǔn)確性進(jìn)行驗(yàn)證。如表3所示,運(yùn)用上述4種算法分別檢測(cè)5幅量塊圖像得到傾斜角度及偏差值。根據(jù)表3,本文方法獲取的5幅量塊圖像傾斜角度和人工標(biāo)定角度的平均偏差為0.085°,低于其它3種對(duì)比方法,說明本文方法可以獲取相對(duì)更為準(zhǔn)確的量塊圖像傾斜角度。
表3 4種算法獲取傾斜角度與人工標(biāo)定角度的誤差對(duì)比 單位:(°)
為了驗(yàn)證本文方法應(yīng)用在QFN芯片引腳面圖像檢測(cè)中的準(zhǔn)確性,如圖10所示,選取一張標(biāo)準(zhǔn)無傾斜的QFN 芯片引腳面圖像為實(shí)驗(yàn)對(duì)象,將此芯片圖像每次順時(shí)針旋轉(zhuǎn)0.5°,旋轉(zhuǎn)7 次獲取傾角分別為0.5°、1.0°、1.5°、2.0°、2.5°、3.0°、3.5°的7 張標(biāo)準(zhǔn)角度傾斜芯片圖像。如表4所示,運(yùn)用上述4種算法分別檢測(cè)7張標(biāo)準(zhǔn)角度傾斜芯片圖像的傾斜角度及偏差值,平均偏差分別為:本文方法0.112°、傳統(tǒng)Hough變換校正方法0.293°、最小外接矩形校正方法0.339°、傅里葉變換校正方法0.753°;本文方法獲取的平均偏差小于其它3種對(duì)比方法,說明其獲取傾斜角度更加準(zhǔn)確。
表4 4種算法獲取傾斜角度與標(biāo)準(zhǔn)角度的誤差對(duì)比 單位:(°)
圖10 標(biāo)準(zhǔn)角度傾斜芯片圖像
本文以多幅QFN 芯片圖像為實(shí)驗(yàn)對(duì)象,針對(duì)芯片在封裝缺陷視覺檢測(cè)過程中存在的圖像傾斜問題,改進(jìn)Andrew 凸包檢測(cè)算法,實(shí)現(xiàn)多幅芯片圖像校正。首先,通過限制輪廓點(diǎn)個(gè)數(shù)篩選出芯片中心焊盤輪廓,用最小外接正矩形標(biāo)記每個(gè)芯片位置信息;然后,采用改進(jìn)Andrew 算法快速獲取多幅芯片圖像中每個(gè)芯片的傾斜角度和旋轉(zhuǎn)中心;最后,應(yīng)用仿射變換校正多幅芯片圖像,根據(jù)芯片位置信息應(yīng)用ROI完成芯片圖像的校正與提取。實(shí)驗(yàn)結(jié)果表明,與傳統(tǒng)的Hough 變換方法、最小外接矩形方法、傅里葉變換校正方法相比,該方法能夠更精準(zhǔn)校正芯片圖像,且校正單幅芯片圖像的運(yùn)行時(shí)間少于對(duì)比方法的1/2。
本文方法采用最小外接矩形標(biāo)記芯片位置信息,應(yīng)用ROI完成校正后的芯片圖像提取,省去了單幅芯片圖像切分環(huán)節(jié),能夠進(jìn)一步提高圖像校正效率。改進(jìn)的Andrew算法不僅適用于QFN芯片圖像,而且同樣適用于可通過水平或垂直輪廓線來表示傾斜角度且存在L 型輪廓邊緣點(diǎn)的圖像。但是,該方法依賴于能夠獲取連續(xù)不間斷的L型邊緣點(diǎn),若缺少L型邊緣點(diǎn),則無法獲取旋轉(zhuǎn)中心;若邊緣點(diǎn)不連續(xù),則會(huì)出現(xiàn)兩個(gè)傾斜角度和旋轉(zhuǎn)中心,影響校正精度。在后續(xù)研究中,可研究邊緣檢測(cè)算法以獲取連續(xù)邊緣,再配合本文改進(jìn)的Andrew 算法,獲取存在L型邊緣點(diǎn)圖像的傾斜角度。