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