高欽泉,黃炳城,劉文哲,童 同*
(1.福州大學物理與信息工程學院,福州 350116;2.福建省醫療器械與醫藥技術重點實驗室(福州大學),福州 350116;3.福建帝視信息科技有限公司,福州 350001)
目標檢測一直是計算機視覺中的經典問題,包含圖像分類和目標定位兩個任務,在人臉識別、自動駕駛、工業檢測等領域有著廣泛的應用。隨著深度學習的發展,許多基于卷積神經網絡(Convolutional Neural Network,CNN)的目標檢測性能得到進一步的提升。目前基于CNN 的目標檢測主要分為兩種:1)二階段目標檢測,利用候選區域生成階段生成一組候選目標檢測框,然后利用CNN 對候選區域的特征進行分類和位置回歸,典型代表為區域卷積神經網絡(Region-Convolutional Neural Network,R-CNN)系列[1-3];2)單階段目標檢測,它們取消了生成候選區域階段,直接利用CNN 來預測邊界框,典型代表為SSD(Single Shot multibox Detector)系列[4-5]、YOLO(You Only Look Once)系列[6-8]。
本文所依托的骨干網絡CenterNet[9]將需要成對關鍵點的問題簡化成中心關鍵點的估計問題,由于CenterNet 只通過提取目標的中心點且不需要對中心點進行后處理,極大地加快了算法的整體速度。基于關鍵點的目標檢測中,大大減少了計算量,降低了基于anchor-based所導致的大量正負樣本不均衡,減少了大量超參數設計。基于關鍵點的目標檢測以其簡潔、高效率的優點將一階段目標檢測推向另一高度。一般來說,二階段檢測器具有比單階段檢測器精度更高的優勢,而單階段檢測器比二階段檢測器在時間和效率更具優勢。
目前,國內已有一些針對竹條表面缺陷檢測的研究。賀峰等[10]提出了一種基于小波多尺度分解的方法實現竹條六種缺陷的檢測。該方法首先通過圖像共生矩陣的逆差矩差分值獲得的最佳小波分解層對竹條紋理進行濾除,然后利用OTSU自動閾值檢測算法完成缺陷檢測。張殿甫等[11]提出了一種基于機器視覺的竹條表面缺陷檢測方法。該方法先將對竹條采集到的彩色圖像轉為灰度圖,之后進行中值濾波去除噪聲,平滑后將灰度圖轉為二值圖像;然后用sobel算子提取竹條邊緣;最后對竹條邊緣進行分段處理,結合最小二乘法對每一段進行直線擬合,依據擬合之后直線的斜率大小來判斷是否存在缺陷。
近年來,隨著深度學習的快速發展,很多傳統的工業問題利用深度學習的方法得到了更好的解決。面對傳統工業問題,一般是將由CNN 構成的目標檢測網絡框架首先使用分類任務數據集(如ImageNet[12])進行預訓練,使其擁有強大的分類能力,然后利用遷移學習的方法將模型針對對應目標工業數據集進行調優細化,從而實現在工業問題上的檢測。但是,采用將一般CNN 構成的目標檢測框架直接遷移應用到工業檢測問題,一般存在以下幾個影響:
1)直接采用遷移學習,可能導致模型泛化性能弱。目前現有基于CNN 的目標檢測網絡框架主要針對的是一般場景的問題,如COCO[13]涵蓋80類物體,而工業場景數據與這些數據存在較大的差別,所以可能導致預訓練模型的特征提取能力在工業場景數據上表現較差。
2)基于少數據的模型訓練,可能導致檢測性能較差。比如竹條來源復雜,沒辦法采集所有類型的數據,所以竹條表面缺陷數據量少,導致CNN不能充分地學習。
3)基于現實工業竹條表面缺陷檢測應用中,其數據不適合用數據增廣的方法來提高少量數據缺陷樣本。比如采用旋轉、翻轉等操作,因為在工業應用中,數據的呈現形式是固定的,即不可能出現翻轉、旋轉后的那種數據形態,所以這些數據增廣的方法對提高現實工業竹條表面缺陷檢測應用中的性能表現影響不大。
基于以上問題,本文提出一種改進CenterNet 的基于輔助檢測的竹條表面缺陷檢測方法,將基于關鍵點檢測的CenterNet 作為骨干網絡,并通過一種注意力機制的連接的方法與輔助學習檢測網絡結合。實驗采用平均精度均值(mean Average Precision,mAP)來評估方法,在竹條表面缺陷檢測數據集上使用相同的訓練集和測試集,本文方法比YOLOv3 的mAP 提高了16.45個百分點,比CenterNet 的mAP 提高了9.06個百分點。
綜上所述,本文的工作如下:1)使用基于深度學習的方法來進行竹條的缺陷檢測。利用CNN 的可學習性,能夠同時檢出竹黃、竹青、霉斑、蟲洞等十種缺陷,減少了傳統機器視覺所需的超參數,簡化了檢測過程,提高了檢測效率。2)提出了一個針對竹條表面缺陷特點的輔助檢測網絡。該網絡模型小,訓練速度快,能夠得到較精確的目標定位,輔助骨干網絡,提高檢測性能。3)使用一個注意力機制的連接方式將輔助檢測網絡和預訓練的骨干網絡結合,這一方法能更好地學習不同網絡階段產生的特征圖,能夠更合理地分配不同重要性程度的特征圖的比重,讓特征圖利用得到最優化,減少冗余特征,提高特征處理速度,使目標檢測性能得到優化。4)針對竹條表面缺陷特點,采用梯度均衡損失函數用于計算對位置坐標回歸。相比L1損失函數的方法,梯度均衡損失函數在計算位置坐標時在L1損失函數的基礎上加入了梯度密度的影響,能達到更好的回歸效果。
本文模型由三個部分組成:骨干網絡、輔助檢測網絡和注意力機制連接。骨干網絡采取經過(ImageNet)預訓練的模型,具備強大的特征提取能力;而輔助檢測網絡則采取針對竹條表面缺陷數據從零訓練。文獻[14-15]中表明,當訓練數據少時,使用基于預訓練的模型能夠快速收斂以及得到較好的檢測精度;當訓練數據足夠時,使用預訓練模型僅只能比從零開始訓練的模型更快地收斂,并不能帶來精度的提升;而當模型從零開始訓練時,能夠得到較精確的目標定位,但相比經過預訓練的模型則需要花費更多的時間。本文以CenterNet-dla34[9,16]為基礎網絡,因為它具有高檢測精度與高效率的特點。如圖1(a)所示,將骨干網絡最后幾層得到的特征圖通過注意力機制連接的方式分別與輔助檢測網絡所產生的特征圖結合。為了能夠得到更精確的目標信息,在輔助檢測網絡中采用可變形卷積(Deformable Convolution,DCN)[17]替代了普通卷積,因為在可變形卷積中,其卷積核能夠根據目標形狀的不同而做出相應的改變,能夠得到更為精確的竹條表面缺陷信息。

圖1 增強CenterNet網絡框架Fig.1 Network framework of enhanced CenterNet
表1 為竹條表面缺陷數據集的每一類缺陷類型的樣本數,表2 為缺陷的長寬比和面積比詳情。可以看出,竹條表面缺陷的樣本數存在較大的不均衡,如霉斑、裂邊、內碳等具有較多的樣本數,而蟲洞、竹黃、刀疤等缺陷的樣本數則較少。因為所采用的竹條表面缺陷數據極不均衡,所以本文采用Focal Loss[18]結合梯度均衡損失函數(Gradient Harmonizing Mechanism Loss,GHM Loss)[19]來減小由數據不平衡帶來的影響,因為Focal Loss 及GHM Loss 均能有效解決數據中的樣本不均衡現象。

表1 竹條表面缺陷數據詳情Tab.1 Details of bamboo strip surface defects

表2 竹條表面缺陷長寬比與面積比詳情Tab.2 Details of aspect ratio and area ratio of bamboo strip surface defects
1.1.1 骨干網絡
本文以CenterNet 為基礎網絡,在CenterNet 選取DLA-34為骨干分類網絡,如圖2所示為本文所采取的CenterNet-dla34網絡結構。其中DLA(Deep Layer Aggregation)為一個帶有多級跳躍連接的圖像分類網絡,由下采樣模塊、上采樣特征融合模塊和特征結合傳遞輸出等三個部分組成,該網絡使用跳躍連接(skip connection)的方式將低層卷積層的輸出與當前層的卷積層輸出通過可變形卷積的方式進行上采樣。

圖2 CenterNet-dla34網絡結構Fig.2 CenterNet-dla34 network structure
1.1.2 輔助學習檢測網絡
本文的輔助學習檢測網絡結構如圖1(a)所示,其中輔助檢測網絡結構由三個部分組成:
1)降采樣特征提取表示,由一個自適應降采樣層和卷積層表示。首先輸入竹條圖像經過一個降采樣處理,然后再經過兩個連續的卷積層,每個卷積層后都接一個非線性激活函數ReLU來增強網絡的非線性表達能力。
2)多尺度特征融合,如圖1(b)所示,由多個卷積組成,為了得到多尺度的上下文信息,本文采用了空洞卷積[20]對其進行處理。首先將降采樣特征提取表示部分的輸出作為多尺度特征融合的輸入,接著由三個卷積核大小為1×1 的卷積拆分成三個分支,然后采用三個卷積核大小為3×3 且空洞卷積率r分別為2、4、8 的卷積進行提取特征,接著對提取得到不同感受野的特征進行融合輸出到下一模塊。在本文方法中,使用空洞卷積有如下幾個優點:第一,在不降低圖像分辨率且不增加額外計算量的基礎上,擴大感受野。經觀察統計在竹條表面缺陷中,存在著缺陷目標大小不一且其長寬比等差距較大,如表1 所示,竹條表面缺陷的長寬比大部分落在(0,10.4)內,且竹條表面缺陷的面積比大部分為(0,0.025)區間,說明本文所采用的竹條數據集中竹條的大部分缺陷為細小且狹長的缺陷。擴大感受野可以檢測分割大缺陷目標,且可以精確定位目標。第二,使用不同的空洞卷積率的卷積,可獲得不同感受野的特征,即可獲得多尺度的缺陷特征。
3)使用卷積層對輸出特征信息作進一步處理,使用多個卷積對多尺度特征融合模塊的輸出信息進行處理,使得到的圖像特征更具有代表性。
1.1.3 注意力機制連接
注意力機制連接模塊參考了SENet(Squeeze-and-Excitation Networks)[21]與CBAM(Convolutionl Block Attention Module)[22]。文獻[23]中表明,h-swish(hard version of swish)和h-sigmoid激活函數能比ReLU和Sigmoid激活函數更有效地提高檢測精度,h-swish 和h-sigmoid 激活函數的計算量相對較小且能有效避免模型在量化計算時的精度損失。受此啟發,本文在CBAM 的基礎上分別將ReLU 和Sigmoid 換成h-swish 和h-sigmoid,在CBAM中提到了通道注意力機制主要關注物體的類別信息,而空間注意力機制主要關注的是物體的定位信息,所以在本文中分別利用通道注意力機制和空間注意力機制用于連接骨干分類網絡和輔助檢測網絡,然后將兩者的特征進行融合。注意力機制連接模塊可以通過學習的方式獲得兩個網絡的特征重要性程度,優化提取的圖像特征,避免了大量冗余特征,以獲得更好的特征表達,提高網絡的計算速度。
Focal Loss 能夠解決檢測任務中由于大量難易樣本數量不平衡的問題,因此被廣泛采用,本文也采用Focal Loss 來計算中心點的損失。假設輸入圖像I∈RW×H×3,其中W和H表示輸入圖像的寬和高。在預測時,要產生出關鍵點的熱力圖(keypoint heatmap),其中:R為輸出對應原圖的步長,文本中取R=4;C是在竹條表面缺陷檢測中對應檢測點的數量,本文中取C=10,表示有10個缺陷類別。

其中:α和β為Focal Loss 的超參數,本文中α和β分別為2 和4;N為圖像I的關鍵點數量。假設p為圖像I的中心點,且p~ 為的向下取整,用一個高斯核為:



本文參考CenterNet參數設置取:λoff=1,λsize=0.1。
本文使用的竹條表面缺陷數據集包含竹青、竹黃、黑節、裂片、裂邊、內碳、霉斑、刀疤、蟲洞、凹黃等十種竹條表面缺陷,如圖3所示。本文采用的竹條表面缺陷數據圖片共37 040張,對其中36 747張圖片采用LabelImg 進行標注,而且在標注圖片中隨機選取28 747 張圖進行訓練,并按照8∶2 的比例隨機選取22 997 張圖為訓練集,5 750 張圖片為驗證集,剩下的8 000張標注缺陷數據圖與293張未標注無缺陷圖組成為測試集,即測試集圖片共8 293張。

圖3 竹條表面缺陷的類型Fig.3 Types of bamboo strip defects
本文使用了相同的設置來初始化和訓練模型,采用CenterNet-dla34 為本文的骨干網絡,該骨干網絡首先在ImageNet 數據集上預訓練,在實驗中,使用512×512 的大小輸入到骨干網絡,批量大小(batch size)設置為8,學習率設定為0.000 125,在網絡訓練過程中首先凍結帶有預訓練的骨干網絡,只訓練本文提出的輔助學習檢測網絡,待輔助學習檢測網絡損失趨于穩定時,放開凍結,兩者結合一起訓練。共訓練140 epoch,且當在訓練到90 和120 epoch 的時候,學習率分別下降到當前值的1/10,在訓練期間,所有實驗均使用Adam[24]進行優化,并使用期默認的參數β1=0.9,β2=0.999。本文檢測采用的實驗環境為pytorch 框架,在Ubuntu16.04 系統下運行,實驗均在NVIDIA GTX2070 GPU上進行訓練和測試。
2.2.1 在竹條表面缺陷檢測數據集上的結果
1)數據均衡與數據增廣在竹條數據上的表現。
使用竹條表面缺陷數據集來驗證本文方法的效果,并稱利用本文方法改進后的模型為增強CenterNet。表3展示了增強CenterNet 與YOLOv3、CenterNet 以及針對本文竹條數據采用數據均衡的方法等在相同數據集、相同測試環境下的mAP結果對比。其中CenterNet+均衡數據是指:將竹條數據中的少量缺陷樣本如竹黃、刀疤、蟲洞等數據通過平移、旋轉、翻轉等方法將其增廣到與霉斑、裂邊、內碳等均衡的數據量并采用CenterNet 進行學習檢測;CenterNet+數據增廣則是針對竹條表面缺陷數據中的所有數據進行數據增廣到更大的數據量,采用CenterNet 進行學習檢測。由表3 可以看出,采用數據均衡與數據增廣的方法在竹條表面缺陷檢測上得到的mAP 分別為67.47% 和68.65%,這與原CenterNet 方法得到的66.94%的mAP 值相差不大,因為在竹條表面缺陷中,其缺陷特征具有固定的表現形式,與其經過翻轉、旋轉等得到的數據形式具有一定的差別,而本文采用針對竹條的缺陷特點通過輔助學習檢測網絡與骨干網絡的結合,使各類缺陷的檢測效果都有較大的提升。

表3 本文方法與其他方法的AP與mAP比較Tab.3 Comparison of AP and mAP between the proposed method and other methods
2)增強CenterNet在竹條數據上的表現。
由表2 可以看出,本文使用的竹條表面缺陷數據集的缺陷長寬比、缺陷面積比、缺陷類別樣本數存在較大的不均衡,竹條的缺陷長寬比大部分落在(0,10.4),且竹條的缺陷面積比大部分為(0,0.025),說明本文使用的竹條表面缺陷數據集形狀大部分為細小且狹長。由圖4 檢測結果可以看出,在針對狹長的竹黃、內碳、裂邊等缺陷的時候,增強CenterNet 能夠比YOLOv3和CenterNet進行更有效、更精準的檢測。

圖4 本文方法與其他方法檢測效果比較Fig.4 Comparison of detection effect of the proposed method and other methods
2.2.2 驗證本文模塊的有效性
1)基礎網絡與本文方法的比較。
為了驗證本文方法的有效性,針對輔助檢測網絡、多尺度融合模塊、注意力機制連接等做了如下實驗。在實驗過程中,采用相同的設置來初始化和訓練模型。如表4 所示,在竹條表面缺陷數據集上用基礎網絡CenterNet 得到了66.94%的mAP;在CenterNet 的基礎上引入輔助學習檢測網絡,mAP 提高了5.36 個百分點;將骨干網絡和輔助學習檢測網絡進行直接結合時,雖然輔助學習檢測網絡能幫助模型較精確地定位缺陷位置,但因為缺乏合理的特征融合方法,在模型學習得到的特征中存在大量冗余特征,所以引入了注意力機制的連接方法,這使模型的mAP 提升了1.9 個百分點。由表1 中可知,在竹條表面缺陷數據集中,缺陷的有效樣本分布極不均勻,針對輔助學習檢測網絡中的竹條表面缺陷特點,引入了GHM Loss,利用特征梯度分布的方法來引導缺陷定位,使本文方法在竹條表面缺陷數據集上獲得了76.9%的mAP。如圖5所示為基于CenterNet 上改進方法的損失函數收斂曲線,可看出本文方法在改進CenterNet上能夠有更優的表現。

表4 基礎網絡添加不同模塊的mAP結果Tab.4 mAP results of adding different modules to base network

圖5 基礎網絡添加不同模塊的損失曲線Fig.5 Loss cuves of adding different modules to base network
2)不同注意力機制的連接表示。
在表5 中,針對注意力機制連接方法采取了五種不同的方法,其中CT表示通道注意力,CT+表示在通道注意力中采用h-swish和h-sigmoid激活函數,SPT表示空間注意力,CBAM+表示在CBAM 方法的基礎上將激活函數更改為h-swish 和h-sigmoid。采用通道注意力機制的方式作為連接骨干網絡與輔助學習檢測網絡的方法能夠比骨干網絡和輔助學習檢測網絡直接結合情況的mAP 提高0.5 個百分點,說明引入注意力機制的方式能在一定程度上提高模型的學習能力,但仍需更有效的方式。當在通道注意力中的ReLU 和sigmoid 激活函數替換為h-swish 和h-sigmoid 時,獲得了73.7%的mAP,說明在針對竹條表面缺陷形狀中引入使用分段線性激活函數的通道注意力機制連接的方法能讓模型更加準確地關注缺陷特征的學習,有效地提高了檢測的精度。但在使用空間注意力機制進行連接時,檢測精度比不使用注意力機制連接的mAP 還下降了0.7 個百分點。在使用CBAM 作為骨干網絡與輔助學習檢測網絡的連接方式時,其檢測精度比不采用注意力機制連接的mAP 提高了1.9 個百分點,且當將CBAM 的激活函數替換成h-swish和h-sigmoid時,其檢測獲得了最好的效果。

表5 不同注意力機制連接的mAP結果Tab.5 mAP results of integrating with different attention mechanisms
3)不同空洞卷積率的表示。
嘗試三種不同空洞卷積率的空洞卷積進行輔助檢測網絡中缺陷特征的提取,結果如表6 所示。在不采取空洞卷積進行特征提取時,mAP 為69.9%;當采用三個分支分別為2、4、8的空洞卷積率進行結合時,獲得的mAP 為76.9%,模型性能有了一個較好的提升,說明在竹條表面缺陷數據集中采用空洞卷積,通過增大感受野對模型獲取上下文的多尺度缺陷特征具有重大意義。

表6 不同空洞卷積率的mAP結果Tab.6 mAP results of different dilation rates
本文針對竹條表面缺陷特點利用深度學習的方法來進行竹條表面缺陷檢測,能夠在較少缺陷數據的情況下獲得較好的檢測結果。且針對目前現有網絡模型的單一訓練模式,本文提出一種結合預訓練網絡遷移學習和從零訓練的輔助學習檢測網絡混合訓練的方法,能夠有效地提高在僅擁有較少量竹條表面缺陷數據情況下的檢測性能。在本文所提取的骨干分類網絡特征層上具有尺度單一性,下一步研究工作將探尋提取特征更豐富的、結構更小、效率更高的模型,以便能得到更好的檢測效果。