謝 黎, 袁小芳*, 尹柏鑫
(1.湖南大學(xué) 電氣與信息工程學(xué)院,湖南 長沙 410082;2.湖南大學(xué) 機器人視覺感知與控制技術(shù)國家工程實驗室,湖南 長沙 410082)
近年來,電子工業(yè)技術(shù)發(fā)展迅速,電路板正快速向高密度、多樣化方向發(fā)展。在元器件體積縮小、種類增多的同時,傳統(tǒng)的人工電路板檢測手段由于效率低、精度差等因素已經(jīng)不再滿足如今電路板缺陷檢測的要求?;跈C器視覺的自動光學(xué)檢測(Automatic Optic Inspection,AOI)技術(shù)在電路板缺陷檢測中已經(jīng)得到越來越廣泛的應(yīng)用[1]。電路板元器件缺陷檢測作為電路板自動光學(xué)檢測技術(shù)的一項重要內(nèi)容,主要針對電路板元器件中存在的器件漏裝、器件裝錯、器件偏移、器件歪斜和器件極性反轉(zhuǎn)等5種常見缺陷[2],其檢測方法的優(yōu)劣直接影響電路板的質(zhì)量安全。
要想實現(xiàn)精度高、運行速度快和抗干擾能力強的電路板元器件缺陷檢測系統(tǒng),其核心在于檢測算法的提升。為此,國內(nèi)外許多研究人員對其進行了大量研究。其中,文獻[3]基于多方向Sobel算子的邊緣檢測來改進模板匹配,通過圖像差分實現(xiàn)漏件檢測,但其對采集的圖像精度要求很高,當(dāng)邊緣不明顯或存在紋理干擾時很難精確匹配,且無法識別其他類型的缺陷;文獻[4]提出一種結(jié)合所用光源和二值投影的元器件安裝缺陷檢測算法,通過統(tǒng)計元器件橫向和縱向投影的白色像素點個數(shù)和梯度變換判斷是否存在缺陷,但只能對單個元器件進行檢測,無法適用于整塊電路板的元器件檢測;文獻[5]提出一種基于數(shù)學(xué)形態(tài)學(xué)與種子填充結(jié)合的分層提取匹配算法,逐像素搜索并分層提取色彩空間顏色不同的元器件后,再匹配實現(xiàn)缺陷檢測,但需要多次逐像素搜索圖像,運算量極大,且很難對顏色差異較小的元器件進行區(qū)分,誤檢率高。
雖然不同元器件缺陷檢測算法在特定的應(yīng)用場景均取得一定的研究成果,但是實際應(yīng)用場景需要對完整電路板中所有元器件的缺陷進行檢測,導(dǎo)致了算法普遍效率低、誤檢率高等問題。究其原因,主要在于基于不同元器件淺層圖像信息或模板匹配等算法普遍無法有效區(qū)分、定位不同種類的元器件。隨著大數(shù)據(jù)和深度學(xué)習(xí)技術(shù)的發(fā)展,越來越多的目標(biāo)檢測網(wǎng)絡(luò)在通用目標(biāo)領(lǐng)域的識別中取得極大的進展[6-7],這也激發(fā)了研究人員將其應(yīng)用到特定領(lǐng)域以解決特定的問題。文獻[8]首次提出了一種利用深度卷積神經(jīng)網(wǎng)絡(luò)YOLOv2定位電路板中不同型號電容的方法,但是只局限于電容器,并沒有對其他種類的元器件進行識別定位;文獻[9]設(shè)計了一個新穎的圖形網(wǎng)絡(luò)塊來細化每個電路板組件的特征,使用SPN-T-W-GN-LF (Similarity Prediction Network With Triplet Loss and Graph Network)模型來對電路板不同種類的組件進行定位與識別,并達到了65.3%的mAP(Mean Average Precision,平均精度)值,但是該方法存在檢測精度低、魯棒性差,且檢測速度非常慢的問題。另外,文獻[8]和文獻[9]中算法只是針對元器件的識別與定位,并沒有涉及對電路板元器件的缺陷進行檢測。
針對傳統(tǒng)電路板元器件缺陷檢測算法中存在的效率低、誤檢率高和缺陷種類覆蓋不全等問題,提出了基于改進YOLOv4網(wǎng)絡(luò)的電路板元器件缺陷檢測算法。首先,根據(jù)電路板上元器件尺度變化大、小目標(biāo)數(shù)量多的特點,設(shè)計了改進的YOLOv4算法對電路板上不同元器件進行定位與識別;其次,傳統(tǒng)的元器件缺陷檢測算法大部分只對漏裝、裝錯兩種缺陷進行識別,而本文針對電路板上元器件偏移、歪斜和極性反轉(zhuǎn)三類缺陷與標(biāo)準(zhǔn)元器件本體和極性標(biāo)識的位置、角度上存在的差異,快速提取并構(gòu)建電路板上元器件的方位與極性特征向量,更準(zhǔn)確地對元器件本體及極性標(biāo)識的安裝狀態(tài)進行表示;最后設(shè)計了標(biāo)準(zhǔn)電路板與待測電路板元器件特征向量的相似度匹配方法,快速計算兩者的位置、角度和極性標(biāo)識方向的相對誤差,有效檢測了元器件的不同種類缺陷并降低相似度判定的計算量和復(fù)雜度,提高了缺陷檢測的準(zhǔn)確性。
本文算法主要包括圖像配準(zhǔn)、元器件識別與定位、缺陷檢測3個部分,具體架構(gòu)如圖1所示。
圖1 本文算法流程圖
從圖1可以看出,本文首先通過特征點匹配算法對待測圖像與標(biāo)準(zhǔn)圖像進行配準(zhǔn);然后事先利用構(gòu)建好的電路板元器件數(shù)據(jù)集訓(xùn)練改進的YOLOv4網(wǎng)絡(luò)模型,利用該模型對待測電路板及標(biāo)準(zhǔn)電路板上的元器件進行檢測,并輸出各元器件類別及位置信息;最后利用圖像處理算法提取各元器件圖像塊的方位、極性等特征并構(gòu)建特征向量,計算標(biāo)準(zhǔn)電路板與待測電路板元器件特征向量的相似度誤差,進而實現(xiàn)對常見的5種不同元器件缺陷的精準(zhǔn)檢測。
在實際生產(chǎn)及工作環(huán)境中,由于工人放置、攝像機角度等客觀因素的影響,很難保證獲取到的電路板圖像是水平且一致的。這也造成待測電路板圖像與標(biāo)準(zhǔn)電路板圖像一開始就存在誤差,如圖2所示,如果不對兩者進行對齊和矯正,將極大地影響缺陷檢測的精度。所以,圖像配準(zhǔn)是必不可少的環(huán)節(jié)。
圖2 電路板圖像
本文采用ORB(Oriented FAST and Rotated BRIEF)算法[10]進行電路板的配準(zhǔn),相對于經(jīng)典的SIFT(Scale-Invariant Feature Transform)和SURF(Speeded-Up Robust Features)算法而言,ORB算法在精度上稍遜于后者,且在一定程度上不受噪聲和光照的影響,而在運行速度上則比后者快了1~2個數(shù)量級。
圖像配準(zhǔn)基本流程如圖3所示,ORB算法首先快速提取兩幅圖像的特征點PI(xi,yi)與PJ(xj,yj),如圖3(a)和圖3(b)所示。再計算相應(yīng)的特征點描述符,生成特征點的二進制描述子串,并構(gòu)造描述符向量VI(xi,yi)與VJ(xj,yj)。最后通過Hamming Distance(漢明距離)對兩幅圖像的描述符向量中距離近的特征點進行粗匹配。
由于粗匹配的特征點仍然存在誤匹配點,一般使用RANSAC(Random Sample Consensus)算法[11]進行匹配點對的優(yōu)化,消除誤匹配點對,得到若干對精確配對的特征點,如圖3(c)所示。再通過配對好的特征點對計算待測電路板圖像到標(biāo)準(zhǔn)電路板圖像的變換矩陣T。
(1)
最后利用式(2)將測試圖像投影到標(biāo)準(zhǔn)圖像的坐標(biāo)系上實現(xiàn)配準(zhǔn)操作,配準(zhǔn)后的圖像如圖3(d)所示。
圖3 基于ORB的圖像配準(zhǔn)過程
(2)
YOLO(You Only Look Once)網(wǎng)絡(luò)[12]是一種利用回歸網(wǎng)絡(luò)實現(xiàn)目標(biāo)檢測的分類算法,與傳統(tǒng)基于區(qū)域候選的網(wǎng)絡(luò)[6]相比,YOLO網(wǎng)絡(luò)整合產(chǎn)生候選框和檢測這兩個階段不需要提名區(qū)域,直接將檢測任務(wù)視為回歸任務(wù),從而具有更快的檢測速度。
其主要過程是將每個輸入圖像劃分成一個S×S的網(wǎng)格,如果目標(biāo)的中心落入某個網(wǎng)格中,則由該網(wǎng)格負責(zé)檢測目標(biāo)。每個網(wǎng)格負責(zé)檢測目標(biāo)的邊界框、置信度得分和類別概率。置信度的計算公式為
Cij=Pr(Object)×IOUpred
(3)
(4)
式中:Cij為第i個網(wǎng)格的第j個置信度;Pr(Object)表示是否有目標(biāo)落入該網(wǎng)格,有則為“1”,無則為“0”;IOUpred為預(yù)測框與真實框的重合率;box(Pred)為預(yù)測框,box(Truth)為真實框,每個預(yù)測框包含Cij,x,y,w,h這5個參數(shù),而(x,y)代表預(yù)測框的中心坐標(biāo),(w,h)代表預(yù)測框的寬和高。
置信度代表網(wǎng)格內(nèi)是否包含檢測對象以及預(yù)測框包含對象的準(zhǔn)確性。當(dāng)多個預(yù)測框檢測到同一個對象時,YOLO使用非極大值抑制(Non-Maximum Suppression,NMS)算法來選擇最佳預(yù)測框。
YOLO算法自提出以來,經(jīng)歷了多個版本的改進,而YOLOv4是由Bochkovskiy等[13]于2020年提出的最新架構(gòu),并在GitHub開源網(wǎng)站上公開了基礎(chǔ)架構(gòu)代碼。YOLOv4在上一代YOLO網(wǎng)絡(luò)基礎(chǔ)上,將加權(quán)剩余連接(Weighted-Residual-Connection,WRC)、跨階段部分連接(Cross-Stage-Partial-Connections,CSP)和跨批量連接(Cross Mini-Batch Normalization,CmBN)、自對抗訓(xùn)練(Self-Adversarial Training,SAT)和Mish激活函數(shù)相結(jié)合。此外,其在通用的目標(biāo)檢測任務(wù)中取得非常好的成績。
YOLOv4檢測網(wǎng)絡(luò)架構(gòu)以CSPDarknet53為主干網(wǎng)絡(luò),路徑聚合網(wǎng)絡(luò)(PANet)作為頸部,增添空間金字塔池(Spatial Pyramid Pooling,SPP)附加模塊,并沿用了YOLOv3的檢測頭作為頭部。同時,YOLOv4也采用Mosaic和CutMix數(shù)據(jù)增強策略增加輸入圖像可變性,豐富圖像特征信息,以提高模型的魯棒性。
電子元器件作為電路板上的基礎(chǔ)組件,其類別、形狀、尺寸選擇眾多,同時標(biāo)簽的制作必須需要經(jīng)驗豐富的專業(yè)人員投入大量精力才能完成,因此目前并沒有通用的數(shù)據(jù)集。
為了驗證本文所提出算法的有效性,本文構(gòu)建的數(shù)據(jù)集使用了文獻[8]中所公開的47張不同類型的真實電路板數(shù)據(jù)集,如圖4(a)所示,并對該數(shù)據(jù)集的標(biāo)簽進行合并與篩選,剔除其中存在的冗余信息以及清晰度較差、非常難以辨認(rèn)的圖像及類別。另外,為了提升數(shù)據(jù)集的質(zhì)量,同時全部使用含有大量元器件的電路板真實圖像幾乎是不可能的,且即使經(jīng)驗豐富的電子工程師也很難識別所有組件并標(biāo)記。而將合成數(shù)據(jù)與真實數(shù)據(jù)相結(jié)合形成訓(xùn)練數(shù)據(jù)集,可以降低數(shù)據(jù)收集的成本,提高訓(xùn)練模型的泛化能力。本文使用了電路板虛擬圖像制作方法[14],并通過Altium Designer電路仿真軟件制作了20張電路板3D封裝圖,如圖4(b)所示,并進行了手工標(biāo)注。標(biāo)注示例如圖4所示。
本文使用的原始數(shù)據(jù)集圖像共包含了14個不同類別的元器件對象,其中不同種類元器件的差別相對明顯,且同種類的元器件姿態(tài)相對簡單,主要在于相對位置和尺度大小的差別。另外,從圖4中可以看出,盡管收集的電路板圖像有限,但不同的電路板上的元器件數(shù)量眾多,且不同電路板上的元器件分布隨機,背景變化差異較大。為了更好地提升訓(xùn)練數(shù)據(jù)的質(zhì)量,本文使用了平移、旋轉(zhuǎn)、裁剪、縮放、光照和噪聲變化等方法對原始數(shù)據(jù)進行了數(shù)據(jù)增強。最終得到的數(shù)據(jù)集擴增了20倍,共有1200張不同類型的電路板圖像,其分布的元器件總數(shù)達到了11萬多。擴展后的各類別元器件在數(shù)據(jù)集的分布如圖5所示。
圖4 真實電路板圖像與虛擬電路板圖像標(biāo)注示例
圖5 數(shù)據(jù)集種類及其數(shù)量分布
最后,將擴展后的數(shù)據(jù)集按照8∶1∶1的比例劃分為訓(xùn)練集、驗證集和測試集。
由于電路板元器件的分布復(fù)雜,且電路板元器件具有尺寸小、種類多、密度大的特點,盡管原始的YOLOv4網(wǎng)絡(luò)對通用的目標(biāo)具有強大的識別率,但是基于本文構(gòu)建的電路板元器件數(shù)據(jù)集訓(xùn)練的模型在測試過程中效果并不太理想。尤其是針對小目標(biāo)的識別和目標(biāo)檢測框的擬合情況,故需要對原始YOLOv4網(wǎng)絡(luò)模型做進一步的改進。
3.3.1 改進的網(wǎng)絡(luò)結(jié)構(gòu)
一般而言,深度卷積過程中淺層特征圖包含了更多的位置信息,適合小目標(biāo)的檢測,深層特征圖則包含了較多的語義信息,適合大目標(biāo)的檢測。為了解決原始YOLOv4網(wǎng)絡(luò)對電路板元器件檢測效果不理想的問題,針對電路板上元器件尺度變化大、小目標(biāo)數(shù)量多的特點,在原有的3個尺度上加入了針對小目標(biāo)敏感的淺層特征圖,利用多尺度特征融合在4個尺度上來對電路板上不同元器件進行定位與識別,同時提高小目標(biāo)的識別率,具體如下。
首先,將網(wǎng)絡(luò)輸入圖像尺寸統(tǒng)一調(diào)整到608像素×608像素,避免輸入圖像過小使得本來在圖像上的小目標(biāo)更加難以識別。另外,如圖6所示,原始YOLOv4網(wǎng)絡(luò)框架使用5個CSP殘差模塊對輸入圖像進行特征提取,且每次特征提取都會使輸出的特征矩陣的行數(shù)和列數(shù)變?yōu)樵瓉淼囊话耄疃葎t增加一倍。這樣就分別得到尺寸為304像素×304像素、152像素×152像素、76像素×76像素、38像素×38像素和19像素×19像素的5個特征圖。而原始的YOLOv4網(wǎng)絡(luò)只選擇了其中76像素×76像素、38像素×38像素和19像素×19像素這3個特征層進行特征融合,以檢測不同的大、中、小物體。因為隨著卷積層的加深,深度卷積神經(jīng)網(wǎng)絡(luò)在前向卷積的過程中會逐漸丟失輸入圖像的淺層特征信息,而這些淺層的特征對檢測小物體卻非常關(guān)鍵。而第2個CSP殘差模塊得到的尺寸為152像素×152像素的特征圖,由于卷積深度更淺,故包含更多的對小目標(biāo)有利的淺層信息。
為了使網(wǎng)絡(luò)獲得更多的小目標(biāo)信息,提高元器件的檢測率,本文在原始網(wǎng)絡(luò)框架的基礎(chǔ)上,增加了第2個CSP殘差模塊獲得的尺寸為152像素×152像素的特征圖來檢測目標(biāo)。在原來的8倍下采樣特征融合圖的基礎(chǔ)上再增加一次上采樣操作,并將其與152像素×152像素特征圖進行張量拼接,輸出并配合第4個檢測頭進行目標(biāo)檢測。此外,將CSPDarknet53網(wǎng)絡(luò)結(jié)構(gòu)中的第二剩余模塊的2個Res uint增加到4個,而第五剩余模塊的4個Res uint減少到2個,在保持原CSPDarket53骨干網(wǎng)層數(shù)不變的情況下,增強特征復(fù)用,避免網(wǎng)絡(luò)結(jié)構(gòu)較深時梯度消失和特征復(fù)用增強。改進后的網(wǎng)絡(luò)結(jié)構(gòu)框圖如圖6所示。
美國對相關(guān)國家進口伊朗石油的“豁免”變相解救了伊朗。美國國務(wù)卿蓬佩奧宣布,美國給予8個國家伊朗制裁豁免權(quán),允許他們繼續(xù)進口伊朗石油。由此,伊朗在制裁期間的石油出口量預(yù)計能夠達到100萬桶/日。這樣的出口量于伊朗而言,把日子過下去是毫無問題的。
圖6 改進的YOLOv4網(wǎng)絡(luò)架構(gòu)
3.3.2 先驗框設(shè)計
YOLOv4在預(yù)測目標(biāo)時使用了先驗框(Prior Box)來預(yù)測目標(biāo)包圍框的形狀尺寸,這并不是一個隨機的值。選擇適合用戶數(shù)據(jù)集的先驗框尺寸作為訓(xùn)練參數(shù),可以有效提高最終模型的識別精度。而原始的YOLOv4所提供的先驗框尺寸是由COCO數(shù)據(jù)集圖像的目標(biāo)尺寸聚類得到的,但是COCO數(shù)據(jù)集是一個通用的目標(biāo)檢測數(shù)據(jù)集,與本文構(gòu)建的電路板圖像數(shù)據(jù)集中的元器件目標(biāo)尺寸存在很大的差別,所以先驗框尺寸設(shè)置要根據(jù)本文數(shù)據(jù)集來做進一步的適配。
本文采用K-means++算法[15]對已經(jīng)標(biāo)注的電路板元器件數(shù)據(jù)集的目標(biāo)框尺寸進行聚類分析,針對4種不同尺寸的特征圖優(yōu)化生成12個團簇的先驗框,并將其重新分配給各個特征層,用于多尺度的目標(biāo)檢測。改進后先驗框信息如表1所示。
表1 先驗框尺寸 單位:像素
在得到電路板圖像上的元器件定位與識別結(jié)果后,首先需要對標(biāo)準(zhǔn)電路板與待測電路板上的元器件進行配對,將兩個電路板上相同位置的元器件定位框一一對應(yīng),同時也能檢測待測電路板上元器件是否存在漏裝、錯裝兩類缺陷。
因為前面預(yù)處理時已經(jīng)對待測電路板與標(biāo)準(zhǔn)電路板進行配準(zhǔn)。所以,只需要結(jié)合元器件定位框的位置,及同一位置的標(biāo)準(zhǔn)電路板與待測電路板元器件定位框的交并比與分類結(jié)果即可判斷。其流程如下。
① 選擇一個標(biāo)準(zhǔn)電路板元器件A。
② 假設(shè)A的定位框坐標(biāo)box1=(x1,y1,w1,h1),在待測電路板上相應(yīng)位置搜索所有與之相交的未標(biāo)記的元器件定位框{boxi=(xi,yi,wi,hi)∨i∈N}。如果沒有,則認(rèn)為該位置的元器件漏裝,否則,進入下一步。
(5)
(6)
⑤ 對標(biāo)準(zhǔn)板上所有元器件重復(fù)以上步驟。
對所有待測電路板與標(biāo)準(zhǔn)電路板的元器件配對完成后,由于元器件定位框只包含元器件所在電路板區(qū)域的圖像塊,不能直接用來匹配相似度。為了進一步降低元器件缺陷檢測的誤檢率并提高檢測效率,根據(jù)各元器件在圖像上的定位框,通過圖像處理算法對元器件圖像塊中元器件本體位置進行二次精準(zhǔn)定位,并構(gòu)建了相應(yīng)的方位特征向量。另外,通常極性元器件中存在極性標(biāo)識,單獨對極性區(qū)域進行分割,并構(gòu)建了極性特征向量。具體步驟如下。
① 元器件定位框ROI(Region of Interest)裁剪。根據(jù)元器件檢測結(jié)果的定位框信息,將圖像相應(yīng)位置的檢測包圍框裁剪,并獲得裁剪后的圖像塊,如圖7所示。
圖7 元器件ROI
② 二次定位。由于YOLOv4目標(biāo)檢測的定位框為一個矩形,只會大致擬合元器件區(qū)域。想要檢測元器件是否有歪斜的缺陷,就需要對元器件區(qū)域進行二次精確定位,將元器件區(qū)域與背景分割開來,并提取相應(yīng)輪廓區(qū)域。但是,不同元器件的邊緣特征、形狀大小和顏色特征都存在差異,需要分開考慮。
類別1:對于體積較小、邊緣特征比較明顯,且與背景圖像差距較大的元器件,如圖7所示的電容、電阻、電解電容和三極管等元器件,可以直接對ROI圖像塊進行灰度化、中值濾波、閾值分割、形態(tài)學(xué)運算等操作。以電容為例進行以上操作,過程顯示如圖8所示。而同一類型的元器件操作過程相同。最后再計算其連通區(qū)域的最小外接矩形即可對其二次定位。
圖8 ROI圖像處理過程
類別2:針對目標(biāo)元器件表面本身及與背景區(qū)別不明顯的元器件(如圖7所示的芯片元件等),閾值分割操作不容易提取出有效區(qū)域。但是,一般電路板的集成電路表面都由黑色或銀色塑封構(gòu)成,可以充分利用其表面的顏色特征。首先需要將圖像塊從RGB轉(zhuǎn)為HSV色彩空間,然后設(shè)置合適的閾值分離核心區(qū)域的像素點,并通過形態(tài)學(xué)運算消除干擾目標(biāo),最后同樣根據(jù)連通區(qū)域計算得到其最小外接矩形,其過程如圖9所示。
圖9 芯片元件圖像處理過程
③ 構(gòu)建元器件的方位特征向量。在得到元器件二次定位的輪廓及最小外接矩形后,其最小外接矩形MinAreaRect=(x2,y2,w2,h2) 即為元器件的真實位置。為了在保證缺陷的識別率的同時減少計算量,本文定義了電路板元器件的方位 (Direction and Position) 特征向量VDP,包括其最小外接矩形的4個角點和中心點在電路板上的絕對坐標(biāo)P1(x1,y1),P2(x2,y2),P3(x3,y3),P4(x4,y4),P0(x0,y0),以及該外接矩形的寬w2和高h2。最后,電路板上各元器件方位特征向量表示為VDP={P0,P1,P2,P3,P4,w2,h2}。
④ 構(gòu)建元器件的極性特征向量。對于極性元器件,一般而言,都會在元器件上對其極性方向進行標(biāo)識。以芯片與電解電容為例,在芯片的4個角附近會有一個圓形標(biāo)記作為其極性標(biāo)識,如圖7(e)、圖7(f)所示??梢灾苯油ㄟ^Hough梯度法[16]對極性區(qū)域進行圓檢測來提取,結(jié)果如圖10所示;而電解電容則是對其一端色帶進行極性標(biāo)識,可以對該色帶區(qū)域進行閾值分割,再提取邊緣,結(jié)果如圖11所示。
圖10 芯片極性標(biāo)識提取
圖11 電解電容極性標(biāo)識提取
最后,由提取的元器件外二次定位中心坐標(biāo)P0指向極性中心坐標(biāo)P,就得到極性特征向量P0P。
在得到配對的元器件及其提取的方位與極性特征向量后,便可以通過計算標(biāo)準(zhǔn)電路板元器件與待測電路板元器件的相似度來判斷是否存在偏移、歪斜和極性反轉(zhuǎn)的缺陷,檢測方法如下。
① 偏移檢測。計算待測元器件與標(biāo)準(zhǔn)元器件的方位特征向量的距離平均差d,如果距離差大于設(shè)置的閾值σd,則可以認(rèn)為元器件出現(xiàn)偏移。計算公式及閾值設(shè)置為
(7)
(8)
② 歪斜檢測。計算待測元器件與標(biāo)準(zhǔn)元器件的方位向量的偏轉(zhuǎn)角度平均差θ,如果θ>15°,則認(rèn)為元器件出現(xiàn)歪斜。偏轉(zhuǎn)角度計算公式及閾值設(shè)置為
(9)
③ 極性反轉(zhuǎn)檢測。計算標(biāo)準(zhǔn)元器件的極性特征向量與待測元器件的極性向量的向量夾角θPolar,如果θPolar>45°,則認(rèn)為該元器件存在極性錯誤。向量夾角計算公式為
(10)
為了驗證本文所提出的算法的有效性,搭建了一個視覺缺陷檢測平臺,其基本配置如表2所示。
表2 訓(xùn)練及檢測平臺配置
實驗主要分為兩個部分:① 對電路板元器件的定位與識別的精度與耗時進行對比實驗;② 對電路板樣品的元器件漏裝、錯裝、偏移、歪斜和極性反轉(zhuǎn)等5種缺陷檢測結(jié)果進行統(tǒng)計。所有的實驗都在所搭建的視覺平臺上進行。
為了驗證本文所設(shè)計改進的YOLOv4網(wǎng)絡(luò)模型對電路板元器件識別與定位的有效性,對比分析了不同的目標(biāo)檢測算法與本文算法在構(gòu)建的電路板元器件數(shù)據(jù)集上的識別與定位性能。綜合統(tǒng)計了3.2節(jié)所劃分的120張測試集圖像在不同算法模型下的檢測結(jié)果,并使用平均精度與消耗時間作為衡量指標(biāo)。統(tǒng)計的定位與識別結(jié)果如表3所示。
表3 不同算法對元器件的性能對比
從表3中可以看出,與其他常用的目標(biāo)檢測算法相比,本文算法的檢測時間與其他算法相近,對測試集電路板元器件識別與定位的精度有較大幅度的提高,平均精度可以達到94.35%。這說明本文所提出的基于改進的YOLOv4網(wǎng)絡(luò)模型有較高的準(zhǔn)確率,滿足檢測要求。運行結(jié)果如圖12所示。
圖12 運行結(jié)果樣例
下面使用本文前面所提出的訓(xùn)練好的改進YOLOv4網(wǎng)絡(luò)模型配合缺陷識別算法,對電路板樣品測試集在實驗平臺進行反復(fù)實驗。測試所使用的合格元器件樣本數(shù)量為300個,其他每種缺陷所檢測的樣本數(shù)量為50個,其中極性反轉(zhuǎn)的缺陷檢測目前只針對于芯片(IC)和電解電容。統(tǒng)計了實驗過程中每類缺陷樣本和合格樣本的正檢、誤檢、漏檢數(shù)量情況,并以準(zhǔn)確率作為最終的衡量指標(biāo)。檢測結(jié)果如表4所示。
表4 本文算法缺陷檢測性能統(tǒng)計
從表4可以看出,本文算法對電路板元器件的缺陷識別準(zhǔn)確率可以達到94.18%,且對各類缺陷的準(zhǔn)確率不低于90%,這也反映了本文算法能夠有效檢測不同類型的元器件缺陷,適用于對穩(wěn)定性、魯棒性有一定要求的場合,能夠滿足當(dāng)前電路板元器件視覺檢測需求。
本文研究了電路板元器件檢測的關(guān)鍵技術(shù),提出了一種基于改進YOLOv4網(wǎng)絡(luò)的元器件缺陷檢測算法,應(yīng)用于電路板元器件的定位、識別和缺陷檢測,解決了傳統(tǒng)元器件缺陷檢測基于不同元器件淺層圖像信息或模板匹配所造成的計算量大、穩(wěn)定性低和魯棒性差的問題,提升了元器件缺陷檢測的準(zhǔn)確性和可靠性。實驗結(jié)果表明,該算法能夠快速、精準(zhǔn)地實現(xiàn)電路板元器件定位與識別,并可有效地檢測電路板的不同元器件缺陷。在未來的工作中,可以對網(wǎng)絡(luò)中不重要的通道或網(wǎng)絡(luò)層進行修剪,增強檢測的實時性,同時,也可以進一步將該算法集成并開發(fā)出相應(yīng)的檢測軟件。