丁雯麗 裴曉芳,2,3 司廣字
(1.南京信息工程大學電子與信息工程學院 南京 210044)(2.無錫學院電子信息工程學院 無錫 214105)(3.南京信息工程大學江蘇省大氣環境與裝備技術協同創新中心 南京 210044)
近年來,農業廢棄物資源化和能源化[1]越來越受到大眾的重視,將其進行堆肥化處理,不僅能夠減少環境污染,還能實現農業可持續發展[2~3]。判斷堆肥產品是否安全可用和達到穩定的依據是腐熟度[4],腐熟的有機肥能夠改良土壤,提高農產品的品質和質量,而使用未腐熟的有機肥,影響農作物生長,散發出來的刺激氣味還會給環境帶來污染。因此,判別堆肥是否腐熟是生產過程中至關重要的環節。
目前堆肥腐熟度一般是通過堆肥過程中產生的溫度、氣味、顏色等物理變化[5],或者根據PH 值、碳氮比、含水率等生物化學指標來判定。隨著大數據和深度學習的迅猛發展,其應用于農業領域的研究也越來越多。不少研究者也嘗試通過分析堆肥圖像來判定堆肥腐熟度。Kujawa 等[6]基于UV-A光下獲得的堆肥材料樣本圖像中包含的信息,開發了用于確定堆肥污水污泥和菜籽秸稈早期成熟期的分類神經模型,所建立的神經模型的分類誤差在1.83%~4.27%之間。薛衛等[7]基于卷積神經網絡堆肥腐熟度預測,對獲取的堆肥圖像進行卷積操作,構建堆肥腐熟度識別率和堆肥表面特征之間的關聯模型。
相較于傳統腐熟判別方法,基于深度學習的堆肥腐熟度的判別能夠很好地平衡堆肥腐熟識別模型識別精度和復雜度。目前現有研究存在多光源對堆肥腐熟進行干預、堆肥原料種類單一、抗噪能力不足等問題,針對不同原料的堆肥在不同時期不同環境下具有不同的表征,本文基于改進CoAtNet(Convolution+Attention)模型構建多類堆肥腐熟圖像識別模型,對堆肥腐熟度進行判別。
本文試驗數據來源于南京農業大學薛衛等拍攝整理的各地區、各季節、白天夜晚、不同原料的堆肥圖像,采用廠棚內槽式堆肥方式,定期翻堆進行通風供氧。圖像采集設備為海康威視攝像頭,型號為C3W,清晰度1080p,距離堆肥體表面約1m 進行拍攝,將拍攝到的圖像不重疊切割分辨率為300 像素×300 像素,圖像樣本共計22459 張,其中以畜禽糞便為原料的堆肥圖像共計6379 張,未腐熟4699張,腐熟1680 張,以尾菜為原料的堆肥圖像共計8320 張,未腐熟6720 張,腐熟1600 張,以秸稈為原料的堆肥圖像共計7760 張,未腐熟6560 張,腐熟1200 張,并按照畜禽糞便∶尾菜∶秸稈=1∶1∶1 的比例構成新的一組數據集共計9404 張,未腐熟7428張,腐熟1976張,三種原料堆肥圖像如圖1所示。

圖1 三種原料堆肥圖像
CoAtNet 是一個Convolution + Attention 的組合模型,卷積網絡的泛化性更強,收斂速度更快,而注意力層則擁有更強的模型能力,以適當的方式堆疊卷積層和注意力層,可以取得更好的泛化性和模型能力[8~9],CoAtNet 利用卷積神經網絡(CNN)和Transformer 的超強能力,基于MBConv[10]塊和相對自注意力將平移同變性(translation equivariance)、輸入自適應加權(input-adaptive weighting)和全局感受野(global receptive field)融合在一起,構建了一個新架構[11]。
CoAtNet算法分兩步實現:
1)將卷積和自注意結合在一個基本計算塊中;
2)以有原則的方式垂直堆疊不同類型的計算塊,形成一個完整的網絡。
3.2.1 合并卷積層和自注意力層
在卷積層上,主要采用MBConv 卷積塊,由于Transformer 和MBConv 中的FFN(Feed-Forward Networks)模塊都采用了“反向瓶頸”[12]的設計,所以采用深度卷積來捕獲空間交互,其依賴于一個固定的內核來從局部感受野收集信息:
式中xi、yi∈RD分別是位置i 的輸入和輸出,L(i)表示i 的局部鄰域。
在自注意力層上,允許感受野成為整個空間位置[13],并基于對(xi,xj)之間的重歸一化成對相似性來計算:
式中G表示全局空間空間。
理想的結合卷積層和自注意力層模型應該在Softmax 歸一化之后或者之前,將全局靜態卷積核與自適應注意矩陣相加。
先求和,再Softmax:
或者先Softmax,再求和:
3.2.2 縱向布局堆疊
通過合并卷積層和自注意力層的優點之后,接下來就是通過堆疊搭建一個完整的網絡。要構建一個實際操作可行的模型,需要在特征圖達到可管理水平之后,進行一些下采樣以減小空間大小,再使用全局相對注意。根據泛化能力、模型容量以及遷移性能,選擇C-C-T-T(其中C 和T 分別表示卷積和Transformer)的堆疊方式,網絡結構圖如圖2所示。

圖2 CoAtNet網絡結構圖
CoAtNet 在卷積類型上選擇了MBConv,MBConv有兩個特點:
1)采用了深度卷積(depthwise convlution),相比于傳統卷積,depthwise convlution 的參數大大減少;
2)采用了“倒瓶頸”的結構,特征經歷了升維和降維兩個步驟,提高模型的學習能力。
雖然depthwise convlution結構相比普通卷積擁有更少的參數和計算量,但往往無法充分利用現有加速器,為在網絡淺層中提升訓練速度,提出將淺層MBConv 結構替換成Fused-MBConv 結構,即將原來的MBConv 結構主分支中的conv1×1 和depthwise conv3×3 替換成一個普通的conv3×3,如圖3 所示。

圖3 MBConv和Fused-MBConv結構圖
基于CoAtNet 模型,將網絡淺層即S0-S1 替換成Fused-MBConv 結構,經實驗可明顯提高訓練速度,但如果將S0-S2 都替換成Fused-MBConv 結構,會明顯增加參數量以及訓練速度也會降低,所以本文采用MBConv和Fused-MBConv的組合方式。
由于本文采用的是廠棚內槽式堆肥圖像,會伴隨著各種環境因素的干擾,例如各種噪聲的干擾,對模型識別產生一定的影響,為抑制噪聲,減少干擾因素的權重,增強有用信息[14],在S2 的MBConv結構中,將ECA模塊替換當前的SE模塊,該模塊是一種高效通道注意模塊,只涉及少量參數[15],復雜度小,能夠帶來明顯的性能增益。為避免維度縮減,其通過一維卷積有效的實現了一種無降維的局部交叉信道交互策略,有效地克服了性能和復雜性之間的矛盾。圖4為ECA模塊。

圖4 ECA模塊
輸入原始圖像特征,使用全局平均池(GAP)的聚合特性[16],獲得圖像未降維的所有特征,再通過執行尺寸為k 的快速一維卷積來生成通道權值,其中k 是通過通道維度C 的函數自適應地確定,因此存在某種映射φ(k)和C:
映射φ通常是未知的,k與C成非線性比例,采用一個指數函數近似映射φ:
由于通道維度C 通常設置為2 的整數次冪,將2(γ*k-b)代替exp(γ*k-b):
一種精密整流電路在電渦流位移傳感器檢測中的應用………………………………李雙喜,鄭鳳菊,婁樹勇,等(39)
給定通道維度C,自適應確定內核大小k:
其中k表示卷積核大小,C表示通道數,令,|t|odd表示距t 最近的奇數,γ和b用于改變通道數C 和卷積核大小和之間的比例,γ和b設置為2和1。
本實驗模型是在Windows10 操作系統下、pycharm開發平臺構建的,采用Pytorch 深度學習框架,CUDA 計算架構。
將三種不同原料和按比例混合的堆肥圖像按照6∶2∶2 的比例分為訓練集、驗證集和測試集,測試集用來計算模型的混淆矩陣,作為模型效果的評價指標。表1給出每種原料的圖像數量。

表1 堆肥圖像數據集統計
在實驗過程中,考慮到模型的訓練效果和實驗條件,設置初始學習率為0.001,batch-size 設置8,epoch 設置為300,損失函數采用交叉熵函數,選擇Adam 梯度下降優化算法,權重衰減為1e-4,將圖像送入到網絡模型前進行歸一化處理。
堆肥未腐熟和腐熟的原料在物理形態上會有很大的差異,在堆肥過程中,堆肥的顏色和紋理均發生變化,未腐熟的堆肥原料形態明顯,紋理粗糙雜亂,顆粒度大,腐熟的堆肥原料紋理由粗糙變得細致規整,顆粒度小,成品中沒有其他雜質。通過深度學習,提取多層次多尺度堆肥圖像特征,不斷學習調整網絡模型參數,感知不同時期堆肥圖像中顏色、紋理、顆粒度等變化,實現堆肥圖像腐熟度的識別。
實驗設置訓練總迭代次數為300,得到各個模型在所構建堆肥圖像數據集上的準確率變化曲線,實線代表CoAtNet 模型準確率,虛線代表Fused-CoAtNet模型準確率,如圖5所示。

圖5 不同原料堆肥圖像準確率變化曲線

表2 不同注意力機制識別結果準確率/%
選取未訓練的測試集,使用已經訓練好的Fused-CoAtNet 模型進行識別,得到堆肥圖像識別的混淆矩陣如圖6所示。

圖6 堆肥圖像識別混淆矩陣
通過混淆矩陣可以看出,以畜禽糞便為原料的堆肥圖像識別完全正確,以尾菜、秸稈以及混合僅有少量識別錯誤,平均識別準確率達到99.61%。通過與RestNet50、EffcientNetV2 和CoAtNet 模型相比,Fused-CoAtNet 模型準確率提高了0.31、0.58、0.17 個百分點,且在精確率、召回率、F1 分數指標中,均高于其余三種模型,如表3 所示。Fused-CoAtNet 模型參數量是17.49M,相對于四種模型中參數量最高的RestNet50,減少了8.07M,在推理時間上,也遠低于其他三種模型。綜合模型的準確率、參數量以及推理時間,Fused-CoAtNet 模型堆肥腐熟度判別優于其他模型。

表3 各模型性能指標對比結果
針對傳統堆肥判別腐熟度工作復雜、測定時間較長等問題,本文提出的基于改進CoAtNet 的堆肥腐熟分類識別模型,能夠直接、快速地判別腐熟度,為工廠化堆肥提供指導。
1)建立可以精確識別不同原料的堆肥腐熟度的模型,針對堆肥圖像的顏色、紋理、輪廓等及環境干擾因素問題,提出在實現CoAtNet 網絡模型后,再利用MBConv 和Fused-MBConv 的組合方式對不同原料堆肥圖像的特征進行提取,引入ECA 模塊,獲得性能增益,更加關注堆肥圖像的有用特征,使Fused-CoAtNet 模型更好地適應堆肥腐熟度的識別。
2)在實現的CoAtNet 網絡模型對堆肥圖像腐熟度具有較好的識別效果,而改進后的Fused-CoAtNet模型對畜禽糞便、尾菜、秸稈以及混合原料數據集的識別平均準確率達到了99.61%,相對于CoAtNet 提高了0.17 個百分點,而且參數量減少了0.3M。該模型在堆肥腐熟度識別上具有優異的表現,既能保持較高的識別率,又能減少參數量,在模型精度和復雜度之間取得了較好的平衡。
3)通過與RestNet50、EffcientNetV2 和CoAtNet模型相比,Fused-CoAtNet 模型平均準確率分別提高0.31、0.58、0.17個百分點,參數量較少的同時,推理時間也較快。