黃林林,李世雄,譚彧,王碩
(中國農業大學工學院,北京市,100000)
針對當前農田環境作業強度高、勞動力短缺等問題,研究一種基于神經網絡的機器視覺的農田環境的路徑導航,不僅能提高農業機械化水平,實現精準化農業,有利于提高農業資源利用率,也能促進農業的可持續性發展,符合現代農業的發展要求和前景。農業機械的自動化、智能化是實現現代化、精準化農業的發展方向,其中農業機械化自主導航技術一直是現代農業發展的熱點和關鍵技術[1]。與高成本的GPS和激光雷達設備相比,開發成本低、適應性好的機器視覺導航系統對于小區域種植十分重要。
隨著人工智能的興起,基于深度學習的語義分割越來越多地應用于各個領域之中[8-14],在農作物分割方面也取得了較大進展。Ilyas等[15]提出了一種基于級聯編解碼網絡(CED-Net)的語義分割方法來區分雜草和農作物,克服了現有雜草和作物分割架構深入、參數多和訓練時間長的缺陷。Zhang等[16]利用預先訓練和改進的ResNet-18實現CNN對樹冠進行分割,提高了蘋果機械采收的效率。鞏祎明[17]基本實現了農田場景下的圖像語義分割,并且驗證了其有效性和適應性,為農業機械感知周圍環境的實現提供了一定的理論基礎。田間作物行分割實際上是一個像素級別的二分類問題,作物種植區域(包括部分被覆蓋的土壤)均需與背景區域分開??紤]到農用機械作業過程中需要一定的速度,對于視覺識別系統而言,分割圖像的神經網絡應盡量小而淺,以在保證分割精度的前提下有較高的分割速度。本文針對現有的農田作業平臺的智能化較低的問題研究一種基于機器視覺的果園輪式自主移動平臺,對作業平臺控制系統設計、導航系統設計、基于機器視覺導航方法研究和輪式移動平臺導航試驗驗證進行闡述。
全卷積神經網絡(Fully Convolution Network)最巧妙的地方在于對全連接輸出層的替換,能夠實現任意尺寸圖片的端對端(end to end)、點到點(pixel to pixel)空間連續區域下的預測任務,通過卷積提取位置信息及語義信息,通過反卷積上采樣至原圖大小,再加上深層特征與淺層特征的融合,達到了語義分割的目的。與通過目標檢測網絡完成檢測目標的搜索和定位相比,FCN顯得十分簡潔和高效,且能容易地改進分類模型用于分割模型的預測,甚至能通過微調直接使用已訓練好的權重,只在輸出層作處理來實現語義分割任務。
本文提出的農田路徑導航識別方法由兩部分組成:作物語義分割和導航線生成算法。作物語義分割基于改進的FCNVGG16卷積神經網絡,進行圖像中作物信息的像素級識別,得到對應的二值化圖像;導航線生成算法是提取二值化圖像作物特征點,再根據特征點擬合作物導航線。
圖像采集地點位于北京市通州區,拍攝采用??低曄鄼C,在不同的天氣狀態下采集圖像。拍攝圖片角度任意,拍攝的作物主要以生菜和青菜為主,共366張。初始圖片初始尺寸為1 280像素×720像素,為方便訓練將其尺寸變換為384像素×384像素,以JPG格式保存。為滿足訓練需求,其中351張用于訓練集使用,15張用于測試集使用。實際訓練時,將數據進行擴充,訓練測試集也進行擴充,施加仿射變換。無論測試樣例,還是訓練樣例,輸入模型訓練或驗證之前均進行隨機變換數據擴充,避免訓練過擬合以及保證測試準確、可靠。圖像的標注使用Labelme軟件完成[18],通過人工標注作物區域(含部分土壤)為正例,非作物區域為反例(背景)如圖1所示。

圖1 標記后的作物圖像Fig. 1 Marked crop image
全卷積神經網絡(FCN)所有的網絡層均為卷積層,每一個卷積層均是一個三維向量h×w×d,h,w代表每層特征圖的尺寸,d代表特征圖的通道數。卷積層上的坐標位置(i,j)的點表示為xij,經過卷積之后得到下一層對應的點坐標為yij,兩者之間的關系如式(1)所示。
yij=fks({xsi+δi,sj+δj}0≤δi,δj≤k)
(1)
式中:k——卷積核,其尺寸對應k×k;
f——對應的卷積操作;
xsi,sj——起始坐標;
s——步長(stride);
δi,δj——相對應當前起始點的偏移。
當前卷積操作的范圍被限制在核尺寸一致的區域內,表示對所有特征圖進行同樣的卷積操作后相加進行信息融合的結果。如前一層的特征圖大小為h×w,卷積操作的padding為p,得到下一層特征圖尺寸為h′×w′,則
(2)
(3)
本研究以FCNVGG16框架為基礎,將最后兩層全連接層去除,并且在末端加上上采樣反卷積輸出層以實現預測輸出,因此將基于VGG16改進版本的FCN稱為FCNVGG14,如圖2(a)所示將FCNVGG16最后兩層卷積改為上采樣;同理簡化卷積層的版本稱為FCNVGG6,如圖2(b)所示每層卷積層只卷積一次。FCNVGG14比FCNVGG16降低了前向傳播計算量,同時提高了2%的IOU指標。效果最好的為FCNVGG14-8s及簡化版本FCNVGG6-32s,前者其IOU指標達到0.85,精度達到了0.91,效果比主流的語義分割模型結果更優,其分割的效果也實現了對缺失植物區域作物補償處理。

(a) FCNVGG14網絡結構圖

(b) FCNVGG6網絡結構圖圖2 基于FCNVGG16改進型網絡結構圖Fig. 2 Improved network structure diagram based on FCNVGG16
訓練平臺為UBUNTU Linux64位系統,運行內存為6 G,CPU處理器為Intel i5,第9代處理器,GPU為七彩虹GTX1080顯卡,顯存為8 G。編程語言采用Python,深度學習框架為tensorflow1.41、keras2.1.0,使用的庫主要包括Opencv4.0、Numpy1.16.0。
定義合適的損失函數對于訓練網絡正常工作很重要,總的損失函數由IOU和JaccardLoss兩部分構成。IOU也稱Jaccard相似系數,用來描述兩個有限集合之間的相似度,公式如式(4)所示。
(4)
J(A,B)為集合A和B的Jaccard相似系數,那么非重疊區域則可以看作預測結果錯誤區域,定義為JaccardLoss,其計算公式如式(5)所示。
Lj(A,B)=1-J(A,B)
(5)
另一損失由交叉熵(cross entropy)得到。交叉熵的本質為計算預測像素點值與標記樣例像素點分類結果的差異化程度,設H(p,q)表示量變的交叉熵,其計算公式如式(6)所示。
(6)


(7)
訓練時,一次訓練的樣例數為N,則一個批次(batchsize=N)的總損失函數Loss(N)計算如式(8)所示。
(8)

(9)


(10)
本文輸出層激活函數為sigmoid函數,其函數表達式如式(11)所示。
(11)
其余均為激活函數ReLU,其函數表達式如式(12)所示。
f(x)=max(0,x)
(12)
在模型參數設定方面,池化5后卷積核設定3×3的卷積核,其余為默認的VGG16參數設置。批量設置為8,學習率為10-4,Dropout中訓練keep_prob向前傳播概率設置為0.5。訓練次數40 000次,每隔1 000保存一次模型參數,防止訓練忽然崩潰。每40個batch驗證一次測試集精度,包括IOU和精度ACC。實際訓練發現含參數較多的復雜模型到10 000次基本收斂,參數少的模型40 000已收斂,為統一訓練步數,訓練輪次均設置為40 000。完成一次模型需要大約5 h,后續圖片分割效果將與經典的圖片分割模型對比,以及不損失很大精度的條件下,達到簡化模型參數,便于實際運用。改進FCNVGG14和FCNVGG6其驗證集IOU指標和精度訓練變化的損失曲線如圖3所示。

(a) FCNVGG14驗證集性能曲線圖

(b) FCNVGG6驗證集性能曲線圖圖3 基于FCNVGG16改進的網絡結構性能曲線圖Fig. 3 Performance curve of improved network structure based on FCNVGG16
由圖3(a)可知當訓練步數達到2 000次的時候,其模型參數基本收斂;由圖3(b)可知模型在8 000次的時候已經基本收斂,雖然相較于FCNVGG14簡化了參數,但其精度下降了0.2,IOU指標下降了0.1。
分別用三種分割算法對測試集的三幅圖像進行分割識別,識別結果如圖4所示??梢钥闯鲇蒄CNVGG16網絡改進得到的FCNVGG14網絡較完美地分割了作物行區域,并且能較好地實現小區域缺失區域補全處理,保證檢測的連續性,FCNVGG6模型比FCNVGG14減少了卷積層及輸出層參數。
訓練次數需要保證收斂,在實際8 000次時模型已經收斂,雖然FCNVGG6比FCNVGG14簡化了較多參數,但其模型評價有所下降,并且從表1中可以看出輸入為單通道時,根據模型評價指標網絡模型指標最佳,故選擇FCNVGG14為試驗分割模型(IOU在語義分割中作為標準度量,ACC是所有預測中預測正確的比例)。

圖4 作物行數據分割結果Fig. 4 Segmentation results of crop row data

表1 分割網絡評價指標Tab. 1 Segmentation network evaluation index
本研究使用課題組自主開發的四輪獨立驅動和轉向機器人平臺采集作物圖像,如圖5所示。該平臺相比傳統差速轉彎方式轉向更加輕便靈活,在復雜地形上可以原地任意轉彎。平臺導航系統包括圖像采集模塊、筆記本電腦、電氣柜、通信模塊等。圖像采集模塊位于平臺前端下方,捕捉田間前視圖像信息;筆記本電腦運行視覺導航軟件,對采集的圖像進行處理;電氣柜包括了單片機處理器、電機驅動器和供電模塊;通信模塊是將筆記本電腦的處理數據傳遞給單片機處理器。本研究通過采集圖像的同時控制平臺的自主導航,保證圖像處理、傳感檢測以及轉向控制的實時性和準確性,具有導航數據實時存儲和讀寫功能。該試驗平臺可用于農田環境中的運輸、噴霧和除草等作業。

圖5 農用試驗平臺Fig. 5 Agricultural test platform
在實際生產作業中,作物種植一般為直線。本研究選用??低暤腄S—2CS55C7BNA型130萬像素的寬動態USB微型攝像機,實時幀率設置為30 fps用于圖像采集;選用開源計算機視覺庫OpenCV 4.0進行圖像處理。路徑導航檢測算法針對試驗平臺沿壟作業特點,在攝像頭連續采集模式下對田間圖像進行尺寸重構,獲取豐富細節信息的同時通過壓縮圖像尺寸以提高算法的實時性。為了提高圖像分割的效果,先將圖像灰度化處理,由式(13)得到灰度圖像。
Gray(i,j)=0.3×r(i,j)+0.59×g(i,j)+0.11×b(i,j)
(13)
式中:Gray(i,j)——灰度值;
r、g、b——作物圖像的紅、綠、藍分量;
(i,j)——像素點位置。
采用非監督聚類分類的方法,實現多作物行下的中心點分類,并實現Hough變換的作物行中心線擬合。
灰度處理后的圖像經過語義分割得到二值化的圖像,為了減少后期圖像處理的計算量利用類K-均值聚類方法,較合理的分類不同列的點。該聚類算法流程如下:記第i行,第j列的點坐標為Pij,類別(分屬不同列)為C[i][j],類別為k的點的橫坐標為P[k],總類別數為K,K隨掃描進程可能增加,算法流程如下。
1) 行掃描檢測到不小于3個點的一行,依次按索引順序初始化類別為1,2,3,4…。
2) 掃描至下一行(第i行第j個點),根據之前檢測出K類點的橫坐標,找出離自身最近點的類別k作為自身類別,令C[i][j]=k,更新P[k]=Pij,如距離已知類別點橫坐標過大,則增加新類表示,C[i][j]=K+1,更新P[K+1]=Pij,具體規則設置如下。
且P[k]=Pij,D(Pij-Pk)為求Pij和Pk橫坐標絕對值,maxDis通過之前已知P[k]來計算得到。
(14)
式中:ε——可調參數,建議值為0.5到0.8之間,取0.7效果最好;
max(p)——已知最大橫坐標值;
min(p)——已知最小橫坐標值。
3) 重復步驟2,直至掃描至最后一行,得到所有中心點的類別為C[i][j]。
對于檢測得到的中心點采用的是改進后的Hough變換(PKPHT),不僅可以有效減少異常噪聲點,而且在能保證點分類的前提下精確擬合出導航線,減小計算量的前提下保證了直線擬合精度,具有良好的適用性。
為達到視覺導航的偏差修正效果,采用模糊控制(Fuzzy Control)算法,視覺導航控制策略流程圖如圖6所示,其中ΔP為相對偏差角度,e(t)為模糊控制器的輸入,θ(t)為目標轉角,θe為目標轉角偏差。橫向偏差由生成的作物行與圖像的中間為位置的差值;航偏角根據生成作物行直線與基準直線的相對角度偏差,模糊控制輸入偏差大小由相對角度偏差三次求和取平均得到??刂撇呗詾橄日{整橫向偏差再調整航偏角,模糊控制器輸出目標轉角,再由角度傳感器檢測到的實時轉角計算需要轉過的角度θ,轉向執行機構根據輸出對應的控制電壓,最終實現試驗平臺的自主導航,其中不同范圍的橫向偏差有不同的控制調節比例系數。

圖6 視覺導航控制策略流程圖Fig. 6 Flow chart of visual navigation control strategy
自動導航過程中實際獲取田間獲取實驗平臺的相對位置的單幀檢測時間100 ms,為了滿足實際的調試情況和減少誤差的需要,以每3幀處理的結果進行平均值為相對角度偏差。角度偏差的糾正采用PI調節,根據相對位置偏差計算目標轉角,并對應輸出模擬電壓進行控制,目標轉角的控制精度為1°,導航系統工作流程圖如圖7所示。

圖7 視覺導航系統工作流程圖Fig. 7 Flow chart of visual navigation system
為了檢測本研究設計的基于深度學習的導航算法的可行性和穩定性,于2021年4月26日—5月2日在北京市房山區澤普安全農場展開田間試驗,試驗期間天氣晴朗,微風。導航線檢測生成如圖8所示。

圖8 視覺系統直線檢測質量Fig. 8 Visual system linear detection quality
分別以0.3 m/s、0.5 m/s的速度進行導航試驗,行駛路徑為20 m,每個速度試驗重復2次,以橫向偏差作為評價標準。試驗結果如表2所示,當速度不大于0.5 m/s時,能完成導航試驗。隨著行駛速度的增加橫向偏差也隨之增加,當行駛速度為0.7 m/s時,試驗平臺未能及時進行姿態調整,未能完成路徑導航;試驗平臺在不發生打滑的前提條件下,能夠實現對葉菜的識別和導航,并保持較小的路徑偏差。平臺轉向角隨航偏角變化如圖9所示。

表2 不同速度的橫向偏差Tab. 2 Lateral deviations at different speeds

(a) 航偏角變化

(b) 轉向輪轉角變化圖9 視覺導航系統田間作業實時數據Fig. 9 Real-time data of field operation of visual navigation system
本文研究并實現了一種基于傳統圖像技術、深度學習技術的智能化、可靠性高的田間作物行導航線檢測算法,并對視覺導航系統的作業質量進行了驗證和評價,為農用機械自動導航作業提供了技術支撐和理論基礎。
1) 構建了四輪獨立轉向的移動試驗平臺視覺導航系統,設計了基于改進型全卷積神經網絡算法,算法的準確率不低于92%,單幀檢測時間100 ms以內,由橫向偏差和航偏角獲得平臺相對位置信息,并以導航線檢測準確率為指標,經試驗算法具有良好的魯棒性。
2) 經過試驗測得導航系統在合適的速度下路徑始終存在不大于10 cm的橫向偏差。該方法先對圖像進行預處理,然后使用改進FCN網絡結構對圖像分割,再采用非監督聚類分類的方法,實現多作物行下的中心點分類,并實現Hough變換的作物行中心線的直線擬合。
3) 基于實際作業條件處理實時傳輸數據,建立模糊控制策略方法,該方法有效及時地調整平臺姿態。并設計了視覺導航系統工作流程及應用軟件程序。
對該導航系統分析表明:結合語義分割模型FCN,實現對作物行分割的自身數據集上的訓練及改進,對比主流的語義分割框架IOU指標顯著提升;本文改進的FCN模型對二值化的圖像,檢測得到的中心線連續性好,較完美地消除噪聲,分類后擬合得到的直線十分吻合實際的圖像中的直線效果,具有良好的環境適應性,將深度學習和傳統圖像算法結合,運用于農業機械視覺導航領域,為未來的農業自動化、智能化提供了一定的借鑒意義。但對于過于復雜環境變換對導航控制系統穩定性、魯棒性有了更高的要求。如果結合IMU傳感器與相機,借助擴展卡爾曼濾波實現傳感器數據融合,提高導航算法的實用性。