齊振嶺,劉羿漩,梁允泉,董苗苗,葛廣英
(1.聊城大學(xué)山東省光通信科學(xué)與技術(shù)重點(diǎn)實(shí)驗(yàn)室,山東 聊城 252059;2.聊城大學(xué)物理科學(xué)與信息工程學(xué)院;3.聊城大學(xué)計(jì)算機(jī)學(xué)院)
牡丹花卉色澤艷麗,富麗堂皇,素有“花中之王”的美譽(yù)。同時(shí),由于牡丹花卉大而香,故又有“國色天香”之稱[1]。我國現(xiàn)有牡丹品種數(shù)千個(gè),牡丹花卉具有文化價(jià)值和生態(tài)價(jià)值,還能夠產(chǎn)生巨大的經(jīng)濟(jì)價(jià)值。牡丹花卉種類繁多,即使同品種的牡丹花卉也存在著形態(tài)、結(jié)構(gòu)、習(xí)性等顯著性差異,人們對牡丹花卉的認(rèn)知有許多的局限性。因此,可用深度學(xué)習(xí)模型來實(shí)現(xiàn)牡丹花卉的分類識(shí)別,使人們可以快速地了解到所見牡丹的品種及其特性,以作進(jìn)一步觀賞或研究。
在深度學(xué)習(xí)領(lǐng)域,卷積神經(jīng)網(wǎng)絡(luò)被廣泛應(yīng)用于圖像分類、目標(biāo)檢測以及自然語言處理等領(lǐng)域[2]?;谏疃葘W(xué)習(xí)的分類任務(wù)在植物識(shí)別方面取得了巨大優(yōu)勢,得益于越來越多的深度學(xué)習(xí)模型不斷涌現(xiàn)。自從2012年,AlexKrizhevsk等提出了AlexNet算法,在隨后的一段時(shí)間,VGG 網(wǎng)絡(luò)、GoogleNet 網(wǎng)絡(luò)、ResNet 網(wǎng)絡(luò)和Densenet 網(wǎng)絡(luò)等各種卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)不斷問世;自從2017 年谷歌提出的Transformer 在自然語言處理取得突破性的進(jìn)展之后,Image Transformer[3]、Vision Transformer[4]和Swin Transformer[5]等各種Transformer網(wǎng)絡(luò)結(jié)構(gòu)不斷提出并被運(yùn)用在計(jì)算機(jī)視覺領(lǐng)域。
目前,許多學(xué)者將深度學(xué)習(xí)應(yīng)用到植物圖像分類領(lǐng)域當(dāng)中。劉晶晶等[6]根據(jù)牡丹層數(shù)和花瓣數(shù)較多的特點(diǎn),提取牡丹紋理和形狀特征,使用改進(jìn)的BP 神經(jīng)網(wǎng)絡(luò)算法進(jìn)行分類的方法,可以很好地識(shí)別出牡丹及牡丹大類。左羽等[7]將VGGNet16 與全卷積網(wǎng)絡(luò)相結(jié)合,把其中的全連接層改為卷積層,構(gòu)造一個(gè)新的VGG16模型在植物的圖像分類能達(dá)到較理想的效果。周婷等[8]針對圖像數(shù)據(jù)集類別不平衡的情況,通過修改網(wǎng)絡(luò)結(jié)構(gòu)與損失函數(shù)提出一種改進(jìn)ResNet 的藏藥植物圖像分類算法,較好地平衡了模型的參數(shù)量與識(shí)別準(zhǔn)確率。
為進(jìn)一步提升卷積神經(jīng)網(wǎng)絡(luò)的圖像分類性能,構(gòu)建適合牡丹花卉分類識(shí)別的網(wǎng)絡(luò)模型,將ConvNeXt-Tiny[9]算法應(yīng)用于牡丹花卉分類識(shí)別,以增強(qiáng)對牡丹花卉不同品種特征的提取,從而實(shí)現(xiàn)對牡丹花卉更加精準(zhǔn)快速的分類識(shí)別。
ConvNeXt-Tiny 網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示,一共有四個(gè)階段(stage),當(dāng)輸入圖片依次經(jīng)過時(shí),特征圖的尺寸不斷減少,通道數(shù)增加,特征圖中的特征感受野不斷擴(kuò)大。
將圖像輸入到網(wǎng)絡(luò)中,經(jīng)過圖像預(yù)處理(stem)模塊,其中采用大小為4 步長為4 的卷積核,主要目的是將圖片的尺寸縮放四倍,然后經(jīng)過四個(gè)stage之后進(jìn)行分類和回歸。每個(gè)階段由下采樣(Downsample)層和ConvNeXt Block 模塊組成。采樣層主要作用是降低圖片的分辨率,其中第一個(gè)stage 除外,圖片的特征圖經(jīng)下采樣輸入到ConvNeXt Block中。
ConvNeXt-Tiny 模型將ResNet50 中卷積模塊堆疊次數(shù)由(3,4,6,3)修改為(3,3,9,3),主要目的是通過卷積核的規(guī)則重新組合之前提取到的特征,獲得更為復(fù)雜的特征。在卷積神經(jīng)網(wǎng)絡(luò)中,圖像中的復(fù)雜特征可以使用簡單的特征通過某種方式重新組合起來,卷積操作可以把圖像單一的特征變成更復(fù)雜的圖像特征,越復(fù)雜的圖像特征越利于圖像的分類。
ConvNeXt Block 模塊借鑒ResNeXt[10]中的分組卷積(GroupConvolution)形式,ResNeXt 相對普通的ResNet 而言,在模型復(fù)雜度和精度之間做到了更好的平衡。具體網(wǎng)絡(luò)結(jié)構(gòu)如圖1(b)所示。
圖1 ConvNeXt-Tiny網(wǎng)絡(luò)架構(gòu)
ConvNeXt Block 模型的核心是通過建立前面層與后面層之間的‘短路連接’,這有助于訓(xùn)練過程中梯度的反向傳播,從而能訓(xùn)練出更深層的網(wǎng)絡(luò)模型。此模塊采用MobileNet v2[11]中的Inverted bottoleneck 架構(gòu),即兩頭細(xì)、中間粗;采用深度可分離卷積和增大了輸入寬度;把深度可分離卷積層上移,卷積核的大小由3×3變成7×7。
1.2.1 層標(biāo)準(zhǔn)化
ConvNeXt-Tiny 采用更少的歸一化層,并且只在ConvNeXt Block中的深度可分離卷積層后加入,其歸一化層選擇層標(biāo)準(zhǔn)化(Layer Normalization,LN)。LN的基本思想是:用同層的隱層神經(jīng)元響應(yīng)值作為集合范圍,來求均值和方差,即獨(dú)立于批尺度(BatchSize)的算法樣本數(shù)的多少不會(huì)影響到LN 的計(jì)算,主要作用是減輕模型對參數(shù)初始化的依賴,并且可以加快模型的訓(xùn)練提高模型的精確度。
1.2.2 激活函數(shù)
ConvNext-Tiny 采用更少的激活函數(shù),并且只在ConvNeXtBlock 模塊中的1×1 卷積層后加入,其激化函數(shù)選擇高斯誤差線性單元(GELU)激活函數(shù)。高斯誤差線性單位,可以被認(rèn)為是ReLU 的一個(gè)更平滑的變體,其公式如⑴所示。
1.2.3 下采樣層
ConvNeXt-Tiny 采用單獨(dú)的下采樣層,由LN 層和卷積核為2 步長為2 的卷積層組成。除第一個(gè)ConvNeXt Block模塊外,其余的每個(gè)模塊開始之前都加入單獨(dú)的下采樣層,主要是用來改變特征圖的尺寸,方便后續(xù)的操作提取更加復(fù)雜的特征。具體網(wǎng)絡(luò)結(jié)構(gòu)如圖1(c)所示。
在牡丹花卉圖像分類識(shí)別數(shù)據(jù)集構(gòu)建過程中,采集圖像時(shí)可能會(huì)受光照或拍攝儀器的影響,采集到的圖像存在偏亮或偏暗的問題。這些問題可能會(huì)對后面訓(xùn)練模型識(shí)別牡丹花卉的準(zhǔn)確率產(chǎn)生影響,所以需要對圖像進(jìn)行增強(qiáng)處理來提高圖像的對比度,使模型能夠觀察到更多內(nèi)容,從而具有更好的泛化能力。
為使數(shù)據(jù)集具有更好的效果,采用在牡丹園拍攝的圖片與中國植物圖像庫部分圖像作為數(shù)據(jù)集,共計(jì)九大色系中的22 種類1165 張。部分牡丹花卉如圖2所示。為滿足數(shù)據(jù)在多樣性方面的要求,對現(xiàn)有數(shù)據(jù)集進(jìn)行數(shù)據(jù)預(yù)處理,擴(kuò)充數(shù)據(jù)集的廣度和深度,從而增強(qiáng)模型的魯棒性,防止過擬合,最后將圖片輸入到網(wǎng)絡(luò)中訓(xùn)練。
圖2 部分牡丹花卉圖片
本文選取三種措施對圖像進(jìn)行預(yù)處理,對原圖像的紋理結(jié)構(gòu)和幾何學(xué)特征進(jìn)行隨機(jī)的變換:①進(jìn)行水平鏡像翻轉(zhuǎn),增加網(wǎng)絡(luò)在方向上的不變性;②添加隨機(jī)椒鹽噪聲或高斯噪聲,提高網(wǎng)絡(luò)對圖像失真的不變性;③隨機(jī)改變圖像的亮度或?qū)Ρ榷?,增?qiáng)網(wǎng)絡(luò)對圖像色彩的不變性。
經(jīng)過不同措施處理后牡丹花卉圖像數(shù)據(jù)集共3692 張符合網(wǎng)絡(luò)訓(xùn)練要求。其中按照訓(xùn)練集與測試集的比例為9:1 進(jìn)行劃分,即訓(xùn)練集3330 張,測試集362 張。每類牡丹花卉圖像數(shù)量如圖3 所示,由圖3可以看出,數(shù)據(jù)分布極不平衡,因此,該數(shù)據(jù)集對網(wǎng)絡(luò)處理類別不平衡的能力要求非常高。
本實(shí)驗(yàn)采用編程環(huán)境為python3.8,PyTorch1.11深度學(xué)習(xí)框架,硬件環(huán)境處理器型號(hào)為Inter(R)Core(TM)i5-11400 @2.6GHz,顯卡型號(hào)為NVIDIA GeForce RTX 3060,內(nèi)存為16GB。
訓(xùn)練過程中迭代次數(shù)(epochs)共為100,其中前10 個(gè)epochs 為熱身訓(xùn)練,批尺度大小為16,使用AdamW[12]算法加快模型收斂,采用余弦退火衰減(Cosine annealing decay)算法降低學(xué)習(xí)率。具體參數(shù)如表1所示。
表1 網(wǎng)絡(luò)訓(xùn)練具體參數(shù)
訓(xùn)練過程中采用Mixup[13]和Cutmix[14]數(shù)據(jù)增強(qiáng)技巧,來提升模型魯棒性;采用隨機(jī)擦除(Randomerasing)數(shù)據(jù)增強(qiáng)方法,來提高模型泛化能力;引入標(biāo)簽平滑(LabelSmoothing)正則化策略,抑制訓(xùn)練過程中過擬合。
3.3.1 評(píng)價(jià)指標(biāo)
利用以下指標(biāo)對模型進(jìn)行性能評(píng)估:精度、召回率和準(zhǔn)確率。具體公式如下:
其中,TP和FP分別為模型預(yù)測為正和負(fù)的正樣本,F(xiàn)N和TN和分別為模型預(yù)測為正和負(fù)的負(fù)樣本。
3.3.2 不同模型實(shí)驗(yàn)結(jié)果分析
為驗(yàn)證模型對牡丹花卉分類識(shí)別的有效性和優(yōu)越性,選取Resnet50、MobileNet v2、DenseNet121、Vision Transformer(ViT)與Swin Transformer(Swin-T)模型在相同條件下進(jìn)行對比訓(xùn)練并分析性能。各模型在牡丹花卉圖像分類識(shí)別數(shù)據(jù)集上的準(zhǔn)確率和損失值隨訓(xùn)練變化過程如圖4、圖5所示。
圖4 不同模型在牡丹花卉圖像分類識(shí)別數(shù)據(jù)集上準(zhǔn)確率曲線
圖5 不同模型在牡丹花卉圖像分類識(shí)別數(shù)據(jù)集上損失值曲線
為驗(yàn)證本文模型的分類優(yōu)劣程度,選取模型在數(shù)據(jù)測試集上的準(zhǔn)確率、在各類別上取得的平均精度和平均召回率以及模型的參數(shù)量以及計(jì)算量作為評(píng)價(jià)模型的指標(biāo)。其中,Params 表示模型參數(shù)量,F(xiàn)LOPs表示模型的浮點(diǎn)運(yùn)算數(shù)量。模型的參數(shù)量表示訓(xùn)練時(shí)所需要占用的計(jì)算機(jī)內(nèi)存的大小,參數(shù)量越大,對計(jì)算機(jī)硬件的要求就越高。不同模型在測試集上的結(jié)果與對比如表2所示。
表2 不同模型在牡丹花卉圖像分類識(shí)別數(shù)據(jù)集上的識(shí)別結(jié)果
由表2 可知,基于ConvNeXt-Tiny 模型在牡丹花卉圖像分類識(shí)別數(shù)據(jù)集上獲得的準(zhǔn)確率高于其余模型1.3%至4.9%不等,極大的提高數(shù)據(jù)的利用率;在牡丹花卉各類別上的平均精度和平均召回率都高于其余模型0.1%至4.9%不等,極大的提高了模型對數(shù)據(jù)樣本分布不均勻的能力;ConvNeXt-Tiny 模型的參數(shù)量和計(jì)算量與Swin Transformer 模型相近,模型復(fù)雜度較小,可以加快處理圖像的速度。本文提出的ConvNeXt-Tiny 模型應(yīng)用于牡丹的花卉分類識(shí)別任務(wù),該模型較好地平衡了模型的復(fù)雜度和分類精度,模型可行且有效。
3.3.3 顯示界面設(shè)計(jì)
設(shè)計(jì)的界面主要由四個(gè)功能模塊組成:主界面模塊、加載圖像模塊,加載模型識(shí)別模塊,顯示圖像模塊組成。牡丹花卉分類識(shí)別系統(tǒng)的實(shí)現(xiàn)步驟:①打開牡丹花卉圖像分類識(shí)別顯示界面;②點(diǎn)擊輸入圖像按鈕,用戶選擇一張圖片加載進(jìn)來并顯示在界面左側(cè)部分;③點(diǎn)擊識(shí)別按鈕,界面會(huì)加載ConvNeXt-Tiny 模型,然后對輸入的圖片進(jìn)行識(shí)別,最終把識(shí)別結(jié)果顯示在界面標(biāo)簽處;⑤關(guān)閉牡丹花卉圖像分類識(shí)別顯示界面。
如圖6所示,該界面準(zhǔn)確識(shí)別出牡丹品種,各功能正常運(yùn)行。
圖6 牡丹花卉圖像分類識(shí)別界面
本文構(gòu)建了牡丹花卉圖像數(shù)據(jù)集,提出了將ConvNeXt-Tiny模型應(yīng)用于牡丹花卉圖像的識(shí)別與分類,并設(shè)計(jì)了牡丹花卉分類識(shí)別顯示界面。實(shí)驗(yàn)表明,ConvNeXt-Tiny 模型在牡丹花卉圖像數(shù)據(jù)集上達(dá)到了98.3%的分類準(zhǔn)確率,相比于其他模型極大提高了數(shù)據(jù)的利用率。
未來的研究工作中,還需增加牡丹花卉種類,進(jìn)一步擴(kuò)充數(shù)據(jù)集,在更多類別的牡丹花卉圖像上進(jìn)行驗(yàn)證模型;嘗試將牡丹花卉分類識(shí)別模型部署到移動(dòng)設(shè)備上進(jìn)行實(shí)際應(yīng)用。