?

基于特征點鄰域Hough變換的水稻秧苗行檢測

2020-10-29 11:18王姍姍余山山張文毅王興松
農業機械學報 2020年10期
關鍵詞:中心線鄰域秧苗

王姍姍 余山山 張文毅 王興松

(1.東南大學機械工程學院, 南京 211189; 2.農業農村部南京農業機械化研究所, 南京 210014)

0 引言

作為精準農業的重要組成部分,農業機器人視覺導航技術越來越受關注[1-4],并已廣泛應用于農作物種植、除草、施藥、收獲等[5-8]作業環節。水稻秧苗行檢測可為插秧機的自動導航和水稻行間除草提供依據,是水田農業機械智能化的重要組成部分[9-10],促進了精準農業的發展。

目前,國內外專家學者主要對玉米、小麥、蔬菜等旱地作物的作物行檢測進行了研究,對水田水稻秧苗行檢測的研究極少。最小二乘法已被廣泛用于作物行中心線提取[11],與Hough變換相比,最小二乘法計算簡單、實時性好,但其準確性易受噪聲影響,導致作物行中心線提取的魯棒性差[12]。MONTALVO等[13-14]將最小二乘法應用于具有高雜草密度的玉米田作物行圖像檢測。JIANG等[15]在假設作物行間距相等的基礎上,采用多個感興趣區域(ROI)移動的方法將特征點進行聚類,該算法在高雜草密度的作物圖像中可以成功提取特征點,但作物行等間距的前提條件使該方法在實際農田環境中應用受限。司永勝等[16]提出基于最小二乘法的早期作物行中心線檢測算法,利用特征點的鄰近關系對目標點分類,用最小二乘法對作物行的特征點集進行擬合,然而在分類過程中,當前點的選擇對分類以及直線擬合有很大影響,容易受到噪聲點干擾。ZHANG等[17]提出一種玉米田穩健作物行檢測方法,該方法先采用基于Ostu的雙閾值結合粒子群優化的改進分割算法將作物行從背景中分離,然后通過位置聚類算法和最短路徑確認最終的聚類特征點集,最后采用最小二乘法擬合作物行。

Hough變換和一些原始變換形式已被廣泛用于基于視覺的農業導航系統中的作物行檢測[18-21],結合顏色特征和閾值處理將作物從圖像中分割出來,通過Hough變換及其改進方法提取作物行的中心線,這適用于低雜草密度分布情況下的作物行檢測。JI等[22]提出一種基于梯度的隨機Hough變換算法,該算法可以有效地適應植株密度的變化,比標準Hough變換的速度更快,檢測準確率更高。JIANG等[23]提出了Hough變換與消隱點約束相結合的算法。張勤等[24]提出一種基于最小核值相似區(SUSAN)的除草機器人導航方法,根據SUSAN角點提取秧苗特征點,使用改進的順序聚類算法和基于已知點的Hough變換提取秧苗行中心線。Hough 變換受噪聲影響小,魯棒性強,但存在峰值檢測難和計算量大等問題。

針對水稻秧苗行檢測容易受到雜草噪聲和農田環境光照變化等因素影響的問題,為提高秧苗行檢測的魯棒性和精度,本文基于卷積神經網絡(Faster RCNN)獲得秧苗特征點,提出一種基于秧苗特征點鄰域的Hough變換算法,計算特征點鄰域Hough空間的峰值,以解決Hough變換峰值檢測困難的問題,從而準確提取秧苗行中心線。

1 材料與方法

1.1 圖像采集

本研究使用的圖像采集于江蘇省鹽城市的水稻實驗田,選擇機插秧苗作為研究對象,在秧苗的第1個雜草萌發期即機插后8~12 d,此時的雜草主要以禾本科和異型莎草科雜草為主,分別在晴天和陰天情況下,在水稻實驗田采集不同位置(不同密度的雜草分布和秧苗生長狀況)圖像。

將佳能數碼相機安裝在可移動支架上進行靜態圖像采集,相機離地高度約1.0 m,相機中心線相對于垂直方向的傾斜角約為30°,相機隨著支架移動以采集不同位置的水稻秧苗行圖像。獲得的圖像通過 USB線傳輸到計算機,采集的原始水稻秧苗行圖像的分辨率為2 592像素×1 728像素,以jpeg格式存儲在RGB顏色空間,圖1為不同情況下采集的水稻秧苗行圖像。

圖1 具有代表性的水稻秧苗行圖像Fig.1 Representative images of rice seedling rows

1.2 軟硬件環境

采用Windows 10系統,CPU為Intel i7-6900K,8核16線程,主頻3.20 GHz,32 GB DDR4內存,英偉達GTX1080Ti顯卡。采用軟件為CUDA9.0、CUDNN7.1、Python3.6,Tensorflow 1.10 框架搭建深度學習環境,Visual Studio 2015配置OpenCV4.0圖像處理庫。

1.3 水稻秧苗檢測及特征點提取

1.3.1圖像預處理

2018年7月在江蘇省鹽城市的水稻實驗田采集了約1 000幅水稻秧苗圖像,采集的原始水稻秧苗行圖像的分辨率為2 592像素×1 728像素,過高的分辨率導致增加訓練參數和時間耗費,因此先對原始圖像進行縮放,縮放為原分辨率的1/4,則縮放后的分辨率為648像素×432像素。采集圖像的80%作為訓練集,20%作為測試集。然后使用LabelImg工具對樣本集中的水稻秧苗進行逐一標注,生成對應的xml格式的目標框位置文件。

1.3.2基于Faster RCNN的水稻秧苗檢測模型

基于Faster RCNN[25]的水稻秧苗檢測模型框架如圖2所示。①使用13 Conv+13 ReLU+4 Pooling提取圖像特征,生成一組特征圖,其中Conv層的卷積核尺寸為3×3,填充為1,步長為1,Pooling層的卷積核尺寸為2×2, 步長為2,輸出特征圖的尺寸是輸入圖像的1/16,該特征圖被共享用于后續Region proposal networks (RPN)層和全連接層。② RPN用于生成能夠區分前景和背景的精確候選區域,RPN層通過Softmax分類錨點框屬于前景還是背景,再利用Bounding box回歸修正錨點框獲得精確的候選框。③ROI Pooling 層利用RPN生成的候選框和VGG16得到特征圖,從特征圖中得到候選特征圖(尺寸、位置由RPN生成),并通過Pooling層生成固定尺寸的輸出。④Classifier層對ROI Pooling層形成固定尺寸的特征圖進行全連接操作,利用Softmax進行秧苗和背景的分類,同時利用Bounding box回歸操作獲得秧苗的精確位置,完成秧苗目標識別和精確定位。

圖2 基于Faster RCNN的水稻秧苗檢測模型結構Fig.2 Rice seedling detection model structure based on Faster RCNN

秧苗檢測中感興趣區域搜索使用Faster RCNN 中的RPN 模塊,錨點框的中心點坐標就是當前特征圖的像素點映射到輸入圖像上對應區域的中心點,設置不同尺寸和不同長寬比可以在輸入圖像上獲得不同尺寸的先驗錨點框。本研究選擇3種尺寸、3種長寬比,對當前特征圖的每個點從原圖中標記出9個錨點框。其中在生成錨點框時,先定義一個尺寸為16×16的基準錨點框,長寬比的參數設置為[0.5, 1, 2],根據輸入圖像中秧苗尺寸,設定3 種尺寸為 [2, 4, 8];經過尺寸和長寬比不同的組合,形成 [32, 32]、[16, 32]、[32, 16]、[64, 64]、[32, 64]、[64, 32]、[128, 128]、[128, 64]、[64, 128]共9種錨點框。

針對水稻秧苗數據集,需要把原始的多類檢測模型修改為針對水稻秧苗檢測的單類檢測模型。水稻秧苗檢測模型使用VGG16網絡的13個卷積層提取水稻秧苗圖像的特征,并在Classifier層保留VGG16網絡的前兩個全連接層,由于模型只檢測單個類別,需要去掉VGG16網絡的最后一個全連接層,如圖2所示,Classifier層兩個全連接層后的輸出包括cls_score和bbox_predict,其中cls_score層用于分類,輸出p=(p0,p1)表示屬于背景和秧苗的概率;bbox_predict層輸出Bounding box回歸的位置偏差。

1.4 水稻秧苗行中心線識別

利用水稻秧苗檢測模型得到水稻秧苗的特征點即預測框的中心點后,由于插秧機的前進方向不完全筆直,受地形坡度等影響,水稻秧苗行曲率較大。傳統的Hough變換對曲率較大的作物行檢測效果較差,本文提出一種基于特征點鄰域的Hough變換算法,可以用來識別不同曲率的水稻秧苗行,并且對孤立的雜草噪聲不敏感,相對于最小二乘法具有較好的魯棒性。該方法主要包括基于特征點鄰域的Hough圖像計算和基于直方圖投影的峰值參數計算。

1.4.1基于特征點鄰域的Hough圖像計算

Hough變換的主要思想是將直角坐標系下的直線映射為參數空間下的峰值點,假設直線方程為r=xcosθ+ysinθ,其中r表示該直線到原點的距離,θ表示該直線經過原點的垂線與x軸之間的夾角。Hough變換將x、y作為已知量,那么直角坐標系下的直線方程在參數空間表示為點(r,θ)。直角坐標系下的每個點對應參數空間的一條曲線,直角坐標系下的一條直線上有多個點,在參數空間對應多條曲線,這些曲線相交于一點,該點坐標值即為所求參數r和θ。

如圖3所示,水稻秧苗預測框的中心點即為秧苗的特征點,用紅色點表示。水稻秧苗檢測模型得到的特征點不一定在一條直線上,可能分布于直線兩側,本文提出對秧苗特征點的鄰域進行Hough變換,假設特征點的鄰域是[xi-d,xi+d](圖3中用藍線表示,鄰域長度設置為2d),以每個特征點為鄰域中心,把特征點鄰域內的所有點映射到Hough參數空間。

圖3 特征點鄰域示意圖Fig.3 Schematic of neighborhood of feature points

特征點鄰域的Hough空間計算方法如下:

(1)建立一個二維圖像hough_2D,寬度方向表示距離r,高度方向表示角度θ,遍歷所有水稻秧苗特征點的鄰域,對每個鄰域點按照θ從-45°到45°,精度為1°,計算出相應的距離r,并且每當有相同的距離r和角度θ出現時,hough_2D中對應位置(r,θ)的像素進行累加:p(r,θ)←p(r,θ)+Δp。獲得的基于特征點鄰域的Hough空間圖像如圖4所示。

圖4 基于特征點鄰域的Hough空間圖像Fig.4 Hough space image based on feature point neighborhood

(2)然后對圖像hough_2D進行閾值處理去除大部分噪聲,首先計算圖像hough_2D的像素最大值pmax,并以pmax的1/2作為閾值Tp遍歷圖像,根據圖像的像素p(r,θ)和Tp的關系,如果p(r,θ)

圖5 閾值處理后的圖像hough_2D Fig.5 Hough_2D after threshold processing

(3)最后對hough_2D進行形態學處理,去除一些孤立噪聲,先進行腐蝕操作再進行膨脹操作。其中腐蝕操作去除噪聲,消除小物體,膨脹操作平滑物體輪廓,連接溝壑。設置結構元素分別為3×3、5×5的矩形元素,腐蝕膨脹后的效果如圖6所示,5×5的矩形結構元素過大,導致部分前景被消除,本文選擇3×3的矩形結構元素對hough_2D進行形態學處理。

圖6 不同矩形結構元素的形態學處理結果Fig.6 Morphological post-processing results of different rectangular structural elements

1.4.2基于直方圖投影的峰值參數計算

對形態學處理的結果進行直方圖變換,并對直方圖進行垂直投影計算峰值區域的距離索引,然后在距離索引范圍內對每個峰值區域進行聚類操作,具體步驟如下:

圖7 hough_2D的距離直方圖分布Fig.7 Distance histogram distribution of hough_2D

(2)對直方圖進行垂直投影,記錄每個非零區域的距離索引,具體如下:設置非零區域的開始距離索引為bi,結束距離索引為ei,每次進入非零區域的距離為bi的值,每次進入空白區域的距離為ei的值。

(3)將開始距離索引值和結束距離索引值相近的2個區域合并,計算bi+1-ei的差值,如果該差值小于設定閾值Tr,則區域i和區域i+1合并為一個區域,最終得到的bk和ek分別保存了峰值區域的開始距離索引和結束距離索引。

(4)hough_2D在每個開始距離索引bk和對應的結束距離索引ek范圍內進行聚類操作,統計每個峰值區域的像素最大值,以該值對應的像素作為種子點,尋求周圍像素相同的點進行聚類,對聚類后的每個峰值區域求出質心(cxk,cyk),即為所求秧苗行中心線的參數(rk,θk)。

該算法得到的秧苗行中心線識別結果如圖8所示。綜上所述,基于特征點鄰域Hough變換的水稻秧苗行檢測流程如圖 9所示。

圖8 秧苗行中心線識別結果Fig.8 Recognition results of centerlines of seedling rows

圖9 基于特征點鄰域Hough變換的秧苗行檢測流程Fig.9 Detection process of seedling row centerlines based on Hough transform of feature point neighborhood

2 實驗

2.1 秧苗位置檢測

圖10 基于Faster RCNN的水稻秧苗檢測模型的損失值曲線Fig.10 Loss curve of rice seedling detection model based on Faster RCNN

對標注好的水稻秧苗樣本,采用在ImageNet數據集上訓練得到的模型參數VGG16.ckpt,對基于Faster RCNN的水稻秧苗檢測模型進行遷移學習,初始網絡參數設置如下:初始學習率為0.001,權值衰減系數為0.000 5,動量系數為0.9,批尺寸設置為32,最大迭代次數設置為10 000次。訓練過程中, 對算法的各項指標進行動態記錄,隨著迭代次數的增加,損失值的變化趨勢如圖10所示。訓練集最初的損失值在4.5左右,開始時下降速度較快,迭代4 000次后,損失值在1.0到1.5之間振蕩,之后損失值下降速度減慢,迭代6 000次后,損失值下降到1.0以下,迭代8 000次后,損失值在0.5左右振蕩,最小損失值為0.25。

對于不同的置信度閾值,精度和召回率會發生變化,選取多個閾值,可以獲得相應的精度和召回率。繪制精度-召回率曲線如圖11所示。由圖11可以看出,當召回率為0時,精度是1.0,當召回率逐漸增加到0.4時,精度變化幅度很小,從1.0下降到0.85左右,當召回率增加到0.5時,精度降低到0.8以下,根據精度-召回率曲線和坐標軸之間的面積,可以計算出秧苗的平均精度(AP)為0.484 2。AP值較低的原因為:以傾斜角度拍攝得到的原始圖像中水稻秧苗之間有重疊,人工很難標注出完整的秧苗,標注框之間會有重疊(密集標注導致標注框數量較多),2棵水稻秧苗的分界對于模型來說沒有很明確;秧苗的外觀非常相似,預測出的秧苗框和標注框的重疊性多種多樣,導致交并比(IOU)不高,AP值較低。雖然AP值較低,但是不影響后續秧苗中心線的識別。因為預測秧苗框的中心點反映了秧苗行的成行趨勢,如果有雜草被誤識別為秧苗,提出的基于特征點鄰域的Hough變換算法對孤立的中心點(誤識別的雜草)不敏感,具有較好的魯棒性。

圖11 基于Faster RCNN的水稻秧苗檢測模型的精度-召回率曲線Fig.11 P-R curve of rice seedling detection model based on Faster RCNN network

采用測試集評估基于Faster RCNN的水稻秧苗檢測模型的預測值和標簽值的統計像素偏差,結果如表1所示。

表1 基于Faster RCNN的水稻秧苗檢測模型統計偏差Tab.1 Statistical deviation of rice seedling detection model based on Faster RCNN

圖12 基于Faster RCNN的水稻秧苗檢測模型的測試效果Fig.12 Test effect of rice seedling detection model based on Faster RCNN

使用訓練好的基于Faster RCNN的水稻秧苗檢測模型對水田秧苗圖像進行測試,測試效果如圖12所示。

2.2 秧苗行中心線提取

為了判斷秧苗行中心線的識別準確性,需要人工標注秧苗行中心線作為衡量基準。人工標注的秧苗行中心線與算法提取的秧苗行中心線之間的夾角為誤差角,該誤差角用來衡量算法提取秧苗行中心線的識別精度。本文算法參數設置如下:d=10 cm,θ∈[-45°,45°],Δp=20。

對比本文算法和標準Hough變換對測試集中的200幅圖像的識別準確率和算法平均運行時間,識別準確率的判斷標準是單個秧苗行的識別精度超過3°,即認為秧苗行識別失敗。測試集包括晴天采集的秧苗圖像 60 幅,陰天采集的秧苗圖像50幅,高雜草密度的秧苗圖像40幅,低雜草密度的秧苗圖像50幅,本文算法和標準Hough變換的性能比較結果如表2所示。

表2 不同算法的性能比較Tab.2 Performance comparison of different algorithms

本文算法是在秧苗特征點鄰域的基礎上通過直方圖投影、種子點聚類操作對秧苗行在參數空間的峰值區域進行定位,通過表2可知,該算法對測試集的200 幅秧苗行圖像的平均識別準確率達到92%,比標準Hough變換算法的平均識別準確率提升19個百分點,但算法運行時間達0.458 s,比標準Hough變換的運行時間高26 ms。后續需要考慮對算法進行優化改進,以提高算法的檢測速度。本文算法在農機行駛速度不超過1.5 m/s時,可以滿足每秒2幀的實時性要求。

對于測試集中不同雜草密度分布下的水稻秧苗行圖像,對比本文算法和標準Hough變換對4個不同秧苗行的中心線識別精度,對比結果如表3所示。

由表3可知,本文算法對低雜草密度的秧苗行中心線的平均識別精度為0.460 5°,對高雜草密度的秧苗行中心線的平均識別精度為0.495 3°。標準Hough變換對低雜草密度的秧苗行中心線的平均識別精度為1.389 9°,對高雜草密度的秧苗行中心線的平均識別精度為1.461 3°。

圖13從左至右分別是低雜草密度秧苗圖像、高雜草密度秧苗圖像、晴天秧苗圖像和陰天秧苗圖像。

表3 不同雜草密度分布下的秧苗行中心線識別精度對比Tab.3 Comparison of centerline recognition accuracy of seedling rows with different weed densities (°)

對于不同雜草密度分布的秧苗行圖像,圖13a為采用本文算法的秧苗行中心線識別效果。由圖13a可以看出,本算法對秧苗行中心線的識別不受雜草噪聲和光照變化的影響,具有較好的魯棒性,識別出的4個秧苗行中心線和人工標注的中心線相比,都具有較小的角度偏差,并且對藍色區域內的彎曲秧苗行也可以準確識別,但當秧苗行的曲率較大時,識別精度會降低。

圖13b為采用標準Hough變換的秧苗行中心線識別效果。由圖13b可以看出,標準Hough變換對于雜草密度分布不均和光照變化的情況,在一定的角度偏差范圍內可以識別出秧苗行,其中部分秧苗行相對于人工標注的中心線產生較大偏差;尤其當秧苗行曲率較大的時候,此時秧苗特征點較為分散,標準Hough變換對秧苗行的檢測結果具有較大的誤差(藍色區域所示)。

圖13 不同雜草密度和光照條件下的秧苗行中心線識別效果對比Fig.13 Comparison of recognition effects of centerlines of seedling rows under different weed densities and light conditions

3 結論

(1)在雜草萌發期,建立不同光照條件、不同雜草密度和不同秧苗生長狀況的水稻秧苗行圖像數據庫,采用基于Faster RCNN的目標檢測模型對秧苗位置進行檢測,以獲得秧苗特征點。根據基于特征點鄰域Hough變換識別秧苗行中心線,可以有效解決秧苗行周圍背景噪聲和雜草噪聲的影響,對光照不均、秧苗行曲率較大的問題,具有較好的魯棒性。

(2)通過對測試集200 幅圖像進行測試可知,本文算法對秧苗行中心線的平均識別準確率為92%,高于標準Hough變換。

(3)采用本文算法和標準Hough變換對測試集中不同雜草密度分布下的水稻秧苗行圖像進行了秧苗行中心線識別精度對比,結果表明,本文算法對不同雜草密度分布下的秧苗行平均識別精度小于0.5°,能夠準確提取秧苗行中心線。

猜你喜歡
中心線鄰域秧苗
基于混合變鄰域的自動化滴灌輪灌分組算法
含例鄰域邏輯的薩奎斯特對應理論
融合t-分布隨機鄰域嵌入與自動譜聚類的腦功能精細分區方法
淺析某船重要設備底座與基準平臺偏差的糾正措施
樹葉競技場
農民
停機后汽缸溫差大原因分析及處理
由X線中心線的特征來定標X線機中心線指示的方法
鄰域平均法對矢量圖平滑處理
插秧
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合