黃林林,李世雄,譚彧,王碩
(中國農(nóng)業(yè)大學工學院,北京市,100000)
針對當前農(nóng)田環(huán)境作業(yè)強度高、勞動力短缺等問題,研究一種基于神經(jīng)網(wǎng)絡的機器視覺的農(nóng)田環(huán)境的路徑導航,不僅能提高農(nóng)業(yè)機械化水平,實現(xiàn)精準化農(nóng)業(yè),有利于提高農(nóng)業(yè)資源利用率,也能促進農(nóng)業(yè)的可持續(xù)性發(fā)展,符合現(xiàn)代農(nóng)業(yè)的發(fā)展要求和前景。農(nóng)業(yè)機械的自動化、智能化是實現(xiàn)現(xiàn)代化、精準化農(nóng)業(yè)的發(fā)展方向,其中農(nóng)業(yè)機械化自主導航技術(shù)一直是現(xiàn)代農(nóng)業(yè)發(fā)展的熱點和關鍵技術(shù)[1]。與高成本的GPS和激光雷達設備相比,開發(fā)成本低、適應性好的機器視覺導航系統(tǒng)對于小區(qū)域種植十分重要。
隨著人工智能的興起,基于深度學習的語義分割越來越多地應用于各個領域之中[8-14],在農(nóng)作物分割方面也取得了較大進展。Ilyas等[15]提出了一種基于級聯(lián)編解碼網(wǎng)絡(CED-Net)的語義分割方法來區(qū)分雜草和農(nóng)作物,克服了現(xiàn)有雜草和作物分割架構(gòu)深入、參數(shù)多和訓練時間長的缺陷。Zhang等[16]利用預先訓練和改進的ResNet-18實現(xiàn)CNN對樹冠進行分割,提高了蘋果機械采收的效率。鞏祎明[17]基本實現(xiàn)了農(nóng)田場景下的圖像語義分割,并且驗證了其有效性和適應性,為農(nóng)業(yè)機械感知周圍環(huán)境的實現(xiàn)提供了一定的理論基礎。田間作物行分割實際上是一個像素級別的二分類問題,作物種植區(qū)域(包括部分被覆蓋的土壤)均需與背景區(qū)域分開??紤]到農(nóng)用機械作業(yè)過程中需要一定的速度,對于視覺識別系統(tǒng)而言,分割圖像的神經(jīng)網(wǎng)絡應盡量小而淺,以在保證分割精度的前提下有較高的分割速度。本文針對現(xiàn)有的農(nóng)田作業(yè)平臺的智能化較低的問題研究一種基于機器視覺的果園輪式自主移動平臺,對作業(yè)平臺控制系統(tǒng)設計、導航系統(tǒng)設計、基于機器視覺導航方法研究和輪式移動平臺導航試驗驗證進行闡述。
全卷積神經(jīng)網(wǎng)絡(Fully Convolution Network)最巧妙的地方在于對全連接輸出層的替換,能夠?qū)崿F(xiàn)任意尺寸圖片的端對端(end to end)、點到點(pixel to pixel)空間連續(xù)區(qū)域下的預測任務,通過卷積提取位置信息及語義信息,通過反卷積上采樣至原圖大小,再加上深層特征與淺層特征的融合,達到了語義分割的目的。與通過目標檢測網(wǎng)絡完成檢測目標的搜索和定位相比,F(xiàn)CN顯得十分簡潔和高效,且能容易地改進分類模型用于分割模型的預測,甚至能通過微調(diào)直接使用已訓練好的權(quán)重,只在輸出層作處理來實現(xiàn)語義分割任務。
本文提出的農(nóng)田路徑導航識別方法由兩部分組成:作物語義分割和導航線生成算法。作物語義分割基于改進的FCNVGG16卷積神經(jīng)網(wǎng)絡,進行圖像中作物信息的像素級識別,得到對應的二值化圖像;導航線生成算法是提取二值化圖像作物特征點,再根據(jù)特征點擬合作物導航線。
圖像采集地點位于北京市通州區(qū),拍攝采用海康威視相機,在不同的天氣狀態(tài)下采集圖像。拍攝圖片角度任意,拍攝的作物主要以生菜和青菜為主,共366張。初始圖片初始尺寸為1 280像素×720像素,為方便訓練將其尺寸變換為384像素×384像素,以JPG格式保存。為滿足訓練需求,其中351張用于訓練集使用,15張用于測試集使用。實際訓練時,將數(shù)據(jù)進行擴充,訓練測試集也進行擴充,施加仿射變換。無論測試樣例,還是訓練樣例,輸入模型訓練或驗證之前均進行隨機變換數(shù)據(jù)擴充,避免訓練過擬合以及保證測試準確、可靠。圖像的標注使用Labelme軟件完成[18],通過人工標注作物區(qū)域(含部分土壤)為正例,非作物區(qū)域為反例(背景)如圖1所示。
圖1 標記后的作物圖像Fig. 1 Marked crop image
全卷積神經(jīng)網(wǎng)絡(FCN)所有的網(wǎng)絡層均為卷積層,每一個卷積層均是一個三維向量h×w×d,h,w代表每層特征圖的尺寸,d代表特征圖的通道數(shù)。卷積層上的坐標位置(i,j)的點表示為xij,經(jīng)過卷積之后得到下一層對應的點坐標為yij,兩者之間的關系如式(1)所示。
yij=fks({xsi+δi,sj+δj}0≤δi,δj≤k)
(1)
式中:k——卷積核,其尺寸對應k×k;
f——對應的卷積操作;
xsi,sj——起始坐標;
s——步長(stride);
δi,δj——相對應當前起始點的偏移。
當前卷積操作的范圍被限制在核尺寸一致的區(qū)域內(nèi),表示對所有特征圖進行同樣的卷積操作后相加進行信息融合的結(jié)果。如前一層的特征圖大小為h×w,卷積操作的padding為p,得到下一層特征圖尺寸為h′×w′,則
(2)
(3)
本研究以FCNVGG16框架為基礎,將最后兩層全連接層去除,并且在末端加上上采樣反卷積輸出層以實現(xiàn)預測輸出,因此將基于VGG16改進版本的FCN稱為FCNVGG14,如圖2(a)所示將FCNVGG16最后兩層卷積改為上采樣;同理簡化卷積層的版本稱為FCNVGG6,如圖2(b)所示每層卷積層只卷積一次。FCNVGG14比FCNVGG16降低了前向傳播計算量,同時提高了2%的IOU指標。效果最好的為FCNVGG14-8s及簡化版本FCNVGG6-32s,前者其IOU指標達到0.85,精度達到了0.91,效果比主流的語義分割模型結(jié)果更優(yōu),其分割的效果也實現(xiàn)了對缺失植物區(qū)域作物補償處理。
(a) FCNVGG14網(wǎng)絡結(jié)構(gòu)圖
(b) FCNVGG6網(wǎng)絡結(jié)構(gòu)圖圖2 基于FCNVGG16改進型網(wǎng)絡結(jié)構(gòu)圖Fig. 2 Improved network structure diagram based on FCNVGG16
訓練平臺為UBUNTU Linux64位系統(tǒng),運行內(nèi)存為6 G,CPU處理器為Intel i5,第9代處理器,GPU為七彩虹GTX1080顯卡,顯存為8 G。編程語言采用Python,深度學習框架為tensorflow1.41、keras2.1.0,使用的庫主要包括Opencv4.0、Numpy1.16.0。
定義合適的損失函數(shù)對于訓練網(wǎng)絡正常工作很重要,總的損失函數(shù)由IOU和JaccardLoss兩部分構(gòu)成。IOU也稱Jaccard相似系數(shù),用來描述兩個有限集合之間的相似度,公式如式(4)所示。
(4)
J(A,B)為集合A和B的Jaccard相似系數(shù),那么非重疊區(qū)域則可以看作預測結(jié)果錯誤區(qū)域,定義為JaccardLoss,其計算公式如式(5)所示。
Lj(A,B)=1-J(A,B)
(5)
另一損失由交叉熵(cross entropy)得到。交叉熵的本質(zhì)為計算預測像素點值與標記樣例像素點分類結(jié)果的差異化程度,設H(p,q)表示量變的交叉熵,其計算公式如式(6)所示。
(6)
(7)
訓練時,一次訓練的樣例數(shù)為N,則一個批次(batchsize=N)的總損失函數(shù)Loss(N)計算如式(8)所示。
(8)
(9)
(10)
本文輸出層激活函數(shù)為sigmoid函數(shù),其函數(shù)表達式如式(11)所示。
(11)
其余均為激活函數(shù)ReLU,其函數(shù)表達式如式(12)所示。
f(x)=max(0,x)
(12)
在模型參數(shù)設定方面,池化5后卷積核設定3×3的卷積核,其余為默認的VGG16參數(shù)設置。批量設置為8,學習率為10-4,Dropout中訓練keep_prob向前傳播概率設置為0.5。訓練次數(shù)40 000次,每隔1 000保存一次模型參數(shù),防止訓練忽然崩潰。每40個batch驗證一次測試集精度,包括IOU和精度ACC。實際訓練發(fā)現(xiàn)含參數(shù)較多的復雜模型到10 000次基本收斂,參數(shù)少的模型40 000已收斂,為統(tǒng)一訓練步數(shù),訓練輪次均設置為40 000。完成一次模型需要大約5 h,后續(xù)圖片分割效果將與經(jīng)典的圖片分割模型對比,以及不損失很大精度的條件下,達到簡化模型參數(shù),便于實際運用。改進FCNVGG14和FCNVGG6其驗證集IOU指標和精度訓練變化的損失曲線如圖3所示。
(a) FCNVGG14驗證集性能曲線圖
(b) FCNVGG6驗證集性能曲線圖圖3 基于FCNVGG16改進的網(wǎng)絡結(jié)構(gòu)性能曲線圖Fig. 3 Performance curve of improved network structure based on FCNVGG16
由圖3(a)可知當訓練步數(shù)達到2 000次的時候,其模型參數(shù)基本收斂;由圖3(b)可知模型在8 000次的時候已經(jīng)基本收斂,雖然相較于FCNVGG14簡化了參數(shù),但其精度下降了0.2,IOU指標下降了0.1。
分別用三種分割算法對測試集的三幅圖像進行分割識別,識別結(jié)果如圖4所示。可以看出由FCNVGG16網(wǎng)絡改進得到的FCNVGG14網(wǎng)絡較完美地分割了作物行區(qū)域,并且能較好地實現(xiàn)小區(qū)域缺失區(qū)域補全處理,保證檢測的連續(xù)性,F(xiàn)CNVGG6模型比FCNVGG14減少了卷積層及輸出層參數(shù)。
訓練次數(shù)需要保證收斂,在實際8 000次時模型已經(jīng)收斂,雖然FCNVGG6比FCNVGG14簡化了較多參數(shù),但其模型評價有所下降,并且從表1中可以看出輸入為單通道時,根據(jù)模型評價指標網(wǎng)絡模型指標最佳,故選擇FCNVGG14為試驗分割模型(IOU在語義分割中作為標準度量,ACC是所有預測中預測正確的比例)。
圖4 作物行數(shù)據(jù)分割結(jié)果Fig. 4 Segmentation results of crop row data
表1 分割網(wǎng)絡評價指標Tab. 1 Segmentation network evaluation index
本研究使用課題組自主開發(fā)的四輪獨立驅(qū)動和轉(zhuǎn)向機器人平臺采集作物圖像,如圖5所示。該平臺相比傳統(tǒng)差速轉(zhuǎn)彎方式轉(zhuǎn)向更加輕便靈活,在復雜地形上可以原地任意轉(zhuǎn)彎。平臺導航系統(tǒng)包括圖像采集模塊、筆記本電腦、電氣柜、通信模塊等。圖像采集模塊位于平臺前端下方,捕捉田間前視圖像信息;筆記本電腦運行視覺導航軟件,對采集的圖像進行處理;電氣柜包括了單片機處理器、電機驅(qū)動器和供電模塊;通信模塊是將筆記本電腦的處理數(shù)據(jù)傳遞給單片機處理器。本研究通過采集圖像的同時控制平臺的自主導航,保證圖像處理、傳感檢測以及轉(zhuǎn)向控制的實時性和準確性,具有導航數(shù)據(jù)實時存儲和讀寫功能。該試驗平臺可用于農(nóng)田環(huán)境中的運輸、噴霧和除草等作業(yè)。
圖5 農(nóng)用試驗平臺Fig. 5 Agricultural test platform
在實際生產(chǎn)作業(yè)中,作物種植一般為直線。本研究選用??低暤腄S—2CS55C7BNA型130萬像素的寬動態(tài)USB微型攝像機,實時幀率設置為30 fps用于圖像采集;選用開源計算機視覺庫OpenCV 4.0進行圖像處理。路徑導航檢測算法針對試驗平臺沿壟作業(yè)特點,在攝像頭連續(xù)采集模式下對田間圖像進行尺寸重構(gòu),獲取豐富細節(jié)信息的同時通過壓縮圖像尺寸以提高算法的實時性。為了提高圖像分割的效果,先將圖像灰度化處理,由式(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)——像素點位置。
采用非監(jiān)督聚類分類的方法,實現(xiàn)多作物行下的中心點分類,并實現(xiàn)Hough變換的作物行中心線擬合。
灰度處理后的圖像經(jīng)過語義分割得到二值化的圖像,為了減少后期圖像處理的計算量利用類K-均值聚類方法,較合理的分類不同列的點。該聚類算法流程如下:記第i行,第j列的點坐標為Pij,類別(分屬不同列)為C[i][j],類別為k的點的橫坐標為P[k],總類別數(shù)為K,K隨掃描進程可能增加,算法流程如下。
1) 行掃描檢測到不小于3個點的一行,依次按索引順序初始化類別為1,2,3,4…。
2) 掃描至下一行(第i行第j個點),根據(jù)之前檢測出K類點的橫坐標,找出離自身最近點的類別k作為自身類別,令C[i][j]=k,更新P[k]=Pij,如距離已知類別點橫坐標過大,則增加新類表示,C[i][j]=K+1,更新P[K+1]=Pij,具體規(guī)則設置如下。
且P[k]=Pij,D(Pij-Pk)為求Pij和Pk橫坐標絕對值,maxDis通過之前已知P[k]來計算得到。
(14)
式中:ε——可調(diào)參數(shù),建議值為0.5到0.8之間,取0.7效果最好;
max(p)——已知最大橫坐標值;
min(p)——已知最小橫坐標值。
3) 重復步驟2,直至掃描至最后一行,得到所有中心點的類別為C[i][j]。
對于檢測得到的中心點采用的是改進后的Hough變換(PKPHT),不僅可以有效減少異常噪聲點,而且在能保證點分類的前提下精確擬合出導航線,減小計算量的前提下保證了直線擬合精度,具有良好的適用性。
為達到視覺導航的偏差修正效果,采用模糊控制(Fuzzy Control)算法,視覺導航控制策略流程圖如圖6所示,其中ΔP為相對偏差角度,e(t)為模糊控制器的輸入,θ(t)為目標轉(zhuǎn)角,θe為目標轉(zhuǎn)角偏差。橫向偏差由生成的作物行與圖像的中間為位置的差值;航偏角根據(jù)生成作物行直線與基準直線的相對角度偏差,模糊控制輸入偏差大小由相對角度偏差三次求和取平均得到??刂撇呗詾橄日{(diào)整橫向偏差再調(diào)整航偏角,模糊控制器輸出目標轉(zhuǎn)角,再由角度傳感器檢測到的實時轉(zhuǎn)角計算需要轉(zhuǎn)過的角度θ,轉(zhuǎn)向執(zhí)行機構(gòu)根據(jù)輸出對應的控制電壓,最終實現(xiàn)試驗平臺的自主導航,其中不同范圍的橫向偏差有不同的控制調(diào)節(jié)比例系數(shù)。
圖6 視覺導航控制策略流程圖Fig. 6 Flow chart of visual navigation control strategy
自動導航過程中實際獲取田間獲取實驗平臺的相對位置的單幀檢測時間100 ms,為了滿足實際的調(diào)試情況和減少誤差的需要,以每3幀處理的結(jié)果進行平均值為相對角度偏差。角度偏差的糾正采用PI調(diào)節(jié),根據(jù)相對位置偏差計算目標轉(zhuǎn)角,并對應輸出模擬電壓進行控制,目標轉(zhuǎn)角的控制精度為1°,導航系統(tǒng)工作流程圖如圖7所示。
圖7 視覺導航系統(tǒng)工作流程圖Fig. 7 Flow chart of visual navigation system
為了檢測本研究設計的基于深度學習的導航算法的可行性和穩(wěn)定性,于2021年4月26日—5月2日在北京市房山區(qū)澤普安全農(nóng)場展開田間試驗,試驗期間天氣晴朗,微風。導航線檢測生成如圖8所示。
圖8 視覺系統(tǒng)直線檢測質(zhì)量Fig. 8 Visual system linear detection quality
分別以0.3 m/s、0.5 m/s的速度進行導航試驗,行駛路徑為20 m,每個速度試驗重復2次,以橫向偏差作為評價標準。試驗結(jié)果如表2所示,當速度不大于0.5 m/s時,能完成導航試驗。隨著行駛速度的增加橫向偏差也隨之增加,當行駛速度為0.7 m/s時,試驗平臺未能及時進行姿態(tài)調(diào)整,未能完成路徑導航;試驗平臺在不發(fā)生打滑的前提條件下,能夠?qū)崿F(xiàn)對葉菜的識別和導航,并保持較小的路徑偏差。平臺轉(zhuǎn)向角隨航偏角變化如圖9所示。
表2 不同速度的橫向偏差Tab. 2 Lateral deviations at different speeds
(a) 航偏角變化
(b) 轉(zhuǎn)向輪轉(zhuǎn)角變化圖9 視覺導航系統(tǒng)田間作業(yè)實時數(shù)據(jù)Fig. 9 Real-time data of field operation of visual navigation system
本文研究并實現(xiàn)了一種基于傳統(tǒng)圖像技術(shù)、深度學習技術(shù)的智能化、可靠性高的田間作物行導航線檢測算法,并對視覺導航系統(tǒng)的作業(yè)質(zhì)量進行了驗證和評價,為農(nóng)用機械自動導航作業(yè)提供了技術(shù)支撐和理論基礎。
1) 構(gòu)建了四輪獨立轉(zhuǎn)向的移動試驗平臺視覺導航系統(tǒng),設計了基于改進型全卷積神經(jīng)網(wǎng)絡算法,算法的準確率不低于92%,單幀檢測時間100 ms以內(nèi),由橫向偏差和航偏角獲得平臺相對位置信息,并以導航線檢測準確率為指標,經(jīng)試驗算法具有良好的魯棒性。
2) 經(jīng)過試驗測得導航系統(tǒng)在合適的速度下路徑始終存在不大于10 cm的橫向偏差。該方法先對圖像進行預處理,然后使用改進FCN網(wǎng)絡結(jié)構(gòu)對圖像分割,再采用非監(jiān)督聚類分類的方法,實現(xiàn)多作物行下的中心點分類,并實現(xiàn)Hough變換的作物行中心線的直線擬合。
3) 基于實際作業(yè)條件處理實時傳輸數(shù)據(jù),建立模糊控制策略方法,該方法有效及時地調(diào)整平臺姿態(tài)。并設計了視覺導航系統(tǒng)工作流程及應用軟件程序。
對該導航系統(tǒng)分析表明:結(jié)合語義分割模型FCN,實現(xiàn)對作物行分割的自身數(shù)據(jù)集上的訓練及改進,對比主流的語義分割框架IOU指標顯著提升;本文改進的FCN模型對二值化的圖像,檢測得到的中心線連續(xù)性好,較完美地消除噪聲,分類后擬合得到的直線十分吻合實際的圖像中的直線效果,具有良好的環(huán)境適應性,將深度學習和傳統(tǒng)圖像算法結(jié)合,運用于農(nóng)業(yè)機械視覺導航領域,為未來的農(nóng)業(yè)自動化、智能化提供了一定的借鑒意義。但對于過于復雜環(huán)境變換對導航控制系統(tǒng)穩(wěn)定性、魯棒性有了更高的要求。如果結(jié)合IMU傳感器與相機,借助擴展卡爾曼濾波實現(xiàn)傳感器數(shù)據(jù)融合,提高導航算法的實用性。