基于OPENCV和图像减法的PCB缺陷检测
基于OPENCV和圖像減法的PCB缺陷檢測
原文地址:PCB defect detection USING OPENCV with image subtraction method
Abstract
在PCB制造業(yè)中,生產(chǎn)的一個最重要方面是質(zhì)量檢查。PCB板經(jīng)歷了從面板切割到層壓的大量生產(chǎn)過程,一塊板上的一個缺陷將使整個板過時。隨著電子電器需求的日益增長,對更高質(zhì)量元器件的需求也在不斷增長。由于商用AOI價格高昂,許多制造商無法進(jìn)行自動檢測。在這方面,計(jì)算機(jī)視覺可以為商業(yè)AOI提供一種替代方案,以幫助小型制造商進(jìn)行自動檢測。圖像減法和斑點(diǎn)檢測使用戶能夠輕松地發(fā)現(xiàn)PCB中的大量視覺缺陷,尤其是使用復(fù)雜的方法。通過解剖圖片并指出輸出圖像上的差異,可以快速檢查PCB,找出有缺陷的零件。因此,本論文將重點(diǎn)關(guān)注一個基本的圖像減法足以幫助制造商進(jìn)行質(zhì)量檢查的基礎(chǔ)。
關(guān)鍵詞-AOI;OpenCV;計(jì)算機(jī)視覺,PCB;圖像減法
I. INTRODUCTION
在這個信息時代,電子工具和電器的使用率每天都在上升,因此也意味著印刷電路板(PCB)的使用率更高,因?yàn)樗菐缀趺總€消費(fèi)電子電器的基礎(chǔ)平臺。隨著我們今天看到的技術(shù)進(jìn)步,PCB不僅被各行業(yè)所使用,而且也被大學(xué)生和業(yè)余愛好者所使用,這為小型PCB生產(chǎn)行業(yè)創(chuàng)造了市場,因?yàn)榕c過去相比,生產(chǎn)過程變得越來越容易。
為了滿足消費(fèi)者對優(yōu)質(zhì)電路板的需求,必須進(jìn)行質(zhì)量檢查和控制,以確保沒有影響PCB最終產(chǎn)品的缺陷,這就是為什么現(xiàn)在有必要進(jìn)行機(jī)器視覺檢查,以確保PCB的質(zhì)量良好。[1]
要進(jìn)行機(jī)器視覺檢查過程,通常PCB生產(chǎn)商必須使用自動光學(xué)檢查(AOI)系統(tǒng)[2],對于通常不使用先進(jìn)機(jī)械來制造PCB的小型PCB生產(chǎn)商來說,這可能非常昂貴。
本文將重點(diǎn)研究通過OpenCV實(shí)現(xiàn)的計(jì)算機(jī)視覺技術(shù),該技術(shù)使系統(tǒng)能夠捕獲、識別和分析圖像,為用戶找到信息,其中計(jì)算機(jī)視覺將用于利用OpenCV中包含的基于參考圖像的圖像減法檢測裸印刷PCB的缺陷。
檢測系統(tǒng)將基于圖像減影技術(shù),以檢測減影結(jié)果上的殘余特性,并將其宣布為結(jié)果上的缺陷。系統(tǒng)中使用的所有方法都基于OpenCV庫,包括圖像處理、圖像減法和斑點(diǎn)檢測方法。
該系統(tǒng)的目的是提供一個能夠進(jìn)行質(zhì)量檢查的小型系統(tǒng),以找出PCB生產(chǎn)中裸印制板上的任何缺陷,該系統(tǒng)將自動找到缺陷零件,提供PCB的狀態(tài),并向系統(tǒng)用戶指出缺陷零件在PCB板上的位置。
考慮到時間和技術(shù)限制,項(xiàng)目中存在一些限制。最明顯的限制是,由于使用了圖像減法,為了使系統(tǒng)達(dá)到所需的精度,參考圖像和被檢查圖像必須具有相同的尺寸和圖像對齊。
II. RESEARCH METHODOLOGY
PCB檢查系統(tǒng)的基本概念是,它使系統(tǒng)用戶能夠通過輸入PCB的參考圖像來檢查其PCB,該圖像將是無缺陷PCB或與初始PCB設(shè)計(jì)對齊,然后將其與檢查的PCB圖像進(jìn)行比較,從而生成一個新圖像,其中PCB的缺陷部分將被指向并顯示在顯示窗口中,此外,包含已檢查PCB信息的信息,如發(fā)現(xiàn)的缺陷數(shù)量、PCB狀態(tài)和所用時間 去處理將顯示以測量系統(tǒng)的性能。
該檢測系統(tǒng)利用OpenCV庫的方法和功能**,尤其是圖像處理技術(shù),包括高斯模糊、閾值、圖像形態(tài)學(xué)、圖像減法和斑點(diǎn)檢測。**
第一個過程是圖像捕獲,其中參考圖像和被檢查的PCB圖像被插入到系統(tǒng)中。在這個項(xiàng)目中,獲取PCB圖像的方法是通過程序從代碼中手動完成的。圖像被放入程序的文件夾中,然后由系統(tǒng)自動拾取。
下一個過程是圖像預(yù)處理階段,在該階段中,將使用多個圖像處理過程來準(zhǔn)備每個圖像,以將原始圖像轉(zhuǎn)換為二進(jìn)制形式,用于發(fā)現(xiàn)PCB的缺陷部分。
系統(tǒng)中包含的最后一個過程是缺陷檢測過程,該過程將輸出PCB檢查圖像的結(jié)果。經(jīng)過處理的參考和檢查的PCB圖像都將進(jìn)入相同的步驟,即圖像減法,以找出兩個圖像之間的差異,此過程將創(chuàng)建一個新圖像,即參考圖像和檢查的PCB圖像之間的絕對差異。之后,圖像將經(jīng)過斑點(diǎn)檢測過程,系統(tǒng)將查找差分圖像中殘留的任何物體斑點(diǎn)。如果仍有斑點(diǎn),系統(tǒng)將對其進(jìn)行標(biāo)記,然后繪制關(guān)鍵點(diǎn),以便向用戶報(bào)告PCB的缺陷部件所在的位置
圖像必須經(jīng)過的第二個過程是預(yù)處理設(shè)計(jì)。在此階段,圖像將應(yīng)用多種圖像處理方法,以提取所需的相關(guān)信息。以下是此過程中使用的OpenCV函數(shù)。
**Gaussian Blurring **首先應(yīng)用于圖像,以平滑圖像并減少可能影響系統(tǒng)精度的任何噪聲。要執(zhí)行此過程,調(diào)用OpenCV庫中的函數(shù)GaussianBlur()
轉(zhuǎn)換為灰度級,模糊圖像將轉(zhuǎn)換為灰度圖像。在處理開始時,圖像作為RGB模型圖像插入,這對于系統(tǒng)轉(zhuǎn)換為二值圖像而言不是最佳選擇。在此過程中,將使用cvtColor()函數(shù)。
閾值處理過程在圖像轉(zhuǎn)換為灰度后開始,系統(tǒng)將繼續(xù)將其轉(zhuǎn)換為二進(jìn)制形式。它使用OpenCV庫中包含的名為threshold()的函數(shù)。對于此過程,使用的閾值為127,最大值為255,并且為反向二進(jìn)制閾值類型。完成此過程是為了使系統(tǒng)能夠創(chuàng)建斑點(diǎn)以供后期檢查。
在形態(tài)學(xué)步驟中,通過OpenCV庫中包含的形態(tài)學(xué)函數(shù)完成結(jié)構(gòu)元素操作。使用的形態(tài)學(xué)方法是閉合法,它可以去除可能影響系統(tǒng)精度的小孔和圓點(diǎn)。閉合形態(tài)學(xué)方法包括先進(jìn)行膨脹,然后進(jìn)行侵蝕,直到滿足系統(tǒng)要求為止。調(diào)用的函數(shù)是morphologyEx()。
缺陷檢測在圖像預(yù)處理步驟完成后開始,處理后的參考圖像和檢查的PCB圖像將進(jìn)入同一步驟,即圖像減法,以找出兩個圖像之間的差異,此過程將創(chuàng)建一個新圖像,即參考圖像和檢查的PCB圖像之間的絕對差異。
然后,圖像將經(jīng)過斑點(diǎn)檢測過程,系統(tǒng)將查找差分圖像中殘留的任何物體斑點(diǎn)。如果還有斑點(diǎn),該系統(tǒng)將對其進(jìn)行標(biāo)記,然后繪制關(guān)鍵點(diǎn),以便向用戶報(bào)告PCB缺陷部件的位置。
以下是缺陷檢測過程中使用的OpenCV功能。
**圖像減法 **
在參考和檢查的PCB圖像都經(jīng)過預(yù)處理后,兩幅圖像的格式都是二進(jìn)制的,僅由0和1組成。使用OpenCV庫中包含的absdiff()函數(shù),執(zhí)行異或操作,該操作將創(chuàng)建一個新的臨時圖像,其中包含參考圖像和已檢查PCB圖像之間的差異。為了繼續(xù)下一步,即斑點(diǎn)檢測,再次應(yīng)用閾值函數(shù)來反轉(zhuǎn)顏色。
污點(diǎn)檢測********
從圖像減法中找出殘差,這種方法也稱為BLOB。PCB檢查方法使用了幾個參數(shù),即Area, Circularity, Convexity, and Inertia。面積轉(zhuǎn)化為剩余斑點(diǎn)的密度,圓度衡量斑點(diǎn)與圓形的接近程度,凸度指斑點(diǎn)的凸面形狀,慣性指斑點(diǎn)的形狀,無論是圓形還是接近直線。系統(tǒng)使用的最小面積為50,最小圓度為0.01,最小凸度為0.5,最小慣性比為0.009。
**繪圖關(guān)鍵點(diǎn) **
標(biāo)記blob后,將在blob上繪制關(guān)鍵點(diǎn),以確保blob檢測按預(yù)期工作。函數(shù)的作用是:在檢測到的水滴周圍繪制圓圈。對于系統(tǒng)的最后一部分,還將在已檢查的PCB圖像上繪制關(guān)鍵點(diǎn),以向用戶顯示缺陷零件的位置。
**PCB質(zhì)量檢查 **
一般而言,質(zhì)量檢查是一項(xiàng)檢查產(chǎn)品質(zhì)量的活動,應(yīng)用于制造過程和組織分析。[3]
PCB或印刷電路板是一種由層壓材料(如玻璃纖維)制成的薄板,其上刻有導(dǎo)電通路,用于連接嵌入PCB上的不同組件,如晶體管、電阻器和集成電路。這些組件焊接到PCB上的導(dǎo)電軌道上,使它們能夠一起工作。在PCB制造業(yè)中,質(zhì)量檢查在生產(chǎn)過程中至關(guān)重要,以避免每個電路板上存在任何缺陷零件,因?yàn)樵赑CB中發(fā)現(xiàn)的任何缺陷零件都可能導(dǎo)致設(shè)計(jì)偏差,從而導(dǎo)致PCB不工作。Moganti在1996年提出了三種PCB檢測算法,分別是由圖像比較技術(shù)組成的參考方法、基于PCB元件通用設(shè)計(jì)規(guī)則的非參考方法和參考與非參考相結(jié)合的混合方法。[4]
有幾種方法或解決方案可用于使用參考方法進(jìn)行PCB檢查,其中一種方法是使用自動光學(xué)檢查。自動光學(xué)檢查(AOI)系統(tǒng)顧名思義,是一種對印刷電路板(PCB)或其他電子元件生產(chǎn)進(jìn)行的自動視覺檢查,其中攝像頭用于自動掃描產(chǎn)品表面的質(zhì)量缺陷,并將缺陷產(chǎn)品從其余生產(chǎn)中分揀出來。AOI系統(tǒng)一般在計(jì)算機(jī)視覺學(xué)科范圍內(nèi)工作,這是人工智能研究領(lǐng)域的一個分支。
PCB缺陷
對于PCB面板,有各種缺陷可能會影響印刷在PCB上的圖案。有幾種類型的缺陷可分為功能缺陷和視覺缺陷。
功能缺陷嚴(yán)重影響PCB的功能,因?yàn)樗鼈儠p壞PCB,導(dǎo)致設(shè)計(jì)和產(chǎn)品不一致而出現(xiàn)故障。另一方面,視覺缺陷,正如其名稱所述,只是在短時間內(nèi)不會損害PCB的小缺陷。然而,在很長一段時間內(nèi),視覺缺陷也會影響PCB的功能,因?yàn)樵O(shè)計(jì)和當(dāng)前產(chǎn)品之間的不一致會導(dǎo)致潛在的缺陷。因此,檢查以確保PCB沒有任何類型的缺陷至關(guān)重要。
在有缺陷的PCB中,可以發(fā)現(xiàn)各種缺陷,如圖5所示,其中缺陷分為以下類型:
圖像處理
從本質(zhì)上講,圖像處理是一個提取圖像處理、檢測、導(dǎo)航和識別所需視覺信息的過程。這是一個系統(tǒng)需要執(zhí)行的過程,有時是按照精確的順序,以獲取可以從輸入圖像中獲取的附加信息。[5]
高斯模糊或高斯平滑是圖像處理中常用的一種技術(shù)或方法。對數(shù)字圖像應(yīng)用高斯模糊的主要目的是平滑粗糙邊緣,降低圖像分辨率,并減少噪聲。[6]
在2D平面場景中,函數(shù)的方程將使用同心圓創(chuàng)建一個曲面作為圖像的輪廓。然后,從中心點(diǎn)開始應(yīng)用高斯分布,然后創(chuàng)建值,形成卷積矩陣。然后將矩陣應(yīng)用于參考圖像。這個新矩陣包含幾個像素值,這些值是相鄰像素的加權(quán)平均值。受高斯函數(shù)影響的原始像素將具有對最高高斯值貢獻(xiàn)的最大權(quán)重,而較小權(quán)重將以與原始像素的距離的增量加載到其相鄰像素。[7]
圖像閾值分割是計(jì)算機(jī)視覺中最簡單的圖像分割方法之一。閾值化是一個過程,其中灰度圖像將作為輸入圖像插入到該過程中,然后進(jìn)行處理以創(chuàng)建二值圖像。[8]
它的工作方式是,由于灰度圖像僅包含一個范圍為0到255的單個值,因此將使用一個稱為T的常量作為基數(shù),根據(jù)像素中包含的當(dāng)前值與T值進(jìn)行比較來修改圖像。如果圖像強(qiáng)度I(I,j)小于T值,則返回0值(黑色),反之,返回255值(白色)。
二值圖像形態(tài)學(xué)是一種利用結(jié)構(gòu)元素對二值圖像進(jìn)行處理的圖像處理方法。結(jié)構(gòu)元素本身是一個參考或基礎(chǔ)二進(jìn)制圖像,用于處理輸入圖像以獲得所需的結(jié)果圖像。圖像形態(tài)學(xué)用于將二值圖像處理或變形為若干形狀或斑點(diǎn),以便從圖像中提取新信息。雖然結(jié)構(gòu)元素有多種形狀,但在二值圖像形態(tài)學(xué)中使用最多的形狀是長方體和環(huán)形。[5]
圖像相減是一種算法或過程,其中系統(tǒng)將兩幅圖像作為輸入,然后生成結(jié)果圖像的輸出,其像素值僅從第一幅圖像的像素值減去第二幅圖像的像素值得到。[9]
有幾種方法可以進(jìn)行圖像減法,即嚴(yán)格減去兩幅圖像中的像素值,即簡單地減去圖像中包含的像素值,或計(jì)算兩幅圖像的絕對差值。
IV. RESULTS
使用兩種圖像測試系統(tǒng)的性能,一種是720p以下的低分辨率圖像,另一種是720p以上的高分辨率圖像。這些圖像是從在線存儲庫中獲取的,其中人為缺陷應(yīng)用于圖像上,用于測試目的。
Result Analysis
從兩張測試圖像中,以下是缺陷檢測系統(tǒng)的結(jié)果。
從以上數(shù)據(jù)來看,目前使用圖像減法檢測PCB上的缺陷零件的方法被證明速度非???#xff0c;從低分辨率圖像的0.856秒到高分辨率圖像的2.68s不等,這比人工檢查速度更快。
圖像的大小表示每次檢查的時間,因?yàn)閳D像越大,處理的像素越多,完成檢查過程所需的時間就越長。系統(tǒng)的精度也由圖像的大小或分辨率來表示,隨著圖像的精度或分辨率越高,程序的精度也會提高
該系統(tǒng)能夠檢測所有測試板上的缺陷零件,這是該項(xiàng)目的主要目標(biāo)。
V. CONCLUSION
PCB檢測系統(tǒng)能夠使用圖像減法以非??斓乃俣葯z測出有缺陷的PCB,根據(jù)處理的數(shù)字圖像源的大小從0.856秒到2.68秒不等。盡管能夠在每一塊被測電路板上發(fā)現(xiàn)缺陷,但在蝕刻電路板上使用圖像減法進(jìn)行PCB檢查的準(zhǔn)確性并不令人滿意,如果有許多電路板有銅痕跡或電路缺陷,這將是至關(guān)重要的。然而,從測試結(jié)果可以得出結(jié)論,圖像的分辨率直接影響精度,圖像大小越大,檢測精度也越高。
測試結(jié)果表明,該系統(tǒng)有待改進(jìn),以提高缺陷檢測的準(zhǔn)確性。以下是一些可以改進(jìn)系統(tǒng)和克服限制的建議:
1、改進(jìn)斑點(diǎn)檢測和形態(tài)學(xué)算法,進(jìn)一步提高系統(tǒng)精度。
2、對圖像應(yīng)用Hough變換過程和圖像分割,以提高精度,減少參考圖像和檢查圖像大小和對齊方式相同的必要性。
3、實(shí)現(xiàn)圖像分割方法,以便系統(tǒng)能夠處理分辨率比系統(tǒng)硬件規(guī)格更高的圖像。
4、研究另一種提高系統(tǒng)性能的方法
總結(jié)
以上是生活随笔為你收集整理的基于OPENCV和图像减法的PCB缺陷检测的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: curl检查端口_curl命令(测试连接
- 下一篇: 带通 带阻滤波器 幅频响应_一文带你通俗