馬 欽 萬傳峰 衛 建 汪瑋韜 吳才聰
(1.中國農業大學信息與電氣工程學院, 北京 100083; 2.農業農村部農機作業監測與大數據應用重點實驗室, 北京 100083)
保護性耕作是東北黑土地保護利用的有效途徑[1],其中包括秸稈深埋還田、覆蓋還田等方式,統稱為秸稈還田[2]。秸稈還田是一種保護水土肥力的重要措施,不但可以減少秸稈焚燒帶來的環境污染以及資源的浪費,對于改善土壤結構、保留土壤水分、增加土壤養分起到重要作用[3]。
秸稈覆蓋率是評價免耕還田程度的一個重要指標,但是傳統秸稈覆蓋人工統計方法如拉繩法、采樣法、目測法需要消耗更多的人力物力且效率低,更容易受主觀因素的影響。圖像處理方法和機器學習算法可以實現秸稈檢測及其覆蓋率計算。文獻[4]提出一種基于多閾值的多目標秸稈圖像自動分割優化算法(DE-AS-MOGWO),提高了圖像分割的準確性和處理速度。文獻[5]采用神經網絡和紋理特征結合的方式提取秸稈,方法耗時較長,無法滿足實際作業需求。文獻[6]提出了一種隨機決策森林算法對土壤中的殘留物進行分類,使用簡單的像素比較和具有訓練偏移量的鄰近像素對單個像素進行分類。文獻[7]將快速傅里葉變換和SVM相結合對秸稈圖像進行識別,設計多尺度占比濾波器,對圖像中的噪聲和空洞進行修補,算法適用于多種情況。文獻[8]提出一種Sauvola和Otsu算法相結合的方式進行圖像的閾值分割來檢測秸稈覆蓋率,對于干擾因素較多的區域檢測效果不理想。文獻[9]通過K-means聚類和秸稈圖像分區尋優方法結合進行圖像分割,為秸稈覆蓋率在線計算提供一種新方法。文獻[10]依據圖像行平均灰度標準差對圖像進行分類,針對有秸稈圖像進行分塊,使用Otsu閾值分割計算秸稈覆蓋率,提高檢測方法的適用性。但是傳統閾值分割方法受背景因素、光線因素、陰影等噪聲的影響較大,曬干的秸稈顏色和土壤相近,難于區分秸稈和土壤。農田秸稈形態多樣,對于分散的細碎秸稈識別困難。隨著深度學習的發展,圖像語義分割技術已經成為當下的研究熱點,語義分割是圖像在像素級別的分類操作。目前,語義分割技術主要應用在遙感圖像[11-12]、自動駕駛[13-14]、醫學影像[15]等領域。文獻[16-17]利用遙感圖像進行秸稈檢測,標準誤差分別為4.846%和8.46%。文獻[18]利用低空無人機獲得現場圖像,用改進的U-Net(ResNet18-U-Net)建立語義分割算法進行覆蓋率檢測。文獻[19-20]基于語義分割的DSRA-UNet算法檢測秸稈覆蓋率,一定程度上能解決圖像中的陰影問題。但是無人機航拍圖像數據需要單獨采集,無法和農機播種的其他作業環節相結合。
針對田間秸稈細碎分散、形態多樣、秸稈和土壤受光照影響難以區分等難點,本文使用車載相機采集秸稈圖像數據,對復雜秸稈圖像進行圖像預處理,篩選有效識別區域,以U-Net網絡和特征圖金字塔網絡作為基礎結構進行改進,以提高細碎分散秸稈和陰影區域秸稈的識別能力。
秸稈覆蓋率檢測主要采用計算機視覺的方法,通過車載相機設備采集農田秸稈圖像數據集。結合農田秸稈形狀多樣的特點,針對農田場景有逆光或光照遮擋導致的陰影問題,先對秸稈圖像進行圖像裁剪,獲取相機拍攝的正前方有效區域,去除農田外的干擾背景后進行圖像投影變換,減少相機拍攝時產生的透視畸變。使用Labelme標注得到真值,使用數據增強技術進行數據集擴充。在模型設計階段為了提高秸稈在復雜場景下的提取能力,使用ResNet34加深模型的網絡層數;在模型層數增加的情況下為了避免產生網絡梯度消失現象,在模型中加入殘差結構;同時使用改進的特征金字塔網絡和多分支非對稱空洞卷積塊,利用不同的感受野,增加不同形狀尺寸秸稈和細碎秸稈的提取能力;最后用快速上卷積進行特征圖上采樣,避免網絡上采樣過程中出現過多的無效數據。由網絡模型輸出得到預測圖,結合手動標注的真值圖像,使用平均交并比、像素準確率和運行時間等指標進行模型評估。檢測流程如圖1所示。

圖1 秸稈檢測流程圖Fig.1 Flow chart of straw detection
由于免耕播種有作業補貼,需要進行作業面積監測,同時無人機采集數據要單獨作業,難以區分農田的邊界和識別地塊歸屬,所以選擇在播種機作業時,使用播種監控設備上的攝像頭進行秸稈圖像數據的采集。本文所用秸稈圖像數據為2020年5月采集于黑龍江省齊齊哈爾市龍江縣,由北京德邦大為科技股份有限公司的車載監控設備采集得到,所用農機為DEBONT2BMG-2型播種機,監控設備包括顯控終端、北斗定位終端、紅外補光攝像頭等,使用前后雙攝像頭拍攝,后攝像頭主要監控作業情況,需要拍攝到農具,前攝像頭拍攝范圍為車前20 m以上,圖像分辨率為640像素×480像素。從13塊作業田塊中選取200幅有效圖像進行試驗,訓練集和驗證集共150幅,測試集圖像50幅。通過圖像翻轉、縮放、對比度增強等數據增強技術將訓練集和驗證集圖像共擴增到1 250幅圖像,其中訓練集圖像為1 000幅,驗證集圖像250幅。圖2所示為不同覆蓋等級下的秸稈圖像數據,由圖2e可知,田間的細小秸稈較多時,秸稈之間會有空隙(放大圖中的橢圓框區域),這些像素點對應的是土壤,在進行秸稈檢測時容易識別成秸稈區域,給秸稈覆蓋度檢測帶來困難。

圖2 不同覆蓋等級的秸稈拍攝圖像Fig.2 Shooting images of straws with different mulching levels
由于不同農機相機安裝位置、角度不同,導致圖像拍攝視角產生差異,會有天空、房屋、樹林等其他干擾背景存在,在圖像預處理階段,人工判定田塊區域占整幅圖像區域3/4以上為有效圖像,并以此標準進行圖像裁剪,去除天空區域。先使用圖像行像素和的方式查找有效區域,天空區域對應的像素灰度大部分為230~250,田內土壤的像素灰度大部分在150以下,兩者差異較大。根據圖像的行像素和變化規律可知,一般情況下,水平分界線從天空區域到田內的過程中,行像素灰度總和逐漸減少,當有樹林等其他干擾因素時,行像素和局部上升,臨近分界線時像素和快速減少,因此圖像的像素行數在[0,120]范圍內,判斷田內和田外分界處的一個條件就是當行像素灰度和連續下降且下降的差值最大時,對應的水平線位置就是分界處,結果如圖3a~3c黃線所示,分界線識別流程如圖4所示。

圖3 圖像裁剪過程Fig.3 Process of image cropping

圖4 分界線識別流程圖Fig.4 Flow chart of dividing line recognition
由圖3e可知分界線位置(紅色虛線),計算分界線下方區域的高與圖像高的比例,對圖像的寬進行等比例裁剪見圖3h,最后將裁剪圖縮到原尺寸得到結果圖。
車載相機在采集圖像數據時,秸稈圖像存在近大遠小的透視畸變,為了改善這種情況,文中采用圖像透視變換[21]進行處理,如圖5所示,可以在一定程度上減小誤差,投影變換公式為

圖5 圖像投影變換結果Fig.5 Result of image projective transformation
(1)
式中T——轉換矩陣
(u、v)——圖像像素坐標
(x、y)——轉換之后歸一化的圖像坐標
(x′、y′、z′)——轉換后未歸一化的圖像坐標
圖像行灰度和檢測到的有效區域圖像,進行人工標注,生成標注圖像作為真值,來評估語義分割模型的性能。使用Labelme標注工具,將圖像分為土壤、秸稈兩類,標簽圖中黑色表示土壤,紅色表示秸稈。將圖像中的物體按照不同的類別分別圈選并做好標記,用Python腳本語言生成標注圖,結果如圖6所示。

圖6 圖像標注結果Fig.6 Result of image annotation
U-Net網絡是一種有編碼器和解碼器結構的網絡,通過跳躍連接將編碼器階段的特征圖和解碼器階段的特征圖信息進行融合。本文基于U-Net和FPN提出新的網絡結構,如圖7所示,其中特征圖下方標注了該特征的尺寸和通道數。

圖7 改進U-Net + FPN算法網絡架構Fig.7 Network architecture of U-Net + FPN algorithm
網絡模型包含特征編碼器模塊、最高語義信息層特征提取模塊和特征解碼器模塊。編碼階段采用ResNet34的前4層網絡結構,先進行卷積核尺寸為7×7的卷積和池化核為2×2的最大池化,然后通過多層串聯的殘差網絡結構進行4次特征提取。最高語義信息層特征提取模塊在密集空洞卷積[22]的基礎上提出多分支非對稱空洞卷積塊(Multibranch asymmetric dilated convolutional block,MADC Block),使用多個分支的非對稱空洞卷積對特征圖進行不同尺度的信息提取。特征解碼模塊使用快速上卷積塊代替普通上采樣進行位置信息的恢復,同時用跳躍連接獲取編碼階段同一層級的特征信息。跳躍連接中對編碼階段的特征信息通過密集特征金字塔網絡(Dense feature pyramid networks,DFPN)模塊獲取不同尺度的特征圖信息,前3次跳躍連接的DFPN模塊之后使用標準殘差塊保持網絡的收斂性,避免網絡訓練過程中的梯度消失現象。經過4次上采樣得到的特征圖通過殘差塊運算后與第4次跳躍連接得到的特征圖進行融合,最后進行1次反卷積得到與輸入圖像相同尺寸的結果圖。
FCN網絡模型[23]提出了編碼-解碼結構,用卷積層替換傳統卷積神經網絡最后的全連接層,使用跳躍連接進行特征融合,擺脫了輸入圖像尺寸的限制。在FCN之后,同樣使用編碼-解碼結構的U-Net[24]和SegNet[25]網絡在此基礎上進行了相應的改進。編碼-解碼結構主要是在網絡中包含一個編碼器模塊和一個解碼器模塊,編碼器模塊主要負責圖像的特征提取,圖像從空間信息轉換到深層的語義類別信息,并記錄每一個類別像素點的位置;解碼模塊對編碼塊輸出的信息進一步優化,根據像素點的類別信息和位置信息進行復原,并將特征圖放大到原輸入圖像的尺寸。
MADC模塊根據空洞卷積[26-27]思想,加入非對稱空洞卷積(Asymmetric dilated convolution,ADC)進行秸稈信息識別,目的是為了擴大感受野同時,不降低圖像分辨率且不引入額外參數量,非對稱結構在不改變感受野的條件下,增強秸稈邊緣關鍵點提取能力,提升對秸稈圖像識別的魯棒性。結合Inception[28-29]結構思想進行多尺度不同感受野的秸稈信息的獲取,在增加網絡寬度和深度的同時減少參數量,如圖8所示,大感受野更好地提取大片覆蓋秸稈信息并生成更抽象的特征,小感受野可以更好地提取小范圍細碎秸稈信息。模塊共有5個分支,第1個分支使用3×3卷積核,設置擴張率為1;第2個分支使用擴張率為3的3×3非對稱卷積,之后進行擴張率為1的1×1卷積;第3個分支先使用擴張率為1的3×3卷積,后跟擴張率為3的3×3非對稱卷積,再進行擴展率為1的1×1卷積;第4個分支依次使用擴展率為1的3×3卷積、擴張率為3的3×3非對稱卷積、擴張率為1的5×5非對稱卷積和擴張率為1的1×1卷積;第5個分支使用原始輸入特征圖;MADC模塊中每次卷積之后都采取ReLU函數保持非線性。

圖8 MADC模塊結構圖 Fig.8 Diagram of MADC module structure
在一定范圍內,網絡深度越深,擁有越好的性能,能夠更好地提取秸稈特征,但是隨著網絡深度的增加,會導致梯度消失、梯度爆炸等問題出現[30],ResNet34[31]使用的殘差網絡可以緩解梯度消失現象,通過增加一條捷徑學習融合原始特征信息,在增加網絡非線性的同時保持網絡的原有特征,以增強表達能力。網絡結構如圖9所示。

圖9 卷積殘差塊結構圖Fig.9 Diagram of residual block
特征金字塔網絡[32](Feature pyramid network, FPN)主要是為了解決目標尺寸差異較大時的檢測缺陷,細小秸稈的像素信息較少,在網絡下采樣過程中容易丟失,在上采樣過程中無法恢復,導致最后識別不成功。FPN網絡通過將語義信息較強的低分辨率特征圖和空間信息更多的高分辨率特征圖進行融合,構建多尺度的特征金字塔結構。在FPN的基礎上,本文提出密集特征金字塔結構,如圖10所示。網絡結構通過稠密連接的方式,將下采樣過程中的所有特征圖都使用到特征圖的上采樣過程中,從而更充分地利用秸稈圖像的細節信息。以第2次上采樣過程為例,不同通道數的輸入特征圖(x1,x2,x3)使用3×3卷積轉換到相同通道數。x2、x3卷積生成的低分辨率特征圖使用SE[33]模塊(Squeeze-and-Excitation block,SEBlock)增強秸稈信息的特征,然后上采樣到x1特征圖的相同尺寸。將得到的3個特征圖進行拼接,再用多尺度的深度可分離卷積進行秸稈信息提取,以應對秸稈形狀多樣的問題,之后使用1×1卷積進行通道數轉換生成特征圖F1。最后將前一個上采樣過程中生成的特征圖x4依次進行深度可分離卷積改變通道數和上采樣改變特征圖尺寸,與生成特征圖F1相加。
其中SE模塊先在通道維度進行全局池化,得到通道的全局特征,然后使用全連接層和激活函數來獲取通道之間的關系。第1個全連接層起降維的作用,降低模型的復雜度并且可以提升網絡的泛化能力,后面跟ReLU激活函數,第2個全連接層負責將通道數恢復到原特征圖的維度,后面使用Sigmoid函數激活,將各個通道的特征值縮到0~1之間,最后將各個通道的激活值乘以x2、x3卷積生成低分辨率特征圖,提取每個通道中的主要信息。SE模塊基于通道注意力機制的方式,得到通道權重,來增強特征圖中的秸稈特征,抑制其他干擾因素的特征。
常見的上采樣方法有插值法、轉置卷積和反池化。插值法在上采樣時沒有考慮圖像邊緣的信息,縮小了特征圖不同特征邊界處的差異,導致圖像的邊緣模糊。轉置卷積會導致生成的圖像中產生棋盤效應。反池化原理是特征圖的下采樣過程中,最大池化時記錄最大值的索引位置,在上采樣時將特征值填入記錄的位置,并將其余位置補零,來增大特征圖的尺寸,但是這種方法因為引入大量0,在后續的卷積過程中大多計算是無效的。本文使用快速上卷積塊[34](Fast up-convolution block,FUC Block)進行特征圖的上采樣,結構如圖11所示。對于原始特征圖,反池化之后會增加75%的0值,后續使用3×3卷積計算時,相當于對原始特征圖進行2×2、2×1、1×2和1×1的有效參數計算。因此本文分別使用2×2、2×1、1×2和1×1的卷積核對原始特征圖進行卷積,然后將生成的4個特征圖拼接,并使用子像素卷積將拼接圖的每個通道對應位置元素重新組合,生成尺寸比原始特征圖增大一倍的特征圖,來替代普通的上采樣方法,在達到相同效果時,快速上卷積塊比普通上采樣方法計算量更小,加快了運算速度。
損失函數反映了模型預測值和真實值之間的差距,深度學習模型訓練過程中使用損失函數進行模型評估和監測[35-36],本文使用二分類的交叉熵損失函數,在進行梯度下降計算時可以避免網絡出現梯度彌散的現象,加快網絡的學習深度,定義為
(2)
式中n——像素點總量
i——像素點序號
y——像素點真實值,若像素點為秸稈,取1,否則取0
a——像素點被預測為秸稈的概率,取0~1
網絡模型使用Adam優化器,在每一個epoch中計算損失函數的梯度,從而進行參數更新;學習率為10-4;batch size設置為10;訓練迭代周期為200,激活函數使用ReLU函數。
為了檢驗模型識別秸稈的準確性,使用秸稈圖像分割平均交并比(Mean intersection over union,MIOU)、像素準確率(Pixel accuracy,PA)和單幅圖像平均處理時間等來衡量算法性能。
本文使用的模型預測平臺GPU配置為Tesla V100 32GB,訓練時間約5 h,為了更好地比較各個修改結構的效果,以U-Net為基礎,使用控制變量法,逐步添加改進的結構,在訓練集上進行模型訓練,并通過驗證集的指標準確率來比較模型的效果,如表1所示。

表1 編碼階段不同網絡結構的準確率Tab.1 Accuracy results of different network structures in encoding stage %
為了更具體地比較每個結構對模型改進的效果,進行了5組不同模型結構的試驗,結果如表2所示。試驗1為初始網絡U-Net,試驗2將U-Net編碼階段的網絡結構替換為ResNet34,試驗3表示在試驗2的基礎上加入MADC Block,試驗4在試驗3的基礎上添加了DFPN模塊,試驗5在試驗4的基礎上,將上采樣時的反卷積結構替換為FUC Block。各網絡結構在驗證集上進行準確率比較。

表2 添加不同模塊后效果對比Tab.2 Comparison of effects after adding different modules
由表2可知,使用U-Net網絡進行農田秸稈分割,MIOU為82.19%,本文改進網絡的MIOU提高2.59個百分點,達到84.78%,由于網絡結構中加入了MADC、DFPN等模塊,增加了訓練參數,導致模型參數量和運行時間有所增加。對比試驗2、3可以看出,MADC模塊可以更好地獲取特征圖中秸稈的空間信息,比未使用MADC模塊時的MIOU提高1.53個百分點。對比試驗3、4可以看出,DFPN模塊可以將深層特征圖語義信息和淺層的空間信息相結合,其中包含通道注意力機制用來減少干擾信息,進一步提高網絡的特征提取能力,網絡模型的MIOU提高0.81個百分點。對比試驗4、5可以看出,加入快速上卷積模塊比試驗4的MIOU提高0.19個百分點,主要原因是FUC Block使用多個尺寸不同卷積核對特征圖進行卷積,并使用子像素卷積進行特征圖的信息融合,對于特征圖的邊界信息提取得更加準確。
對于DFPN結構中的SEBlock,其中第1個全連接層起降維作用,降維系數r是一個超參數,為了找到合適的降維系數,以及在降維過程中避免信息丟失,本文將超參數取值2、4、8、16進行試驗對比,結果如表3所示。由表3可知,當r取值8時,模型準確率最高,在提高模型泛化能力同時可以加快模型的運算速度,因此本文SE模塊選擇r=8作為超參數。

表3 不同超參數取值的準確率Tab.3 Hyperparameters of running results of different algorithms
為了更直觀地展示網絡模型改進效果,選擇表2中的試驗1、3、4、5共4組網絡模型,分別代表U-Net網絡,以及U-Net編碼階段替換為ResNet34后依次添加MADC Block、DFPN Block、FUC Block結構,選取不同環境下的田間圖像進行預測,以Labelme工具標注得到的二值圖像作為真值,結果如圖12所示。

圖12 不同覆蓋率下網絡預測效果對比Fig.12 Comparison of network prediction effects in different situations
由圖12可知,在有陰影干擾情況下,原始U-Net網絡的識別不夠精細,陰影區域的秸稈識別不夠完整,但是改進后的U-Net網絡能夠更精確地識別出秸稈位置,在一定程度上解決由陰影所帶來的干擾。在秸稈覆蓋率50%~100%時,改進的U-Net網絡和原始U-Net識別結果相差不大,主要區別在秸稈和土壤的邊界處分割更加精細。在秸稈覆蓋率處于30%~50%時,改進網絡對遠處離散的秸稈區域識別的更加準確。當秸稈覆蓋率為0~30%時,秸稈主要以細碎分散的秸稈為主,改進網絡對于細碎秸稈的分割更接近真實情況,對秸稈覆蓋區域中夾雜的土壤區域也能分離出來。由以上分析可以看出,本文改進的算法在大部分情況下都能比原始U-Net更好地完成分割任務。
本文通過和其他算法運行結果相比來評估本算法的性能。使用卷積核為3×3的U-Net算法、加入注意力機制的Attention-U-Net算法、CE-Net[22]算法、CPF-Net[37]算法進行了對比,結果如表4所示。

表4 不同算法運行結果比較Tab.4 Comparison of running results of different algorithms
由表4可知,本文算法MIOU和PA指標高于其他算法,在細碎秸稈識別上更加精細,網絡通過增加非對稱空洞卷積和特征圖金字塔網絡結構,增強了網絡的特征提取能力。由于網絡結構中參數多,模型復雜度高,網絡對圖像處理時間更長,是相對于其他網絡,但整個模型對640像素×480像素 的圖像平均處理時間在3 ms以下,滿足實際作業需求。
使用人工測量和本試驗算法對6個不同田塊秸稈的覆蓋率進行計算,計算方式為識別結果圖中秸稈像素點除以整個圖像的像素點,對比結果如表5所示,誤差率為真實覆蓋率和預測覆蓋率之間的差值絕對值。由表5可知,算法預測的覆蓋率和人工測量的覆蓋率相近,最大誤差率為3.8%。

表5 不同田塊的覆蓋率計算Tab.5 Calculation of coverage rate of different fields %
試驗另外隨機選取驗證集中的136幅秸稈圖像數據,分別按覆蓋率等級進行劃分,劃分為0~10%、10%~20%、20%~30%、30%~50%、50%~100% 5個集合,結果如圖13所示。其中0~10%等級共27幅圖像,10%~20%等級共36幅圖像,20%~30%等級共34幅圖像,30%~50%等級共28幅圖像,50%~100%等級共11幅圖像。根據結果可知,不同覆蓋等級下,算法識別的準確率和人工標注測量的覆蓋率大致相等,算法識別準確率的折線圖在人工測量折線圖上下波動,誤差較小。

圖13 不同覆蓋率等級效果對比Fig.13 Comparison of effects of different coverage levels
(1)將編碼階段網絡結構替換為ResNet34結構,通過殘差連接加深網絡層數,避免網絡訓練中梯度消失問題,增加網絡復雜度,提升秸稈特征提取能力。
(2)在網絡最高語義信息層使用多分支的非對稱空洞卷積,空洞卷積提高卷積核的感受野,非對稱結構增強了秸稈局部關鍵點的權重,提高了模型魯棒性。
(3)結合FPN網絡,提出密集特征金字塔網絡,結合高層特征圖和底層特征圖信息,對不同尺寸秸稈的識別能力更強。
(4)使用快速上卷積模塊替換普通上采樣方式,避免網絡訓練過程中的無效參數運算。
(5)提出的改進U-Net,結合改進的FPN網絡等結構,提高了網絡的分割精度,分割MIOU為84.78%,相較于原U-Net提高2.59個百分點,平均處理時間低于3 ms,符合農機正常作業時秸稈覆蓋檢測的要求。