王勇,張偉,2*,高銳,3,金征
(1. 國家林業和草原局北京林業機械研究所,北京 100029; 2. 中國林業科學研究院林業新技術研究所,北京 100091;3. 福建省林業科學研究院,福州 350012)
結構用鋸材(又稱規格材)是木結構建筑構件的關鍵單元材料,同時結構用鋸材不僅可以直接用于建筑構件,還可作為原材料制造平行膠合木(集成材)、正交膠合木(CLT)等木結構產品。由此可見,其力學性能和強度等級,對木結構建筑、集成材和CLT的安全使用性能具有直接影響[1]。按照木結構建筑材料的使用性能要求,并結合結構用鋸材分級規則,應先實現對結構用鋸材強度等級的有效評價、預測,再通過同等級或異等級組合加工成尺寸更大的梁、柱構件,應用于木結構建筑的受力結構構件;因此,在使用之前對結構用鋸材進行相關質量評價、分級十分有必要,可以更好地做到優材優用,提高木材的綜合利用率。
現階段我國對于結構用鋸材分級標準及設備的研究滯后于國外,致使國產材的競爭力遠低于按照國外相關標準分等的進口材,這嚴重制約了國產鋸材的應用及推廣發展[2-3]。目前結構用鋸材分級方法主要有目測分級和機械分級兩種。然而在實際執行分級過程時上述兩種方法均存在一定的難度,目測分級需要由專業工人用肉眼觀察結構用鋸材表面缺陷種類、尺寸、位置及數量,再結合經驗評估其強度并劃分等級。木材缺陷類型主要包括節子、蛀孔、裂紋、變形、腐朽、構造缺陷、損傷等,目測分等效率取決于工人的經驗水平,分等準確率較低,分等結果不具有客觀性;機械分級方法(彎曲應力法、振動測試法、應力波法、超聲波法等)需要依靠專門化的試驗測試設備,并且需要專業化操作人員進行試驗測試分析,需要投入較大的人力物力資源[4]。
鋸材的表面質量對木制品的質量起著至關重要的作用。鋸材的表面質量主要受鋸材表面缺陷(如節子、孔洞、蟲眼、裂紋等)以及鋸材表面紋理的綜合影響[5],鋸材表面缺陷,會直接影響鋸材的使用強度。鋸材作為木結構建筑中重要的結構用材料,在使用之前必須進行分級劃分,以確保所選用的鋸材能夠滿足所需的力學性能(如彈性、剛度等)要求。鋸材的表面缺陷與密度、強度等指標一樣,在材質檢驗工作中受到重視[6],如美國、法國、日本等發達國家已將其作為評價木材質量和決定木材產品價值的重要參考[7]。
目前針對鋸材的表面質量評價仍主要依賴人工目測分級,然而目測分級方法不僅需要評判人員擁有大量的生產實踐經驗,同時還需要掌握鋸材的各種缺陷與強度的關系性能等知識。更為重要的是,目測分級評判結果會因人而異,評判標準不具有客觀性,不能做到優材優用、合理使用,無法真正提高木材的綜合利用率。
在木材缺陷表面缺陷識別研究領域,國內外學者提出了一些基于機器視覺的木材表面缺陷檢測方法。在這些基于機器視覺的木材表面缺陷的檢測方法中,常用的典型方法主要包括基于支持向量機的木材表面缺陷識別[8-9]、基于小波變換和局部二值模式(LBP)的方法[10]、基于顏色和紋理特征的方法[11]、基于灰度共生矩陣和基于模糊BP神經網絡的方法和基于小波變換和k近鄰(KNN)的識別算法[12]等。然而,木材缺陷的形狀、顏色、大小、質地和其他特征差異很大,使得難以分割和檢測木材表面缺陷。 這使得上述識別木材缺陷的方法在一定程度上具有局限性,并且難以均勻地檢測和分割木材表面缺陷。
筆者基于YOLOv4算法的深度學習方法,選取國內常用的云杉結構用鋸材為研究對象,通過工業相機采集結構用鋸材表面主要缺陷(節子、蟲眼、裂紋),對鋸材主要缺陷進行數字化表征(缺陷位置、類型等信息的可視化),定量地評價結構用鋸材表面缺陷,為結構用鋸材表面缺陷識別提供一種可行的方法。
基于YOLOv4的結構用鋸材表面缺陷識別評價,需要搭建適宜的鋸材表面圖像采集裝置,并獲取足夠數量的鋸材缺陷圖像。圖1為筆者所在課題組搭建的鋸材表面圖像采集平臺,圖2為部分經過裁剪為256×256像素特定大小的鋸材表面典型缺陷圖像。課題組選取Basler a2A2590-22gcPRO GigE相機采集鋸材表面缺陷圖片,其水平/垂直分辨率為2 592×1 944 px,分辨率為5 Mp,幀速率為22 fps,幀速率壓縮超越最高可達60 fps,工作溫度為0~50 ℃。為了滿足深度學習算法樣本訓練的需求,共采集活節、死節、裂紋以及蟲眼4種類型鋸材表面缺陷(圖2)。
深度學習方法之所以在林業中得到眾多科研人員的青睞,主要是由于深度學習作為一種深層的機器學習結構模型,在解決高維數據方面具有顯著優勢[13-14]。深度學習網絡模型采用端到端、多隱層、逐層學習的方式,其工作原理就是仿照人類大腦的思維特質,由淺入深地對數據特征進行挖掘和學習,更加適應于大數據、數據特征抽象復雜等情況[15]。目前最為常用的深度學習模型多采用多層神經網絡,而每一層神經網絡均會將輸入進行非線性映射,經過多層神經網絡的非線性映射后,可以實現在深層神經網絡中分析計算出較為抽象的特征,從而實現對復雜問題的分類[16]。隨著深度學習在林業中應用的不斷深入,越來越多基于深度學習方法的林業問題得以解決[17-19]。
1.2.1 YOLO算法模型概述
YOLO(you only look once)算法模型作為基于回歸的目標檢測方法的典型代表,Redmon等[20]于2016年首次提出YOLOv1的近乎實時目標檢測深度學習框架。YOLOv1在處理目標檢測時,將待檢測目標作為回歸問題處理,僅需對輸入的待檢測目標圖像做一次處理任務,便可以得到待檢測圖像的目標位置坐標以及識別類型結果。YOLO算法的基本思想結構示意圖如圖3所示,YOLOv1在執行目標檢測時,會將待檢測圖像縮放至448×448的固定尺寸,再通過卷積神經網絡(CNN)實現目標邊界框坐標、目標類型以及所判別類型的置信度預測,最后利用非極大值抑制算法(non-maximum suppression, NMS)獲取最佳預測框實現目標檢測。

圖3 YOLO算法的基本思想結構示意圖
YOLOv1在目標檢測時得益于不需要生成候選區,使得其檢測速度要優越于基于候選區域的檢測算法,檢測速度可達到45 fps。雖然YOLOv1算法擁有較高的檢測速度,但YOLOv1網格劃分較粗,檢測精度較低。鑒于YOLOv1存在的問題和不足,2017年Redmon等[21]提出了YOLOv2,其采用了與VGG網絡結構類似的Darknet-19作為其基本結構,并增加了錨點框(anchor boxes)預測邊界框,顯著提升了YOLOv2的目標檢測精度。為了進一步優化YOLOv2,2018年Lu等[22]提出了YOLOv2的升級版本YOLOv3,YOLOv3采用了更深的Darknet-53網絡結構,Darknet-53網絡結構與ResNet101網絡結構的效果相當,但其在網絡的識別速度是后者的2倍。為克服YOLOv2對小目標檢測精度不高的問題,YOLOv3的Darknet-53網絡結構采用了3×3和1×1的卷積和殘差結構形式,并且采用了FPN(feature pyramid networks for object detection)優化其多尺度檢測效果,在網絡的3個不同位置3種不同尺度的特征映射中實施檢測,從而優化了對小目標的檢測效果。
1.2.2 YOLOv4算法模型
YOLOv4檢測算法在YOLOv3算法的基礎上采用了更為復雜的網絡結構,對數據處理、算法主干網絡、網絡訓練以及損失函數等方面進行了優化,使得YOLOv4檢測算法成為目前在目標檢測速度和精度兩者最為均衡的算法結構。YOLOv4通過綜合使用Mosaic數據增強方法和遺傳算法(GA),更為準確地選擇超優參數,使得使用者在有限的GPU資源條件下就可獲得較好的檢測效果,極大地降低了數據訓練對硬件的要求。
對輸入的待檢測圖像,YOLOv4檢測算法通過特征提取網絡,獲取待檢測目標圖像的特征,并將輸入圖像劃分為S×S的網格,并由目標中心所在的網格負責檢測任務。同時,YOLOv4檢測算法采用IoU評價預測框和真實框間的交并比,其表達式如公式(1)所示。YOLOv4檢測算法利用交并比IoU,檢測算法評價邊界框中是否存在待檢測目標以及邊界框的準確度,采用置信度Conf(Object)表征待檢測目標的準確程度,置信度表達式如公式(2)所示。
(1)
Conf(object)=Pr(object)×IoU
(2)
式中:Pr(object)表征候選框中是否存在待檢測目標,并采用數字1和0表示存在和不存在兩種情況;IoU為評價預測框和真實框間的交并比;box(pred)為預測框,box(truth)為真實框。
YOLOv4檢測算法采用CSPDarknet-53作為其主干網絡,SPP為Neck附加模塊,PANet為Neck的特征融合模塊。其中CSPDarknet-53中有5個大殘差單元,每個小殘差單元個數分別為1、2、8、8、4[23]。圖4為YOLOv4算法網絡結構示意圖。

圖4 YOLOv4算法網絡結構示意圖
開展基于YOLOv4算法的結構用鋸材表面缺陷檢測,實驗平臺為Windows10×64操作系統,CPU為Intel?Core(TM) i7-10700處理器,顯卡為NVIDIA?GeForce?GTX 1660 Ti 6GB GDDR6,內存16G,深度學習軟件系統為CUDA 11.0、cuDNN 7.6.5、Visual Studio 2019、OpenCV 3.4、Python3.7.7。
實驗測試前,通過結構鋸材表面缺陷采集系統(圖3)共采集鋸材表面缺陷1 450張,其中活節缺陷550張,死節缺陷320張,裂紋缺陷295張,蟲眼缺陷285張。其中,隨機選取缺陷圖像中80%的圖像進行訓練,剩余20%用于測試。實驗樣本數據均采用圖像缺陷標注軟件labelImg進行人工標注(圖5),并生成相應的xml格式標記文件,實驗樣本具體實驗數據如表1所示。

圖5 基于labelImg軟件的鋸材表面缺陷樣本數據標注

表1 鋸材表面缺陷圖像樣本分配情況
對活節、死節、蟲眼以及裂紋等4類缺陷的實驗樣本圖像分別進行標定之后,生成對應的xml格式標記文件。基于YOLOv4架構搭建深度學習模型,并設置訓練樣本時的一批樣本數量batch=64,動量參數momentum=0.949,權重衰減正則項decay=0.000 5。數據增強參數angle為30°,60°,90°,120°,150°,180°,通過旋轉角度生成更多訓練樣本;數據增強參數saturation=1.5,通過調整飽和度來生成更多訓練樣本;數據增強參數exposure=1.5,通過調整曝光量來生成更多訓練樣本;數據增強參數hue=0.1,通過調整色調來生成更多訓練樣本。設置決定著權值更新的速度的learning rate=0.001,最大迭代次數max batches=4 000。圖6為實驗樣本訓練過程中,隨迭代次數的增加,損失函數值和平均識別率實時變化情況。通過分析圖6可知,迭代次數進行到2 600次時,訓練的識別率出現了100%正確識別,同時損失函數值為0.4左右,達到了較好的識別效果。

圖6 樣本訓練過程損失函數值和平均識別率實時變化
樣本訓練結束后,利用迭代4 000次的權重文件對測試樣本集進行目標檢測驗證,具體實驗測試結果如表2所示,實驗測試識別結果如圖7所示。分析表2可知,YOLOv4算法對于活節缺陷的識別率為100%,對死節和蟲眼的識別率為97.5%,均得到較高的正確識別率。對于裂紋缺陷的識別率為90%,相較于其他缺陷類型,識別率較低的主要原因為測試時存在漏檢現象。這主要是由于裂紋缺陷在鋸材圖像中,相比于其他缺陷較難發現。總體上平均96.7%的識別率,相較于SVM和BP等算法90%左右的識別率[24],基于YOLOv4的鋸材缺陷檢測識別率具有較為明顯的優勢。

表2 鋸材表面缺陷圖像實驗測試結果

圖7 鋸材表面缺陷識別結果圖像
1)綜合深度學習方法和YOLOv4算法,實現了對國產云杉結構用鋸材的表面4種缺陷(活節、死節、裂紋和蟲眼)的定位和類別識別,平均識別率為96.7%,可滿足實際生產需要,為將來開展結構用鋸材的表面質量評價,提供了理論和實踐參考。
2)基于YOLOv4的檢測算法,能夠實現對活節100%的缺陷識別準確率,死節97.5%的識別率,蟲眼96.7%的缺陷識別率,均達到了平均及以上的識別準確度,但是對于細小的裂紋缺陷存在誤判和漏檢現象,下一步需要結合缺陷檢測的實際需求改進算法,特別是針對小缺陷目標的檢測。
3)通過實驗測試發現,YOLOv4算法對于小樣本數據集具有良好的收斂性,并可快速將損失函數值降低到較小范圍,同時訓練精度也能夠穩定在較高精度范圍。