国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于輕量級網(wǎng)絡(luò)的PCB元器件檢測

2020-10-28 01:44產(chǎn)世兵劉寧鐘沈家全
關(guān)鍵詞:原圖元器件卷積

產(chǎn)世兵,劉寧鐘,沈家全

(南京航空航天大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 南京 211106)

0 引 言

近年來電子工業(yè)技術(shù)發(fā)展迅速,PCB(printed circuit board)電路板從簡單板向現(xiàn)在的高密度、高精度、多層化和多樣化板方向發(fā)展。同時(shí),在體積縮小、性能提高、污染減少、品種增多等方面也在不斷進(jìn)步,這些使得電路板在未來還會保持強(qiáng)大的市場潛力以及生命力。

目前大多數(shù)工業(yè)流水線上都是由人工配合機(jī)器進(jìn)行生產(chǎn),這種生產(chǎn)方式可能會因?yàn)槿祟惖囊曈X疲勞等因素,造成電路板上出現(xiàn)一些缺陷,例如元器件誤插和漏插等問題。但是,在嚴(yán)密的工業(yè)和國防應(yīng)用的領(lǐng)域中,為了實(shí)現(xiàn)信息化和智能化的要求,需要大量的PCB電路板,這種精密的部件不能容忍半點(diǎn)差錯,否則會導(dǎo)致系統(tǒng)運(yùn)行不暢甚至是無法運(yùn)行。所以,在PCB電路板投入使用之前必須對其進(jìn)行缺陷檢測。

對于PCB電路板的傳統(tǒng)檢測方式有人工檢測和自動光學(xué)設(shè)備檢測等。PCB電路板作為大批量生產(chǎn)的產(chǎn)品,需要一種與之契合的快速的、高效的檢測方式。隨著制造技術(shù)的高速發(fā)展,傳統(tǒng)的檢測方式根本無法滿足生產(chǎn)的高效性要求。為了提高元器件檢測的準(zhǔn)確度和速度,該文提出了一個輕量級的目標(biāo)檢測網(wǎng)絡(luò),實(shí)現(xiàn)了對PCB電路板元器件的快速識別與精確定位。

1 相關(guān)工作

自動光學(xué)檢測設(shè)備[1],用于在生產(chǎn)過程中對PCB板的品質(zhì)檢測。自動光學(xué)檢測設(shè)備集光學(xué)、精密機(jī)械、識別診斷算法和計(jì)算機(jī)技術(shù)于一體。檢測時(shí),設(shè)備通過電荷耦合器件或激光自動掃描PCB,采集圖像后,利用計(jì)算機(jī)處理,再與數(shù)據(jù)庫中的標(biāo)準(zhǔn)數(shù)據(jù)進(jìn)行對比,檢測出PCB板上的缺陷。盡管自動光學(xué)檢測能夠解決人類檢測的一些弊端,但是該技術(shù)的可靠性仍然不夠,嚴(yán)重依賴于計(jì)算機(jī)圖像處理技術(shù),如果圖像處理算法不夠有效,將導(dǎo)致誤判。

在機(jī)器視覺方面,主要包括傳統(tǒng)的圖像檢測算法和基于深度學(xué)習(xí)的目標(biāo)檢測算法。傳統(tǒng)的圖像檢測算法主要包括圖像預(yù)處理、特征提取、ROI提取[2]等步驟,實(shí)現(xiàn)待檢測元器件的提取。圖像預(yù)處理是對圖像進(jìn)行灰度化、增強(qiáng)和平滑的處理;特征提取是利用Harris[3]算子的角點(diǎn)檢測算法來提取角點(diǎn);ROI提取是一種根據(jù)角點(diǎn)坐標(biāo)確定ROI區(qū)域的方法,能提取出待檢測元器件所在區(qū)域的圖像。

深度學(xué)習(xí)作為計(jì)算機(jī)科學(xué)研究領(lǐng)域的一個熱點(diǎn),受到了學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注,并取得了一系列顯著的成果,近年來,深度神經(jīng)網(wǎng)絡(luò)在目標(biāo)檢測領(lǐng)域表現(xiàn)出了巨大的優(yōu)勢。

近年來,一系列基于深度卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測算法被開發(fā)出來,例如,F(xiàn)aster RCNN[4]、YOLO[5]、SSD[6]和RefineDet[7]。Faster RCNN采用區(qū)域建議網(wǎng)絡(luò)(RPN)從候選框中確定目標(biāo),然后通過分類定位來進(jìn)行分類。Faster RCNN是一種端到端的目標(biāo)檢測方法,實(shí)現(xiàn)了接近實(shí)時(shí)的速率和最優(yōu)的性能。在YOLO中,目標(biāo)檢測任務(wù)被視為回歸任務(wù),邊界框的坐標(biāo)和框中包含的目標(biāo)的置信度以及各個類別的概率都是直接從整個圖像的所有像素獲得。使用YOLO,每個圖像只需要“瞥一眼”就可以知道圖像中包含的目標(biāo)類別以及位置分布。SSD在整個圖像上采用了多尺度的局部特征回歸,在保持快速檢測的同時(shí)保證高精確度。在RefineDet中,它在檢測框架中引入了傳輸連接塊和對象檢測模塊,可以在保持高效率的同時(shí)提高精度。

這些基于深度卷積神經(jīng)網(wǎng)絡(luò)的檢測模型已經(jīng)實(shí)現(xiàn)了很高的檢測精度。但是,深度卷積模型附帶大量參數(shù),并且會產(chǎn)生大量計(jì)算成本,從而無法有效地進(jìn)行實(shí)時(shí)檢測。由于處理資源有限,因此將CNNs用于實(shí)時(shí)應(yīng)用需要高效的計(jì)算方法。最近,在學(xué)術(shù)界出現(xiàn)了大量的輕量級網(wǎng)絡(luò),例如GoogleNet[8]、MobileNet-v2[9]、ShuffleNets[10-11]、PeleeNet[12]和Xception[13]。與CNNs相比,它們都具有較低的計(jì)算成本,同時(shí)保持了相近的甚至更高的精確度。ShuffleNet-v1[10]使用逐點(diǎn)分組卷積和通道混合的方式來減少計(jì)算成本,與使用Faster RCNN檢測算法的MobileNet-v2相比,具有優(yōu)越的性能。ShuffleNet-v2[11]提出了輕量級網(wǎng)絡(luò)的四個設(shè)計(jì)標(biāo)準(zhǔn)。根據(jù)這些設(shè)計(jì),作者指出了ShuffleNet-v1的一些缺點(diǎn),并在此基礎(chǔ)上進(jìn)行了改進(jìn)。在PeleeNet中,作者提出了DenseNet[14]體系結(jié)構(gòu)的一種變體,稱為PeleeNet,它改用傳統(tǒng)的卷積運(yùn)算方式,該模型旨在滿足對內(nèi)存和計(jì)算預(yù)算上的嚴(yán)格約束。

2 模型和方法

該文提出的基于Faster R-CNN和PeleeNet網(wǎng)絡(luò)結(jié)合實(shí)現(xiàn)的輕量級小目標(biāo)檢測網(wǎng)絡(luò),可以用于快速準(zhǔn)確地定位PCB電路板上的元器件并且進(jìn)行準(zhǔn)確識別。

受PeleeNet和Faster RCNN的啟發(fā),建立了一個用于小目標(biāo)檢測的輕量級網(wǎng)絡(luò),該網(wǎng)絡(luò)可以有效地從小目標(biāo)中提取特征,同時(shí)減小網(wǎng)絡(luò)開銷。輕量級小目標(biāo)檢測網(wǎng)絡(luò)總體結(jié)構(gòu)如圖1所示,該結(jié)構(gòu)一共包含五個階段。前四個階段是特征提取網(wǎng)絡(luò),不同于原本的PeleeNet結(jié)構(gòu),舍棄了原文結(jié)構(gòu)的最后一個階段,并且舍棄了階段3的平均池化層,獲得一個256維的特征圖用于區(qū)域建議網(wǎng)絡(luò)和ROI Pooling。

圖1 網(wǎng)絡(luò)結(jié)構(gòu)

2.1 模 型

PeleeNet是一種輕量型的卷積神經(jīng)網(wǎng)絡(luò),如圖2所示,它主要由兩種結(jié)構(gòu)組成:stem block和dense block。stem block結(jié)構(gòu),在增加很少的額外計(jì)算量的前提下,增強(qiáng)了網(wǎng)絡(luò)的特征表達(dá)能力,使特征圖的語義信息更加豐富。它利用雙通道的方式進(jìn)行特征提取并進(jìn)行融合。不同于原始的stem block結(jié)構(gòu),該文首先在max pool前添加一個1×1 conv層,這是因?yàn)樵谠缴畹木W(wǎng)絡(luò)層中語義信息更加抽象,感受野更大,普通的3×3卷積核無法提取小物體的特征,使用1×1卷積核來提取特征,該特征具有相對較小的感受野,在深層網(wǎng)絡(luò)對提取小目標(biāo)特征有利。而且1×1卷積核執(zhí)行非線性運(yùn)算,可以大大提高模型的非線性特征表達(dá)能力。另一個通道使用1×1大小和3×3大小的卷積核來提取特征,然后對兩個通道進(jìn)行融合。其中,3×3卷積核在小物體特征提取的初始階段具有較大的視野,可以減少特征提取初始階段的信息丟失。

圖2 PeleeNet

其次,受到shuffleNet-v2的啟發(fā),相同的網(wǎng)絡(luò)結(jié)構(gòu),卷積層的輸入輸出通道數(shù)會大大影響模型的速度。假設(shè)一個1×1卷積層的輸入特征通道數(shù)是c1,輸出特征尺寸是h和w,輸出特征通道數(shù)是c2,那么經(jīng)過1×1卷積層的浮點(diǎn)計(jì)算量(float-point operations,F(xiàn)LOPs)的公式如下:

FLOPs=hwc1c2

(1)

接下來計(jì)算內(nèi)存訪問消耗時(shí)間(memory access cost,MAC),經(jīng)過1×1的卷積后,輸入和輸出的特征的尺寸大小并不變化,那么計(jì)算公式如下:

MAC=hw(c1+c2)+c1c2

(2)

根據(jù)均值不等式,可以得到式(3):

(3)

把式(1)和式(2)代入式(3),可以得到(c1-c2)2≥0,該等式的成立條件是c1=c2,也就是輸入輸出特征通道數(shù)相等時(shí),在FLOPs給定的前提下,MAC可以達(dá)到最小值。shuffleNet-v2通過實(shí)驗(yàn)證明輸入輸出特征通道數(shù)相同時(shí),模型的檢測速度最快。這也就表明了輸入輸出通道數(shù)相同時(shí),內(nèi)存訪問消耗時(shí)間最小,模型的速度最快。所以為了提升模型的檢測速度,分別統(tǒng)一了stem block和dense layer中的輸入輸出特征通道數(shù)。

最后,在PeleeNet中,作者結(jié)合SSD構(gòu)建目標(biāo)檢測網(wǎng)絡(luò),但是SSD在小目標(biāo)檢測中表現(xiàn)并不好,所以該文結(jié)合Faster RCNN構(gòu)建目標(biāo)檢測網(wǎng)絡(luò)。在原始的Faster RCNN中,作者利用ROI Pooling層使生成的候選框映射成固定大小的特征圖。但是,ROI Pooling會使小目標(biāo)在pooling之后導(dǎo)致物體結(jié)構(gòu)失真,會影響后層的目標(biāo)框的回歸定位,對于大目標(biāo)的檢測準(zhǔn)確率影響不大,但對小目標(biāo)的影響很大。為了解決小目標(biāo)在ROI Pooling時(shí)結(jié)構(gòu)失真的問題,受SINet[15]的啟發(fā),使用Context-Aware ROI Pooling代替原文中的ROI Pooling層。如圖3所示,分別為原文ROI Pooling和CAROI Pooling的結(jié)果,其中(1)為原圖;(2)為原圖的建議區(qū)域;(3)為ROI Pooling的結(jié)果,會有重影;(4)為CAROI Pooling的結(jié)果,沒有重影。

圖3 ROI Pooling和CAROI Pooling的結(jié)果

該文使用Context-Aware ROI Pooling代替ROI Pooling層,解決了Pooling后物體失真的問題,明顯提升了小目標(biāo)檢測的精度。

2.2 訓(xùn)練過程

RPN區(qū)域建議網(wǎng)絡(luò)將優(yōu)化的PeleeNet網(wǎng)絡(luò)提取的特征圖作為輸入,文中特征圖大小為原圖大小的1/16,輸出為一系列的建議框,每個建議框都有得分。為了生成區(qū)域建議框,通過3×3的窗口在特征圖上滑動,每個窗口都映射到256維的特征向量,然后對特征向量進(jìn)行目標(biāo)分類和回歸。如圖4所示,每個滑動窗口都預(yù)測9個不同長寬比例和尺度的建議框。

圖4 RPN層

在Faster RCNN原文中,特征圖的大小為原圖大小的1/32,也就是特征圖上的每個點(diǎn)對應(yīng)原圖上的32×32個像素點(diǎn),原文采用的建議框比例和尺度分別為(0.5,1,2)和(8,16,32),建議框映射到原圖上的大小也就是(256,512,1 024)。該文前面提到了用作RPN網(wǎng)絡(luò)輸入的特征圖大小為原圖大小的1/16,所以將建議框的尺度改為(16,32,64),映射到原圖上的大小為(256,512,1 024)。但是這樣的建議框的大小用在文中的數(shù)據(jù)集上并不合適,根據(jù)先驗(yàn)知識和實(shí)驗(yàn)表明,文中的數(shù)據(jù)集最適合的建議框的比例和尺度為(0.5,1,2)和(8,16,32),映射到原圖上的大小為(128,256,512)。

在使用ImageNet與訓(xùn)練模型初始化文中的網(wǎng)絡(luò)時(shí),實(shí)驗(yàn)結(jié)果表現(xiàn)并不好,這是由于ImageNet數(shù)據(jù)分布和文中的PCB板元器件數(shù)據(jù)集分布完全不同,差異較大。所以在網(wǎng)絡(luò)初始化時(shí),利用Kaiming[16]初始化方式,實(shí)驗(yàn)結(jié)果表明效果很好。

在訓(xùn)練時(shí),模型的迭代次數(shù)為300 k,區(qū)域建議網(wǎng)絡(luò)的批量大小為256,在每次迭代中,模型都會預(yù)測建議框的類別和邊界框。然后將預(yù)測框Bp與真實(shí)框Bg的交并比大于0.7的作為正樣本,將交并比小于0.3的作為負(fù)樣本,拋棄交并比在0.3~0.7之間的樣本,并且保證正負(fù)樣本的數(shù)量比例為1∶1。IOU的定義如下:

(4)

其中,area(Bp∩Bg)表示Bp與Bg的交集,area(Bp∪Bg)表示Bp與Bg的并集。

將所有的正樣本和負(fù)樣本都輸入到損失函數(shù)中。另外使用多任務(wù)損失函數(shù)來訓(xùn)練網(wǎng)絡(luò),其目的是使得分類和定位的誤差最小。多任務(wù)損失函數(shù)定義如下:

L(pi,loci)=Lcls+λLreg

(5)

其中,i表示每個迭代中預(yù)測框的索引,Lcls是分類的softmax損失函數(shù),Lreg是預(yù)測框的回歸損失函數(shù),使用的是smoothL1損失。Ncls和Nreg分別表示每個迭代批次的圖片區(qū)域的個數(shù)和預(yù)測框的數(shù)量。在這里,設(shè)置λ=2,是為了使Lcls和Lreg的權(quán)重一樣。損失函數(shù)定義如下:

(6)

該網(wǎng)絡(luò)模型通過隨機(jī)梯度下降來訓(xùn)練。在訓(xùn)練階段,使用0.000 1的權(quán)重衰減和0.9的動量。對于前100k迭代,學(xué)習(xí)率設(shè)置為0.001,對于接下來的200k迭代,學(xué)習(xí)率設(shè)置為0.000 1。RPN批量大小設(shè)置為256。為了抑制冗余框,基于置信度得分對建議框采用了非極大值抑制算法。

3 實(shí)驗(yàn)結(jié)果及分析

3.1 小目標(biāo)

在該數(shù)據(jù)集中具有很多小目標(biāo),小目標(biāo)大小占據(jù)整個圖片的比例很小,難以檢測。小目標(biāo)難以檢測的原因包括:分辨率低,圖像模糊,攜帶的信息少。由此導(dǎo)致特征表達(dá)能力弱,也就是在提取特征的過程中,能提取到的特征非常少,這不利于對小目標(biāo)的檢測。在MS COCO數(shù)據(jù)集中,對小目標(biāo)、中目標(biāo)和大目標(biāo)的定義如表1所示。

表1 MS COCO小、中、大目標(biāo)的定義

為了解決小目標(biāo)檢測精度不高的問題,在小目標(biāo)數(shù)據(jù)集上做出了兩點(diǎn)改進(jìn)。第一點(diǎn),通過對包含小目標(biāo)的圖像進(jìn)行oversampling操作。第二點(diǎn),通過在每個包含小目標(biāo)的圖像中多次復(fù)制粘貼小目標(biāo)來處理,復(fù)制目標(biāo)時(shí),確保不會和已經(jīng)存在的目標(biāo)有任何交疊。這增加了小目標(biāo)位置的多樣性,同時(shí)確保這些目標(biāo)出現(xiàn)在正確的上下文中。

3.2 數(shù)據(jù)集

該數(shù)據(jù)集是從PCB板生產(chǎn)線上通過高精度相機(jī)拍照而得到的,一般為CCD相機(jī)或者是CMOS相機(jī)。原圖大小為2 048×2 048的分辨率,為了獲取更多小目標(biāo)的特征信息,將原圖切割成1 024×1 024大小的圖片作為訓(xùn)練集。但是,PCB的數(shù)據(jù)集很難獲取,能獲取到的數(shù)據(jù)量很少,很難滿足本章提出的網(wǎng)絡(luò)訓(xùn)練達(dá)到收斂的需求,并且容易出現(xiàn)過擬合的狀況。為了解決訓(xùn)練時(shí)所需的數(shù)據(jù)量,采用深度學(xué)習(xí)中數(shù)據(jù)增廣的方式來增加訓(xùn)練數(shù)據(jù)集,讓數(shù)據(jù)集盡可能多樣化,使得訓(xùn)練的模型具有更強(qiáng)的泛化能力。

使用的數(shù)據(jù)增廣的方法主要包括:水平或垂直翻轉(zhuǎn),旋轉(zhuǎn),縮放,裁剪,平移,對比度調(diào)整,色彩抖動和添加噪聲等。經(jīng)過數(shù)據(jù)增廣過后的數(shù)據(jù)集,用作訓(xùn)練數(shù)據(jù)的有20 664張,用作測試數(shù)據(jù)的一共有3 036張。數(shù)據(jù)集一共包含元器件11類,總的分為電容、芯片、電阻、三極管和二極管五個大類,每個大類下有若干個小類,其中小目標(biāo)類為第7類,它們的最大尺寸不超過32×32。

3.3 結(jié)果及分析

這部分將在提供的數(shù)據(jù)集上測試結(jié)果。同時(shí),對提出的模型性能進(jìn)行分析,并與其他方法進(jìn)行了比較。實(shí)驗(yàn)環(huán)境為基于Caffe深度學(xué)習(xí)框架,CPU為i7-8700k,顯卡為RTX 2080 Ti 11 GB顯存,物理內(nèi)存為16 GB,操作系統(tǒng)為Ubuntu 16.04。

在該模型中,使用廣泛應(yīng)用的召回率、準(zhǔn)確率和mAP標(biāo)準(zhǔn)來評估性能。召回率表示總樣本中有多少個正例被分為正例,定義為:

(7)

準(zhǔn)確率表示被分為正例的目標(biāo)中實(shí)際為正例的比率,定義為:

(8)

其中,TP表示將正樣本預(yù)測為正的數(shù)量,F(xiàn)P表示將負(fù)樣本預(yù)測為正的數(shù)量,F(xiàn)N表示將正樣本預(yù)測為負(fù)的數(shù)量。

平均均值精度mAP是反映整體性能的檢測指標(biāo),定義為:

(9)

如表2所示,通過消融實(shí)驗(yàn)表現(xiàn)了模型各個部分的重要性,統(tǒng)一通道數(shù)可以很大提升檢測速度,其他各個組件對mAP的提高有不錯的效果。

表2 各個組件的表現(xiàn)

實(shí)驗(yàn)結(jié)果如表3所示,在該數(shù)據(jù)集上運(yùn)行了VGG16[17]模型、ResNet50[18]模型以及文中利用PeleeNet改進(jìn)后的模型。

表3 實(shí)驗(yàn)結(jié)果對比

通過表中數(shù)據(jù)對比可以看到,文中模型在保證mAP沒有多少降低的前提下,在速度上有很大的提升。同時(shí),在小目標(biāo)的檢測精度上也有不錯的結(jié)果。部分實(shí)驗(yàn)結(jié)果如圖5所示。

圖5 檢測結(jié)果

4 結(jié)束語

基于PeleeNet網(wǎng)絡(luò)和Faster RCNN目標(biāo)檢測模型設(shè)計(jì)了一個輕量級卷積神經(jīng)網(wǎng)絡(luò)檢測模型,該模型在PCB板元器件數(shù)據(jù)集上具有較好的精度和較高的速度。

該檢測模型在PeleeNet的基礎(chǔ)上改變stem block的結(jié)構(gòu),統(tǒng)一通道數(shù)量,并且結(jié)合Faster RCNN和CAROI Pooling,同時(shí)通過先驗(yàn)知識設(shè)計(jì)了anchor box的大小來提高檢測速度和保持檢測精度。實(shí)驗(yàn)結(jié)果表明,該檢測模型在PCB板元器件檢測上有很好的效果。

在小目標(biāo)的問題上,對小目標(biāo)數(shù)據(jù)集進(jìn)行了增廣,提升了小目標(biāo)的檢測精度。但是,該檢測模型仍然存在一些缺陷。例如,雖然模型速度有提高,但提高的幅度不夠大,而且精度也有下降。在以后的工作中,將把工作重心放在提升模型速度和精度上。

猜你喜歡
原圖元器件卷積
基于全卷積神經(jīng)網(wǎng)絡(luò)的豬背膘厚快速準(zhǔn)確測定
元器件國產(chǎn)化推進(jìn)工作實(shí)踐探索
國產(chǎn)元器件選型方式及流程分析
一種基于卷積神經(jīng)網(wǎng)絡(luò)的地磁基準(zhǔn)圖構(gòu)建方法
基于3D-Winograd的快速卷積算法設(shè)計(jì)及FPGA實(shí)現(xiàn)
一種并行不對稱空洞卷積模塊①
宇航型號元器件國產(chǎn)化自主可控的管理模式研究
完形:打亂的拼圖
找一找
跨越平凡
兴化市| 健康| 集贤县| 新蔡县| 潞城市| 织金县| 凤台县| 怀柔区| 锦州市| 泸州市| 富平县| 平定县| 凤台县| 临邑县| 府谷县| 阿合奇县| 兴安盟| 平定县| 汤原县| 西城区| 三都| 盐亭县| 阳春市| 浦城县| 台中市| 揭西县| 桦川县| 青海省| 北流市| 宜黄县| 伊宁县| 甘南县| 小金县| 苍山县| 观塘区| 海阳市| 丁青县| 乐亭县| 乌鲁木齐县| 万荣县| 库车县|