董嘉真,丁怡如,郭正陽,李娟蕓,邢艷秋
(1 東北林業(yè)大學(xué) 工程技術(shù)學(xué)院,哈爾濱 150040;2 東北林業(yè)大學(xué) 信息與計(jì)算機(jī)工程學(xué)院,哈爾濱 150040)
地球上的樹木有很多種。對樹木資源進(jìn)行清查、利用,首要的就是對樹木的種類進(jìn)行識(shí)別。傳統(tǒng)的人工識(shí)別方式具有工作量大、效率低下等缺點(diǎn),因此可以利用人工智能技術(shù)來輔助快速、自動(dòng)識(shí)別樹種。
針對樹種的自動(dòng)識(shí)別,不同學(xué)者從樹葉、樹干、樹木整體圖像等方面入手進(jìn)行了大量的研究[1]。王偉等人[2]通過對樹木樹葉的識(shí)別,開發(fā)了一款基于Android 操作平臺(tái)的樹木葉片識(shí)別系統(tǒng),針對15個(gè)樹種的識(shí)別率可以達(dá)到94.44%。馮海林等人[3]提出了一種樹種識(shí)別的方法,基于樹木整體圖像和集成遷移學(xué)習(xí)對復(fù)雜背景下的10 種樹木圖像進(jìn)行分類,準(zhǔn)確率可以達(dá)到99.15%。楊蒙蒙[4]使用BP神經(jīng)網(wǎng)絡(luò),對15 個(gè)樹種的樹葉圖像進(jìn)行分類,最終得到80.97%的識(shí)別率。
樹種識(shí)別的研究面臨許多難點(diǎn):
(1)樹木會(huì)隨著季節(jié)、生長時(shí)期的變化,表現(xiàn)出不同的特征,對樹種識(shí)別造成很大的影響。
(2)自然的背景環(huán)境下的樹木,由于光照、遮擋等因素,采集到的圖像會(huì)存在各種各樣的噪聲干擾,從而影響最終的識(shí)別結(jié)果。
(3)國內(nèi)外目前還沒有一個(gè)統(tǒng)一完善的樹種圖像數(shù)據(jù)庫,這也對研究工作造成了很大的困擾。
針對上述難點(diǎn),研究采用樹干圖像進(jìn)行樹種識(shí)別的訓(xùn)練。樹干是樹木的重要組成部分,其表面具有大量的特征信息:紋理色調(diào)、紋理形狀、紋理方向、紋理周期密度、紋理粗細(xì)均勻度、紋理基元大小、紋理規(guī)則度等[5],且樹干圖像受季節(jié)、光照等因素影響較少,數(shù)據(jù)容易收集。
為解決樹種圖像數(shù)據(jù)庫不完善的問題,本研究使用自主拍攝的樹干圖像構(gòu)建了樹種數(shù)據(jù)集,并對其進(jìn)行數(shù)據(jù)加強(qiáng)與擴(kuò)充。同時(shí),為滿足深度學(xué)習(xí)樹種識(shí)別在移動(dòng)端上的應(yīng)用,本文用輕量化MobileNetv3 網(wǎng)絡(luò),并基于ImageNet 預(yù)訓(xùn)練權(quán)重進(jìn)行遷移學(xué)習(xí)。最終實(shí)驗(yàn)結(jié)果表明,輕量化樹種識(shí)別模型能夠在保證識(shí)別準(zhǔn)確率的同時(shí),降低模型大小、減少模型參數(shù),更加適合移動(dòng)端設(shè)備的部署應(yīng)用。
深度學(xué)習(xí)(Deep Learning,DL)是機(jī)器學(xué)習(xí)(Machine Learning,ML)領(lǐng)域中的一個(gè)分支,是一種利用深層神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)架構(gòu)對數(shù)據(jù)進(jìn)行特征學(xué)習(xí)的算法。其學(xué)習(xí)數(shù)據(jù)的特征,通過由連接的神經(jīng)元組成的多層網(wǎng)絡(luò)進(jìn)行抽象、提取并鑒別數(shù)據(jù)特征,從而實(shí)現(xiàn)圖像的分類和回歸任務(wù)。近年來,深度學(xué)習(xí)在搜索推薦、視覺識(shí)別、數(shù)據(jù)挖掘、自然語言處理等領(lǐng)域表現(xiàn)出色,解決了許多復(fù)雜的模式識(shí)別問題。
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)是深度神經(jīng)網(wǎng)絡(luò)的一種,包括輸入層、卷積層、池化層、全連接層和輸出層。其中,輸入層接收輸入信號(hào);卷積層對輸入的圖像特征進(jìn)行提??;池化層將卷積層輸出的高維度信息處理后得到低維度信息;全連接層將參數(shù)向量化,提升結(jié)果準(zhǔn)確度;輸出層輸出圖像處理結(jié)果。在卷積層中,輸出特征面的神經(jīng)元與輸入具有局部連接,通過神經(jīng)元與其輸入的連接權(quán)值同輸入值進(jìn)行加權(quán)求和,再加上偏置值,得到神經(jīng)元的輸入值。此過程與卷積過程相同,因此該網(wǎng)絡(luò)被稱為卷積神經(jīng)網(wǎng)絡(luò)[6]。
現(xiàn)在流行的卷積神經(jīng)網(wǎng)絡(luò),如 VGG[7]、ResNet[8]等,雖然具有較好的識(shí)別效果,但是模型參數(shù)多,計(jì)算量大,不適合移動(dòng)端設(shè)備使用。因此,在2017 年Google 公司針對移動(dòng)端設(shè)備提出了一種輕量級(jí)深層神經(jīng)網(wǎng)絡(luò)模型-MobileNet 系列,具有更少的參數(shù)、更低的延時(shí),有利于更好地在移動(dòng)端運(yùn)行復(fù)雜的深度學(xué)習(xí)模型。到目前為止,MobileNet 系列共有MobileNetv1[9]、MobileNetv2[10]和MobileNetv3[11]三個(gè)模型。
其中,MobileNetv3 有MobileNetv3 -Large 和MobileNetv3-Small 兩個(gè)結(jié)構(gòu)。MobileNetv3-Large 網(wǎng)絡(luò)比MobileNetv3-Small 網(wǎng)絡(luò)準(zhǔn)確率更高,但模型體積更大,預(yù)測速度更慢。在ImageNet 上的分類任務(wù)中,與同系列的MobileNetv2 相比,MobileNetv3 -Large 提高了約4.6%的準(zhǔn)確率和5%的檢測速度。MobileNetv3-Small 提高了約3.2%的準(zhǔn)確率和15%的檢測速度[12]。
1.3.1 MobileNetv1 模型與MobileNetv2 模型
MobileNetv1 是一種基于深度可分離卷積的模型,其核心思想是引入了深度可分離卷積來替代傳統(tǒng)卷積層[13]。傳統(tǒng)的標(biāo)準(zhǔn)卷積,其卷積核的通道數(shù)和輸入特征圖的通道數(shù)一致,僅一步操作對所有輸入進(jìn)行結(jié)合得到輸出。而MobileNetv1 模型則是定義了2 個(gè)新的獨(dú)立層:深度卷積(DepthWise,DW)和逐點(diǎn)卷積(PointWise,PW),利用深度卷積的單個(gè)卷積對單個(gè)輸入通道進(jìn)行卷積,隨后利用逐點(diǎn)卷積的1×1 的卷積核對所有深度卷積進(jìn)行卷積操作得到輸出。這種操作,可以使用更少的參數(shù)和更少的計(jì)算量,來得到與標(biāo)準(zhǔn)卷積相同的效果。
深度可分離卷積如圖1 所示。本文假設(shè)輸入特征卷積層的大小為win × hin × cin,生成的輸出特征層的大小為wout × hout × cout,其中hin、win、cin分別對應(yīng)輸入特征層的高度、寬度和輸入特征層的通道數(shù),hout、wout、cout分別對應(yīng)輸出特征層的高度、寬度和輸出特征層的通道數(shù)。

圖1 深度可分離卷積圖示Fig. 1 Graph of DepthWise Convolution
可以計(jì)算出,傳統(tǒng)的標(biāo)準(zhǔn)卷積計(jì)算量為:

深度可分離卷積的計(jì)算量為:

使用深度可分離卷積時(shí),計(jì)算量與使用標(biāo)準(zhǔn)卷積相比,減少的比例為:

當(dāng)選用3×3 的卷積核進(jìn)行卷積計(jì)算時(shí),深度可分離卷積的計(jì)算量將減少至傳統(tǒng)標(biāo)準(zhǔn)卷積網(wǎng)絡(luò)的
MobileNetv2 模型在MobileNetv1 模型的基礎(chǔ)上,改變了通道的數(shù)目,提出殘差倒置網(wǎng)絡(luò)結(jié)構(gòu),其結(jié)構(gòu)如圖2 所示。

圖2 殘差倒置結(jié)構(gòu)圖示Fig. 2 Graph of inverted resblock
倒殘差結(jié)構(gòu)主要分為3 部分。第一部分,在深度卷積之前先經(jīng)過卷積核大小為1×1 的逐點(diǎn)卷積實(shí)現(xiàn)升維,隨后使用批次標(biāo)準(zhǔn)化處理層進(jìn)行歸一化處理。第二部分,使用卷積核大小為3×3 的深度卷積,然后使用批次標(biāo)準(zhǔn)化處理層進(jìn)行歸一化處理和ReLU6 激活函數(shù)。傳統(tǒng)的殘差結(jié)構(gòu),在這一部分則使用的是卷積核大小為3×3 的一般卷積。第三部分,MobileNetv3 網(wǎng)絡(luò)使用了卷積核大小為1×1 的一般卷積實(shí)現(xiàn)降維,隨后使用批次標(biāo)準(zhǔn)化處理層。在傳統(tǒng)殘差網(wǎng)絡(luò)中,最后一部分為ReLU6 激活函數(shù),而倒置殘差結(jié)構(gòu)在這里去除了傳統(tǒng)網(wǎng)絡(luò)中用到的激活函數(shù)。該結(jié)構(gòu)相比于以往的殘差網(wǎng)絡(luò)結(jié)構(gòu),在深度卷積之前先經(jīng)過1×1 的逐點(diǎn)卷積進(jìn)行升維,隨后進(jìn)行3×3 的DW 卷積,再在末尾加入線性激活函數(shù)。這些操作,可以使模型網(wǎng)絡(luò)的計(jì)算量以及參數(shù)量大大減少。
1.3.2 MobileNetv3 模型
MobileNetv3 是MobileNet 系列的第三代模型,是在1、2 代模型的基礎(chǔ)上,提出了一個(gè)SE 輕量級(jí)的注意力模型。SE 注意力模型擁有壓縮(squeeze)和激勵(lì)(excitation)兩種操作,可以調(diào)整每個(gè)通道的權(quán)重,增加網(wǎng)絡(luò)性能好的通道權(quán)重,降低網(wǎng)絡(luò)性能不好的通道權(quán)重,以提高深度學(xué)習(xí)模型的性能。
此外,MobileNetv3 模型還使用了新的激活函數(shù)、即hard -swish函數(shù)代替原有的激活函數(shù),其公式表達(dá)如下:

MobileNetv3 是目前最主流的輕量級(jí)神經(jīng)網(wǎng)絡(luò)模型,可以滿足絕大多數(shù)移動(dòng)端深度學(xué)習(xí)應(yīng)用的需要。
為了加速訓(xùn)練和提高模型準(zhǔn)確度,本研究采用遷移學(xué)習(xí)的方式。利用在ImageNet 數(shù)據(jù)集上已經(jīng)訓(xùn)練好的預(yù)訓(xùn)練模型,將其網(wǎng)絡(luò)輸出從1 000 類改為17 類。將預(yù)訓(xùn)練模型中的權(quán)重遷移至新的訓(xùn)練網(wǎng)絡(luò)進(jìn)行初始化,以繼承學(xué)習(xí)已掌握的先驗(yàn)知識(shí);隨后利用本研究的數(shù)據(jù)集進(jìn)行新的訓(xùn)練,并不斷對模型參數(shù)進(jìn)行微調(diào),進(jìn)而實(shí)現(xiàn)對樹干圖像的預(yù)測[14]。Yosinski 等人[15]的研究表明,即使在差異較大的數(shù)據(jù)集上進(jìn)行遷移訓(xùn)練,其效果也優(yōu)于隨機(jī)初始化權(quán)重進(jìn)行訓(xùn)練。因此,結(jié)合遷移學(xué)習(xí)的樹干圖像識(shí)別算法,不僅可以提高網(wǎng)絡(luò)模型的準(zhǔn)確率和訓(xùn)練效率,同時(shí)也可以使模型具有更好的泛化能力。遷移算法流程如圖3 所示。

圖3 遷移學(xué)習(xí)算法流程Fig. 3 Flowchart of transfer learning algorithm
為獲得可用的數(shù)據(jù)集,本研究對東北林業(yè)大學(xué)校園園區(qū)、東北林業(yè)大學(xué)實(shí)驗(yàn)林場的樹木進(jìn)行圖像采集工作,采集設(shè)備為Huawei Mate20Pro 手機(jī)。數(shù)據(jù)集的處理與擴(kuò)充如圖4 所示。為使獲取的圖像有較大的代表性,本次研究使用的采集方式為距離樹20~40 cm,選擇俯、仰、水平三種角度對樹干進(jìn)行拍攝,拍攝樹干圖片見圖4(a)。
對圖像進(jìn)行處理,剪裁出需要識(shí)別的樹木主干(見圖4(b)),并利用水平翻轉(zhuǎn)、高斯模糊、隨機(jī)矩形遮擋、隨機(jī)剪裁填充等手段對圖像數(shù)據(jù)進(jìn)行加強(qiáng)(見圖4(c))。

圖4 數(shù)據(jù)集的處理與擴(kuò)充Fig. 4 Processing and extension of datasets
通過初步篩選與數(shù)據(jù)集擴(kuò)充后,共得到17 種樹木的圖像,分別是:興安落葉松(Larix gmelinii(Rupr.)Kuzen)、家榆(Ulmus pumila L.)、小葉楊(Populus simonii Carr.)、山丁子(Malus baccata(L.)Borkh.)、旱柳(Salix matsudana Koidz.)、杏(Armeniaca vulgaris Lam.)、杜松(Juniperus rigida Sieb.et Zucc.)、樟子松(Pinus sylvestris Linn.var.mongolica Litv.)、水曲柳(Fraxinus mandschurica Rupr.)、白樺(Betula platyphylla Suk.)、紫椴(Tilia amurensis Rupr.)、紅松(Pinus koraiensis Siebold et Zuccarini)、紅皮云杉(Picea koraiensis Nakai)、胡桃楸(Juglans mandshurica Maxim.)、鉆天楊(Populus nigra Linn.var.italica(Moench)Koehne)、銀中楊(Populus alba × P.Berolinensis)、黑皮油松(Pinus tabulaeformis Carr.var.mukdensis Uyeki),共計(jì)7 569張。并按照7 ∶3 的比例隨機(jī)分成訓(xùn)練集與測試集。每種樹木圖像展示如圖5 所示。
使用開源深度學(xué)習(xí)框架Pytorch1.70 進(jìn)行深度學(xué)習(xí)實(shí)驗(yàn),選用Python 作為編程語言。實(shí)驗(yàn)硬件為:Windows10 64 位系統(tǒng),計(jì)算機(jī)內(nèi)存為16 GB,搭載Intel(R)Core(TM)i7-9750H CPU @ 2.60 GHz 2.59 GHz處理器,并采用GeForce GTX 1060 Ti 顯卡加速圖像處理。
為了比較不同模型性能的優(yōu)劣,本研究對各模型采用統(tǒng)一的超參數(shù)設(shè)置:圖像輸入大小尺寸為224×224;批尺寸大?。╞atch size)為32;學(xué)習(xí)率(learning rate)為0.000 1;訓(xùn)練次數(shù)(epochs)為100。
3.3.1 實(shí)驗(yàn)結(jié)果及分析
為驗(yàn)證遷移學(xué)習(xí)的效果,在本次仿真研究中選取 了 VGG16、ResNet34、MobileNetv3 -Large 與MobileNetv3-Small四個(gè)網(wǎng)絡(luò)模型,分別利用隨機(jī)初始化(Random Initialization)權(quán)重與預(yù)訓(xùn)練(Pretrained)權(quán)重進(jìn)行訓(xùn)練。4 種模型遷移學(xué)習(xí)效果對比如圖6 所示,模型參數(shù)與最終準(zhǔn)確率見表1。
由圖6 可以看出,在使用預(yù)訓(xùn)練權(quán)重后,4 種模型的準(zhǔn)確率都有了不同程度的提高,訓(xùn)練的效率也加快,使用隨機(jī)初始化權(quán)重進(jìn)行訓(xùn)練時(shí),模型初始的正確率都在30%以下;而使用預(yù)訓(xùn)練權(quán)重進(jìn)行訓(xùn)練時(shí),模型初始的正確率都在40%以上。研究發(fā)現(xiàn)ResNet34 模型在第一輪訓(xùn)練時(shí),就可以達(dá)到75.60%的準(zhǔn)確率。使用遷移學(xué)習(xí)的方法,僅需要幾輪訓(xùn)練,就可以獲得準(zhǔn)確率較高的模型,大大加快了訓(xùn)練效率,減少了計(jì)算成本。

圖6 VGG16、ResNet34、MobileNetv3-Large 和MobileNetv3-Small 模型遷移學(xué)習(xí)對比Fig. 6 Comparison of VGG16,ResNet34,MobileNetv3-Large and MobileNetv3-Small models transfer learning
由表1 可知,在使用遷移學(xué)習(xí)的方法后,MobileNetv3-Large 的準(zhǔn)確率最高,在測試集上準(zhǔn)確率可以達(dá)到99.44%;MobileNetv3-Small 模型的準(zhǔn)確率提升最大,提升了13.29%。在使用遷移學(xué)習(xí)的方法進(jìn)行訓(xùn)練后,VGG16 模型的準(zhǔn)確率相較于其他3個(gè)模型略低,其余3 個(gè)模型的準(zhǔn)確率相差不大,分別為99.65%、99.44%、99.16%。但是相比于VGG16與ResNet34 網(wǎng)絡(luò),輕量級(jí)網(wǎng)絡(luò)MobileNetv3 在模型大小、參數(shù)數(shù)量、浮點(diǎn)運(yùn)算數(shù)量方面,更加快速輕巧。MobileNetv3-Large 網(wǎng)絡(luò)相比于VGG16、ResNet34 網(wǎng)絡(luò),模型大小縮小了96.8%、80.0%,浮點(diǎn)運(yùn)算數(shù)量減少了98.6%、94.0%;MobileNetv3-Small 網(wǎng)絡(luò)的模型大小縮小了98.8%、92.7%,浮點(diǎn)運(yùn)算數(shù)量減少了99.6%、98.4%??梢?,輕量級(jí)網(wǎng)絡(luò)MobileNetv3 能夠在保證識(shí)別準(zhǔn)確率的情況下,降低模型大小與計(jì)算量,使模型得以在移動(dòng)端設(shè)備應(yīng)用。

表1 不同模型訓(xùn)練結(jié)果對比Tab.1 Comparison of training results of different models
為驗(yàn)證模型網(wǎng)絡(luò)遷移學(xué)習(xí)后的預(yù)測的結(jié)果,利用不同模型對測試集數(shù)據(jù)進(jìn)行預(yù)測,預(yù)測對比結(jié)果見表2。
由表2 可以看出,本研究所使用的4 種模型在紅松、胡桃楸圖像上識(shí)別準(zhǔn)確率較低,這是因?yàn)檫@2種樹木與其他樹木的紋理比較相似,模型網(wǎng)絡(luò)提取的特征針對性不強(qiáng)。此外,由于網(wǎng)絡(luò)層數(shù)與結(jié)構(gòu)不同,對于同一種樹木,不同模型識(shí)別效果也有一定差別。MobileNetv3 的2 種網(wǎng)絡(luò)對山丁子、水曲柳的識(shí)別準(zhǔn)確率要優(yōu)于另外2 種網(wǎng)絡(luò)模型;而對紫椴、鉆天楊的識(shí)別,VGG16、ResNet34的準(zhǔn)確率要高于MobileNetv3 網(wǎng)絡(luò)。

表2 不同模型預(yù)測對比Tab.2 Prediction comparison of different models
3.3.2 樹種識(shí)別網(wǎng)絡(luò)可視化
類激活映射(Class Activation Mapping,CAM)是一種可以實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)可視化的工具[16]。通過使用類激活映射,可以觀察到網(wǎng)絡(luò)關(guān)注圖像的位置,直觀地反映出網(wǎng)絡(luò)模型的效果。但是,類激活映射在使用時(shí),必須將卷積神經(jīng)網(wǎng)絡(luò)的全連接層改為全局平均池化層,改變了網(wǎng)絡(luò)結(jié)構(gòu)。為了解決這個(gè)問題,Ramprasaath 等人[17]基于CAM 提出了一種新的可視化方法—梯度加權(quán)類激活映射(Grad-CAM)。這種方法并不需要更改原卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),而是通過變換求和的順序來得到網(wǎng)絡(luò)的可視化圖像。
使用梯度加權(quán)類激活映射的方法,能夠?qū)ι疃壬窠?jīng)網(wǎng)絡(luò)的結(jié)果做出可視化解釋,為研究過程中提供更多有效的信息[18]。本研究利用Grad-CAM 方法,對訓(xùn)練好的MobileNetv3-Large 模型進(jìn)行可視化檢測,觀察其預(yù)測的效果,如圖7 所示。

圖7 輕量化樹種識(shí)別模型的可視化情況Fig. 7 Visualization of lightweight tree species identification model
通過可視化結(jié)果可以看出,輕量化的樹種預(yù)測模型對不同樹木樹干圖像的關(guān)注側(cè)重點(diǎn)不同。對于白樺樹干圖像,模型的主要關(guān)注區(qū)域呈現(xiàn)橫向線狀;而對于杜松樹干圖像,則是呈現(xiàn)縱向線狀,這與二者樹干的紋理方向幾乎一致。黑皮油松的樹干圖像的關(guān)注區(qū)域則呈現(xiàn)分散的線狀,大致與黑皮油松樹干紋理基元重合。
本文提出了一種輕量化卷積神經(jīng)網(wǎng)絡(luò)的樹種識(shí)別模型。使用自主拍攝的樹木圖像構(gòu)建了樹種圖像數(shù)據(jù)集,并對其進(jìn)行加強(qiáng)?;贗mageNet 預(yù)訓(xùn)練權(quán)重并對MobileNetV3 網(wǎng)絡(luò)的輸出層進(jìn)行修改,通過遷移學(xué)習(xí)的方式訓(xùn)練模型。最終得到的輕量化樹種識(shí)別模型在相同測試集的情況下,相比于VGG16 模型,準(zhǔn)確度提高了0.98%,模型大小縮小了98.8%,浮點(diǎn)運(yùn)算數(shù)量減少了99.6%;相比于ResNet34 模型,犧牲了0.49%的準(zhǔn)確率,模型大小縮小了92.7%,浮點(diǎn)運(yùn)算數(shù)量減少了98.4%。該模型可以在保證精度基本不變的情況下,更加顯著地減少模型體積,使其更好地部署在移動(dòng)端設(shè)備,服務(wù)于各種場景。