黃鵬桂,趙 璠,李曉平,吳章康,湯正捷,張嚴(yán)風(fēng)
(1. 西南林業(yè)大學(xué) 大數(shù)據(jù)與智能工程學(xué)院,云南 昆明 650224;2. 西南林業(yè)大學(xué) 國家林業(yè)和草原局 木材與木竹制品質(zhì)量檢驗檢測中心,云南 昆明 650224)
根據(jù)國家標(biāo)準(zhǔn)GB/T 18107?2017《紅木》,紅木共5屬8類29種。由于不同種類的紅木在表層宏觀特征不具有唯一性,但在橫切面上它們具有十分明顯的結(jié)構(gòu)差異,只有少部分紅木如烏木的結(jié)構(gòu)特征體現(xiàn)在弦切面上,因此,紅木識別目前主要依據(jù)紅木切片在光學(xué)顯微鏡下的結(jié)構(gòu)特征差異[1]。目前,紅木的特征識別主要是通用木材識別技術(shù)[2?3],如紅外光譜識技術(shù)[4?5]和氣相色譜技術(shù)[6?7]。此類紅木識別方法具有2個主要的缺陷:其一,根據(jù)紅木切片照片的特征進(jìn)行人工識別,識別的準(zhǔn)確度受限于識別人員的專業(yè)素養(yǎng)和經(jīng)驗,特別是對于較為罕見的紅木品種,時常發(fā)生不同識別人員識別結(jié)果不一致的情況;其二,現(xiàn)行的紅木識別并沒有結(jié)合紅木的結(jié)構(gòu)特征進(jìn)行相關(guān)優(yōu)化。由于不同種類紅木的結(jié)構(gòu)特征差異使得紅木切片上的紋理特征不同[3],這就可以運用圖像識別技術(shù)來進(jìn)行紅木分類識別。王學(xué)順等[8]、ESTEBAN等[9]、LAZARESCU等[10]、MOHAN等[3]等已將機(jī)器學(xué)習(xí)和一些圖像識別技術(shù)應(yīng)用于木材識別。卷積神經(jīng)網(wǎng)絡(luò)[11?12]作為目前圖像識別領(lǐng)域中最先進(jìn)的技術(shù),利用該模型對紅木切片紋理特征進(jìn)行紅木識別,可大幅降低紅木識別的專業(yè)要求,又能提高紅木識別率[13]。相比于傳統(tǒng)的紅木識別技術(shù)和一些特殊的技術(shù)如應(yīng)力波[14?15]、熱重曲線[16]等,這些方法的識別效果對所提取特征的表示性要求較高,為取得最優(yōu)的識別效果還需對比眾多分類算法[17?19]。卷積神經(jīng)網(wǎng)絡(luò)可以自動提取紅木切片的紋理特征并分類識別。為了簡化紅木識別流程,提升識別精度,使用卷積神經(jīng)網(wǎng)絡(luò)對紅木樹種分類識別研究。
紅木切片樣本來自國家林業(yè)和草原局木材與木竹制品質(zhì)量檢驗檢測中心(昆明)實際檢測業(yè)務(wù)中累積的數(shù)據(jù),包括黃檀屬Dalbergia和紫檀屬Pterocarpus中交趾黃檀D.cochinchinensis、刀狀黑黃檀D.cultrata、盧氏黑黃檀D.louvelii、巴里黃檀D.bariensis、奧氏黃檀D.oliveri、大果紫檀P.macrocarpus、檀香紫檀P.santalinus等7種紅木的376個樣本。由于在實際木材檢驗中,結(jié)合宏觀特征與橫切面結(jié)構(gòu)特征就可確定許多紅木種類,因此,橫切面(顯微鏡30倍)樣本數(shù)據(jù)較多。在分別針對紅木的橫切面、徑切面、弦切面的部分?jǐn)?shù)據(jù)初步建立卷積神經(jīng)網(wǎng)絡(luò)時,同樣發(fā)現(xiàn)針對橫切面的數(shù)據(jù)識別模型精度較高(圖1)。因此,選用橫切面數(shù)據(jù)做識別訓(xùn)練。
圖 1 識別精度對比圖Figure 1 Comparison of recognition accuracy
1.2.1 去除圖像氣泡和空白 受試劑的影響,切片圖像存在氣泡和空白,很容易產(chǎn)生噪聲數(shù)據(jù)影響識別精度,因此設(shè)計RGB圖像空白處裁剪算法。算法需要先行設(shè)置空白率r,1幅圖像中1行的白色像素數(shù)在整行所占的比列小于r后,則認(rèn)為從這一行開始包含有效信息,此行后的像素行不再進(jìn)行裁剪。處理流程為先拷貝圖像A的副本A2,對A2進(jìn)行灰度化處理,使得空白處像素點的值接近于1。從左到右逐列比較空白率,得出x1;再從右到左逐列比較空白率,得出x2;同理從上到下、從下到上比較空白率,得出y1和y2。依據(jù)(x1,x2,y1,y2)得矩形的4個點,依據(jù)4個點的位置裁剪目標(biāo)圖片(圖2)。
1.2.2 圖像直方圖均衡化處理 切片在取樣時可能存在薄厚不均,在放入載玻片操作時會導(dǎo)致切片折疊產(chǎn)生黑塊,且紅木切片的顏色很容易受試劑的影響。因此,先將圖像從RGB空間轉(zhuǎn)換到HSV空間[20],再在V通道進(jìn)行直方圖均衡化處理后再轉(zhuǎn)換到RGB空間。均衡化處理后,圖像上的黑塊變淡、紋理清晰(圖3)。
圖 2 空白裁剪前后的檀香紫檀橫切面圖Figure 2 Comparison of P.santalinus cross section before and after blank cutting
圖 3 直方圖均衡化前后的奧氏黃檀Figure 3 Comparison of D.oliveri cross sections before and after histogram equalization
1.2.3 圖像尺寸與旋轉(zhuǎn)處理 切片大小不一會造成切片圖像尺寸和旋轉(zhuǎn)方向不一致,卷積神經(jīng)網(wǎng)絡(luò)模型需要輸入固定尺寸和方向的圖像,會導(dǎo)致圖像因縮放紋理結(jié)構(gòu)發(fā)生形變,同時樣本數(shù)量有限,因此提出旋轉(zhuǎn)隨機(jī)裁剪法來統(tǒng)一和擴(kuò)充樣本。處理流程為每張圖片旋轉(zhuǎn)36次,每次旋轉(zhuǎn)10°,每次旋轉(zhuǎn)都依據(jù)圖片的面積比裁剪出相應(yīng)數(shù)量的子圖。為了使子圖盡可能小同時又包含更多信息,子圖的尺寸被統(tǒng)一為(224, 224),如輸入圖像的尺寸為(w,h),共裁剪出的子圖數(shù)量n為wh/(224×224)。經(jīng)過空白處理后的圖像在邊角部分仍存在連續(xù)的空白區(qū)塊,這使得旋轉(zhuǎn)后的圖像存在不少黑色填充區(qū)域,導(dǎo)致隨機(jī)裁剪出的部分圖像存在連續(xù)的黑色或白色區(qū)域。為了減少這種影響,使用白點率、黑點率丟棄法,統(tǒng)計圖像中白色或黑色像素點的數(shù)量,如果所占比例超過閾值就直接丟棄。黑點丟棄的閾值設(shè)置為0.06,考慮到紅木切片管孔的空白部分,白點丟棄得閾值為0.17,處理如圖4所示。最終,擴(kuò)展得到可用樣本21 495個(表1)。將這些樣本按照3∶1∶1的比例劃分為訓(xùn)練集、驗證集、測試集3部分。
圖 4 擴(kuò)充后的巴里黃檀橫切面圖Figure 4 Expanded D.bariensis cross section pictures
卷積神經(jīng)網(wǎng)絡(luò)通過構(gòu)建人工神經(jīng)網(wǎng)絡(luò)[21],模擬人類的大腦思考過程自動從帶有標(biāo)簽的數(shù)據(jù)中學(xué)習(xí)特征,進(jìn)行分類預(yù)測。卷積神經(jīng)網(wǎng)絡(luò)由3種網(wǎng)絡(luò)層結(jié)構(gòu)組成,前面部分由卷積層、池化層交替連接,后面部分由全連接層組成。利用卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行紅木切片識別,先要使用被標(biāo)注過的切片樣本訓(xùn)練模型,然后通過代價函數(shù)評估模型的擬合能力,并以反向傳播的過程不斷調(diào)試模型參數(shù),最終使得模型能提取并擬合紅木切片的結(jié)構(gòu)特征。
表 1 樣本數(shù)量表Table 1 Number of samples
紅木切片的識別模型有12層,卷積核的數(shù)目逐層增多。連續(xù)的2個3×3的卷積核,使卷積核的視野與5×5的卷積核一致,而運算量減少28%;同樣為了減少卷積的運算量,將裁剪后的圖像統(tǒng)一縮放到150×150。模型在卷積層中,設(shè)計了多個卷積通道,能以不用角度的視野提取特征。為了能對邊緣像素點提取特征,將卷積運算模式設(shè)置為填充模式,步長為1。卷積之間加入2×2的最大池化層(maxpool),選擇矩陣中每個2×2區(qū)塊的最大值為下一層輸入,能提取顯著特征,減小矩陣尺寸,最后一個卷積層與全局平均池化層 (global average pool)相連接將輸入矩陣從 (37, 37, 128)直接變?yōu)?(128),充分減少了模型計算量。模型采用線性整流函數(shù)(relu)作為激活函數(shù),克服網(wǎng)絡(luò)層次變深而梯度消失的情況。最后3層為全連接,最后一層的特征利用歸一化指數(shù)函數(shù)(softmax)做多分類預(yù)測。最終模型結(jié)構(gòu)如圖5所示,各層參數(shù)如表2所示。
圖 5 模型結(jié)構(gòu)圖Figure 5 Model structure
表 2 模型的各層參數(shù)Table 2 Layer parameters of the model
模型的訓(xùn)練過程實際上是將網(wǎng)絡(luò)輸入以正向傳播的過程輸入圖像逐層提取特征,在卷積層a中,卷積核w以滑動窗口的方式從矩陣最右上角的點運算到最后1個像素點,窗口覆蓋的范圍與對應(yīng)的卷積核參數(shù)相乘,乘積結(jié)果之和加上偏移量b賦值到對應(yīng)矩陣中卷積核中心的位置,然后在使用激活函數(shù)σ將卷積的輸出結(jié)果z進(jìn)行激活操作。卷積層的前向傳播過程為:
式(1)中:L表示卷積層的層數(shù),zL表示第L層卷積操作的輸出,aL表示第L個的卷積層的輸出結(jié)果。上述只是描述了單個卷積核連接的過程,網(wǎng)絡(luò)層有多個卷積核時,每個卷積核多需要經(jīng)相應(yīng)的運行,并將所有卷積核的輸出累加作為卷積層的輸出。
選用的池化層大小是2×2,其運算是將一個n×n的矩陣劃分成多個2×2的子區(qū)域,然后選取每個子區(qū)域的最大值輸出一個的矩陣,整個過程中并沒有參數(shù)需要調(diào)整。全連接層f的傳播過程為:
式(2)中:當(dāng)fL?1層的神經(jīng)元數(shù)為n,fL層的神經(jīng)元數(shù)為m時,w的形狀為n×m。全連接的最后一層選用歸一化指數(shù)函數(shù)作為激活函數(shù),提取結(jié)果映射到[0, 1]概率區(qū)間與標(biāo)簽編碼形成的獨熱碼編碼比較,得出擬合損失。再利用自適應(yīng)矩估計(adaptive moment estimation, Adam)優(yōu)化器將比較結(jié)果以反向傳播的過程逐層調(diào)整網(wǎng)絡(luò)層參數(shù),使得模型的擬合損失逐步變小。自適應(yīng)矩估計優(yōu)化器實現(xiàn)簡單計算高效,能自動調(diào)整學(xué)習(xí)率,減少損失函數(shù)的震蕩,使精度不斷上升。
在訓(xùn)練時為了盡量精簡模型的體量,起初每層的卷積核通道都比較少,訓(xùn)練出來模型的精度不高。每次訓(xùn)練結(jié)束后都依據(jù)損失函數(shù)的值,適度調(diào)整優(yōu)化器的學(xué)習(xí)率和衰減率、變更卷積通道數(shù)、修改全連接層結(jié)構(gòu),使模型的測試精度不斷上升,直到精度符合實驗預(yù)期目標(biāo)時終止調(diào)參過程。模型最初選用的優(yōu)化器是隨機(jī)梯度下降法(stochastic gradient descent, SGD),收斂速度較慢,在換成自適應(yīng)矩估計優(yōu)化器后模型收斂速度變快,且精度有所提升,如圖6所示。在起初模型存在過擬合,引入隨機(jī)失活(dropout)機(jī)制降低過擬合,但調(diào)整后又出現(xiàn)數(shù)據(jù)泄露假象,訓(xùn)練集的重要特征丟失導(dǎo)致驗證集精度高于訓(xùn)練集,最終通過降低隨機(jī)失活的神經(jīng)元數(shù)量的權(quán)重加以解決,并經(jīng)過試驗最終采用隨機(jī)失活的權(quán)重為0.2。
輸入圖像的尺寸是150×150的RGB三通道圖像,在經(jīng)過卷積層時圖像矩陣通道數(shù)變成和卷積核數(shù)目一致,經(jīng)過第1個池化層后數(shù)據(jù)矩陣尺寸變?yōu)?5×75×16,再通過卷積層、池化層后數(shù)據(jù)矩陣尺寸變?yōu)?8×18×128的三維數(shù)組。而其后的全連接層輸入必須是一維向量,因此使用全局平均池化層在每個18×18的矩陣中求得平均值,將三維數(shù)組重塑為128維的向量,第1個全連接層的輸出是158。數(shù)據(jù)再經(jīng)過卷積層和全連接層時,都利用線性整流函數(shù)進(jìn)行激活操作,而通過最后一個全連接層輸出時使用歸一化指數(shù)函數(shù)將數(shù)值映射到概率[0, 1]空間。如圖7所示:模型的訓(xùn)練輪次為30、批大小為32,模型在第29個輪次后,精度穩(wěn)定在99%,達(dá)到收斂狀態(tài)。
圖 6 2 種優(yōu)化器的損失對比Figure 6 Comparison of loss between two optimizers
圖 7 訓(xùn)練時精度變化Figure 7 Accuracy changes during training
如表3所示:利用4 299個測試樣本測試后,有4 273個樣本預(yù)測正確,僅有26個紅木樣本預(yù)測錯誤,準(zhǔn)確率高達(dá)99.4%。本方法不需要對特征建立多個識別模型,能夠自動提取適合模型分類識別的特征,使用更為便捷。
此外,為進(jìn)一步論證本方法模型的可靠性,選用卷積神經(jīng)網(wǎng)絡(luò)模型AlexNet[22]和VggNet[23],分別運用遷移學(xué)習(xí)技術(shù)修改它們的最后一層全連接層的數(shù)量,微調(diào)其全部全連接層的參數(shù)建立模型與本方法模型進(jìn)行了對比。從表4可以看出:本模型參數(shù)更少、精度更高。
表 3 各類別的識別準(zhǔn)確率Table 3 The recognition accuracy of each category
表 4 模型參數(shù)對比Table 4 Comparison of model parameters
本方法準(zhǔn)確率達(dá)99.4%,證明了卷積神經(jīng)網(wǎng)絡(luò)技術(shù)用于紅木分類識別的可能性。此外,本方法模型在同樣的數(shù)據(jù)情況下,雖然在調(diào)參優(yōu)化與訓(xùn)練時間大于遷移學(xué)習(xí)模型,但泛化能力明顯高于遷移學(xué)習(xí)模型,證明了自建模型在應(yīng)用上優(yōu)于遷移學(xué)習(xí)模型。
但是,本方法還存在以下問題:針對交趾黃檀、巴里黃檀、檀香紫檀等7種紅木達(dá)到實用級的準(zhǔn)確率,但要滿足實際應(yīng)用還需更多更全的樣本,以保證對于全紅木種類的識別精度;模型給定的輸入必須為顯微鏡30倍拍攝圖片,在圖像輸入到模型前可以針對圖像的拍攝倍數(shù)進(jìn)行適當(dāng)縮放,以達(dá)到顯微鏡30倍拍攝的效果;識別結(jié)果中僅包括種類信息,無法給出相應(yīng)的判別依據(jù),后續(xù)可借鑒目標(biāo)檢測網(wǎng)絡(luò)的思想,構(gòu)建語義化的紅木切片識別模型,達(dá)到自動識別紅木類型并框選出相應(yīng)紅木結(jié)構(gòu)特征的效果。