謝元澄 何 超 于增源 沈 毅 姜海燕,2 梁敬東
(1.南京農業(yè)大學信息科學技術學院, 南京 210095; 2.南京農業(yè)大學國家信息農業(yè)工程技術中心, 南京 210095)
小麥是我國的主要糧食作物,其產量關系到國家的糧食安全[1]。對小麥產量的精確估計可為政府在農村土地政策、糧食價格等方面的宏觀調控提供支撐[2]。單位面積麥穗數直接體現小麥種植密度,是決定小麥產量的關鍵因素,其數據主要在田間獲取[3],快速準確地測量這一指標可以大幅提高監(jiān)測小麥生長性狀的效率,從而為小麥產量及其他表型性狀提供早期預測,有利于優(yōu)化和加速育種進程。近年來,傳統(tǒng)圖像分割方法廣泛應用于農業(yè)領域,基于形狀[4]、顏色[5-9]或者紋理[5-7]特征對小麥RGB圖像進行特征提取,并通過機器學習方法實現麥穗檢測計數,在一定程度上提高了小麥估產效率。以上方法僅適用于灌漿期[8]等小麥生長的部分時期,這些時期小麥圖像各區(qū)域像素之間具有明顯的差異性。當麥穗存在粘連或者長勢不一時,僅僅依靠基于人工設定并提取特征的方法,其魯棒性較低。此外,特征提取方法流程也較為復雜,且對圖像采集設備具有較高的要求[10-12]。
計算能力的進步以及大量標記圖像的可用性促進了基于卷積神經網絡(Convolutional neural network, CNN)的機器學習方法在計算機視覺領域的應用和發(fā)展[13]。在稻穗檢測計數研究中[14-16],CNN具有良好的檢測效果,但存在流程復雜、算法耗時且受噪聲干擾影響較大的問題。在將深度學習方法應用于麥穗檢測計數的研究中,張領先等[17]利用CNN結合非極大值壓縮(Non-maximum suppression, NMS)的方法進行冬小麥麥穗檢測計數,但需要預先對小麥圖像進行手動分割,且對麥穗重疊、目標較小等復雜情況下的檢測未作說明。另外,使用Faster R-CNN等單一模型對麥穗進行檢測時[18-19],由于訓練過程中IOU(Intersection over union)閾值設定不規(guī)范以及訓練和預測時的IOU閾值不匹配,容易造成模型過擬合,導致對小麥圖像細節(jié)特征提取不足、檢測性能大幅下降。
在復雜大田環(huán)境中,小麥麥穗、麥葉與莖稈之間的顏色混疊程度極高,葉片、雜草、麥芒與麥穗之間存在嚴重的遮擋現象,光照強度不均勻易形成反光和逆光,同時還存在部分尺寸較小的目標隱藏在背景相似的環(huán)境中的問題。為有效解決復雜場景下的麥穗檢測計數問題,本文提出一種基于深度卷積神經網絡的高效麥穗自動計數方法(FCS R-CNN),以Cascade R-CNN[20]為基本檢測模型,加入特征金字塔網絡,通過IOU閾值級聯的方式進行階段融合,并在訓練過程中對困難樣本進行重學習。利用改進的支持向量機(Support vector machine,SVM)[21]分類器對所有檢出框進行二分類,將FCS R-CNN方法與現場人工計數進行比較,以評估該方法在真實場景下的適用性。
試驗所用小麥圖像于2018年6月4日在南京市江寧區(qū)(118°55′28.9236″ E,31°53′3.3432″ N)4塊正常條播小麥種植園獲取,小麥品種為“寧麥8號”,小麥處于成熟期。圖像采集設備為美國蘋果公司生產的iPhone 7型智能手機,1 200萬像素。拍攝期間天氣晴朗,沒有大風,圖像采集于11:00—14:00和16:00—19:00兩個時間段,光照強度不同,且拍攝角度隨機,大部分圖像采集角度小于等于45°,涵蓋了田間麥穗計數作業(yè)時所有可能的環(huán)境條件。拍攝位置距小麥冠層頂部約1 m,每塊小麥田約獲取300幅圖像,共獲取1 079幅分辨率為4 032像素×3 024像素的小麥圖像,部分小麥圖像如圖1所示。
圖1 大田環(huán)境下小麥圖像Fig.1 Wheat images in field environment
將采集到的1 079幅小麥圖像劃分為訓練集863幅,測試集216幅,并對數據集進行5折交叉驗證。然后使用開源圖像標注工具LabelImg進行人工圖像標注。對標注完成的圖像數據進行分析,共標注麥穗邊界框(Bounding box,Bbox)56 182個,其中訓練集45 011個,測試集11 171個。然后將原始小麥圖像尺寸修改為1 333像素×800像素,并輸入到CNN網絡中提取特征,生成特征映射圖。
第1階段采用改進型Cascade R-CNN作為基本檢測模型,第2階段對模型中S0階段與S3階段進行基于IOU閾值的級聯提升檢出率,最終接入一個基于圓形LBP紋理特征訓練的SVM分類器,濾除誤檢框,得到最終的算法框架FCS R-CNN(圖2)。
圖2 FCS R-CNN網絡模型結構圖Fig.2 Structure diagram of FCS R-CNN
Cascade R-CNN是基于Faster R-CNN的網絡框架(圖2)。Faster R-CNN是由HE等[22]提出的目標檢測網絡,作為R-CNN[23]與Fast R-CNN[24]網絡的改進版本,在結構上拋棄了傳統(tǒng)的滑動窗口和選擇性搜索(Selective search)候選框生成方法,引入區(qū)域生成網絡(Region proposal network,RPN),并與Fast R-CNN共享特征提取網絡,最終在檢測速度和平均精度上有較大提高。Cascade R-CNN對Faster R-CNN網絡中的RPN網絡生成的包圍框使用三步級聯,IOU閾值分別設定為0.5、0.6、0.7,級聯的過程不斷改變候選框的分布,并且通過調整閾值的方式重采樣,采樣后的每個檢測器都可以更好地適應當前閾值,提升檢測性能。
為使網絡能夠克服復雜背景信息的干擾,針對Cascade R-CNN中的Faster R-CNN子模塊,選取深度殘差神經網絡(Residual neural network,ResNet)[25]作為基本的特征提取網絡,通過引入特征金字塔網絡(Feature pyramid network,FPN)[26]和在線難例挖掘(Online hard example mining,OHEM)[27]技術進行改進,改進結果如圖3所示。
另外,對Cascade R-CNN模型進行部分優(yōu)化,針對原始網絡中采用的批量歸一化(Batch normalization,BN)方法[28]受到Batch Size影響導致網絡性能下降的問題,引入群組歸一化(Group normalization,GN),將通道劃分成組,然后在每組中計算用于歸一化的均值和方差。另外,針對相鄰麥穗干擾導致的漏檢問題,選取Soft-NMS算法代替?zhèn)鹘y(tǒng)的非極大值壓縮(Non-maximum suppression,NMS)[29]方法對特征圖中提取的候選感興趣區(qū)域(Regions of interest,ROI)進行修剪,獲取候選框并輸入ROI pooling層進行池化操作。為了區(qū)分于最終的檢測模型FCS R-CNN,并方便在試驗結果中對FCS R-CNN模型效果進行遞進式的驗證,將基于Cascade R-CNN優(yōu)化后的第1階段模型稱作C R-CNN。
引入特征金字塔網絡提升模型對視覺場景中尺寸較小目標的檢測精度。LIN等[26]提出的特征金字塔網絡作為一種高效的CNN特征提取方法,由自下而上路徑、自上而下路徑以及橫向連接組成,主要解決物體檢測時多尺度情形下存在的小目標漏檢問題,通過改變網絡連接,在不增加原有模型計算量的前提下可大幅度提升小物體檢測的性能。如圖3所示,FPN使用一個1×1的卷積過濾器將C5的通道深度降至256維,得到特征圖M5。接著應用一個3×3的卷積得到特征圖P5,P5正是用于目標預測的第一個特征映射。向上進行最近鄰下采樣(×2)得到P6,然后沿著自頂向下的路徑往下,對之前的特征提取層進行最近鄰上采樣(×2)。同時,FPN對自底向上通路中的相應特征映射應用1×1卷積,然后進行相加。最后同樣應用3×3卷積得到目標檢測的特征映射。這一過濾器減輕了上采樣的混疊效應。
圖3 改進的Faster R-CNN子模塊Fig.3 Improved Faster R-CNN submodule
對于復雜場景中的麥穗檢測而言,存在大量特征相似的正負樣本,這些樣本在訓練過程中造成了較大干擾,導致模型預測誤差放大,因此引入在線難例挖掘技術,針對性地解決這一問題。OHEM在訓練過程中會自動選擇那些困難樣本加入訓練,這樣使得訓練更加有效和快速,同時能提升網絡的性能。如圖3所示,將Faster R-CNN分為2個階段,第1階段包括通過特征提取網絡對輸入圖像進行特征提取并輸入ROI pooling層,該階段對輸入圖像進行特征提取并收集輸入的特征圖像,提取目標特征圖(Proposal feature maps)。第2階段包括ROI pooling層之后的所有層。將第2階段作為一個單獨的ROI網絡,接著將該網絡分成2個網絡,ROI網絡1是只讀的,對所有樣本進行前向傳播得到所有ROI的損失值,接著難例取樣器(Hard ROI sampler)根據損失值排序,利用NMS選出K個難例(Hard example),并把這些難例作為ROI網絡2的輸入,ROI網絡2對ROI進行進一步的前向和反向傳播,計算K個難例的損失值,并將梯度反向傳播,從而更新網絡參數。通過損失值提高難例的比例,網絡因此可以對難例進行多次訓練,提升模型準確率。
對采集的1 079幅小麥數據進行訓練。軟件環(huán)境為pytorch1.0.0、CUDA 9.0、CUDNN7.6.1、Ubuntu 16.04 LTS。訓練的硬件環(huán)境為Intel Xeon E5-2650 v3 CPU,128 GB存儲器,NVIDIA GTX Titan XP*2 GPU。利用隨機梯度下降法(Stochastic gradient descent,SGD)訓練網絡,初始學習率(Learning rate)設置為0.001,動量因子(Momentum)設置為0.9,權重衰減系數( Weight decay)設置為0.000 1,迭代次數(Epoch)設置為200。
為驗證FCS R-CNN模型在復雜場景下的麥穗檢測效果,針對FCS R-CNN中的2個階段,分別設計兩部分試驗。試驗1對比Cascade R-CNN和C R-CNN兩種算法的檢測結果,驗證級聯網絡優(yōu)化方法對Cascade R-CNN模型檢測性能的提升效果。試驗2展示FCS R-CNN的部分麥穗檢測結果,在C R-CNN基礎上,利用兩階段級聯并串聯SVM分類器的結構改進方法,驗證模型的性能提升效果。
圖4 Cascade R-CNN與C R-CNN檢測結果對比Fig.4 Comparison of Cascade R-CNN and C R-CNN detection results
試驗1隨機選取兩幅測試集圖像(圖A、B)分別輸入到Cascade R-CNN與C R-CNN網絡,進行麥穗檢測效果對比,具體的識別結果如圖4所示。對圖4c、4d的局部進行放大便于觀察。通過圖4可以明顯看出,C R-CNN檢出大量Cascade R-CNN漏檢的麥穗目標(圖中黃色框標記)。圖4c中4號、圖4d中1號藍色框標出的是C R-CNN誤檢的目標,該目標與正樣本擬合程度較高,但是屬于麥芒,因此屬于假陽性(False positive,FP)。利用Cascade R-CNN網絡檢測驗證集,共檢測8 523個麥穗目標,并存在大量假陰性(False negative,FN)目標,圖5給出了部分假陽性和假陰性樣例,其中假陰性目標周圍大多有大量麥芒、麥葉等遮擋物。對于漏檢目標(假陰性),將NMS改為Soft-NMS來減少相鄰目標重疊導致的冗余框誤刪,可以提升相鄰較近目標的檢測率,兩種方法對比結果如圖6所示。
圖5 部分假陽性和假陰性的樣例Fig.5 Examples of partial false positives and false negatives
圖6 Soft-NMS與NMS算法結果對比Fig.6 Comparison of Soft-NMS and NMS algorithm results
圖7 FCS R-CNN部分檢測結果Fig.7 Partial detection results of FCS R-CNN
試驗2針對上述廣域復雜環(huán)境下生長的小麥,利用FCS R-CNN對麥穗進行檢測。圖7展示了部分檢測結果,圖中綠框表示C R-CNN的檢測結果,藍框表示階段級聯后增加的檢出框。當麥穗密度較高時,大量麥芒遮擋周圍麥穗,也存在部分麥穗重疊現象,可以看出,FCS R-CNN能夠實現多種復雜情形下的麥穗檢測,并且相對于C R-CNN有了更進一步的性能提升。
對圖4中兩種算法結果的對比分析可知,復雜場景是影響麥穗檢測精度、造成假陰性目標產生的主要原因,具體包括:①小麥長勢不一,大量麥芒、麥葉的存在嚴重阻礙了麥穗識別(圖4c中1、5、6號框,圖4d中4、5號框)。②背景中存在與麥穗顏色相近的雜草等類似物,試驗前未對雜草進行單獨標注,引起干擾,從而影響麥穗檢測。③部分目標由于在視覺場景中顯示尺寸較小且密集,在背景相似的環(huán)境中,此類小尺寸目標極易受到環(huán)境噪聲的干擾(圖4c中2號框,圖4d中2、5號框)。④麥穗之間存在相互重疊遮蓋現象,不能正確識別(圖4c中3號框,圖4d中3、4號框)。
對圖7中FCS R-CNN的檢測結果進行分析可知,C R-CNN相對于FCS R-CNN的漏檢麥穗(圖中藍色框),是由Cascade R-CNN本身存在缺陷導致,這可能與IOU閾值的提高有關。Cascade R-CNN由3個檢測模型組成,每個檢測模型都基于不同IOU閾值來區(qū)分正負樣本,前一個檢測模型的輸出為后一個檢測模型的輸入,因此,在閾值提高的過程中,閾值較低時或處于兩個閾值中間的正樣本會出現遺漏,導致網絡在訓練過程中遺失掉部分候選區(qū)域(Region proposal)。
為了驗證FCS R-CNN模型與單一網絡模型的性能差異,選取相同樣本數據集分別用FCS R-CNN、C R-CNN、Cascade R-CNN、Faster R-CNN 4種模型進行訓練并將訓練后的模型應用于真實環(huán)境下的大田麥穗計數中,對模型訓練結果使用準確率(Accuracy)、精度(Precision)、召回率(Recall)和平均精度(Average precision,AP)對試驗結果進行綜合評價,計算公式為
(1)
(2)
(3)
(4)
式中Acc——準確率
P——精度
R——召回率
AP——平均精度
TP——真陽性,圖像中正確檢測出的目標麥穗數量
FP——假陽性,圖像中將背景誤識別為麥穗的數量
TN——真陰性,圖像中檢測出的負樣本數量
FN——假陰性,圖像中漏檢的麥穗數量
表1給出了4種算法在相同測試集下的檢測結果。IOU為0.5時 FCS R-CNN的平均精度取得最大值,比Cascade R-CNN高29.98個百分點,比Faster R-CNN高48.09個百分點。圖8給出了其中3種算法精度與召回率的關系曲線,用來權衡準確率和召回率的關系。由圖8可以看出,FCS R-CNN在召回率小于80%時精度維持在較高水平,高于另外兩種算法,進一步證明FCS R-CNN性能上的優(yōu)越性。FCS R-CNN的圖像檢測速度達到3 f/s,能夠滿足大田麥穗自動計數的需求。
表1 4種算法性能對比Tab.1 Performance comparison of four algorithms
圖8 FCS R-CNN精度與召回率關系曲線Fig.8 Relationship curves of precision and recall of FCS R-CNN
Cascade R-CNN、C R-CNN與FCS R-CNN 3種模型的麥穗計數結果如表2所示。從表2中可以看出,應用FCS R-CNN模型的麥穗統(tǒng)計精度普遍高于95%,在麥穗較少的圖像中能實現全檢。216幅小麥圖像中,共標注11 171個麥穗,共檢出10 373個麥穗,檢測精度達到92.9%。
表2 人工計數與算法計數的麥穗統(tǒng)計對比Tab.2 Comparison of manual counting and algorithm counting of wheat ear
不同算法統(tǒng)計結果表明,單一級聯模型的識別結果容易受到IOU的影響,這是由于IOU提升會導致部分正樣本遺漏,造成正負樣本失衡,從而影響麥穗識別效果。面對復雜場景中麥芒、枯葉、雜草等環(huán)境噪聲的干擾,會出現大量漏檢的麥穗,通過模型階段級聯的方法,可以進一步降低漏檢率。
(1)針對復雜場景中麥穗檢測精度較低的問題,提出一種基于深度卷積神經網絡的麥穗計數方法(FCS R-CNN)。試驗表明,在單一網絡模型的基礎上,對網絡進行結構改進可以有效提高對復雜目標的檢測性能。FPN的加入提升了對淺層細節(jié)特征的利用率,OHEM技術可以降低復雜背景信息對目標分割的干擾,并提高對小目標的檢測精度;FCS R-CNN在大田環(huán)境下對麥穗的檢測精度達到92.9%,單幅麥穗圖像的檢測時間為0.357 s,具有較強的實時性和魯棒性。
(2)FCS R-CNN通過兩階段級聯并串聯SVM分類器對結果進行復驗,能夠有效解決因IOU閾值設定不規(guī)范而導致模型準確率下降的問題。算法的平均精度達到了81.22%,比Cascade R-CNN模型高21.76個百分點。IOU為0.5時平均精度為90.10%。