陳自立,劉紅林
(中國(guó)計(jì)量大學(xué) 光學(xué)與電子科技學(xué)院,浙江 杭州 310018)
工業(yè)上一般用X光檢測(cè)LED晶元的焊接質(zhì)量[1],傳統(tǒng)的方式是人工肉眼觀察X光圖像,檢測(cè)焊接不良晶元,不僅效率低,而且還容易產(chǎn)生眼疲勞導(dǎo)致錯(cuò)誤率變高,因此迫切需要用圖像處理技術(shù)自動(dòng)檢測(cè)晶元,降低勞動(dòng)強(qiáng)度,提高檢測(cè)效率。同時(shí)由于X光相機(jī)的視場(chǎng)有限、分辨率不夠高,無(wú)法拍攝完整的零件圖像,一次只能拍攝到部分零件圖像,需要多次采集,因此采集到的圖像之間難免會(huì)有重復(fù)。這樣,在檢測(cè)之前首先要用圖像算法實(shí)現(xiàn)晶元定位、刪除重復(fù)的晶元區(qū)域,然后才能進(jìn)行后續(xù)的晶元檢測(cè)。
近年來(lái),研究人員提出了許多晶元的定位方法。李良和廖圣龍[2-3]提出模版匹配的方法,基于灰度或者邊緣信息,設(shè)置多重閾值,提高算法的效率;Kong Y[4]等人提出單模和混合模式下的模式識(shí)別方法,采用模版匹配對(duì)晶元圖像重疊區(qū)域進(jìn)行定位和分類;但模版匹配的方法需要逐點(diǎn)匹配,計(jì)算量大,匹配效率低。傳統(tǒng)上也有一些基于特征的SURF、SIFT、角點(diǎn)檢測(cè)等算法,自動(dòng)計(jì)算特征,然后進(jìn)行匹配,但選取的特征點(diǎn)仍然比較多,計(jì)算量偏大,運(yùn)算速度仍然偏低[5-6]。由于本論文需要檢測(cè)的晶元圖像周期性很強(qiáng),采用上述算法進(jìn)行圖像配準(zhǔn)容易造成誤匹配的現(xiàn)象,導(dǎo)致圖匹配精度差,而且還需要后續(xù)算法去除誤匹配的特征,計(jì)算速度也會(huì)比較慢。
本文在結(jié)合國(guó)內(nèi)外最新研究成果的基礎(chǔ)上,結(jié)合待檢測(cè)零件的特征,提出了一種基于特征的LED晶元圖像定位與檢測(cè)的方法。根據(jù)圖像的特征,確定將晶元組上的銅柱作為特征,選取的特征少,計(jì)算速度快。首先用閾值分割和邊緣查找的方法提取這些特征的位置;然后利用晶元組和特征的幾何關(guān)系,實(shí)現(xiàn)晶元組的定位;再利用晶元在晶元組中的幾何位置和圖像分割技術(shù)實(shí)現(xiàn)晶元的提取和檢測(cè)。檢測(cè)完畢后,利用晶元組的定位關(guān)系,實(shí)現(xiàn)整個(gè)圖像的拼接,顯示全部晶元組和各個(gè)晶元的檢測(cè)結(jié)果,方便最后人工復(fù)核。
我們要檢測(cè)的是一整板零件,每個(gè)底板包括多個(gè)晶元組,每個(gè)晶元組上又焊接了多個(gè)晶元。典型的零件如圖1,該零件含有7×23個(gè)晶元組,而每個(gè)晶元組上又焊接了6個(gè)晶元。圖2是用X光相機(jī)單次采集的局部圖像。從中可以看出,每個(gè)晶元組包含4個(gè)銅柱。在零件中,銅柱最厚,所以X光圖像中銅柱的灰度最小。因此可以利用這一點(diǎn),用晶元組上的銅柱作為特征,實(shí)現(xiàn)晶元組的定位[7]。
圖1 整板的晶元圖像Figure 1 Image of the whole assembly
圖2 晶元圖像特征分析Figure 2 Image of one shot
圖像處理的流程如圖3,包含圖像采集、圖像預(yù)處理、晶元組定位、晶元定位和晶元檢測(cè)五個(gè)部分。X光相機(jī)采集的圖像傳入電腦后,首先對(duì)圖像進(jìn)行預(yù)處理,主要是用高斯濾波去除噪點(diǎn);然后用閾值分割和邊緣提取的方法提取特征的位置,利用特征的幾何關(guān)系定位晶元組區(qū)域;再對(duì)晶元組采用自適應(yīng)閾值分割和輪廓提取的方法,對(duì)晶元組中的晶元進(jìn)行定位與檢測(cè)。
圖3 算法處理流程Figure 3 Flow chart of the algorithm
首先采用閾值分割提取銅柱,然后用邊緣查找方法提取銅柱邊緣,確定銅柱位置[8-9]。
由于銅柱的灰度最小,為了能夠提取到全部的銅柱,查找圖像中灰度的最小值,將灰度最小值加上一個(gè)容差,作為閾值,對(duì)圖像進(jìn)行二值化。然后用邊緣查找的方法確定銅柱的位置,如圖4。
圖4 閾值分割后的圖Figure 4 Image after thresholding
從圖4可以看出,有28(7行和4列)個(gè)銅柱,先對(duì)銅柱進(jìn)行從上到下,從左到右的排序。銅柱的中心坐標(biāo)用(x00,y00),(x01,y01)…(x35,y35),(x36,y36)表示;計(jì)算每一行中相鄰銅柱之間的距離,通過(guò)排序找出距離的最大值,利用距離最大的兩個(gè)銅柱,就可以初步確定晶元組的左右邊界。以圖5(a)的圖像為例,晶元左右邊界銅柱的位置和銅柱之間的距離可以用下式表示:
(1)
用同樣地方式,計(jì)算每一列中相鄰銅柱之間的距離,找出最大值。因?yàn)榫гM不止一列,所以選取距離與最大值相差小于一定容限的相鄰銅柱,從而確定晶元組的上下邊界。如圖5(a)的圖像為例,晶元組上下邊界的銅柱和晶元組的高度H可以用下式表示:
(2)
通過(guò)邊界銅柱的位置和銅柱之間的位置可以實(shí)現(xiàn)晶元組的粗定位[10]。因?yàn)?個(gè)銅柱之間包含的晶元組并不是完整的,所以需要對(duì)特征包含的晶元組進(jìn)行適當(dāng)?shù)財(cái)U(kuò)張,得到3個(gè)完整的晶元組區(qū)域,如圖5(b)。
圖5 晶元組定位Figure 5 Located part
通過(guò)第3節(jié)的方法實(shí)現(xiàn)了晶元組的定位。在這種情況下,晶元組上都焊接有晶元,但有時(shí)也會(huì)出現(xiàn)故障,沒(méi)有焊接晶元,造成晶元缺失,這兩種情況如圖6。
圖6 晶元正常和缺失Figure 6 Normal parts and defected parts
晶元定位的方法如下所述:首先采用自適應(yīng)的閾值分割方法實(shí)現(xiàn)晶元與背景的分離[11-12],從閾值分割后圖7(a)和圖7(b)中可以看出,晶元與晶元之間有連通區(qū)域,不利于查找完整的晶元輪廓。接著用閉運(yùn)算去除連通區(qū)域[13-14],其效果如圖7(c)和圖7(d)。從中圖7(d)可以看出,第2和第3、第4和第5的位置中間會(huì)有連通區(qū)域,無(wú)法實(shí)現(xiàn)區(qū)域之間的分離,將這種情況判定為晶元缺失。
定位晶元組之后,查找出晶元輪廓后,根據(jù)晶元的幾何關(guān)系,實(shí)現(xiàn)晶元的精確定位如圖7(e)。如果為晶元缺失,則標(biāo)記整個(gè)晶元組為不良,如圖7(f)。
圖7 晶元定位Figure 7 Chips located
在晶元定位的基礎(chǔ)上,對(duì)每個(gè)晶元的焊接質(zhì)量進(jìn)行檢測(cè)。從圖8(a)中可以看出,對(duì)比焊接良好的晶元區(qū)域,焊接不良區(qū)域的顏色要淺一些,灰度值會(huì)大一些。對(duì)晶元組中的每一個(gè)晶元進(jìn)行自適應(yīng)閾值分割處理,通過(guò)輪廓查找識(shí)別不良區(qū)域,結(jié)果如圖8(b)。
圖8 不良晶元Figure 8 Defected chips
在Windows10、CPU i7和16G內(nèi)存的電腦上,采用C++語(yǔ)言調(diào)用opencv庫(kù)編寫程序?qū)崿F(xiàn)了前述算法,對(duì)X光相機(jī)采集到7行8列的部分圖像進(jìn)行定位與檢測(cè)。最后還將所有提取的晶元組按照順序拼接為一張圖像[15-16],方便人工復(fù)核。最后的檢測(cè)結(jié)果如圖9。從圖中可以看出,成功實(shí)現(xiàn)了晶元組的定位,成功檢測(cè)到了晶元缺失和晶元焊接不良的情況。
圖9 檢測(cè)結(jié)果Figure 9 Test result
程序的運(yùn)行效率比較高,對(duì)7×23個(gè)晶元組定位時(shí)間為0.7 s,再加上晶元檢測(cè),總計(jì)運(yùn)行時(shí)間為12.4 s,檢測(cè)效果良好。通過(guò)對(duì)10整板的零件進(jìn)行檢測(cè),檢測(cè)到的晶元個(gè)數(shù)為8 720個(gè)(一整板的晶元個(gè)數(shù)為966個(gè)),定位錯(cuò)誤的只有10個(gè)晶元,晶元組定位的準(zhǔn)確率超過(guò)了98%;檢測(cè)錯(cuò)誤的晶元為65個(gè),準(zhǔn)確率超過(guò)了90%。少數(shù)定位和檢測(cè)錯(cuò)誤的情況,在實(shí)際生產(chǎn)中通過(guò)人工復(fù)核修正。6 結(jié) 論針對(duì)自動(dòng)獲取特征算法存在的計(jì)算量大,而且容易出現(xiàn)誤匹配的現(xiàn)象,根據(jù)待檢測(cè)零件圖像的特征,人工選擇特征,提出了基于特征的晶元自動(dòng)定位與檢測(cè)方法。通過(guò)對(duì)晶元圖像的特征進(jìn)行分析,確定采用銅柱作為特征;用閾值分割和邊緣提取的方法,實(shí)現(xiàn)銅柱的定位;再利用銅柱之間的幾何關(guān)系,實(shí)現(xiàn)晶元組定位;最后利用自適應(yīng)閾值分割和輪廓提取的方法實(shí)現(xiàn)晶元定位與檢測(cè)。實(shí)現(xiàn)晶元組定位后,再對(duì)晶元進(jìn)行定位和檢測(cè),能夠檢測(cè)出晶元缺失的晶元組和焊接不良的晶元。程序運(yùn)行效率高,整個(gè)零件中晶元組定位時(shí)間為0.7 s,加上晶元檢測(cè),總計(jì)時(shí)間為12.4 s。檢測(cè)效果良好,晶元組定位和晶元不良檢測(cè)的準(zhǔn)確率分別大于98%和90%,可以滿足實(shí)際生產(chǎn)的需要。編寫的程序現(xiàn)已成功應(yīng)用于寧波升譜光電有限公司的實(shí)際生產(chǎn)。