王曉婷,趙展,王陽,李林
(1. 開封大學信息工程學院,河南開封,475000; 2. 河南省高標準農田智能灌溉工程研究中心,河南開封,475000; 3. 貴州大學省部共建公共大數據國家重點實驗室,貴陽市,550025)
不同種類植物的表型千差萬別,主要是由植物的自身基因決定的,而處在相同發育期的同類作物也會表現出不同表型,主要是由環境因素決定。通過對植物表型性狀的智能檢測,能夠將不同植物基因型和環境的決定作用或影響區分開[1-3]。植物表型的智能檢測在指導施肥和噴藥、雜草識別、產量預測和病蟲害檢測等方面發揮著重要的作用[4-5]。傳統的植物表型檢測大多仍然采用人工的手段,不僅檢測效率低,還容易出現誤檢或者漏檢的情況。隨著計算機信息采集與圖像處理技術的高速發展,圖像識別技術以其精準、高效的特點而被廣泛應用。在數字農業時代,植物表型的智能檢測方法已經成為現代農業的研究熱點[6]。孫婭彬[7]利用支持向量機模型對植物葉片具有紋理特征的圖片進行分類,但僅適用于具有紋理特征的圖片;馬娜等[8]通過布谷鳥算法對支持向量機進行優化,對葉片分類正確率可達87%,且在實驗時間上優于其他改進的支持向量機方法;劉守陽等[9]借助數字化植物表型系統研究不同品種小麥生育期的冠層變化,開展了虛擬激光雷達模擬實驗,均獲得了滿意精度,對提高作物改良效率具有重要意義;黨滿意等[10]利用機器視覺快速識別馬鈴薯晚疫病患病情況,為基于機器視覺的馬鈴薯晚疫病的快速檢測提供理論依據。
近些年深度學習技術發展迅速,能夠在復雜環境中達到甚至超越人工檢測的水平,為實現植物表型的高效智能檢測提供了技術手段。常用的檢測框架主要有單階段檢和雙階段檢兩個模型[11]。其中,單階段指的是模型經過一個階段的訓練就可實現檢測任務,檢測速度快,但由于該類模型在檢測開始時會產生大量的候選框,容易導致類別極度不均勻,檢測精度不高;雙階段指的是模型要經歷兩個階段的訓練才能完成圖像識別任務,第一階段用于生成候選框,第二階段基于候選框得到輸出結果,這樣檢測速度會降低,但會獲得更高的檢測精度。然而,單純的檢測識別容易忽略植物表型幾何參數、生理性狀的量化測量與計算,如植物葉片的輪廓面積、葉片指數、雌花姿態等。因此,提出一種更優的植物表型性狀圖像分割和識別方法十分迫切。Hariharan等[12]提出了一種簡單的方法,可以識別圖像中不同感興趣區域上的目標,然后使用卷積神經網絡(CNN)對該區域內的目標進行分類,并將目標實例分割出來,能很好地識別出圖像中不同植物表型實例并進行分割,但該方法忽略了感興趣區域內目標的長寬比信息和空間位置信息不一致性,同時在感興趣區域內采用選擇性搜索的方法會造成大量的計算開銷;Ma等[13]采用全卷積神經網絡(FCN)實現水稻幼苗和雜草的圖像分割,其提出的Segnet方法平均準確率為92.7%,能夠有效地對稻田圖像中水稻幼苗、背景和雜草的像素進行分類;張偉榮等[14]通過對Mask R-CNN進行改進,不僅能實現不同光照強度下高質量的實例分割結果,還能從雜草中識別出目標,從而完成精準施肥。
為此,本文針對植物表型智能檢測問題,提出了一種基于遷移學習和改進Mask R-CNN的植物表型智能檢測分割算法,優化殘差網絡(ResNet)的結構和調整候選區域提取網絡(RPN)中錨框的比例和閾值對算法進行了改進,最后通過試驗驗證了改進算法的有效性。
雖然Mask R-CNN具有較高的檢測準確率,可也存在運算速度慢的問題,要完成植物表型的智能檢測,目標掩膜的輪廓分割精度需進一步改進。
Mask R-CNN包含兩個不同的階段:第一階段:根據輸入圖像生成可能存在目標的候選建議區域;第二階段:對目標進行分類并細化目標的邊界框,然后根據第一階段的候選建議,針對區域內的目標用一個像素級的顏色掩碼,將屬于目標的像素進行分類,從而實現分割,其網絡結構如圖1所示。

圖1 Mask R-CNN結構Fig. 1 Structure of Mask R-CNN
該算法的具體流程如下。
步驟1:將待檢測的圖像輸入到預先訓練好的ResNet50+FPN網絡模型中,提取特征并得到相應的特征圖。
步驟2:將特征圖通過RPN后獲得大量RoI,然后借助Softmax分類器將前景和背景進行二值分類,使用邊界框回歸獲得更準確的候選框位置信息,并通過非最大抑制過濾掉部分RoI。
步驟3:將特征圖和剩余的RoI發送到RoIAlign層進行尺寸統一,這樣每個RoI都會生成一個固定大小的特征圖。
步驟4:將尺寸統一的特征圖通過雙分支檢測頭,其中一個分支采用全連接層進行目標分類和邊界框回歸,另一個分支采用FCN進行像素分割。
Mask R-CNN的主干網一般采用ResNet101,即網絡層數為101,但層數過多會大大降低網絡運行的速率[15-16]。本文訓練的植物表型圖像類別比較簡單,不需要過深的網絡結構,為進一步提高算法的速度,本文采用ResNet50作為主干網。但由于圖像中植物表型的大小尺寸會不同,如發芽期和結果期的植物表型的大小會相差幾倍,僅采用ResNet50不能很好地提取所有的植物表型屬性。因此,本文利用了ResNet50與FPN相結合的方法。其中,FPN采用自上而下的橫向連接結構,解決了在圖像中提取目標的多尺度問題,該結構具有較強的魯棒性和適應性且較為輕量,所以不會增加過多的參數。
為了進一步提高檢測精度,本文對骨干網的結構進行了改進,并調整了各個網絡層的順序,如圖2所示。

(a) 原始ResNet

(b) 改進后ResNet圖2 原始ResNet和改進后的ResNet結構對比Fig. 2 Comparison of original ResNet and improved ResNet structure
圖2中的左側分支為不變分支,要保持輸入輸出一致,否則會影響信息傳輸,調整右側的殘差分支上各層的順序,通過引入更多的BN層和ReLU激活函數增強網絡的性能。改進后的ResNet的在保證反向傳播信息傳輸暢通的同時,BN層作為一個預激活可以提高模型的正則化性能,使模型的泛化性能更好。
按照特征金字塔結構,首先把圖像分解成多尺度不同大小的特征圖,并獲得對應的特征。然后將FPN生成的特征圖輸入到RPN中,此時RPN可根據目標的大小,提取出RoI特征。因此,簡單的網絡結構發生了變化,將骨干網的結構優化之后,在沒有顯著增加計算量的情況下,大大提高了小目標的檢測性能,可有效平衡檢測精度和運算速度。
RPN相當于一個基于滑動窗口的無類別標記的目標檢測器,該檢測器由一個卷積神經網絡構成,通過滑動窗口在候選建議區域內滑動掃描,產生大量不同尺寸和長寬比的錨框。值得注意的是,建議區框的面積大小和面積重疊(IoU)會直接影響最終的目標分類效果。為了能夠適應采集圖像數據中植物表型的所占區域,本文將錨框的比例進行了調整,調整后的錨框為32×32,64×64,128×128,256×256,512×512,同時由于植物表型在采集圖像中的分布較為集中,因此對錨框的長寬比也進行了調整,優化成1∶1,2∶3,3∶2。IoU是預測框與真實框的交并比,本文將IoU閾值設為0.75,即當錨框對應面積與實際目標面積大于0.75時,為前景;當重疊率小于0.25時,為背景;在兩個值之間的丟棄,這樣改進后的RPN產生了更少且準確的的RoI,也有效減少了模型的計算量,從而提高了模型的效率,改進前后的RPN產生的RoI特征如圖3所示。

(a) 原始RPN

(b) 改進的RPN圖3 RPN產生的RoI對比結果Fig. 3 Comparison results of RoI characteristics generated by RPN
Mask R-CNN中的Mask分支對目標的像素進行分類時,必須確定像素的位置,并且精度必須保持在像素級。當輸入的原始圖像經過大量的卷積操作之后,圖像中的像素位置發生變化,當進行像素級分割時,就會導致圖像中的目標無法準確的定位,因此Mask R-CNN在Faster R-CNN的基礎上進行了改進,將Rol池化層變為感興趣區域對齊層(RoIAlign),從而去除了量化操作,使用雙線性插值法計算每個單位中樣本點的準確位置,保留其小數,然后使用最大池化或平均池化操作,最后輸出一個固定大小的RoI。
如圖4所示,左邊藍色虛線表示卷積后的5×5特征圖,實線為特征圖中RoI對應的特征小塊,RoIAlign保持浮點數邊界,不進行量化處理,右邊的藍色虛線為RoIAlign統一尺寸的輸出和特征圖。算法的具體流程如下。
步驟1:將特征圖分為很多的特征小塊,并將劃分后的特征塊分為2×2個單元,其中先不對每個單元的邊界進行量化。
步驟2:將分配好的單元再次劃分為4小塊,利用雙線插值法計算這4個小塊各自的中心點坐標值,如圖4中的藍色圓點所示。
步驟3:對特征圖使用最大池化或者平均池化操作,得到2×2大小的特征圖。
然后,通過雙線性插值計算4個位置的值,最后進行最大池化或平均池化操作,得到2×2大小的特征圖,如圖4中的右側藍色虛線特征圖。

圖4 RoIAlign原理圖Fig. 4 RoIAlign schematic
雙線性插值法保留了特征圖上的空間信息,很大程度上解決了RoI池化層中特征圖的兩次量化所引起的誤差,并解決了圖像中目標的區域不匹配問題,可以更準確地實現像素級的檢測分割。
本文針對Mask R-CNN中的Mask檢測頭進行了改進,通過特征融合模塊來獲得更高質量的分割掩膜,改進的網絡結構如圖5所示。

圖5 改進的Mask R-CNN的結構框Fig. 5 Block diagram of improved Mask R-CNN
圖像經過主干網提取后的特征圖表現為金字塔的形狀,其分別代表不同的特征尺度,然后經過RPN生成候選區域,并輸入到改進的Mask R-CNN檢測頭,檢測頭利用這些候選區域,提取RoI特征進行分類并得到邊界框,本文在掩膜分支設計了一種特征融合機制,將兩個尺度的特征圖分別提取RoI特征,并進行交叉融合,進一步獲得高質量的Mask特征,以獲得更精確的掩膜。
損失函數采用Mask R-CNN中的損失函數,如式(1)所示。
L=Lcls+Lbox+LMask
(1)
式中:Lcls——類別分類誤差,%;
Lbox——邊界框的檢測誤差,%;
LMask——Mask的檢測誤差,%。
通常訓練一個穩定的深度學習的模型需要大量的數據作為支撐,但在大多數情況下,很難為特定范圍內的特定問題找到足夠多的訓練數據。文獻[17]引入了遷移學習解決該問題,遷移學習包括一個源域和一個目標域,遷移學習過程如圖6所示。
考慮到圖像數據具有相似的顏色、紋理等基本特征,本文首先對大型COCO數據集進行預訓練,然后將訓練后模型權重作為本文模型的預訓練模型,并在訓練過程中對網絡參數進行微調。通過遷移學習的使用,不僅可以提高模型在訓練過程中的收斂速度,還能進一步提升模型的檢測性能。

圖6 遷移學習過程Fig. 6 Transfer learning process
本文的研究對象是基于西瓜EMS誘變突變體的生育期的表型性狀生成的圖像數據,包含4個類別(發芽期、幼苗期、抽蔓期、結果期)。該試驗采集自然環境狀態下的表型圖像數據共800張,然后采用數據增強技術(包括圖像隨機旋轉、翻轉、隨機裁剪操作)進行圖像擴增,擴增后的數據集為1 600張,再將該數據集分成訓練集(1 280張)和測試集(320張)。
獲取用于檢測西瓜表型的數據集的主要步驟包括圖像采集盒圖像處理兩部分。圖像采集:不同場景、不同角度拍攝不同尺寸的西瓜表型性狀圖像,然后進行圖像擴增。由于采集的圖像大小不同,而Mask R-CNN的輸入圖像必須統一尺寸,因此使用腳本將圖像尺寸歸一化為1 024像素×1 024像素,像素不足的地方填0補充。圖像處理:借助標記工具Labelme對采集的數據集標注,并分成訓練集和測試集。首先創建一個“數據集”文件夾,然后創建兩個子文件夾“train”和“test”來存儲訓練樣本和測試樣本。每個文件夾中的圖像對應于一個同名的表型性狀標注信息文件,文件的類型統一為COCO數據集的json格式。同時,為了方便標注以及模型的訓練,標簽信息統一為英文表示。
試驗結果的評價指標包括檢測性能和分割性能兩個方面。本試驗采用mAP值來評價表型性狀檢測的性能,并采用并集的平均交集(MIoU)和運行速度來評價圖像表型分割的性能。
(2)
式中:TP——正確分類的正樣本數,個;
FP——正樣本被錯誤標記的負樣本數,個;
FN——負樣本被錯誤標記的正樣本數,個;
P——準確率,%;
R——是召回率,%。
(3)
式中:k——模型輸出的類別的總數,個;
pij——第i類的像素被分配到j類的像素數,個;
pii——分配正確的像素數,個;
pji——第j類的像素被分配到i類的像素數,個。
試驗硬件平臺:處理器為i5-9300HF(主頻2.40 GHz),搭載一塊英偉達的GTX1660Ti顯卡,顯存為6 GB。本文試驗具體的訓練參數為:學習率為0.001,動量為0.9,權重衰減值設置為0.000 1,置信度閾值為0.8,訓練周期為200個epoch,掩膜池化尺寸為14。
為了獲得最有的訓練模型,運用了遷移學習的技術,在COCO數據集預訓練模型的基礎上進行了訓練。圖7展示了遷移學習和從頭訓練的對比結果。

圖7 遷移學習和從頭訓練的對比結果Fig. 7 Comparison between transfer learning and no-pro training
由圖7可以看出,使用遷移學習可以帶來三個優勢。首先,該模型的初始性能較高。其次,在訓練過程中,模型的性能提高率更大。第三,訓練模型的最終性能較好。
為了研究改進后的算法在植物表型數據集上的檢測性能,隨機選取測試集中的部分圖像作為檢測對象,并與傳統的Mask R-CNN算法進行了對比分析,分割效果對比如圖8所示。
從分割對比結果圖8中可看出:原始Mask R-CNN算法雖然能將目標完整的分割出來,但輪廓邊界不清晰,仍有部分枝葉如細小的莖葉不能完整的分割且分割出來的表型的置信度分數較低;與原始Mask R-CNN相比,所提的改進算法分割效果更完整,能保存更清晰的輪廓信息,掩膜質量更高,置信度更高,檢測精度更高,從而證明了改進算法的有效性。


(a) 原始圖像

(b) 標注結果

(d) 本文結果圖8 分割結果Fig. 8 Segmentation results
為了進一步更好的驗證本文所提改進算法的有效性,在測試集上進行了試驗分析,并將本文算法分別與原始Mask R-CNN、文獻[18]中的多尺度Retinex算法和文獻[19]中改進U-Net網絡模型的方法進行了比較,得到的性能對比結果如表1所示。

表1 不同算法的性能對比Tab. 1 Performance comparison of different algorithms
從表1中數據可看出,相比較于原始Mask R-CNN算法、文獻[18]和文獻[19]的方法,改進后的Mask R-CNN在檢測精度、掩膜準確率和檢測速度3個指標上表現最好,且較改進前的Mask R-CNN,將檢測精度提高了2.2%,掩膜準確率提高了2.7%,檢測時間減少了42 ms,說明改進后的算法不僅提高了精度,而且提高了檢測速度,具有更好的性能優勢,并在植物表型智能檢測領域具有更強的適用性。
為了解決高通量自動化獲取植物表型性狀圖像的智能檢測問題,提出了一種基于深度學習的植物表型檢測算法。
1) 采用成熟的Mask R-CNN分割模型作為基礎算法,并分別在骨干網和檢測頭部分進行了改進,將采集西瓜突變體生長情況的表型性狀圖像數據作為試驗數據集進行驗證,進一步提升模型的檢測性能。
2) 所提出改進的Mask R-CNN的植物表型檢測算法能夠更好地適應植物表型圖像,并取得了良好的檢測效果。
3) 所提出改進方法較原始Mask R-CNN檢測精度提高了2.2%;掩膜準確率提高了2.7%,檢測時間減少了42 ms,為提升農業精準化水平和推動智慧農業發展提供了技術支撐。