馬晨凱,吳毅慧,傅華奇,業 寧
(1.南京林業大學信息科學技術學院,南京 210037;2.南京林業大學汽車與交通工程學院,南京 210037;3.黑龍江工程學院電氣與信息工程學院,哈爾濱 150050)
先進陶瓷采用新型制備工藝制成,含有先進陶瓷的整體產品具有安全性、絕緣性、隔熱性和穩定性的優異性能,被廣泛應用于航天、機械、電子和化工等高精度領域。根據市場研究機構Research and Markets 的預測[1],全球先進陶瓷市場規模到2021 年將超過1 000 億美元,在國內先進陶瓷中僅1 個品種的氧化鋁陶瓷配件就達到了15 億件的使用量。由于需求量龐大,提升先進陶瓷正品率將極大地提高經濟效益。為進一步降低先進陶瓷的次品數量,保證高精度產品的安全性,需要尋找能夠更準確地對先進陶瓷零件的成品進行判斷的方法。目前生產企業主要采用傳統方式對先進陶瓷零件進行成品判斷,包括純機械尺寸過濾和人工判斷兩種檢驗方式,但這些方式都存在成本高、失誤率高和損壞率高等問題。例如采用機械篩選時僅能篩除出尺寸不合格的零件而無法將存在破損的先進陶瓷零件一同篩除,還需要進一步采用人工篩除,不僅增加了成本,也存在一定程度的遺漏和損壞。
隨著人工智能技術的發展,零件檢測已經逐漸從依靠純機械方式發展為利用計算機圖像自動識別[2]。柳云鶴等提出了基于遺傳算法匹配訓練實際機械零件圖像樣本,使用K 近鄰(K?nearest neighbor,KNN)分類器對其進行分類,不需要大量圖像樣本,并有著較高的識別率[3]。匡遜君等利用了HU 不變矩和仿射不變矩,提取了機械零件圖像的組合矩特征,并應用支持向量機對零件分類,該方法無需大量樣本,具有很好的泛化能力[4]。岳曉峰等使用粒子群算法改進徑向基函數神經網絡,避免了網絡結構和參數選取不當時出現其收斂慢甚至無法收斂的情況,使得分類的成功率得到很大提高[5]。Hinton 等首次使用深層卷積神經網絡AlexNet 分類大規模圖像[6]。Girshick 等提出了R?CNN(Region convolutional neural network),并在目標檢測上運用了該方法[7],隨后的Fast R?CNN[8]和Faster R?CNN[9]也極大地提高了檢測效率。YOLO 基于單獨的End to end 網絡將目標檢測轉化為回歸問題,合并了候選區和對象識別,在不遺失準確率的同時進一步提高了檢測速度[10]。
先進陶瓷零件外形有很多種,有內圓外六邊形的螺母狀、存在多凹槽的不規則條狀以及中心至底面以長方體挖空的棱柱狀等。本文選擇的先進陶瓷樣本外形是由上下兩個空心圓柱組成,其中上半部分空心圓柱內徑比下半部分空心圓柱外徑稍小,下半部分內、外徑差為上半部分內、外徑差的2~3 倍。
在實際生產中,先進陶瓷零件的篩選對邊框標注的精度要求不高,但是對識別速度和準確性有很高的要求。本文提出了一種多目標實時檢測分類模型(Multi?object real?time defect detection and classification model,MRDC),利用優化后的灰度圖轉換算法對圖像先期處理,采用SKNet 模塊進行特征重構,并使用了基于Darknet?53 網絡的YO?LOv3[11]對圖像全局信息進行評估,經過多次訓練后可以準確地檢測先進陶瓷零件的位置并判斷其是否為成品。
本文率先使用基于深度學習的人工智能技術識別分類先進陶瓷零件,在極大地提高了速度與準確率的同時實現了無接觸分類,避免了目標檢測與分類過程中可能對先進陶瓷零件造成的損傷。
準確度和速度直接決定了目標檢測模型的優劣[12],隨著研究的不斷深入,深度卷積神經網絡在精度上有著很大的提升[13],Faster R?CNN 等算法可以在識別前選出可能存在目標的候選區,在檢測精確度和分類準確率上表現極佳,但是效率過低[14]。YOLO 不使用候選區,所以目標檢測速度快,泛化性能較好;其輸入一般選擇416像素×416像素和RGB 三通道圖像,經過CNN 神經網絡的變換將得到1 個7×7×30 的張量,即49 個30維的向量,其中存放了2 個Bounding box 的位置、2 個Bounding box 的置信度以及各個對象的概率。其中Bounding box 的置信度為

損失實為經過神經網絡訓練后的輸出值與實際的標簽值之間的偏差。YOLO 的損失函數一般使用以上兩者誤差的平方和作為樣本的整體誤差,包括邊框中心點誤差、邊框高度與寬度誤差、邊框內有無對象時的置信度誤差以及各個對象的分類誤差[15],一般與30 維向量中的一部分相對應,即


YOLOv1 簡單地將圖片劃分為49 個網格,但是這樣會導致每個網格生成的Bounding box 較少,從而使其在鄰近目標和小目標的檢測中表現較差。此外YOLOv1 還會有更多的定位誤差,往往最后目標框選的精度并不高[16]。
YOLOv3 在YOLOv1 的基礎上基于殘差網絡Resnet[17]搭建了有53 個卷積層的Darknet?53 網絡以用于特征提取工作,此網絡的組成部分為一系列尺度為1×1 和3×3 的卷積層[18],CBR 模塊作為YOLOv3 的基本組件之一可分為CBR_1 和CBR_3,對應著上述1×1 和3×3 的卷積核尺寸[19]。Resnet 思想具體體現為建立Residual 殘差模塊,即在一些層之間設置快捷鏈路,并將快捷鏈路與2 個卷積層組成1 個殘差組件,如圖1 所示,其中F(x)為殘差函數,K(x)為經殘差網絡處理后的輸出值,x為輸入值。

圖1 殘差網絡結構圖Fig.1 Structural diagram of residual network
則殘差網絡函數可表示為

YOLOv3 將輸入圖像映射到3 個尺度的輸出張量,如果輸入為416像素×416像素、RGB 三通道圖像,一般3 種尺度分別為13×13、26×26、52×52,那么總共具有13×13×3+26×26×3+52×52×3=10 647 個預測。在每個預測中,對象存儲在其中的80 維,邊框坐標與置信度分別存儲在其中的4 維和1 維,共80+4+1=85 維,如圖2 所示。

圖2 YOLOv3 目標檢測流程Fig.2 YOLOv3 object detection process
不同尺度的感受野大小不同,每個尺度通過K?means 聚類得到3 個先驗框,以COCO 數據集為例,9 個先驗框的具體尺寸如表1 所示。

表1 感受野尺寸表Table 1 Receptive field size
YOLOv3 同樣用ReLU 作為激活函數,輸入圖像經過5 次步長為2 的卷積層進行下采樣,提升了平均精確率均值(Mean average precision,mAP),并且一定程度上解決了YOLOv1 在小物體檢測中表現較差的問題。
在邊界框的預測上,YOLOv3 采用Adam 優化器,預測對象類別采用單獨的Logistic 分類器取代傳統的Softmax 分類器[20],支持多標簽對象同時預測框的類別、置信度和預測框。當物體的中心存在對應的網格時,就利用其對物體進行預測。
如圖3 所示,先驗框用藍色虛線表示,預測框用紅色實線表示,其中:Pw和Ph為先驗框的寬和高;bw和bh為實際預測框的寬和高。若從中心點至網格最近的橫坐標距離為σ(tx),最近的縱坐標距離為σ(ty),可以得到預測框表達式為

圖3 預測框示意圖Fig.3 Prediction boxes indicate

每個預測框使用非極大值抑制(Non?maxi?mum suppression,NMS)算法,即選取得分最高的輸出并將與其重疊的去掉,Ci存在于第j個Bound?ing box 的可能性如式(8)所示,其中Score 為各邊界框置信度下的條件概率。最后根據特征圖與原圖的映射關系在原圖上輸出預測框,從而實現對先進陶瓷零件的定位。

本文提出一種效率與準確性較高的多目標實時檢測分類模型MRDC。該模型在上述YOLOv3算法的基礎上添加了SKNet(Selective kernel net?work)注意力機制,并結合灰度圖轉化算法的思想,采用跳幀追蹤檢測。因此,MRDC 模型在繼承YOLOv3 高速準確特點的同時可在視頻目標檢測與分類中進一步提升效率。
一般使用的樣本均為sRGB 空間圖像,將圖像轉為灰度圖有多種算法,例如:直接將RGB 求和取均值(式(9)),Photoshop 中經典的Adobe RGB(式(10)),經典的非線性空間心理學灰度圖轉化公式(式(11))[21]。

式中:R,G,B取值為0~255 之間的整數,分別代表紅色、綠色和藍色的顏色成分;Grey 為灰度值。
本文在式(11)算法的基礎上進行優化。在實際訓練和識別中,因式(11)需要進行大量的浮點數運算導致其效率大幅度降低。因此,本文將其放大100 倍并使用移位代替除法,然后采用去尾法近似。由式(12~14)結果可得到式(15)的各項參數。在16 位運算下,7 位精度的式(15)比式(11)精度更高,運算速度更快。

為進一步提高效率,MRDC 模型采用式(15)對圖像進行先期快速灰度圖轉化。
SKNet 為輕量的網絡結構[22],使用非線性方法使得感受野的尺寸根據激勵因素自動變化,可達到隨著輸入尺度的不同自動地調整接受區域大小的目的。

大量使用殘差網絡的YOLOv3 未使用Dark?net?53 的全連接層,如圖4 所示,在主干網絡3 個尺度的輸出端后分別加入SK 注意力機制模塊,重新賦予權重以實現特征重構。

圖4 SKNet 特征重構圖Fig.4 SKNet feature reconstruction
結合對灰度圖轉化算法的優化,基于SKNet的特征重構與跳幀追蹤檢測算法,MRDC 模型可在YOLOv3 的基礎上進一步提高準確率。模型步驟如下:
(1)采用優化后的灰度圖轉化算法對原始樣本數據進行維數約減。
(2)自動判斷是否需要進行歸一化處理。為了適配更多的數據集,使MRDC 模型有更好的擴展性,當數據集尺寸不一致時對其進行歸一化處理。
(3)采用加入注意力機制后的YOLOv3 算法對處理后的數據進行訓練,利用SKNet 進行特征重構,在實驗中調整各項參數以得到最小損失的模型并進行預測,在經過非極大值抑制后得到預測結果,整體流程如圖5 所示。

圖5 模型訓練與預測流程圖Fig.5 Model training and prediction process
(4)對視頻進行預測時,每5 幀取其中的第1幀,在對取到的第1 幀預測前,將其從BGR 格式轉為灰度圖,然后使用訓練得到的模型進行預測。
(5)為保持預測結果并實現追蹤目標,對其中第1 幀預測得到的預測框坐標(xul,yul)、(xdr,ydr)與先進陶瓷零件在兩幀之間平移的像素Δx進行計算,如式(18~19)所示,當n=4 時可分別得到另外4 幀的框選坐標(x'ul,y'ul)、(x'dr,y'dr)。

將每一幀視頻重新拼接得到輸出視頻,預測視頻具體流程如圖6 所示。

圖6 視頻預測流程圖Fig.6 Video forecasting process
基于YOLOv3 與SKNet 注意力機制的MRDC模型使用Python 語言,并利用Keras 框架搭建了Darknet?53 網絡;硬件為處理器i7?9700K、內存16 GB 和顯卡NVIDIA RTX 2070 Super;操作系統為Ubuntu 16.04 LTS。
受齊齊哈爾市某特種陶瓷廠委托,采用MRDC 模型解決實際先進陶瓷零件生產中的無接觸篩選問題。但在其目標檢測分類的研究中,未發現公開數據集。
3.1.1 圖像數據集建立
多批次運用數碼設備采集數據,每次得到1 000 張900像素×900 像素的數量在1~9 之間不等、位置散亂的先進陶瓷零件圖,并將其制作為數據集,圖例如圖7 所示。

圖7 數據集示例圖Fig.7 Sample data set diagram
使用開源工具labelImg 將圖片中的每個零件位置進行標注并設定分類,在全部標注后可得到包含了對象的位置和分類的1 000 個XML 格式的標注文件,最終得到先進陶瓷零件目標檢測分類數據集。
3.1.2 視頻采集
采集得到數段寬高比為900像素×900像素、格式為mp4 的視頻,用于實時測試模型效果。為逐列展示視頻中的零件,每隔25~35 幀對視頻進行截圖,如圖8 所示,后1 張截圖的第1、2 列零件與前1 張截圖的2、3 列零件相同。

圖8 視頻示例圖Fig.8 Video examples
使用Cisco 公司發布的開源H.264 編碼器Openh264 對視頻進行編碼與解碼。從視頻截取的圖像均為BRG 格式,而訓練所使用的樣本為灰度圖,使用在灰度圖樣本下訓練得到的模型對視頻進行目標檢測與分類將直接導致準確率大幅下降。因此需要將每1 幀圖像從BRG 格式快速轉化為灰度圖進行目標檢測和分類。
將每個數據標注文件中存放的多個先進陶瓷零件的位置信息與圖像中的先進陶瓷零件一一對應,使用十次交叉驗證方法將數據集分為10 份,并將其中的1 份作為測試集,剩下的9 份作為訓練集。同時對數據使用隨機旋轉角度、隨機水平翻轉以及隨機裁剪等增強策略,讀取的bbox 生成對應的3 種尺寸的存儲類別和真實框的中心寬高置信度的Label,Feed 之前將圖片Resize 為416 像素×416 像素,最后將其轉化為灰度圖輸入。
在Darknet?53 的主干網絡后加入3 個SK 注意力機制模塊后得到使用SKNet 進行特征重構后的模型。分別對原始YOLOV3 模型和特征重構后的模型進行實驗,檢視兩次實驗的Loss,比對實驗所得mAP,判定進行特征重構對多目標實時檢測分類模型的價值。
在訓練前修改YOLOv3 的相關配置與參數,設置學習率為0.000 1,當Epoch 達到100 時結束訓練,設置Batch_size 為4,使用10%的數據作為測試集。調整SKNet 的各項參數,設置額外路徑數量SKNet_M 為2,每個路徑的基數SKNet_G 為32,Fuse 操作參數數量SKNet_r 為16,參數含義與數值如表2 所示。

表2 部分實驗參數表Table 2 Partial experimental parameters
學習率Learning rate 直接影響模型訓練結果,若學習率過高會導致無法優化,而學習率過小易導致優化過慢,出現掉入局部最優的情況[23]。學習率設置為0.000 1,每次訓練得到訓練Loss 和驗證Loss,經過100 次訓練后發現訓練Loss 和驗證Loss 都逐漸趨近于0,其中第88 次訓練得出的模型效果較好,兩次訓練得到的Loss 如圖9 所示。特征重構后模型的部分訓練結果如表3 所示。

表3 損失值詳情表Table 3 Details of loss values

圖9 損失函數曲線對比Fig.9 Loss function comparison
在訓練100 次后選擇損失較低的第88 次訓練得到的模型,由于先進陶瓷零件對框選的精度要求不高,但是對分類判斷的準確性要求較高,所以精確率Precision 相比于召回率Recall 更有參考意義,但由于最后精確性較高,故以平均精確率均值mAP 值作為判斷標準。多批次采集圖像數據,每次采集含多個陶瓷零件的圖像1 000 張作為數據集,經過驗證后得出原模型的mAP 值為97.57%,加入SKNet 特征重構后模型的mAP 值為99.19%,這說明本文模型很好地實現了對目標的檢測與分類,兩種模型的平均精確率AP 值如圖10 所示。

圖10 平均精確率Fig.10 Average precision
使用數據集外的多個圖片樣本對模型進行驗證。測試后的結果表明,本文提出的MRDC 模型時間效率較高,可以準確地對圖片樣本進行目標檢測與分類。隨機選擇1 個圖片樣本進行可視化測試,保持硬件配置不變,經過32 ms 左右得到如圖11 所示結果,8 個個體的坐標均輸出正確,其本身被框選的位置無誤,分類準確率為100%。

圖11 圖片樣本可視化結果圖Fig.11 Visualization results of sample images
使用視頻樣本對模型進行驗證。經測試可知,MRDC 模型可以高效準確地對視頻中出現的每一個先進陶瓷零件進行框選、分類和追蹤,可以保證每分鐘檢測450~550 個零件。每25~35 幀截取圖片,如圖12 所示,視頻中的先進陶瓷零件位置標記與分類準確率為100%。

圖12 視頻樣本可視化結果圖Fig.12 Visualization results of sample video
本文針對先進陶瓷零件無接觸檢測分類問題,基于YOLOv3 算法與SKNet 注意力機制提出了多目標實時檢測分類模型MRDC,可對先進陶瓷零件圖像進行快速灰度圖轉化,實時追蹤視頻中所有零件的位置并加以分類,克服了靠機械先期過濾加人工篩選方式成本高、準確性低和零件損傷率高的問題,可高效準確地對大批量的先進陶瓷零件進行目標檢測與成品判斷并可視化輸出。在測試中,平均精確率可達到99.19%;批量測試中,由生成的圖片樣本可視化結果圖和視頻樣本可視化結果圖可知零件標注框位置準確、追蹤及時,因此MRDC 模型可以很好地投入生產實踐。下一步將繼續研究如何提高先進陶瓷零件的平均精確率,以及在更復雜的視頻背景下檢測分類更多樣本的同時保證精確率,使得先進陶瓷零件無接觸檢測分類可以更好地適用于更加復雜的大批量生產實踐中。同時,也將基于現有的多目標實時檢測分類模型進一步優化生產流水線,配置自動分揀裝置,實現不合格零件的自動剔除,改變實際生產現狀,達到在每條生產線上減少6 名分揀員的同時實現全天候24 h 自動化生產的目的,這有助于更高效準確地對次品零件進行二次回收,節約成本,減少廢品產出,提高了經濟效益的同時保護了環境,有助于先進陶瓷產業的發展。