王品學,張紹兵,3*,成 苗,3,何 蓮,秦小山
(1.中國科學院成都計算機應用研究所,成都 610041;2.中國科學院大學計算機科學與技術學院,北京 100049;3.深圳市中鈔科信金融科技有限公司,深圳 518206)
根據(jù)工業(yè)智能白皮書顯示,工業(yè)智能成為了我國及業(yè)界高度重視的領域方向[1]。在印鈔造幣行業(yè),人工對硬幣缺陷進行檢查不僅費時費力,而且還會因為主觀差異造成對缺陷認定的不統(tǒng)一,很容易漏檢微小缺陷,無法滿足大規(guī)模的批量生產(chǎn)。而基于計算機視覺的表面缺陷檢測具有高準確率和簡單高效的優(yōu)點,因此,需要在工業(yè)生產(chǎn)中引入機器視覺的機檢方案;并且隨著造幣生產(chǎn)制造工藝的提升,彩噴、光油、機讀等新興工藝的出現(xiàn),以及企業(yè)對硬幣質(zhì)量要求的提高,迫切需要提升當前的缺陷檢測方案以達成智能制造、信息化建設和產(chǎn)品零漏廢的目標。
目前在機器視覺上進行表面缺陷檢測已有充分的研究,主要分為傳統(tǒng)圖像檢測方法和利用深度學習的檢測方法兩大類。文獻[2]利用形態(tài)學配準的方法,先將無缺陷樣本作為模板圖與待檢測圖同時經(jīng)過二值化、濾波、邊緣檢測和進行形態(tài)學處理,再利用Harris 角點將兩幅圖片配準然后通過差分的方式來檢出硬幣鏡面部分缺陷。文獻[3]利用高斯混合模型和色調(diào)變換來匹配硬幣中心,使用分塊硬幣的直方圖來精確計算硬幣旋轉(zhuǎn)角度進行配準,再將對齊的硬幣圖像投影到圖像空間中來降低噪聲,并通過比較投影誤差和自適應閾值來檢測缺陷像素。
傳統(tǒng)的硬幣圖像檢測方案主要基于配準后的圖像差分來檢測缺陷,由于光照、反射、復雜的成像環(huán)境引入的噪聲會對結果造成干擾,缺乏魯棒性。隨著深度學習的發(fā)展,基于卷積神經(jīng)網(wǎng)絡的算法被廣泛應用到表面缺陷檢測中。其中分為先進行候選框提取再進行回歸定位的兩階段算法,如R-CNN(Regions with Convolutional Neural Network)[4]、Fast R-CNN[5]、Faster R-CNN[6]和Mask R-CNN[7]等網(wǎng)絡和直接進行一階段目標檢測的SSD(Single Shot MultiBox Detector)[8]和YOLO(You Only Look Once)[9]系列算法。由于工業(yè)生產(chǎn)對實時性要求高,使用一階段算法較多。文獻[10]提出一種輕量級的卷積神經(jīng)網(wǎng)絡來檢測鋼軌表面缺陷。該網(wǎng)絡加入了多尺度空洞空間池化金字塔模塊來提取任意分辨率下的特征,使用損失注意力網(wǎng)絡定位缺陷以計算懲罰系數(shù),通過補償前景、背景損失來解決類別不平衡問題。實驗結果表明注意力機制重新調(diào)整了網(wǎng)絡的學習能力,降低了原任務的難度,能快速學得最優(yōu)權重和精確的缺陷預測。文獻[11]使用輕量級網(wǎng)絡(MobileNet)來代替YOLOv3[12]原有網(wǎng)絡中的密集連接網(wǎng)絡(Darknet-53)以減少參數(shù),加入空洞卷積來提高小目標的檢測能力,在網(wǎng)絡結構的最后一層卷積中加入了Inception 結構,進一步減少參數(shù)總量并加深網(wǎng)絡。文獻[13]優(yōu)化YOLOv3 提高了原始檢測基準線,提出了一種新的使用數(shù)據(jù)驅(qū)動的金字塔特征融合策略,自適應學習各層融合參數(shù),過濾空間上的沖突信息,進行不同尺度特征圖融合以更好地檢測不同大小的目標。文獻[14]將原始SSD 主干網(wǎng)絡中VGG16 的標準卷積替換為可變形卷積[15]來適應缺陷未知的幾何形變并改進非極大值抑制算法解決正負樣本不均衡問題,實驗結果表明改進的網(wǎng)絡較原始SSD 在檢測大壩缺陷的精度上提升5.98%。PP-YOLO(Paddle Paddle YOLO)[16]替換主干網(wǎng)絡為ResNet50,并在其后添加了可變形卷積DCNv2(Deformable Convolutional Network version 2)[17],提供了多個實用的訓練技巧。在僅使用MixUp 進行數(shù)據(jù)增強的條件下,通過合理的技巧組合,使訓練和推理更加高效,并通過多組消融實驗證明了該觀點。文獻[18]提出了用于肝臟和肝腫瘤分割的可變形編碼解碼器網(wǎng)絡,可變形卷積用于增強特征提取能力,使用多尺度膨脹率設計空間金字塔模塊學習融合信息。
為了在硬幣表面缺陷檢測中保證檢測實時性和檢測精度,本文采用一階段的檢測方式,對YOLOv3 進行改進,并在網(wǎng)絡輸出特征進行上采樣多尺度融合前加入可變形卷積層,使用自適應空間特征融合(Adaptive Space Feature Fusion,ASFF)網(wǎng)絡替換FPN(Feature Pyramid Network)[19]來實現(xiàn)多尺度特征融合,提出基于可變形卷積和自適應空間特征融合的硬幣表面缺陷檢測算法DCA-YOLO(Deformable Convolutional and Adaptive space feature fusion-YOLO)。在模型訓練上改進先驗錨框和動態(tài)修改訓練時類別權重,并通過實驗對比各網(wǎng)絡模型以及加入可變形卷積的位置和一些訓練技巧對于網(wǎng)絡性能的影響。
硬幣缺陷數(shù)據(jù)集來源于某造幣廠生產(chǎn)的有缺陷的2020年鼠年硬幣,缺陷主要包括粘坑和劃痕。數(shù)據(jù)集包含1 224個粘坑、1 045 個劃痕的1 872 幅硬幣正面圖像和包含1 130個粘坑、1 080 個劃痕的1 845 幅硬幣背面圖像。使用穹頂光、同軸光和穹頂-同軸組合光源三種方式對硬幣進行成像實驗,比較各個光源下硬幣缺陷的表現(xiàn)效果,如圖1 所示。實驗發(fā)現(xiàn)在穹頂光下,硬幣缺陷表現(xiàn)更為明顯,更易檢出,所以最終使用該光源圖片作為訓練模型的輸入圖像。
圖1 缺陷分類和不同光源下的成像表現(xiàn)Fig.1 Defect classification and imaging performance under different light sources
由于生產(chǎn)時工業(yè)設備磨損、壓印不足等原因,缺陷往往出現(xiàn)在同一位置,不同硬幣的缺陷表現(xiàn)相似,所以面臨小數(shù)據(jù)樣本問題?;谡鎸嵢毕莸耐庥^、形態(tài)、大小等特點,采用人工合成圖像的方式來增加擴充樣本,經(jīng)過數(shù)據(jù)增強最終的圖片有1 872 幅硬幣正面圖像和1 845 幅硬幣背面圖像。訓練時將圖像進行幾何變換和顏色變換,如圖2 所示。
圖2 圖像的幾何變換和顏色變換Fig.2 Geometric transformation and color transformation of image
幾何變換:對圖像進行尺寸縮放、隨機翻轉(zhuǎn)旋轉(zhuǎn)、隨機裁剪。
顏色變換:對圖像加入高斯噪聲,進行隨機色域變換(色調(diào)、飽和度、亮度變換)等操作。
使用Mosaic 方式在訓練時進行數(shù)據(jù)增強,每次讀取4 幅圖片,隨機進行尺寸縮放、裁剪等幾何變換操作,再拼接成1幅512×512~768×768 大小的圖片作為輸入圖片,由于進行1/32 的下采樣,圖片尺寸需要為32 倍數(shù),并修改相對應的XML注釋。Mosaic 數(shù)據(jù)增強可以極大豐富訓練圖片內(nèi)容,在不增加算力的基礎上提升網(wǎng)絡的檢測性能。圖3 為4 幅經(jīng)過Mosaic 數(shù)據(jù)增強后的圖片,每幅圖片都分別由4 幅圖拼接而成。
圖3 Mosaic數(shù)據(jù)增強Fig.3 Mosaic data augmentation
本文改進了YOLOv3 網(wǎng)絡,提出一種基于可變形卷積和自適應空間特征融合的硬幣表面缺陷檢測算法DCA-YOLO用于硬幣的表面缺陷檢測。網(wǎng)絡整體結構如圖4 所示。模型的主干網(wǎng)絡采用Darknet53,由于數(shù)據(jù)量較小,當網(wǎng)絡層數(shù)加深時使用該殘差網(wǎng)絡結構也一定程度上減小了計算量和網(wǎng)絡的過擬合程度,同時保持了網(wǎng)絡提取特征的能力。最后三個階段輸出寬高為原圖像尺寸的1/8、1/16 和1/32 的特征圖D3、D4、D5。使用SPP(Spatial Pyramid Pooling)對骨干網(wǎng)絡的輸出D5 進行三層卷積后,再將結果分別進行池化核大小為1×1、5×5、9×9、13×13 的四種不同尺度大小的池化操作,目的是融合多層感受野來增加網(wǎng)絡的感受野信息量,將池化后的輸出進行concatenate 合并得到固定大小的輸出。
圖4 硬幣表面缺陷檢測算法DCA-YOLO整體框架Fig.4 Overall framework of DCA-YOLO algorithm for coin surface defect detection
針對劃痕細小、跨度大問題,設計了3 類可變形卷積網(wǎng)絡。最終網(wǎng)絡選擇在SPP 模塊輸出的特征后,在Level 3 和Level 2 兩個不同尺度的特征圖進行上采樣時增加3×3 的可變形卷積模塊,該模塊首先使用普通卷積層學習offset 偏移和調(diào)節(jié)權重參數(shù),增強卷積對于缺陷形態(tài)特征的適應性,再將特征圖和偏移值調(diào)節(jié)權重后輸出,脖頸層采用自適應空間特征融合(ASFF)來自學習參數(shù)融合不同尺度特征信息,特征融合后再使用YOLOv3 head 部分進行預測是否包含目標、目標類別和位置信息。
原始YOLOv3 對于形狀多變的目標建模存在固有缺陷,固定的矩形結構只對特征圖的固定位置進行采樣,如圖5 所示。而同一層中的特征圖中的特征點的感受野是一樣的,但不同位置可能對應著不同尺度和形狀的物體,因此增加的可變形卷積模塊對尺度或感受野進行自適應學習是進行精準定位所需要的。為了準確檢測出在檢測框中覆蓋面積較小的條狀劃痕缺陷,本文在主干網(wǎng)絡最后一階段輸出D5 特征后經(jīng)過SPP 網(wǎng)絡進行上采樣到D4 和D3 尺度大小之前增加可變形卷積層,增強卷積的適應性。
圖5 可變形卷積隨機采樣能力Fig.5 Random sampling ability of deformable convolution
2.2.1 可變形卷積模塊操作步驟
1)輸入最后一階段D5 經(jīng)過SPP 的特征圖F,batch 為8(大小為b×H×W×C),經(jīng)過普通卷積,卷積填充為same,即輸入輸出尺寸不變,對應的輸出結果為(b×H×W×3C),偏移量記作offset,表示原始特征圖batch 中每個像素索引的偏移量。其中的2C表示有x和y兩個方向上的偏移值,剩下1C通道表示調(diào)節(jié)權重值Δm,它經(jīng)過Sigmoid 函數(shù)后范圍在0 到1。
2)將輸入F中的像素的索引值與offset相加,得到偏移后的position(即各像素在F中的坐標值),需要將position的值限定在圖片尺寸范圍內(nèi)。
3)因為position坐標是Float 類型的,為了可以得到準確的像素值并且可以進行反向傳播,需要使用雙線性插值的方式來獲取坐標位置對應的像素。例如,取一個坐標值(a,b),將其轉(zhuǎn)換為floor(a)、ceil(a)、floor(b)和ceil(b)四個整數(shù),其中floor()和ceil()操作是將a,b進行向下或向上取整,得到(floor(a),floor(b))、(floor(a),ceil(b))、(ceil(a),floor(b))和(ceil(a),ceil(b))四個坐標。這四個坐標每個都對應F中的一個像素值,需要通過雙線性插值的方式來計算得到(a,b)的像素值。
4)在得到position的所有像素后,各采樣點經(jīng)過Δmn調(diào)節(jié)權重將得到的新的特征圖作為輸入傳遞到下一層。如圖6 所示。
圖6 可變形卷積操作步驟Fig.6 Deformable convolution operation steps
2.2.2 算法解釋
在可變形卷積中改進固定采樣的位置,具體如下:
1)利用規(guī)則網(wǎng)格對輸入特征矩陣F進行卷積采樣,采樣位置集合V可以通過Δpn(Δpn=1,2,…,N)實現(xiàn)采樣位置偏移,從而增大感受野的范圍,采樣點通過Δmn來調(diào)節(jié)權重參數(shù),其中的N為網(wǎng)格中的像素個數(shù),結合式(1),對于輸出特征圖上的任意位置p0,可以得到:
其中:w(pn)是采樣位置的權重信息;V={(-1,-1),(-1,0),…,(1,0),(1,1)},為采樣位置集合。
2)由于采樣點是在不規(guī)則的偏移后的位置pn+Δpn上進行的,而偏移量Δpn通常是浮點數(shù),無法獲得所在位置的準確像素值,如果僅僅使用取整的方式會有一定誤差,因此通過雙線性插值可以得到任意位置的像素值:
其中:p=p0+pn+Δpn,表示偏移后的任意位置;x(q)是枚舉了F周圍相鄰四個整數(shù)坐標處的像素值;G(·,·)為這四個整數(shù)坐標分表對應的權重。G(·,·)是二維的,分為兩個一維內(nèi)核:
其中:g(a,b)=max(0,1-|a-b|)。
通過以上的可變形卷積方式來自適應學習感受野,采樣位置更符合物體本身的形狀和尺寸,而非固定的幾何結構采樣,更利于缺陷特征提取。
2.2.3 三種可變形卷積網(wǎng)絡模塊
本文在不同的位置添加可變形卷積的模塊設計了以下3 類網(wǎng)絡模型(如圖7 所示):
第1 類是借鑒PP-YOLO 的方式在主干網(wǎng)絡D5 層輸出后替換普通卷積,將SPP 網(wǎng)絡中的3×3 卷積替換為可變形卷積,輸出層尺寸小,擁有的感受野大,語義信息多,并且在進行SPP 后增強了感受野更有利于學習物體整體的形狀類別。同時小尺寸的特征輸入在計算偏離量時也相對較快。
第2 類是在多尺度融合進行上采樣前添加3×3 的可變形卷積層,深層的可變形卷積學習圖像高級語義信息,上采樣后融合低層細節(jié)特征圖再進行一次可變形卷積,兩次卷積的特征進行了加強,不僅學習到了整體輪廓,未知形變的細節(jié)部分也能學到。
第3 類考慮到小目標較多,直接在D3、D4 兩階段的輸出后添加3×3 的可變形卷積,多尺度融合時能更好地學習目標細節(jié)形變,相較于第2 類模型,細節(jié)部分更豐富,也會帶來更大計算量。
圖7(b)左側(cè)虛線部分是參考FPN 增加的可選的卷積模塊,用來調(diào)整通道數(shù)和加深網(wǎng)絡,增加提取特征能力。
圖7 不同位置添加可變形卷積Fig.7 Adding deformable convolution in different positions
特征金字塔網(wǎng)絡(FPN)是目標檢測中解決多尺度變換的常用方法,網(wǎng)絡輸出大、中、小三種尺寸的特征圖,經(jīng)過三個分支來進行預測,淺層特征圖為高分辨率細粒度更注重細節(jié),深層網(wǎng)絡特征則包含更多的語義信息,如圖8 所示。在這三個分支中,大尺寸的特征圖感受野較小,適合于檢測輸入圖片中的小目標,深層網(wǎng)絡產(chǎn)生的小尺寸的特征圖擁有較大的感受野,更適合檢測大目標。然而對于一次檢測的YOLO 而言,不同特征尺度之間的不一致是主要限制,例如當某個對象在某個級別的特征圖中被認為是正樣本時,將其他級別的特征圖中的相應區(qū)域視為背景。因此,如果該區(qū)域同時包含大小兩種目標時,則不同級別的特征之間的沖突往往會占據(jù)特征金字塔的主要部分。這種不一致的沖突會干擾訓練期間的梯度運算,降低特征金字塔的有效性。
圖8 自適應空間特征融合Fig.8 Adaptive spatial feature fusion
自適應空間特征融合(ASFF)提出一種類似空間注意力的算法,學習不同尺度的特征融合權重參數(shù),各權重參數(shù)圖與其輸入進行逐點相乘,來決定輸入特征圖中各像素點的激活與抑制以解決沖突問題,這樣可以更好地學習不同尺度特征圖對于預測不同大小目標的貢獻。具體步驟如下:
1)輸入特征。輸入骨干網(wǎng)絡中的三種尺度的特征圖。
2)特征縮放。輸入特征分別為原圖的1/32、1/16、1/8,縮放是為了解決下一步進行特征融合時的尺寸不一致問題。對于上采樣,先使用1×1 的卷積調(diào)整通道數(shù)與l 層一致,再使用插值來調(diào)整尺寸提高分辨率。對于1/2 下采樣,直接進行步長為2,大小為3×3 的卷積,對于1/4 的下采樣,在步長為2,大小為3×3 的卷積操作前添加了一個步長為2 的最大池化操作。
3)特征融合。αl、βl、γl分別是在l層特征x1→l、x2→l、x3→l的權重參數(shù)圖,其中xn→l表示經(jīng)過特征縮放后獲得的尺寸相同的輸入特征,各權重圖與其輸入特征逐點相乘,來決定輸入特征圖中各像素點的激活與抑制。α、β、γ中各位置的取值由網(wǎng)絡訓練過程中習得。逐點相乘之后,將三個輸入值進行相加,將其作為該檢測分支的輸入值。
由于硬幣缺陷數(shù)據(jù)集和COCO 數(shù)據(jù)集[20]所包含的目標大小有較大差異,數(shù)據(jù)集主要以小目標缺陷為主,為了更好、更快速地收斂,首先使用聚類的方式獲得anchor,但由于都為較小缺陷,多數(shù)樣本寬高比例單一,無法利用多尺度檢測的優(yōu)勢,因此本研究改進了聚類后的錨框進行線性尺度的縮放,將錨框尺寸往兩邊進行拉伸。
聚類首先不分類別地讀取所有標注框;然后隨機化初始位置并選擇12 個框作為聚類中心并依次計算每個標注框與聚類中心的交并比;接著按照交并比大小分配給最適合的聚類中心;最后在分配結束后重新計算各聚類中心直至聚類中心不再發(fā)生變化。此時得到了12 個根據(jù)數(shù)據(jù)集獲得的先驗錨框。聚類時的損失以Lossc來表示:
其中:boxi為第i個標注框的面積;cenj為第j個聚類中心的面積;n為標注框總數(shù);k為聚類中心個數(shù)。
對聚類后的錨框進行拉伸縮放以更好地發(fā)揮檢測網(wǎng)絡的多尺度檢測能力,具體做法如下:
其中:α=0.5,β=2,將原來anchor 框的寬的最小值變?yōu)樵?/2,最大值變?yōu)? 倍。
在初始化時,首先按照各類別缺陷的數(shù)量來分配權重,兩個缺陷的權重參數(shù)和為1,缺陷少的類別權重高,提高學習效率。在每一輪Epoch 迭代訓練后,記錄下每個類別的AP(Average Precision),動態(tài)更新類別權重加快訓練。配合Focal Loss[21]來解決類別不均衡和難樣問題。
實驗顯卡使用的是NVIDIA Tesla P100 16 GB,操作系統(tǒng)是Ubuntu 18.04,使用的深度學習框架是PyTorch 1.7.0,網(wǎng)絡的模型訓練測試都在NVIDIA Tesla P100 進行。
1)實驗數(shù)據(jù)。
目標檢測任務是有監(jiān)督訓練,需要提前標注好目標的類別和位置,目標的定位使用矩形框來表示。本文采用的數(shù)據(jù)集來源于某造幣廠生產(chǎn)的有缺陷的鼠年硬幣,包含粘坑和劃痕兩個類別,經(jīng)過數(shù)據(jù)增強最終的圖片有1 872 幅硬幣正面圖像和1 845 幅硬幣背面圖像。將85%的數(shù)據(jù)作為訓練集,15%的數(shù)據(jù)作為測試集,在圖像增強時保證盡量保證類別均衡。
2)評價指標。
實驗為了評估缺陷圖片的目標檢測準確性、查全率和檢測速度,采用以下5 個評價指標:召回率R、平均準確率P、平均精度均值(mean Average Precision,mAP)、F1 分數(shù)、幀率。
在工業(yè)缺陷檢測中,召回率和準確率都很重要,使用F1分數(shù)來兼顧檢測中的召回率和準確率。F1 分數(shù)被定義為精確率和召回率的調(diào)和平均數(shù)。具體計算方式如下:
在硬幣的表面缺陷數(shù)據(jù)集上,采用以下幾種模型進行缺陷檢測實驗,和本文中所提出的DCA-YOLO 算法網(wǎng)絡的檢測效果進行對比,并比較在不同位置加入可變形卷積模塊的性能。其中推理時圖片大小為672×672。
1)Faster-RCNN:殘差網(wǎng)絡ResNet50 作為主干網(wǎng)絡,Neck 層使用FPN,記錄對比mAP 和幀率。
2)YOLOv3:使用Darknet53 作為主干網(wǎng)絡,將最后三階段的輸出通過FPN 進行多尺度融合,使用SPP 融合輸出的多重感受野,每個網(wǎng)格進行錨點預測。
3)YOLOv3-PAN:使用 PAN(Path Aggregation Network)[22]替換FPN 進行多尺度融合。
4)YOLOv3-tiny:使用類似于Ddarknet19 的7 層卷積網(wǎng)絡進行特征提取,通過FPN 進行多尺度融合,網(wǎng)絡簡單、計算量小,輸出兩種尺度的預測結果。
5)DenseNet-tiny:密集網(wǎng)絡有18 層殘差塊,每個殘差包括兩層卷積,使用FPN+SPP 作為多尺度融合,最后輸出兩個尺度的檢測結果。
6)YOLOv3-ASFF:Darknet53 作為骨干網(wǎng)絡,SPP 加強網(wǎng)絡的感受野,ASFF 學習各層參數(shù)來自適應融合多尺度特征層,輸出三個尺度的檢測結果。并嘗試在此網(wǎng)絡的不同位置中增加可變形卷積模塊進行對比實驗。
在以上使用不同網(wǎng)絡的基礎上再使用一些技巧如修改錨框、激活函數(shù)使用Mish 等方式對比效果。
在訓練時首先使用k-means 算法針對數(shù)據(jù)集進行聚類,再根據(jù)第3 章中改進anchor 的方法拉伸先驗錨框,使用Mish激活函數(shù)替換Leaky ReLU(Leaky Rectified Linear Unit)。網(wǎng)絡訓練1 000 個epoch,大約耗時25 h,學習率最初熱身值為0.01,權重衰減系數(shù)為0.000 5,Batchsize 設置為8,動量為0.9,在10 個epoch 內(nèi)學習率下降至0.001,動量變?yōu)?.93。圖片尺寸每10 次迭代調(diào)整一次,調(diào)整范圍是512×512~736×736,以32 的倍數(shù)調(diào)整大小。訓練時盡量調(diào)整使各損失在總損失中占比一致,回歸框誤差權重參數(shù)1.03,分類誤差權重為332.4,置信度誤差權重設置為783.3。
由于現(xiàn)場生產(chǎn)環(huán)境對于速度的要求,在不損失太多精度的情況下選擇一階段的檢測網(wǎng)絡。表1 使用YOLOv3 作為基準baseline,對比Faster-RCNN、YOLO 系列的幾個改進模型和DCA-YOLO 模型。從表1 可看出,本文提出的DCA-YOLO 在速度上優(yōu)于兩階段的Faster-RCNN,精度上與之接近。檢測效果對比如圖9 所示。與YOLOv3 對比發(fā)現(xiàn),增加了可變形卷積參數(shù)和各尺度層融合參數(shù),但速度差別不大,并且mAP提升了3.3 個百分點,F(xiàn)1 提升了3.2 個百分點。對比只添加自適應空間特征融合的YOLOv3-ASFF 網(wǎng)絡,mAP 提升了1.7個百分點,F(xiàn)1 提升了1.4 個百分點。為了更加快速地檢測目標,使用YOLOv3-tiny 檢測,將主干網(wǎng)絡替換為更輕型的Darknet19 的改進版,在速度上有很大提升,在mAP 上卻下降了17.4 個百分點,大量劃痕缺陷未檢出。加深網(wǎng)絡結構,使用DenseNet-tiny 進行實驗,發(fā)現(xiàn)mAP 同樣下降嚴重,于是決定采用Darknet53 的殘差網(wǎng)絡結構作為主干網(wǎng)絡。
圖9 YOLOv3、Faster-RCNN與DCA-YOLO的檢測效果對比Fig.9 Comparison of detection effect among YOLOv3,DCA-YOLO and Faster-RCNN
表1 不同模型的檢測結果對比Tab.1 Comparison of different model detection results
在不同位置插入可變形卷積模塊的檢測結果如表2 所示。插入的位置在第2 章提到的3 類模型:1)替換SPP 中的3×3 卷積;2)D5 輸出特征后經(jīng)過SPP 增強感受野后上采樣前再使用可變形卷積來適應缺陷未知的幾何特征;3)直接在D3、D4 輸出后增加可變形卷積。其中2.2 是在2.1 的基礎上,在D3、D4 的輸出后加入卷積核大小為1×1、3×3 和1×1 的普通卷積,用來調(diào)整通道數(shù)和加深網(wǎng)絡,增加提取特征能力。實驗結果表明,模型2.2 加上可選的卷積層在硬幣缺陷數(shù)據(jù)集中表現(xiàn)最好,mAP 較baseline 提升了3.4 個百分點,F(xiàn)1 提升了3.2 個百分點,但是網(wǎng)絡加深引入了額外的參數(shù),每秒檢測的圖片減少了5 幅,相較于2.1 只在上采樣前添加可變形卷積層,檢測精度類似,但后者速度快很多。
表2 不同位置加入可變形卷積的檢測結果對比Tab.2 Comparison of detection results of adding deformable convolution in different positions
對改進后的模型算法DCA-YOLO 進行消融實驗,對比使用Mosaic 數(shù)據(jù)增強、Mish 激活函數(shù)、動態(tài)類別權重、拉伸先驗錨框?qū)τ趍AP 和F1 的值影響,如表3 所示。
表3 Mosaic數(shù)據(jù)增強、激活函數(shù)、動態(tài)類別權重和拉伸先驗錨框?qū)z測結果的影響Tab.3 Influence of Mosaic data augmentation,activation function,dynamic category weight and stretching priori anchor box on detection results
為了改進現(xiàn)有的硬幣表面缺陷檢測的方式,同時考慮到速度和精度的要求,使用改進YOLOv3 網(wǎng)絡的方式提出了基于可變形卷積和自適應空間特征融合的硬幣表面缺陷檢測算法DCA-YOLO,并且用F1 評價指標綜合評價召回率和準確率,在硬幣數(shù)據(jù)集中對比YOLOv3 模型,在幀率差別不大的情況下F1 獲得了3.2 個百分點提升,檢測性能也優(yōu)于其他改進模型。實驗研究了可變形卷積在不同位置對于模型檢測效果的影響,最終確定在特征圖上采樣位置添加。自適應空間特征融合網(wǎng)絡對于重合的大小目標檢測效果提升顯著。由于改進的可變形卷積網(wǎng)絡在訓練中會引入額外訓練偏移參數(shù),嘗試替換輕型主干網(wǎng)絡和剪枝對模型檢測性能影響較大,后續(xù)可對網(wǎng)絡結構進行進一步優(yōu)化,使用更輕型網(wǎng)絡在保證檢測精度的同時提升檢測速度,更好地應用于工業(yè)缺陷檢測。