李俊杰, 周 驊, 唐綱浩
(貴州大學(xué) 大數(shù)據(jù)與信息工程學(xué)院, 貴陽 550025)
鉭電容是一種體積小、電容量大、使用壽命長、耐受性強(qiáng)的優(yōu)異電容器,在軍事通訊、航天、工業(yè)控制等領(lǐng)域中都有著不可替代的重要作用[1]。 在鉭電容的生產(chǎn)過程中,會(huì)出現(xiàn)表面具有污點(diǎn)、劃痕、凹痕、擦痕等缺陷的殘次品,一般通過人工檢測(cè)篩選出合格產(chǎn)品。 但人工檢測(cè)代價(jià)較高,且容易發(fā)生誤檢,因此研發(fā)一種高效鉭電容表面缺陷檢測(cè)方法是十分必要的。
近年來,深度學(xué)習(xí)技術(shù)已成為研究熱點(diǎn),并在工業(yè)自動(dòng)檢測(cè)方面取得了可觀進(jìn)展。 在目標(biāo)檢測(cè)領(lǐng)域,學(xué)者們提出了多種多樣深度學(xué)習(xí)目標(biāo)檢測(cè)算法,其效果普遍優(yōu)于傳統(tǒng)的需要對(duì)圖像特征進(jìn)行手工提取的目標(biāo)檢測(cè)方法[2]。 深度學(xué)習(xí)目標(biāo)檢測(cè)算法按照不同的設(shè)計(jì)思想主要可分為兩大類,即:Twostage 系列算法和One-stage 系列算法。 其中,Twostage 系列算法在生成候選區(qū)域后,再將生成的一系列候選區(qū)域送入卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測(cè)與識(shí)別,代表 性 的 算 法 有 R - CNN ( Regions with CNN features)[3-5]系列算法等,這一系列算法的準(zhǔn)確率和定位精度相對(duì)較高,但檢測(cè)速度較慢,無法實(shí)現(xiàn)實(shí)時(shí)檢測(cè)。 One-stage 系列算法能夠端到端地通過輸入圖像推理得出圖中所包含目標(biāo)的位置與類別信息,主要有YOLO(you only look once)[6-9]系列算法、SSD(single shot multibox detector)[10]、RetinaNet[11]等。 One-stage 系列算法在性能精度上和Two-stage系列算法相比要略為遜色一些,但檢測(cè)速度更快,可以滿足實(shí)時(shí)檢測(cè)的要求。
基于深度學(xué)習(xí)的表面缺陷檢測(cè)方法有助于提高工業(yè)產(chǎn)品缺陷檢測(cè)的準(zhǔn)確性,現(xiàn)已廣泛應(yīng)用于表面缺陷檢測(cè)[12]。 戚銀城等學(xué)者[13]在Faster R-CNN 網(wǎng)絡(luò)上嵌入雙注意力機(jī)制,實(shí)現(xiàn)航拍輸電線路螺栓的缺陷檢測(cè)。 王宸等學(xué)者[14]將YOLOv3 應(yīng)用于輪轂焊縫缺陷的智能化檢測(cè),通過優(yōu)化激活函數(shù)等方法改進(jìn)網(wǎng)絡(luò),檢測(cè)精度高于傳統(tǒng)機(jī)器視覺檢測(cè)方法。 李鑫等學(xué)者[15]對(duì)YOLOv5 網(wǎng)絡(luò)中的卷積模塊進(jìn)行優(yōu)化,提高了鋼材表面缺陷檢測(cè)的檢測(cè)精度與速度。 劉群坡等學(xué)者[16]從多尺度特征融合的角度改良單次多框檢測(cè)器(SSD)算法,對(duì)微精密玻璃封裝電連接器的缺陷進(jìn)行檢測(cè)。
為了滿足實(shí)際生產(chǎn)環(huán)境中鉭電容表面缺陷檢測(cè)的要求,本文在YOLOv3 算法的基礎(chǔ)上,對(duì)模型進(jìn)行改進(jìn),增強(qiáng)YOLOv3 的檢測(cè)能力,從而實(shí)現(xiàn)了對(duì)鉭電容表面缺陷的有效檢測(cè)。
YOLOv3 主要包含2 部分,分別為:特征提取網(wǎng)絡(luò)DarkNet-53 與多尺度預(yù)測(cè)網(wǎng)絡(luò)(Feature Pyramid Network,F(xiàn)PN)。 研究可知,特征提取網(wǎng)絡(luò)DarkNet-53 實(shí)際為去除最后一層全連接層的其余部分(詳見圖1(a)),由大量卷積結(jié)構(gòu)與殘差塊堆疊而成。 卷積結(jié)構(gòu)由普通卷積層、BN(Batch Normalization)層、LeakyReLU 層 級(jí) 聯(lián) 而 成(詳 見 圖 1 (c) 中 的Convolutional),用來解決網(wǎng)絡(luò)的梯度爆炸與梯度消失問題,并能夠加速網(wǎng)絡(luò)收斂。 殘差塊包含1×1 和3×3 的2 個(gè)卷積結(jié)構(gòu),通過先降維再升維的方式輕化模型,殘差塊的首尾兩端通過殘差結(jié)構(gòu)的跳躍連接方式進(jìn)行連接(詳見圖1(d)中的Residual),改善隨著網(wǎng)絡(luò)層數(shù)不斷加深帶來的梯度彌散問題。 普通卷積層穿插于卷積塊之間,實(shí)現(xiàn)特征圖尺寸的變化,相比于使用池化層,減少了特征信息的丟失。 多尺度預(yù)測(cè)網(wǎng)絡(luò)FPN 部分,選取經(jīng)過8 倍、16 倍下采樣后的特征圖,分別與對(duì)應(yīng)的由上采樣后所得相同大小的特征圖進(jìn)行特征融合,再經(jīng)過一系列卷積層的計(jì)算完成對(duì)20×20、40×40、80×80 三個(gè)不同尺度的特征層上大、中、小目標(biāo)的檢測(cè)。 YOLOv3 網(wǎng)絡(luò)結(jié)構(gòu)所涉及的部分網(wǎng)絡(luò)結(jié)構(gòu)參見圖1。
圖1 YOLOv3 網(wǎng)絡(luò)的部分結(jié)構(gòu)Fig. 1 Partial structure of YOLOv3 network
改 進(jìn) YOLOv3 中 的 SPP ( Spatial Pyramid Pooling)模塊借鑒于SPPnet[17]中的SPP 結(jié)構(gòu),有4條分支,見圖1(b)。 第一個(gè)分支直接由輸入接到輸出,第2、3、4 個(gè)分支分別為池化核為5×5、9×9、13×13 的最大池化結(jié)構(gòu),步距均為1,意味著池化前進(jìn)行padding 填充,在池化后得到的特征圖尺寸大小和深度不變。 在DarkNet-53 的輸出與第一個(gè)預(yù)測(cè)特征層前加入SPP 結(jié)構(gòu),通過上一級(jí)輸入與5、9、13 三個(gè)最大池化下采樣,實(shí)現(xiàn)了不同尺度的特征融合,顯著增加了感受野,并且?guī)缀醪粫?huì)降低網(wǎng)絡(luò)運(yùn)行速度。
YOLOv3-SPP 網(wǎng)絡(luò)中的損失函數(shù)L 由置信度損失Lconf、分類損失Lcla、定位損失Lloc三部分構(gòu)成,損失函數(shù)可用如下公式來描述:
其中,λ1、λ2、λ3為平衡系 數(shù)。 置信度損 失Lconf、 分類損失lcla均由二值交叉熵?fù)p失(Binary Cross Entropy)計(jì)算得出,以及Lloc、Confidence、LIoU的系列計(jì)算公式具體如下:
其中,oi∈[0,1],為預(yù)測(cè)框與真實(shí)框的IoU值;為預(yù)測(cè)的置信度;N為正負(fù)樣本總個(gè)數(shù);Npos為正樣本個(gè)數(shù);Oij∈{0,1},表示第i個(gè)預(yù)測(cè)框中是否存在第j類目標(biāo);C^ij為預(yù)測(cè)目標(biāo)概率。
交并比(Intersection-over-Union,IoU) 是衡量預(yù)測(cè)框與真實(shí)框重合度的評(píng)價(jià)指標(biāo),其值為目標(biāo)框與真實(shí)框交集與并集的比值,如圖2 所示。IoU值可由如下公式來求得:
圖2 IoU 計(jì)算Fig. 2 IoU calculation
在置信度誤差計(jì)算中,見前文式(5),IoU的大小直接決定了預(yù)測(cè)框與真實(shí)框的相似度情況,對(duì)損失函數(shù)的計(jì)算有著重要影響。 置信度損失與定位損失的計(jì)算均依賴于IoU,但是使用IoU時(shí)對(duì)于預(yù)測(cè)框和真實(shí)框不相交、2 個(gè)邊框的真實(shí)重疊情況等問題,無法有效做出判斷,直接用IoU計(jì)算損失有一定問題:
(1)當(dāng)預(yù)測(cè)框和真實(shí)框交集為空時(shí),IoU值簡(jiǎn)單地等于0,無法反映出兩者的偏差大小。
(2) 對(duì)于面積不變的一組真實(shí)框與預(yù)測(cè)框,改變預(yù)測(cè)框的尺寸與位置,當(dāng)真實(shí)框與預(yù)測(cè)框的交集大小相同時(shí),其IoU值恒定,即無論預(yù)測(cè)框與真實(shí)框的位置關(guān)系如何、尺寸比例如何,損失都不變,無法對(duì)預(yù)測(cè)框與真實(shí)框的重合中心點(diǎn)位置、尺寸差異做出有效反饋。 如圖3 所示。
圖3 IoU 的計(jì)算缺陷Fig. 3 Calculation flaws of IoU
為了解決這一問題,隨之衍生出多種基于IoU的 損 失 計(jì) 算 方 式, 如 文 獻(xiàn)[18] 中 的GIoU(Generalized-IoU)、DIoU(Distance-IoU)以及CIoU(Complete-IoU)。 其中,GIoU通過預(yù)測(cè)框與真實(shí)框的最小外接矩形面積來反映預(yù)測(cè)框與真實(shí)框的遠(yuǎn)近。DIoU采用真實(shí)框和預(yù)測(cè)框的中心點(diǎn)距離與兩者最小外接矩形對(duì)角線長度作為衡量標(biāo)準(zhǔn),兼顧了預(yù)測(cè)框與真實(shí)框的遠(yuǎn)近與重合中心點(diǎn)位置兩種因素。 與DIoU相比,CIoU進(jìn)一步考慮了預(yù)測(cè)框與真實(shí)框的長寬比因素對(duì)損失計(jì)算的影響,加入了長寬比懲罰因子,CIoU的計(jì)算公式如式(3):
其中,b、bgt分別表示預(yù)測(cè)框、真實(shí)框的中心點(diǎn)坐標(biāo);ρ2表示兩點(diǎn)間的歐氏距離;av表示預(yù)測(cè)框與真實(shí)框的長寬比因子。 相比于GIoU、DIoU,CIoU對(duì)于預(yù)測(cè)框與真實(shí)框的差異問題解決得更全面、效果更好,所以本文使用CIoU。
在不同的數(shù)據(jù)集上,GIoU、DIoU、CIoU的預(yù)測(cè)結(jié)果可能因數(shù)據(jù)集的不同而有所差異,因此,對(duì)GIoU、DIoU,CIoU在本文使用的電容數(shù)據(jù)集上的運(yùn)行效果進(jìn)行驗(yàn)證,驗(yàn)證結(jié)果表明使用CIoU在訓(xùn)練的收斂速度及最終結(jié)果兩方面效果更佳。
Mosaic 數(shù)據(jù)增強(qiáng)方法是在一個(gè)與圖片大小相同的矩形中,隨機(jī)選取一點(diǎn)作為拼接點(diǎn),形成4 個(gè)不同的小區(qū)域,4 個(gè)區(qū)域內(nèi)分別填充隨機(jī)4 張圖片上對(duì)應(yīng)區(qū)域的圖像信息,形成一張融合后的圖像,接著通過隨機(jī)縮放、隨機(jī)裁減等方式進(jìn)行數(shù)據(jù)增強(qiáng)。Mosaic 數(shù)據(jù)增強(qiáng)方法通過4 張圖像的部分融合,豐富了小目標(biāo)和檢測(cè)物體的背景,增加了數(shù)據(jù)的多樣性,并且在進(jìn)行計(jì)算時(shí),一次會(huì)計(jì)算4 張圖像的數(shù)據(jù),相當(dāng)于變相增加了batch_size。 Mosaic 數(shù)據(jù)增強(qiáng)實(shí)現(xiàn)過程如圖4 所示。
圖4 Mosaic 數(shù)據(jù)增強(qiáng)Fig. 4 Mosaic data enhancement
YOLOv3 存在預(yù)設(shè)的3 組先驗(yàn)框,分別決定了在3 個(gè)預(yù)測(cè)特征層上預(yù)測(cè)框的大小,直接影響著預(yù)測(cè)結(jié)果的好壞。 貼合實(shí)際情況的先驗(yàn)框,在訓(xùn)練中能夠使模型更快地收斂,定位也更加精確。 研究時(shí),根據(jù)ImageNet 數(shù)據(jù)集設(shè)計(jì)得到了YOLOv3 中的先驗(yàn)框,但和本文所使用的電容數(shù)據(jù)集卻并不通用。因此,為了得出更加適用的先驗(yàn)框,使用K-means聚類算法重新計(jì)算電容數(shù)據(jù)集的先驗(yàn)框。
K-means 算法通過距離來反映數(shù)據(jù)間的相似性,兩者距離越近則越相似,以此劃分出不同的類。先驗(yàn)框與數(shù)據(jù)集中真實(shí)框的相似程度與兩者的IoU息息相關(guān),但兩者越相似,IoU值越大,為了達(dá)到距離越近、數(shù)據(jù)間的相似度越高的效果,使用1 -IoU作為“距離”,得到的先驗(yàn)框大小見表1。
表1 先驗(yàn)框尺寸Tab. 1 Prior box size
在特征提取網(wǎng)絡(luò)中,輸入的圖像信息經(jīng)過多層卷積計(jì)算,形成了多種不同分辨率的特征圖,這也導(dǎo)致了不同深度出現(xiàn)了語義差異。 高層特征圖中具有強(qiáng)大的語義信息,可以提高識(shí)別能力,但特征圖的分辨率降低。
層與層之間信息的傳播在深度學(xué)習(xí)網(wǎng)絡(luò)中至關(guān)重要,語義信息豐富的高層特征圖分辨率較低,識(shí)別能力必然受限。 YOLOv3 使用特征金字塔網(wǎng)絡(luò)[19](Feature Pyramid Network, FPN)來融合不同層次的特征信息,將低分辨率、強(qiáng)語義特征與高分辨率、弱語義特征通過從上至下的路徑以及橫向連接進(jìn)行融合,使得各個(gè)尺度上的語義信息都得到了增強(qiáng)。 如圖5 所示。
圖5 特征金字塔網(wǎng)絡(luò)Fig. 5 Feature Pyramid Network
特征金字塔網(wǎng)絡(luò)采用自上而下的路徑進(jìn)行特征融合,實(shí)現(xiàn)了對(duì)各個(gè)層級(jí)語義學(xué)習(xí)的豐富,但是在這一過程中定位信息并未得到增強(qiáng)。 針對(duì)這一點(diǎn),使用PANet(Path Aggregation Network)[20]結(jié)構(gòu)對(duì)檢測(cè)器及不同主干通過自下而上的路徑進(jìn)行特征融合,增強(qiáng)定位信息。 采用自上而下與自下而上的路徑增強(qiáng)方式,在FPN 結(jié)構(gòu)后添加PANet 結(jié)構(gòu),通過融合低層特征中包含的豐富定位信息,實(shí)現(xiàn)特征增強(qiáng)。具體來說,通過自下而上的路徑以及橫向連接,縮短較低層特征和最頂層特征之間的路徑,實(shí)現(xiàn)定位信息的傳遞,使整個(gè)網(wǎng)絡(luò)的層次結(jié)構(gòu)更加合理。 通過這2 種連接方式,F(xiàn)PN 層由上至下傳達(dá)語義特征,PANet 結(jié)構(gòu)由下至上傳達(dá)定位特征,完成了不同檢測(cè)層的特征融合,大大增強(qiáng)了模型的目標(biāo)檢測(cè)能力。改進(jìn)的特征融合網(wǎng)絡(luò)結(jié)構(gòu)如圖6 所示。 改進(jìn)后整體網(wǎng)絡(luò)結(jié)構(gòu)如圖7 所示。
圖6 改進(jìn)的特征融合網(wǎng)絡(luò)Fig. 6 Improved feature fusion network
圖7 改進(jìn)算法的網(wǎng)絡(luò)結(jié)構(gòu)Fig. 7 Improved algorithm network structure
本文算法在Ubuntu16.04 操作系統(tǒng)上使用pytorch 深度學(xué)習(xí)框架實(shí)現(xiàn),實(shí)驗(yàn)使用的硬件設(shè)備為:Intel?Xeon(R) CPU E5-2650v2@ 2.60 GHz 32 G CPU,NVIDIA GeForce GTX TITAN X GPU 12 G顯存。 初始學(xué)習(xí)率為0.01,采用warmup 策略對(duì)學(xué)習(xí)率進(jìn)行動(dòng)態(tài)調(diào)整,batch_size為8, 訓(xùn)練300 個(gè)Epoch。
在鉭電容的生產(chǎn)過程中,會(huì)出現(xiàn)表面具有污點(diǎn)、劃痕、凹痕、擦痕等缺陷的殘次品,這些缺陷出現(xiàn)在鉭電容的各個(gè)表面,因此,若想完成鉭電容的表面缺陷檢測(cè),必須了解其6 個(gè)表面的狀況。 本文實(shí)驗(yàn)中使用的鉭電容由某鉭電容生產(chǎn)商提供,通過電子照相機(jī)對(duì)鉭電容6 個(gè)表面進(jìn)行拍攝,得到1 164 張鉭電容照片,并用標(biāo)記軟件LabelImg 對(duì)圖像中鉭電容的污點(diǎn)、劃痕、凹痕、表皮脫落四種缺陷進(jìn)行標(biāo)記,再按10 ∶1 的比例劃分為訓(xùn)練集與測(cè)試集,形成本文使用的鉭電容數(shù)據(jù)集。 幾種缺陷類型如圖8 所示。
圖8 數(shù)據(jù)缺陷類型Fig. 8 Data defects type
本文采用(mean Average Precision,mAP) 平均準(zhǔn)確率均值以及(Frames Per Second,F(xiàn)PS) 每秒檢測(cè)幀數(shù)來評(píng)估本文算法的性能。 圖9 為改進(jìn)算法與未改進(jìn)算法訓(xùn)練過程中的Loss值。 由圖9 可以看出,改進(jìn)算法不僅損失值更低,而且收斂速度也相對(duì)較快。 為了評(píng)估本文改進(jìn)算法的性能,將目前主流的目標(biāo)檢測(cè)網(wǎng)絡(luò)與本文算法在同一數(shù)據(jù)集的運(yùn)行性能進(jìn)行比較,對(duì)比結(jié)果見表2。
圖9 改進(jìn)前后loss 曲線Fig. 9 The loss curve before and after the improvement
通過表2 可以看出,本文算法的mAP值達(dá)到了89.70%,在各類算法中有著最高的平均準(zhǔn)確率均值,相比于改進(jìn)前的YOLOv3-SPP 算法,mAP值提高了4.79%,并且檢測(cè)單張圖片所消耗的時(shí)間也只多出0.008 s。 與Faster_RCNN 算法相比,本文算法的mAP值有3.82 個(gè)百分點(diǎn)的提升,單張圖片的檢測(cè)時(shí)間快出近2.4 倍。 與RetinaNet 算法相比,mAP值提升了約7%,F(xiàn)PS高出19.55。 在平均準(zhǔn)確率均值與檢測(cè)速度兩方面,本文算法均優(yōu)于上述2 種算法。 SSD 算法檢測(cè)速度快,單張圖片的檢測(cè)時(shí)間僅為本文算法的二分之一,但其mAP值僅為80.67%,為本次實(shí)驗(yàn)各類算法中的最低值,低于本文算法9.03%。YOLOv5 算法是目前YOLO 系列算法的代表性成果,而本文算法的mAP值要比其高出3.54 個(gè)百分點(diǎn),單張圖片的檢測(cè)時(shí)間則要低9 ms。 綜合前文論述可知,相比于其他幾類算法,本文算法平均準(zhǔn)確率均值最高,檢測(cè)速度雖然有待改進(jìn),但仍可滿足實(shí)時(shí)檢測(cè)的要求,具有一定的優(yōu)越性。
表2 算法性能對(duì)比Tab. 2 Performance comparison of algorithms
為了滿足實(shí)際生產(chǎn)環(huán)境中鉭電容表面缺陷檢測(cè)的要求,基于YOLOv3 網(wǎng)絡(luò)模型做出了一些改進(jìn),以提升模型在鉭電容表面缺陷檢測(cè)任務(wù)中的檢測(cè)能力,使用K-means 聚類算法優(yōu)化先驗(yàn)框。 使用CIoU進(jìn)行損失函數(shù)的計(jì)算,加速收斂、提高定位精度;使用Mosaic 數(shù)據(jù)增強(qiáng)方法強(qiáng)化數(shù)據(jù)集,提升了模型的檢測(cè)能力。 采用了FPN+PANet 結(jié)構(gòu)的特征融合層,增強(qiáng)了模型的語義信息與定位信息,加強(qiáng)了模型的檢測(cè)效果。 實(shí)驗(yàn)結(jié)果表明,改進(jìn)的YOLOv3 算法的mAP值達(dá)到了89.70%,比原YOLOv3-SPP 算法提升了4.79 個(gè)百分點(diǎn)。 相比于其他主流算法,該算法在電容表面缺陷檢測(cè)中有更高的平均準(zhǔn)確率均值,且能滿足實(shí)時(shí)檢測(cè)的要求。 本文算法也存在一些不足,在網(wǎng)絡(luò)模型Head 部分增加模塊的設(shè)計(jì)雖然提升了mAP值,但也導(dǎo)致了檢測(cè)速度的下降,如何能夠做到兩者兼顧,是后續(xù)亟待深入研究的主要課題。