周天宇,朱啟兵,黃 敏,徐曉祥
1.江南大學 輕工過程先進控制教育部重點實驗室,江蘇 無錫 214122
2.無錫市創凱電氣控制設備有限公司,江蘇 無錫 214400
光發射次模塊(transmitter optical subassembly,TOSA)可以實現光電信號的轉換,在光通信領域具有廣泛的應用。作為TOSA的重要組成部分,載波芯片(chip on carrier,COC)的質量好壞對TOSA是否能夠長期穩定地工作有著重大的影響。由于制造工藝和生產環境的影響,崩口、定位柱破損以及波導區域污漬是COC生產過程中經常出現的三種典型缺陷。研究高效、快速而準確的COC缺陷自動檢測方法,對COC質量控制與故障檢測具有重要的實際意義。
隨著深度學習的發展,越來越多的基于深度卷積神經網絡的目標檢測方法被提出[1-4],這些方法主要可以分為兩類:一類是雙階段(two stage)目標檢測算法;另一類是單階段(one stage)目標檢測算法。其中,雙階段算法是基于區域推薦的分類方法實現的,代表性算法有RCNN[5]、Fast R-CNN[6]、Faster R-CNN[7]、Mask R-CNN[8]、Cascade R-CNN[9]和Sparse R-CNN[10]等。單階段算法是基于端到端的回歸方法實現的,代表性算法有SSD[11]、YOLO[12]、YOLOv2[13]、YOLOv3[14]和YOLOv4[15]等。雙階段分類算法具有較高的檢測準確性而單階段回歸算法具有更快的檢測速度,隨著眾多算法的提出,這些方法的檢測效果在不斷提高,尤其是YOLO系列算法經過不斷的更新優化,網絡性能進一步提升。
基于深度卷積神經網絡的目標檢測算法被廣泛應用于工業產品的表面缺陷檢測。黃鳳榮等人[16]提出了一種基于Faster R-CNN的發動機零件表面缺陷檢測算法;Chen等人[17]將生成對抗網絡與YOLOv3算法進行結合,研究了一種芯片晶粒的表面缺陷檢測方法。Perez等人[18]提出了一種基于VGG-16的預訓練卷積神經網絡分類器,并結合CAM網絡實現建筑物表面缺陷的檢測和定位;金穎等人[19]研究了一種基于Mask R-CNN的柱塞式制動主缸內槽表面缺陷檢測系統。
現有基于深度卷積網絡的表面缺陷檢測算法為了取得更好的檢測準確性,通常依賴于大型深度網絡,存在參數量過多、檢測時間慢的問題,難以滿足COC缺陷檢測實時性的需求。針對此問題,本文提出了一種基于輕量級卷積神經網絡的COC缺陷檢測算法YOLOEfficientnet。
首先,借鑒了YOLOv3網絡端到端單階段檢測的思想,引入了輕量級特征提取網絡Efficientnet[20]作為主干網絡對圖像進行特征提取。其次,為了解決下采樣的過程中導致信息丟失的問題,引入SPP-Net[21]結構來增大圖像的感受野,分離出更加顯著的上下文特征。最后,針對COC缺陷多尺度以及波導區域污漬小目標難以檢測的問題,引入了PANet[22]結構進行多尺度特征融合。本文提出的基于輕量級卷積神經網絡的COC缺陷檢測算法YOLO-Efficientnet在保證檢測準確性的同時,減少了網絡的參數量,縮短了檢測時間,能夠對COC缺陷進行高效、快速而準確地檢測。
本文提出的YOLO-Efficientnet算法的網絡結構如圖1所示,為了減少網絡參數,縮短檢測時間,主干網絡采用輕量級卷積神經網絡Efficientnet,對尺寸為416×416的輸入圖片進行8倍、16倍以及32倍的下采樣特征提取,得到52×52、26×26和13×13這3種不同尺度的特征圖。為了解決Efficientnet對輸入圖片進行特征提取下采樣過程導致的信息丟失問題,增大圖像的感受野,在Block7之后引入SPP-Net結構,分別使用大小為13×13、9×9、5×5和1×1的池化核進行最大池化處理,分離出更加顯著的上下文體征。針對COC缺陷多尺度以及波導區域污漬小目標難以檢測的問題,引入PANet對52×52、26×26和13×13這3個不同尺度的特征圖進行增強特征融合,在原有的特征金字塔自上而下(topdown)特征融合的基礎上,增加自下而上(bottom-up)的增強路徑,通過對淺層特征圖和深層特征圖的反復提取,更加充分地融合不同深度的特征信息。最終得到3個不同尺度的特征圖輸出y1、y2和y3,實現多尺度預測。

圖1 YOLO-Efficientnet網絡結構Fig.1 Network structure of YOLO-Efficientnet
在預測階段,對于每張輸入圖像,預測包括目標邊界框位置、置信度和目標類別的三維張量。將y1、y2和y3這3種尺寸分別為13×13、26×26和52×52特征圖劃分為S×S個單元格(S分別取13、26和52),給每個網格設置3個先驗框來預測3個邊界框,輸出維度為S×S×(3×(4+1+M)),即4個邊界框的偏移量、1個缺陷目標置信度和M個缺陷類型。最后通過非極大值抑制(non-maximum suppression,NMS)的方法剔除重復的邊界框,從而實現目標檢測。
近年來,隨著卷積神經網絡的發展,為了提升網絡性能,提高模型的泛化能力,通常通過網絡的深度、網絡的寬度或者網絡的分辨率這3個維度實現網絡縮放。其中,網絡的深度是指增加網絡的層數,通過更深的神經網絡來增強特征提取能力;網絡的寬度是指加深網絡的通道數,增加每一層提取的特征層數,得到更多的特征;網絡的分辨率是指通過增大輸入圖片的分辨率來減少圖像信息損失,使得網絡能夠學習更加豐富的特征。然而,在前人的研究中,大多只通過放大其中的一個維度以達到更高的準確率,例如目前常用的殘差網絡ResNet[23],從ResNet-18到ResNet-200,通過將網絡深度從18層增加到200層來提高網絡的準確率。3個維度中任一維度的放大都可以帶來精度的提升,但隨著倍率越來越大,提升卻越來越小,同時會引入更多的參數,增大模型的計算量,模型準確率也會很快達到飽和。
Google2019提出的輕量級網絡Efficientnet[20],利用復合模型縮放(compound model scaling)方法,對網絡的深度、寬度以及分辨率進行同時縮放,綜合優化3個維度提升網絡指標,在提高網絡準確率的情況下,大大減少了模型的參數量和計算量。Efficientnet網絡在不同的縮放比例條件下,可得到不同的模型結構(Efficient-B0~Efficient-B7)。
綜合考慮檢測時間和檢測準確性,本文選用Efficientnet-B3作為主干網絡對輸入圖像進行特征提取。Efficientnet-B3的網絡結構如表1所示,Efficientnet-B3由1個Stem層和7個Block層組成。Stem層是1個3×3的卷積,Block層由不斷堆疊的倒殘差模塊MBConv-Block組成,其中,MBConvBlock1和MBConvBlock6分別表示其擴展比例為1和6。在Block3、Block5和Block7后輸出52×52、26×26和13×13這3種不同尺度的特征圖。

表1 Efficientnet-B3網絡結構Table 1 Network structure of Efficientnet-B3
作為Efficientnet的基本模塊,倒殘差模塊MBConv-Block在移動翻轉瓶頸卷積(mobile inverted bottleneck convolution,MBConv)模塊的基礎上,引入了壓縮與激發網絡(squeeze-and-excitation network,SENet)的注意力思想,在通道維度上引入注意力機制,這種注意力機制讓模型可以更加關注信息量最大的通道特征,而抑制那些不重要的通道特征。
MBConv Block的網絡結構如圖2所示。首先對輸入圖片進行1×1的卷積操作并根據擴展比例改變輸出通道維度(如擴展比例為6時,會將通道維度提升6倍;如果擴展比例為1,則直接省略該1×1的卷積和其之后批歸一化和激活函數)。在此基礎上,利用k×k的卷積核對擴展后的特征圖在二維平面內進行逐通道深度卷積(depthwise Conv)操作;并在通道維度上引入SE module注意力機制,獲得不同通道的權重對特征圖進行通道相乘操作,使模型可以更加關注信息量最大的通道特征,而抑制那些不重要的通道特征。利用多個1×1的卷積核對特征圖進行逐點卷積(pointwise Conv)操作,恢復原通道維度。最后進行輸入的殘差跳躍連接,得到最終的特征圖輸出。

圖2 MBConv Block網絡結構Fig.2 Network structure of MBConv Block
相比于常規卷積操作,MBConv Block網絡利用深度卷積和逐點卷積操作來提取特征,具有更少的參數量和運算量。同時,SE module注意力機制的引入有助于提高模型的精度。
為了解決Efficient-B3對輸入圖片進行特征提取下采樣的過程中導致信息丟失的問題,增大圖像的感受野,如圖3所示,在最后一層Block7之后引入SPP結構,分別使用大小為13×13、9×9、5×5和1×1的池化核進行最大池化處理,分離出更加顯著的上下文體征,有利于實現多尺度預測。

圖3 SPP-Net網絡結構Fig.3 Network structure of SPP-Net
深層特征圖包含更多的語義信息,注重輪廓特征,適合大目標的檢測;淺層特征圖位置信息,注重細節特征,適合小目標的檢測。針對COC缺陷多尺度以及波導區域污漬小目標難以檢測的問題,引入PANet對淺層特征圖和深層特征圖進行增強特征融合。
PANet的結構如圖4所示,在原有的特征金字塔FPN自上而下(top-down)特征融合的基礎上,增加自下而上(bottom-up)的增強路徑,通過對淺層特征圖和深層特征圖的反復提取,更加充分地融合不同深度的特征信息。引入PANet結構,對13×13、26×26和52×52這3個不同尺度的特征圖進行增強特征融合,最終得到3個不同尺度的輸出y1、y2和y3,實現多尺度預測。

圖4 PANet網絡結構Fig.4 Network structure of PANet
將3種尺度的特征圖y1、y2和y3分別劃分為13×13、26×26和52×52個單元格,給每個單元格設置3個先驗框來預測缺陷目標的邊界框。邊界框的預測過程如圖5所示,虛線矩形框是預設先驗框,寬為pw,高為ph,中心點在特征圖上的坐標為(c x,c y)。網絡通過預測缺陷的位置坐標的偏移量t x,t y,tw,th從而得到缺陷的實際位置。實線矩形框是通過網絡預測偏移量得到的預測邊界框,中心點坐標為(bx,b y),寬為bw,高為bh。計算公式如下:


圖5 邊界框預測Fig.5 Bounding box prediction
本文提出的YOLO-Efficientnet算法的損失函數由邊界框誤差losscoord、置信度誤差lossIOU和類別誤差lossclass三部分組成,其中邊界框誤差采用的是均方誤差,置信度誤差和類別誤差采用交叉熵誤差。將尺寸分別為13×13、26×26和52×52的特征圖y1、y2和y3劃分成S×S個單元格(S分別取13、26和52),每個單元格預測3個邊界框,損失函數為:

其中,λcoord是邊界框預測的懲罰系數,λobj和λnoobj分別表示包含和不包含目標時置信度的懲罰系數。和分別表示第j個候選邊界框所在的第i個網格負責和不負責檢測該目標;(x i,yi,w i,h i)和分別表示預測邊界框和真實邊界框的中心點橫坐標、縱坐標,邊界框的寬度和高度;ci和?分別表示預測置信度和真實置信度;M表示目標類別的數量;p i(c)和分別表示網格中的目標屬于某個類別c的預測概率和真實概率。
通過構建邊界框誤差、置信度誤差和類別誤差的損失函數對網絡進行訓練,預測目標的位置信息和類別信息,最后,通過置信度閾值的設置來過濾掉得分較低的邊界框,對剩下的邊界框進行非極大值抑制操作來剔除重復的邊界框,從而實現COC缺陷檢測。
本文實驗是基于TensorFlow的Keras深度學習框架實現。在硬件配置為Inter?Core?i7-5930K CPU@3.50 GHz,32 GB內存,NVIDA GeForce GTX TITAN X操作系統為Windows 10(64位)的服務器下進行??傆柧気喆危╡poch)為300,初始學習率設置為0.001,批量大小設置為16,權重衰減系數為0.000 5,動量設置為0.9,在第100次epoch之后減小為0.000 1。
本文的數據是COC經過200倍顯微相機采集得到的圖像,COC缺陷圖像如圖6所示,其中藍色實線框表示崩口缺陷,黃色虛線框表示波導污漬缺陷,紅色點劃線框表示定位柱破損缺陷。

圖6 COC缺陷Fig.6 COC defect
COC缺陷圖像共200張,選取150張進行訓練,50張用作測試。對150張訓練圖像進行水平翻轉、垂直翻轉、提高亮度、引入高斯噪聲以及銳化操作實現數據集擴充,得到4 800張訓練樣本。使用Labellmg圖像標注軟件進行人工標注,數據集格式為VOC2007。
將50張待檢測COC缺陷圖像輸入訓練好的模型進行測試,采用檢測準確性、誤檢率和漏檢率作為性能指標,其中誤檢率表示對缺陷的類別進行誤判的概率,漏檢率表示對缺陷未能檢測到的概率。對波導區域污漬、崩口以及定位柱破損這3類缺陷進行檢測統計的結果如表2所示。本文提出的YOLO-Efficientnet算法對COC波導區域污漬、崩口以及定位柱破損3類缺陷的檢測準確率分別達到了100%、98%和96.3%,未出現誤檢情況,對COC缺陷的平均檢測準確率達到了98.5%。

表2 缺陷檢測統計Table 2 Defect detection statistics
為了進一步驗證YOLO-Efficientnet算法對COC缺陷檢測的有效性,將本文算法與常用的目標檢測算法YOLOv3、YOLOv4以及現有的輕量級算法YOLOv4-tiny在COC缺陷數據集上進行對比實驗,實驗參數采用默認參數。考慮到實際生產需求,采用COC缺陷平均檢測準確率、參數量以及每張COC缺陷圖像的平均檢測時間作為衡量指標,實驗結果如表3所示。

表3 不同算法COC缺陷檢測結果Table 3 COC defect detection results of different algorithms
相比較傳統的Faster R-CNN以及SSD算法,本文YOLO-Efficientnet算法的檢測準確性大幅提高,同時縮短了檢測時間。
與YOLOv3和YOLOv4算法相比,由于輕量級主干網絡Efficientnet-B3引入,本文算法具有更少的參數量,縮短了檢測時間;同時,由于引入SPP-Net結構和PANet增強特征融合,本文算法取得了更高的準確率。
此外,由于現有輕量級網絡YOLOv4-tiny算法采用了主干網絡CSPDarknet53-tiny以及簡化版的圖像金字塔,只對兩種尺度的特征圖進行特征融合,因此,雖然檢測時間更短但是檢測準確率大幅降低,不能滿足COC缺陷檢測的需求。
以上實驗表明,本文提出的YOLO-Efficientnet算法,對COC缺陷檢測的準確率達到了98.5%,每張COC缺陷圖像的平均檢測時間達到39 ms,滿足COC缺陷實時檢測的需求,檢測結果如圖7所示。

圖7 基于YOLO-Efficientnet的COC缺陷檢測結果圖Fig.7 COC defect detection results based on YOLO-Efficientnet
本文針對COC的3類缺陷的實時檢測問題,提出了一種基于輕量級卷積神經網絡的COC缺陷檢測算法YOLO-Efficientnet。借鑒YOLOv3目標檢測的思想,引入了輕量級卷積網絡Efficientnet進行特征提取,減少了網絡參數,縮短了檢測時間。同時,引入SPP結構增大圖像感受野,采用PANet進行增強特征融合,從而實現多尺度預測。實驗結果表明,本文提出的算法對COC缺陷檢測的準確率達到了98.5%,檢測時間達到每張圖片0.42 s,滿足COC缺陷高效、快速而準確檢測的需求。