王勇,張偉,2*,高銳,3,金征
(1. 國家林業(yè)和草原局北京林業(yè)機械研究所,北京 100029; 2. 中國林業(yè)科學研究院林業(yè)新技術(shù)研究所,北京 100091;3. 福建省林業(yè)科學研究院,福州 350012)
結(jié)構(gòu)用鋸材(又稱規(guī)格材)是木結(jié)構(gòu)建筑構(gòu)件的關(guān)鍵單元材料,同時結(jié)構(gòu)用鋸材不僅可以直接用于建筑構(gòu)件,還可作為原材料制造平行膠合木(集成材)、正交膠合木(CLT)等木結(jié)構(gòu)產(chǎn)品。由此可見,其力學性能和強度等級,對木結(jié)構(gòu)建筑、集成材和CLT的安全使用性能具有直接影響[1]。按照木結(jié)構(gòu)建筑材料的使用性能要求,并結(jié)合結(jié)構(gòu)用鋸材分級規(guī)則,應先實現(xiàn)對結(jié)構(gòu)用鋸材強度等級的有效評價、預測,再通過同等級或異等級組合加工成尺寸更大的梁、柱構(gòu)件,應用于木結(jié)構(gòu)建筑的受力結(jié)構(gòu)構(gòu)件;因此,在使用之前對結(jié)構(gòu)用鋸材進行相關(guān)質(zhì)量評價、分級十分有必要,可以更好地做到優(yōu)材優(yōu)用,提高木材的綜合利用率。
現(xiàn)階段我國對于結(jié)構(gòu)用鋸材分級標準及設備的研究滯后于國外,致使國產(chǎn)材的競爭力遠低于按照國外相關(guān)標準分等的進口材,這嚴重制約了國產(chǎn)鋸材的應用及推廣發(fā)展[2-3]。目前結(jié)構(gòu)用鋸材分級方法主要有目測分級和機械分級兩種。然而在實際執(zhí)行分級過程時上述兩種方法均存在一定的難度,目測分級需要由專業(yè)工人用肉眼觀察結(jié)構(gòu)用鋸材表面缺陷種類、尺寸、位置及數(shù)量,再結(jié)合經(jīng)驗評估其強度并劃分等級。木材缺陷類型主要包括節(jié)子、蛀孔、裂紋、變形、腐朽、構(gòu)造缺陷、損傷等,目測分等效率取決于工人的經(jīng)驗水平,分等準確率較低,分等結(jié)果不具有客觀性;機械分級方法(彎曲應力法、振動測試法、應力波法、超聲波法等)需要依靠專門化的試驗測試設備,并且需要專業(yè)化操作人員進行試驗測試分析,需要投入較大的人力物力資源[4]。
鋸材的表面質(zhì)量對木制品的質(zhì)量起著至關(guān)重要的作用。鋸材的表面質(zhì)量主要受鋸材表面缺陷(如節(jié)子、孔洞、蟲眼、裂紋等)以及鋸材表面紋理的綜合影響[5],鋸材表面缺陷,會直接影響鋸材的使用強度。鋸材作為木結(jié)構(gòu)建筑中重要的結(jié)構(gòu)用材料,在使用之前必須進行分級劃分,以確保所選用的鋸材能夠滿足所需的力學性能(如彈性、剛度等)要求。鋸材的表面缺陷與密度、強度等指標一樣,在材質(zhì)檢驗工作中受到重視[6],如美國、法國、日本等發(fā)達國家已將其作為評價木材質(zhì)量和決定木材產(chǎn)品價值的重要參考[7]。
目前針對鋸材的表面質(zhì)量評價仍主要依賴人工目測分級,然而目測分級方法不僅需要評判人員擁有大量的生產(chǎn)實踐經(jīng)驗,同時還需要掌握鋸材的各種缺陷與強度的關(guān)系性能等知識。更為重要的是,目測分級評判結(jié)果會因人而異,評判標準不具有客觀性,不能做到優(yōu)材優(yōu)用、合理使用,無法真正提高木材的綜合利用率。
在木材缺陷表面缺陷識別研究領域,國內(nèi)外學者提出了一些基于機器視覺的木材表面缺陷檢測方法。在這些基于機器視覺的木材表面缺陷的檢測方法中,常用的典型方法主要包括基于支持向量機的木材表面缺陷識別[8-9]、基于小波變換和局部二值模式(LBP)的方法[10]、基于顏色和紋理特征的方法[11]、基于灰度共生矩陣和基于模糊BP神經(jīng)網(wǎng)絡的方法和基于小波變換和k近鄰(KNN)的識別算法[12]等。然而,木材缺陷的形狀、顏色、大小、質(zhì)地和其他特征差異很大,使得難以分割和檢測木材表面缺陷。 這使得上述識別木材缺陷的方法在一定程度上具有局限性,并且難以均勻地檢測和分割木材表面缺陷。
筆者基于YOLOv4算法的深度學習方法,選取國內(nèi)常用的云杉結(jié)構(gòu)用鋸材為研究對象,通過工業(yè)相機采集結(jié)構(gòu)用鋸材表面主要缺陷(節(jié)子、蟲眼、裂紋),對鋸材主要缺陷進行數(shù)字化表征(缺陷位置、類型等信息的可視化),定量地評價結(jié)構(gòu)用鋸材表面缺陷,為結(jié)構(gòu)用鋸材表面缺陷識別提供一種可行的方法。
基于YOLOv4的結(jié)構(gòu)用鋸材表面缺陷識別評價,需要搭建適宜的鋸材表面圖像采集裝置,并獲取足夠數(shù)量的鋸材缺陷圖像。圖1為筆者所在課題組搭建的鋸材表面圖像采集平臺,圖2為部分經(jīng)過裁剪為256×256像素特定大小的鋸材表面典型缺陷圖像。課題組選取Basler a2A2590-22gcPRO GigE相機采集鋸材表面缺陷圖片,其水平/垂直分辨率為2 592×1 944 px,分辨率為5 Mp,幀速率為22 fps,幀速率壓縮超越最高可達60 fps,工作溫度為0~50 ℃。為了滿足深度學習算法樣本訓練的需求,共采集活節(jié)、死節(jié)、裂紋以及蟲眼4種類型鋸材表面缺陷(圖2)。
深度學習方法之所以在林業(yè)中得到眾多科研人員的青睞,主要是由于深度學習作為一種深層的機器學習結(jié)構(gòu)模型,在解決高維數(shù)據(jù)方面具有顯著優(yōu)勢[13-14]。深度學習網(wǎng)絡模型采用端到端、多隱層、逐層學習的方式,其工作原理就是仿照人類大腦的思維特質(zhì),由淺入深地對數(shù)據(jù)特征進行挖掘和學習,更加適應于大數(shù)據(jù)、數(shù)據(jù)特征抽象復雜等情況[15]。目前最為常用的深度學習模型多采用多層神經(jīng)網(wǎng)絡,而每一層神經(jīng)網(wǎng)絡均會將輸入進行非線性映射,經(jīng)過多層神經(jīng)網(wǎng)絡的非線性映射后,可以實現(xiàn)在深層神經(jīng)網(wǎng)絡中分析計算出較為抽象的特征,從而實現(xiàn)對復雜問題的分類[16]。隨著深度學習在林業(yè)中應用的不斷深入,越來越多基于深度學習方法的林業(yè)問題得以解決[17-19]。
1.2.1 YOLO算法模型概述
YOLO(you only look once)算法模型作為基于回歸的目標檢測方法的典型代表,Redmon等[20]于2016年首次提出YOLOv1的近乎實時目標檢測深度學習框架。YOLOv1在處理目標檢測時,將待檢測目標作為回歸問題處理,僅需對輸入的待檢測目標圖像做一次處理任務,便可以得到待檢測圖像的目標位置坐標以及識別類型結(jié)果。YOLO算法的基本思想結(jié)構(gòu)示意圖如圖3所示,YOLOv1在執(zhí)行目標檢測時,會將待檢測圖像縮放至448×448的固定尺寸,再通過卷積神經(jīng)網(wǎng)絡(CNN)實現(xiàn)目標邊界框坐標、目標類型以及所判別類型的置信度預測,最后利用非極大值抑制算法(non-maximum suppression, NMS)獲取最佳預測框?qū)崿F(xiàn)目標檢測。
圖3 YOLO算法的基本思想結(jié)構(gòu)示意圖
YOLOv1在目標檢測時得益于不需要生成候選區(qū),使得其檢測速度要優(yōu)越于基于候選區(qū)域的檢測算法,檢測速度可達到45 fps。雖然YOLOv1算法擁有較高的檢測速度,但YOLOv1網(wǎng)格劃分較粗,檢測精度較低。鑒于YOLOv1存在的問題和不足,2017年Redmon等[21]提出了YOLOv2,其采用了與VGG網(wǎng)絡結(jié)構(gòu)類似的Darknet-19作為其基本結(jié)構(gòu),并增加了錨點框(anchor boxes)預測邊界框,顯著提升了YOLOv2的目標檢測精度。為了進一步優(yōu)化YOLOv2,2018年Lu等[22]提出了YOLOv2的升級版本YOLOv3,YOLOv3采用了更深的Darknet-53網(wǎng)絡結(jié)構(gòu),Darknet-53網(wǎng)絡結(jié)構(gòu)與ResNet101網(wǎng)絡結(jié)構(gòu)的效果相當,但其在網(wǎng)絡的識別速度是后者的2倍。為克服YOLOv2對小目標檢測精度不高的問題,YOLOv3的Darknet-53網(wǎng)絡結(jié)構(gòu)采用了3×3和1×1的卷積和殘差結(jié)構(gòu)形式,并且采用了FPN(feature pyramid networks for object detection)優(yōu)化其多尺度檢測效果,在網(wǎng)絡的3個不同位置3種不同尺度的特征映射中實施檢測,從而優(yōu)化了對小目標的檢測效果。
1.2.2 YOLOv4算法模型
YOLOv4檢測算法在YOLOv3算法的基礎上采用了更為復雜的網(wǎng)絡結(jié)構(gòu),對數(shù)據(jù)處理、算法主干網(wǎng)絡、網(wǎng)絡訓練以及損失函數(shù)等方面進行了優(yōu)化,使得YOLOv4檢測算法成為目前在目標檢測速度和精度兩者最為均衡的算法結(jié)構(gòu)。YOLOv4通過綜合使用Mosaic數(shù)據(jù)增強方法和遺傳算法(GA),更為準確地選擇超優(yōu)參數(shù),使得使用者在有限的GPU資源條件下就可獲得較好的檢測效果,極大地降低了數(shù)據(jù)訓練對硬件的要求。
對輸入的待檢測圖像,YOLOv4檢測算法通過特征提取網(wǎng)絡,獲取待檢測目標圖像的特征,并將輸入圖像劃分為S×S的網(wǎng)格,并由目標中心所在的網(wǎng)格負責檢測任務。同時,YOLOv4檢測算法采用IoU評價預測框和真實框間的交并比,其表達式如公式(1)所示。YOLOv4檢測算法利用交并比IoU,檢測算法評價邊界框中是否存在待檢測目標以及邊界框的準確度,采用置信度Conf(Object)表征待檢測目標的準確程度,置信度表達式如公式(2)所示。
(1)
Conf(object)=Pr(object)×IoU
(2)
式中:Pr(object)表征候選框中是否存在待檢測目標,并采用數(shù)字1和0表示存在和不存在兩種情況;IoU為評價預測框和真實框間的交并比;box(pred)為預測框,box(truth)為真實框。
YOLOv4檢測算法采用CSPDarknet-53作為其主干網(wǎng)絡,SPP為Neck附加模塊,PANet為Neck的特征融合模塊。其中CSPDarknet-53中有5個大殘差單元,每個小殘差單元個數(shù)分別為1、2、8、8、4[23]。圖4為YOLOv4算法網(wǎng)絡結(jié)構(gòu)示意圖。
圖4 YOLOv4算法網(wǎng)絡結(jié)構(gòu)示意圖
開展基于YOLOv4算法的結(jié)構(gòu)用鋸材表面缺陷檢測,實驗平臺為Windows10×64操作系統(tǒng),CPU為Intel?Core(TM) i7-10700處理器,顯卡為NVIDIA?GeForce?GTX 1660 Ti 6GB GDDR6,內(nèi)存16G,深度學習軟件系統(tǒng)為CUDA 11.0、cuDNN 7.6.5、Visual Studio 2019、OpenCV 3.4、Python3.7.7。
實驗測試前,通過結(jié)構(gòu)鋸材表面缺陷采集系統(tǒng)(圖3)共采集鋸材表面缺陷1 450張,其中活節(jié)缺陷550張,死節(jié)缺陷320張,裂紋缺陷295張,蟲眼缺陷285張。其中,隨機選取缺陷圖像中80%的圖像進行訓練,剩余20%用于測試。實驗樣本數(shù)據(jù)均采用圖像缺陷標注軟件labelImg進行人工標注(圖5),并生成相應的xml格式標記文件,實驗樣本具體實驗數(shù)據(jù)如表1所示。
圖5 基于labelImg軟件的鋸材表面缺陷樣本數(shù)據(jù)標注
表1 鋸材表面缺陷圖像樣本分配情況
對活節(jié)、死節(jié)、蟲眼以及裂紋等4類缺陷的實驗樣本圖像分別進行標定之后,生成對應的xml格式標記文件?;赮OLOv4架構(gòu)搭建深度學習模型,并設置訓練樣本時的一批樣本數(shù)量batch=64,動量參數(shù)momentum=0.949,權(quán)重衰減正則項decay=0.000 5。數(shù)據(jù)增強參數(shù)angle為30°,60°,90°,120°,150°,180°,通過旋轉(zhuǎn)角度生成更多訓練樣本;數(shù)據(jù)增強參數(shù)saturation=1.5,通過調(diào)整飽和度來生成更多訓練樣本;數(shù)據(jù)增強參數(shù)exposure=1.5,通過調(diào)整曝光量來生成更多訓練樣本;數(shù)據(jù)增強參數(shù)hue=0.1,通過調(diào)整色調(diào)來生成更多訓練樣本。設置決定著權(quán)值更新的速度的learning rate=0.001,最大迭代次數(shù)max batches=4 000。圖6為實驗樣本訓練過程中,隨迭代次數(shù)的增加,損失函數(shù)值和平均識別率實時變化情況。通過分析圖6可知,迭代次數(shù)進行到2 600次時,訓練的識別率出現(xiàn)了100%正確識別,同時損失函數(shù)值為0.4左右,達到了較好的識別效果。
圖6 樣本訓練過程損失函數(shù)值和平均識別率實時變化
樣本訓練結(jié)束后,利用迭代4 000次的權(quán)重文件對測試樣本集進行目標檢測驗證,具體實驗測試結(jié)果如表2所示,實驗測試識別結(jié)果如圖7所示。分析表2可知,YOLOv4算法對于活節(jié)缺陷的識別率為100%,對死節(jié)和蟲眼的識別率為97.5%,均得到較高的正確識別率。對于裂紋缺陷的識別率為90%,相較于其他缺陷類型,識別率較低的主要原因為測試時存在漏檢現(xiàn)象。這主要是由于裂紋缺陷在鋸材圖像中,相比于其他缺陷較難發(fā)現(xiàn)??傮w上平均96.7%的識別率,相較于SVM和BP等算法90%左右的識別率[24],基于YOLOv4的鋸材缺陷檢測識別率具有較為明顯的優(yōu)勢。
表2 鋸材表面缺陷圖像實驗測試結(jié)果
圖7 鋸材表面缺陷識別結(jié)果圖像
1)綜合深度學習方法和YOLOv4算法,實現(xiàn)了對國產(chǎn)云杉結(jié)構(gòu)用鋸材的表面4種缺陷(活節(jié)、死節(jié)、裂紋和蟲眼)的定位和類別識別,平均識別率為96.7%,可滿足實際生產(chǎn)需要,為將來開展結(jié)構(gòu)用鋸材的表面質(zhì)量評價,提供了理論和實踐參考。
2)基于YOLOv4的檢測算法,能夠?qū)崿F(xiàn)對活節(jié)100%的缺陷識別準確率,死節(jié)97.5%的識別率,蟲眼96.7%的缺陷識別率,均達到了平均及以上的識別準確度,但是對于細小的裂紋缺陷存在誤判和漏檢現(xiàn)象,下一步需要結(jié)合缺陷檢測的實際需求改進算法,特別是針對小缺陷目標的檢測。
3)通過實驗測試發(fā)現(xiàn),YOLOv4算法對于小樣本數(shù)據(jù)集具有良好的收斂性,并可快速將損失函數(shù)值降低到較小范圍,同時訓練精度也能夠穩(wěn)定在較高精度范圍。