陳祖強,龐立欣,郭娜煒,蔡金金,么 煒,劉 博
(1.河北農(nóng)業(yè)大學 信息科學與技術學院,河北 保定 071001;2.河北省農(nóng)業(yè)大數(shù)據(jù)重點實驗室,河北保定 071001;3.河北農(nóng)業(yè)大學 科學技術研究院,河北 保定 071001;4.河北農(nóng)業(yè)大學 機電工程學院,河北 保定 071001)
農(nóng)業(yè)在國家經(jīng)濟發(fā)展中占據(jù)著重要地位,2020年全國農(nóng)業(yè)及相關產(chǎn)業(yè)增加值占國民生產(chǎn)總值(GDP)的16.47%[1]。隨著精準農(nóng)業(yè)建設的穩(wěn)步推進,農(nóng)用遙感無人機被廣泛應用農(nóng)田勘測任務中[2,3],如地塊劃分[4],出苗檢測[5]、路徑規(guī)劃[6]等。然而,田間狀況多變,如雜草、積水、病害、建筑等異常區(qū)域具有形狀不規(guī)則、大小不確定、邊界不清晰等特點[7],特別是相對大量的正常樣本,異常樣本具有收集困難,標注不完備等問題,使得田間異常檢測成為1 項富有挑戰(zhàn)性的工作。
目前,針對遙感圖像的田間異常檢測的研究主要分為兩類。一類是傳統(tǒng)方法,一類是基于深度學習的方法。其中傳統(tǒng)的異常檢測主要是通過手動提取特征,采用閾值分割、回歸和分類等模型實現(xiàn)對異常的檢測。例如劉曉霞等[8]通過分離無人機影像的各通道,使用最大類間方差法實現(xiàn)異常區(qū)域的檢測。孫瑞琳等[9]通過無人機獲取小麥冠層多光譜圖像,通過植被系數(shù)與病情指數(shù)(DI)的相關性進行建模,對小麥葉片葉銹病進行異常監(jiān)測。趙靜等[10]則混合植被指數(shù)、主成分波段特征和紋理特征,通過支持向量機、隨機森林等監(jiān)督模型對玉米田中雜草區(qū)域進行定位。Fang H 等[11]采用遙感技術獲取的農(nóng)田RGB 圖像,通過模板匹配法對農(nóng)田中的障礙物進行檢測。
另一方面,隨著深度學習的發(fā)展,大量基于卷積神經(jīng)網(wǎng)絡的模型用于田間異常檢測任務。如薛金利等[12]采用YOLO(You Only Look Once)目標檢測方法,對棉花田中的雜草異常進行檢測。楊蜀秦等[13]采用DeepLabv3+(Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation)語義分割算法,對麥田中的倒伏異常區(qū)域進行分割。Hong S 等[14]采 用SSD(Single Shot Multi Box Detector)、FasterR-CNN(Faster Region-based Convolutional Neural Network)與YOLO 算法,對田間等場景下的野生鳥類進行檢測,并比較不同算法的優(yōu)劣。這些工作都采用了較為成熟的目標檢測或語義分割框架,相比傳統(tǒng)方法,異常定位的準確性有了顯著提升。然而,這些方法具有兩個方面的不足,其一,其工作在完全監(jiān)督的情況下,即需要預先對大量的正常和異常數(shù)據(jù)進行標注,但很多異常區(qū)域難以收集足量數(shù)據(jù)進行模型搭建和訓練;其二,已有方法只能對于預定義的異常類別進行識別,無法檢測未知的異常[15]。
針對這些問題,本文提出了1 種基于改進PatchSVDD (Patch-level Support Vector Data Description)[16]的農(nóng)田異常區(qū)域檢測方法,其在不依賴異常樣本的基礎上只針對正常樣本進行建模,通過構建魯棒的正常區(qū)域特征表示比對篩選異常區(qū)域。首先,田間的異常區(qū)域及種類具有小樣本特性,其在整個農(nóng)田區(qū)域中占比過小,正常與異常樣本嚴重不平衡,因此難以收集足量的異常數(shù)據(jù),故本文方法僅對正常區(qū)域進行魯棒性學習,通過把測試樣本僅與正常樣本進行比對從而給出異常評分;此外,田間異常具有開放性、無法預先觀測等特性,本文僅對正常樣本建模的方式也對該類異常的識別提供了解決思路;最后,本文可以作為數(shù)據(jù)預處理方法,通過對田間異常區(qū)域進行定位,并在此基礎上對相應異常區(qū)域進行人工確認,從而減輕人工搜尋異常區(qū)域的負擔,也為后續(xù)的相關工作提供高質量的異常樣本支撐。綜上所述,本研究采用無人機遙感數(shù)據(jù),針對農(nóng)田中的異常區(qū)域進行檢測并定位,符合現(xiàn)代精細農(nóng)業(yè)的發(fā)展趨勢,對于農(nóng)田信息監(jiān)測、作物的估產(chǎn)、營養(yǎng)預警等方面具有重要意義。
為了驗證所提模型的有效性,本文使用無人機在河北省張家口市張北縣的馬鈴薯種植基地進行周期性的遙感圖像采集。該基地覆蓋區(qū)域約13.33 hm2,地 理 坐 標 為(114°56′01′′ E, 41°25′37′′ N)。無 人 機為多旋翼型,軸距492 mm,頻段5.725 ~5.850 GHZ。由于農(nóng)田內出現(xiàn)的異常區(qū)域具有隨機性,常常與天氣、種植環(huán)境和人類活動相關。因此,為了保證圖像采集的真實性,本研究根據(jù)馬鈴薯生長周期,在2020—2021 連續(xù)2 年內的7—8 月進行了數(shù)據(jù)采集,同一年份采集時間間隔為7 d。
為了保證所拼接的農(nóng)田全景圖像的質量,本文選擇天氣晴朗、無風的時間進行拍攝。無人機路徑規(guī)劃采用等高垂直的方式,按劃分區(qū)域自動航行拍攝。最終得到TIF 格式的農(nóng)田無人機全景圖像12幅。拍攝的農(nóng)田內異常包括雜草簇、苗圃缺失、障礙物等異常類型。為了豐富數(shù)據(jù)集,本文補充了Agriculture-Vision[17]大型農(nóng)業(yè)異常航空農(nóng)田語義分割數(shù)據(jù)集的原始TIF 圖像4 幅,其中含有2 幅積水異常,2 幅含有雙倍種植異常。部分全景圖像如圖1所示。
圖1 全景遙感圖像實例Fig.1 Examples of panoramic remote sensing images
由于所獲得的TIF 圖像分辨率過高,為了便于深度模型處理,本文在保留RGB 通道的基礎上,將每幅無人機圖像切分為256×256 大小的圖像。此外,該數(shù)據(jù)集中共包含雜草簇、種植缺失、障礙物、雙倍種植、農(nóng)田積水等5 類異常,部分異常樣例如圖2 所示。
圖2 農(nóng)田異常樣例Fig.2 Examples of anomaly regions in farmland
為了更加符合農(nóng)田異常檢測的真實場景,本文建立的訓練集中只包含正常圖像,而測試集則包含正常及異常圖像用以指標比對。5 個類的樣本量如表1 所示,訓練集與測試集之間的圖像不重疊,測試集中正常與異常圖像樣本的比例為1∶1。由于模型訓練過程中并不需要標注異常信息,因此僅標注測試集中的異常區(qū)域以計算相關評價指標。
表1 數(shù)據(jù)集樣本量Table 1 Number of datasets samples
本文模型在訓練階段僅依賴無人機航拍的正常農(nóng)田圖像,并在推理階段對農(nóng)田中的異常區(qū)域進行識別和定位。對異常檢測的分類問題定義如下,使用Xtrain用表示正常圖像數(shù)據(jù),使用Xtest用來表示測試集所有數(shù)據(jù)。由于訓練集中只包含正常數(shù)據(jù),而測試集中既有正常數(shù)據(jù)又有異常數(shù)據(jù),可得xi∈Xtrain∶yi=0,xi∈Xtest∶yi∈{0,1},其中xi代表對應數(shù)據(jù)集的第i張圖像,yi代表該圖像對應的分類,0 代表正常,1 代表異常。對于異常檢測的定位問題定義如下,對每個測試圖像xi,圖像中每個像素pj,滿足pj∈xi∶yj'∈{0,1},其中yj'代表像素的分類,0 代表正常,1 代表異常。
PatchSVDD[16]源于DeepSVDD[18](Deep Support Vector Data Description),其通過學習1 個最小半徑,從而將訓練集中所有正常圖像映射在1 個超球面上,具體如圖3(a)所示。給定個超球體中心為c,模型的損失函數(shù)為映射后的圖像特征與c的歐式距離,具體如公式 (1) 所示。在測試階段,測試樣本產(chǎn)生的特征與超球面中心的距離作為該樣本的異常評分,根據(jù)給定的閾值即可劃分出正常和異常圖像。
圖3 DeepSVDD 與PatchSVDD 的比較Fig.3 Comparison of DeepSVDD and PatchSVDD
為了實現(xiàn)圖像中的異常定位,PatchSVDD 模型將DeepSVDD 模型進行改進,通過重疊的滑窗,將每張圖像分割為多個圖像塊,并在圖像塊的尺度上進行異常檢測,具體如圖3(b)所示。此外,當模型輸入由圖像轉化為圖像塊后,數(shù)據(jù)差異性增大,因此采用單個超球面并不合適。因此PatchSVDD 不再顯式地定義超球體中心的個數(shù),而是采用相鄰的圖像塊特征之間的歐式距離作為損失函數(shù),如公式 (2)所示。其中bi是輸入的圖像塊,bij是與其相鄰的圖像塊。在測試階段,將所有正常樣本進行存儲,測試樣本產(chǎn)生的特征與正常樣本的最近鄰距離作為該樣本的異常評分。
PatchSVDD 模型存在2 個問題,首先對于紋理類圖像進行異常檢測時,由于紋理間的相似性,模型學習到的正常特征缺乏判別性;其次模型存儲所有正常特征并求最近鄰距離作為異常評分,雖然此種做法提升了算法的檢測及定位精度,但大大增加了算法在實際使用時的推理時間。針對以上問題,本文從異常檢測損失函數(shù)與有外部記憶模塊構建兩方面進行改進,整個流程如圖4 所示。
圖4 改進的PatchSVDD 方法的框架Fig.4 The framework of improved PatchSVDD
2.3.1 損失函數(shù)改進 農(nóng)田遙感圖像多數(shù)屬于紋理圖像,農(nóng)田內的作物普遍使用農(nóng)用機械種植,并由于自然生長的原因,其分布具有一定的規(guī)律性和差異性。原模型在訓練過程中,損失函數(shù)的設計是為了利用圖像塊間的相似性學習正常類別邊界,但沒有充分考慮圖像塊間差異性,導致對異常識別下降。針對上述問題,本文在建模相鄰塊的相似性的基礎上,引入不相鄰塊之間的差異性,并通過引入三元損失函數(shù)[19]來同時學習相鄰圖像塊的相似性,以及不相鄰圖像塊間的差異性,具體如公式 (3) 所示。其中bij為bi的第j個相鄰圖像塊,b'ij為bi的與第j個不相鄰圖像塊,α為邊界參數(shù)。通過新增的邊界損失,使模型能夠識別不相鄰圖像塊之間的差異性??偟膿p失函數(shù)如公式 (4) 所示。
2.3.2 特征存儲改進 在模型訓練完成后,PatchSVDD 將全部正常圖像塊特征存入內存中,用以進行異常查詢與匹配。但數(shù)據(jù)的冗余性會造成空間和時間上的浪費。為了解決這一問題,提升異常匹配效率。本文采用核心集選取策略用以壓縮正常特征集的容量。即對于所有的正常特征庫Mall,學習得到1 個子集特征庫Msub,其Mall中的特征ei距離Msub的最近鄰距離中的最大距離取得最小。其表達公式如下所示,Δ 表示特征之間的距離。
對于核心集的選取算法,文獻[20-21]提供1種具有最大代表性的方法CORE-SET,該方法能夠保留特征中那些具有代表性的特征。本文通過設置1 個超參數(shù)β∈[0,1],表示Msub在Mall的采樣比例以控制核心集的容量。
在測試階段,測試圖像塊在特征庫Msub中的最近鄰距離作為其異常評分。評分函數(shù)如公式(6)所示。其中bi代表測試圖像塊,bnormal代表Msub中的正常圖像塊,Spatch代表每個圖像塊的異常評分,采用的距離為歐式距離。
由于采用有重疊的滑窗,每張圖像xi可以產(chǎn)生多個圖像塊,從而構成圖像塊集合Bi,模型選取所有圖像塊異常評分中的最大值作為圖像xi的異常評分,記做Simage,計算方式如公式(7) 所示。
此外,每個像素pi可能存在于多個圖像塊中,該圖像塊集合記為Ci。將包含像素pj在內所有圖像塊的異常評分均值作為像素pj的異常評分,記做Spixel,計算方式如公式 (8)所示。
根據(jù)圖像和像素的異常評分,不僅可以對異常圖像進行識別,還可以對圖像的異常區(qū)域進行定位。
本文所使用實驗平臺的硬件環(huán)境為Intel(R)Core(TM) i9-9900X CPU,NVIDIA GeForce RTX 2080Ti GPU;軟件環(huán)境為 64 位 Ubuntu 20 系統(tǒng),PyTorch 深度學習框架。實驗部分所有算法在訓練階段均使用初始學習率為0.000 01 的Adam 優(yōu)化器,批處理大小為64。在模型參數(shù)設置方面,代表性子集的采樣率為0.2,三元組損失函數(shù)的邊界參數(shù)α設置為10-5,圖像塊的尺寸K=32。
本文實驗中采用的評價指標是AUC(Area Under Curve),即ROC曲線下的面積(Receiver Operating Characteristic Curve),該曲線的橫坐標是假陽率FPRate(False Positive Rate),縱坐標是真陽率TPRate(True Positive Rate),是分類任務中常用的綜合指標,如公式(9)與公式(10)所示。
其中TP表示預測結果與真實結果均為正常數(shù)據(jù)的數(shù)量;FP表示預測結果為正常數(shù)據(jù),但真實結果為異常數(shù)據(jù)的數(shù)量;TN表示預測結果與真實結果均為異常數(shù)據(jù)的數(shù)量;FN表示預測結果為異常數(shù)據(jù),真實結果為正常圖像數(shù)據(jù)的數(shù)量。為獲得AUC值,首先需要計算ROC曲線。本文通過分別計算不同閾值下的FPR和TPR,將FPR作為橫軸,TPR作為縱軸,連接對應點以構建ROC曲線。通過計算ROC曲線下方與坐標軸圍成的面積可得到AUC值。本文根據(jù)圖像的分類和像素分類結果,可以構造2 條ROC曲線,分別對應檢測AUC值和定位AUC值。
為驗證模型的有效性,本文在含有5 種異常類型的自建數(shù)據(jù)集上,對比了AE[22-23](Auto Encoder)、CutPaste[24](CutPaste: Self-Supervised Learning for Anomaly Detection and Localization)、DeepSVDD[18]和PatchSVDD[16]等4 種異常檢測算法。AE 模型是基于圖像重構的方式進行異常檢測,模型由正常樣本訓練,其假設異常樣本的重構誤差比正常樣本更大。CutPaste 模型是基于分類的方式來進行異常檢測。各個算法的結果如表2 和表3 所示。其中表2 展示了不同方法針對農(nóng)田異常圖像的檢測AUC值,結果說明5 種方法對農(nóng)田圖像異常區(qū)域的檢測均有較好的表現(xiàn),平均AUC值可保持在91 % 以上,其中本文提出的改進PatchSVDD方法取得了最好的結果。表3 則展示了不同方法的異常定位效果,結果說明5 種異常檢測方法對于異常區(qū)域的定位效果差異較大,表現(xiàn)最好的改進PatchSVDD 算法與較差的DeepSVDD 算法差距達到約10%。通過綜合比較檢測和定位的實驗結果,改進后的PatchSVDD 模型在平均檢測AUC值和平均定位AUC值上分別達到了96.9 %和94.6 %,相比于原始PatchSVDD 模型分別提升1.2 %和1.6 %。
表2 不同異常檢測方法的檢測AUC 對比Table 2 Comparison of detection AUC values of different anomaly detection methods
表3 不同異常檢測方法的定位AUC 值對比Table 3 Comparison of localization AUC of different anomaly detection methods
由于本文提出了組合損失函數(shù)和核心集壓縮策略,為了驗證相關改進的效果從而進行了消融實驗,異常檢測的實驗結果如表4 所示,異常定位的實驗結果如表5 所示。其中衡量算法的效果采用AUC值,衡量算法的效率采用單張圖像的平均推理時間,推理時間主要由圖像預處理(生成圖像塊)、圖像塊編碼以及異常匹配三部分的耗時組成。
表4 異常檢測消融實驗Table 4 Ablation experiment of anomaly detection
表5 異常定位消融實驗Table 5 Ablation experiment of the anomaly location
由表4 ~5 可以看出:(1) 在未采用核心集壓縮策略的前提下,模型的改進損失較原損失在平均異常檢測AUC值和平均異常定位AUC值分別提升1.3 %和1.6 %。原因在原損失函數(shù)上添加了邊界損失函數(shù)LSEP,其能夠同時學習圖像塊之間的相似性以及不相鄰圖像塊之間的差異性,增加了模型的判別能力。(2)采用核心集壓縮策略后,模型的檢測和定位效果沒有明顯變化,這符合實驗預期。主要原因在于,核心集壓縮策略是為了在保證算法的效果下,減少內存中的特征冗余,進而減少異常匹配過程中的時間消耗。引入核心集策略后(采樣率取0.2),單張圖像異常檢測平均推理時間從29.65 ms 減少到19.98 ms,節(jié)省了32.6 %的推理時間;單張圖像異常定位平均推理時間從31.43 ms 減少到21.78 ms,節(jié)省了30.7 %的推理時間,從而驗證了核心集有效性。
為了進一步探究改進算法的有效性,本文將1張異常圖像通過間隔為1 像素的滑窗生成多個圖像塊,并將每個圖像塊特征通過t-SNE[25]進行降維可視化,結果如圖5 所示。
圖5 t-SNE 特征可視化Fig.5 Feature Visualization of T-SNE
圖中分對原始輸入特征、PatchSVDD 獲得的特征和改進后的PatchSVDD 獲得的特征進行可視化對比,其中包含異常區(qū)域的圖像塊標記為藍色,不含異常區(qū)域的圖像塊標記為紅色。相比于原始輸入特征,經(jīng)過學習后的特征可分性更強。特別是本文提出的改進后的PatchSVDD 算法,相比于原始PatchSVDD 算法進一步增加了類間的間隔與類內的緊湊性,從而提升算法的檢測和定位效果。
本文的模型中存在采樣率、邊界損失的邊界值α、圖像塊的尺寸K等超參數(shù),本節(jié)將通過實驗分析不同超參設置對模型的影響。
3.6.1 特征庫采樣分析 本文通過采樣的方式以構建具有代表性的樣本特征子集以解決PatchSVDD算法在計算異常分數(shù)時存儲空間大,近鄰搜索時間長的問題。下面將對采樣率的設置進行分析。圖6與圖7 分別展示不同采樣率下的異常檢測與定位的AUC值。
圖6 不同采樣率的異常檢測AUC 值比較Fig.6 Comparison of anomaly detection AUC with different sampling rates
圖7 不同采樣率的異常定位AUC 值比較Fig.7 Comparison of anomaly location AUC with different sampling rates
其中采樣率分別設置為0.001、0.05、0.10、0.15、0.20、0.25 和0.30。從圖中可以看到,隨著采樣率的增加,出現(xiàn)異定的數(shù)值。原因在于過小的采樣率無法保證樣本子集足夠的代表性,而過大的采樣率則會引入冗余信息。
3.6.2 三元組損失的邊界值的影響 根據(jù)本文第3.5節(jié)描述,本文使用三元損失函數(shù)以增加類別判別性。為了衡量該邊界值α對結果的影響,本節(jié)對不同α取值下的檢測和定位的AUC值進行比較,結果如圖8 與圖9 所示。
圖8 不同邊界值的異常檢測AUC 值比較Fig.8 Comparison of anomaly detection AUC for different margins
圖9 不同邊界值的異常定位AUC 值比較Fig.9 Comparison of anomaly location AUC for different margins
從圖中可以看到,當α 取值10-5時,平均檢測和定位的AUC值均達到較好結果,主要原因較大邊界值將導致模型難以收斂;而較小邊界值將使模型易于收斂,但也減少了類間距離導致分類難度增加。3.6.3 圖像切塊大小的影響 為了驗證不同圖像塊大小K對模型的影響,本文分別使用K=64、K=32和K=16 不同圖像切塊尺寸進行實驗,結果如圖10與圖11 所示。
圖10 不同切塊大小的異常檢測AUC 比較Fig.10 Comparison of anomaly detection AUC with different patch sizes
圖11 不同切塊大小的異常定位AUC 值Fig.11 Comparison of anomaly location AUC with different patch sizes
從圖中可知:(1)隨著圖像塊尺寸的減小,算法AUC值不斷提升。(2)隨著圖像塊尺寸的減小,檢測和定位AUC值提升速率逐漸變慢。產(chǎn)生上述現(xiàn)象的原因在于尺寸越小,異常圖像塊更容易與正常圖像塊進行區(qū)分。然而,隨著圖像塊尺寸的減少,圖像塊的總數(shù)量也會增加,導致模型效率降低。當K=32 時達到了性能與效率的平衡。
為了進一步驗證算法的定位效果,本文對部分異常圖像的定位結果通過熱力圖進行可視化,效果如圖12 所示。
圖12 異常區(qū)域的熱力圖樣例Fig.12 Example of heat maps of anomaly regions
熱力圖由像素的異常評分值構造,圖像中顏色越深,代表該區(qū)域異常程度越高。從圖中可以發(fā)現(xiàn),改進后的PatchSVDD 算法相對于原算法,圖像中噪點更少,邊界更加清晰,證明改進后的算法異常定位的效果更精確。
本文的主要貢獻如下所示:(1) 提出1 種改進PatchSVDD 的農(nóng)田異常檢測方法。改進主要包括如下兩個方面。一是在特征提取引入不相鄰圖像塊之間的邊界損失函數(shù),從而提升了算法的檢測和定位效果;二是引入外部記憶組件,通過壓縮存儲正常區(qū)域特征,從而在保證檢測精度的基礎上有效減少了檢測匹配階段的時間和空間消耗。(2) 通過結合自建數(shù)據(jù)集與公開數(shù)據(jù)集,構建了含有雜草簇、種植缺失、障礙物、雙倍種植和積水共5 類異常的農(nóng)田異常數(shù)據(jù)集,從而驗證了本文方法的有效性。同時也為相關后續(xù)研究提供了數(shù)據(jù)支撐。實驗結果表明,改進后的模型平均分類AUC值達到96.9 %,定位AUC值達到94.6 %,從而驗證了算法的有效性。后續(xù)工作將從定位精度、檢測效率等方面進行進一步的改進,從而為高效的農(nóng)田異常檢測提供必要的決策支持。