李鑫星,梁步穩(wěn),劉詩陽,李 輝※
(1. 中國農(nóng)業(yè)大學信息與電氣工程學院,100083;2. 農(nóng)業(yè)農(nóng)村部農(nóng)業(yè)信息化標準化重點實驗室,北京 100083)
中國蘋果種植面積和總產(chǎn)量位居世界首位,僅2018年蘋果產(chǎn)量高達2.57億t[1-2]。然而中國果樹種植智能化和自動化水平較低,蘋果平均單位面積產(chǎn)量與發(fā)達國家仍有較大差距,達到出口要求的高檔蘋果不足總產(chǎn)量的20%,遠低于國際水準[3]。而良好的果樹修剪技術可以極大地提高果樹的光合作用效率,優(yōu)化果樹營養(yǎng)運輸和分配,從而提升果實的產(chǎn)量和品質。然而果樹剪枝對從業(yè)者技術要求較高,需要經(jīng)過科學理論學習并具有豐富的經(jīng)驗。為了降低蘋果的生產(chǎn)成本,提高其品質和單位產(chǎn)量,剪枝方法亟需向自動化、智能化發(fā)展[4-5]。
現(xiàn)代果樹剪枝技術可分為機械剪枝和虛擬剪枝[6]。機械剪枝通過制作復雜的剪枝機械代替人工勞動實現(xiàn)樹木的自動化或半自動化剪枝,可有效解決人工勞動強度大、效率低問題,但其僅適用于果樹粗剪,難以實現(xiàn)精細化剪枝[7-9]。而虛擬剪枝通過構建虛擬果樹生長空間,并仿真模擬果樹的生物信息,定量評估剪枝效果,有效克服機械剪枝的高破壞性、不可逆性,提供科學的剪枝決策[6,10]。Kolmani等[11]提出了一種基于離散差分進化的虛擬樹修剪算法,在考慮樹木距離基礎上優(yōu)化樹木的整體陽光攝入量,使其朝著期望的生長形式發(fā)展。Bai等[12]基于二維激光掃描技術提取了果樹的生長參數(shù),并提出了整枝及主干修剪方法;郭彩玲等[13]利用三維激光掃描儀獲取冠層的點云數(shù)據(jù),并提出基于顏色取樣的蘋果樹枝點云數(shù)據(jù)提取方法;楊麗麗等[14]對冬季落葉后的蘋果樹進行掃描獲取果樹的三維骨骼圖,并基于多項式擬合函數(shù),為虛擬蘋果樹修剪仿真提供數(shù)學規(guī)律;Kolmanic等[15]建立計算機圖形的交互式實時三維蘋果樹剪枝教育系統(tǒng)用于模擬蘋果樹剪枝訓練。虛擬剪枝多從生物量、生長信息定量果樹最優(yōu)剪枝方式,但其多停留在數(shù)學模型、圖像處理及仿真模擬上。
果樹修剪本質上是一個隨機、非線性、復雜的系統(tǒng),然而由國內(nèi)外研究現(xiàn)狀可知,目前結合人工智能技術的智能化剪枝決策研究尚不完善,且沒有科學的剪枝決策軟件系統(tǒng)輔助農(nóng)戶剪枝。因此,本文以蘋果樹剪枝環(huán)節(jié)為例,提出基于局部點云和BP神經(jīng)網(wǎng)絡的蘋果樹剪枝方法,并開發(fā)設計蘋果樹剪枝系統(tǒng),可供樹形分析和輔助剪枝決策,便于果園從業(yè)者進行剪枝活動,從而有效指導蘋果的種植和生長,實現(xiàn)產(chǎn)效最大化。
本系統(tǒng)結合北京八口果樹園、十三陵種植園等果園的實地需求調(diào)研,綜合考慮蘋果產(chǎn)業(yè)從業(yè)者的實際需求,基于瀑布模型開發(fā)方法,對蘋果樹剪枝決策系統(tǒng)進行需求分析[16]。將系統(tǒng)功能大體分為三類:樹枝三維骨骼提取功能、蘋果樹剪枝功能、蘋果樹剪枝資料查詢功能,如圖1所示。
在智能化剪枝決策的基礎上,結合系統(tǒng)需求設計了系統(tǒng)架構,如圖2所示。系統(tǒng)分為數(shù)據(jù)層、業(yè)務邏輯層和界面層3個層。數(shù)據(jù)層負責將采集到的果園各項數(shù)據(jù)進行組織化處理并保存在數(shù)據(jù)庫中,業(yè)務邏輯層利用數(shù)據(jù)層中存儲的數(shù)據(jù)進行分析和處理,用以實現(xiàn)各項系統(tǒng)功能,最后將結果反饋回界面層中,以供用戶查看。
蘋果樹在生長過程中,如果沒有人工干預,會出現(xiàn)很多不適合蘋果增產(chǎn)的異常樹形,其果樹產(chǎn)量往往堪憂。干擾果樹正常生長的干擾枝可以大體上分為絕對干擾枝和相對干擾枝。相對干擾枝的判別標準模糊且無統(tǒng)一原則,對果樹生長影響較小甚至有一定益處。絕對干擾枝指具有鮮明的形態(tài)特征,在樹枝的各個生長階段均大量存在,且嚴重壓制果樹正常營養(yǎng)運輸和分配的樹枝,是蘋果剪枝的重中之重[17],因此本文研究對象主要為絕對干擾枝。絕對干擾枝主要有3種,分別是背上枝、向心枝和競爭枝。背上枝和向心枝可單獨判別,無需對照參考,如圖3a所示;而競爭枝形態(tài)特征類似于保留枝,但是其以更有利于營養(yǎng)運輸?shù)男螒B(tài)存在,因此在判別競爭枝的時,需要與對應的保留枝進行對比,如圖3b所示。
蘋果樹剪枝決策的先決條件是將現(xiàn)實中的真實樹枝轉化為數(shù)字化的模擬樹枝。為解決這一問題,本研究提出基于局部點云的蘋果樹樹枝三維骨骼提取方法,并以此生成蘋果樹三維骨骼圖。該三維骨骼圖可供剪枝決策,也可以為蘋果產(chǎn)業(yè)從業(yè)者進行樹形分析提供數(shù)據(jù)支持。
2.2.1 數(shù)據(jù)采集
數(shù)據(jù)采集地點為北京八口果樹園,選取初果期紡錘形蘋果樹作為試驗對象,數(shù)據(jù)采集時間選擇在傍晚19:00。選取使用了基于TOF(Time of Flight)原理的深度相機MESASR4000作為數(shù)據(jù)采集設備[18-19],該深度攝像頭最大有效拍攝范圍5 m,校準范圍0.8~5m,絕對精度10 mm,最大幀速率54FPS,像素矩陣尺寸176×144,獲取數(shù)據(jù)格式為ASC點云格式。其通過光脈沖發(fā)射器發(fā)射出的原始光信號與接受到的反射光信號之間相位的差值來計算目標物體和TOF相機的距離值。其原理可以表達為
式中c為光速,m;φΔ 為原始光信號與接受光信號的相位差,弧度;f為調(diào)制頻率,Hz。
本次共選擇采集15棵形狀較為規(guī)則的果樹進行數(shù)據(jù)采集,每棵樹選擇8個角度對果樹的樹枝部分進行拍攝,共采集120個數(shù)據(jù)集。
2.2.2 三維骨骼提取方法
剪枝決策算法主要依賴于樹枝的空間特征和形態(tài)特征,即樹枝的三維骨骼。因此,實際需要得到的是一張反應樹枝空間結構的圖G(V,E)。其中V為骨骼關鍵點集合,E為關鍵點的鄰接矩陣。本方法首先尋找樹枝骨骼的關鍵點,即樹枝的起始點與終結點。對于在同一根主枝上生長的多根樹枝,則需要找出其在主枝上的分生點。此后,根據(jù)關鍵點在二值圖像上的區(qū)域關系判斷其是否存在連接關系,并得出鄰接矩陣E。算法流程如圖 4所示。
1)基于Harris角點檢測算法生成初始候選點。對二值圖像進行處理,將檢測到的角點作為初始候選點[20]。
2)基于凝聚層次算法篩選鄰近候選點。樹枝生長時存在一定粗細度,致使樹枝左右兩側均可被檢測到一個角點;此外,當出現(xiàn)復雜枝條交叉場景中,也會產(chǎn)生大量無效候選點,對于初始候選點中存在的鄰近候選點,采用凝聚層次算法篩選產(chǎn)生的鄰近候選點,并將其合并為一個聚類簇。
3)基于深度層次分析算法提取三維骨骼關鍵點。樹枝復雜生長情況導致存在樹枝彼此之間相互交叉,交叉時會產(chǎn)生多個角點,而這些角點并不是我們需要的樹枝骨骼關鍵點,而是由于視覺因素產(chǎn)生的無效候選點。此類候選點的特點是其鄰域內(nèi)存在多條交叉樹枝,因此其深度數(shù)據(jù)會呈現(xiàn)多層次性,每一根交叉的樹枝會提供一個額外的深度層次。而非交叉點僅存在兩層:樹枝層和背景層。利用交叉候選點的這一特點,可以通過聚類對像素點鄰域做深度層次分析,從而判斷該點是否為交叉候選點。
4)基于線覆蓋法建立樹枝的空間向量。經(jīng)過處理后的關鍵點集合V中點與點之間彼此獨立,不具備邏輯關系,因此需要先以獲取的關鍵點為基礎,判斷任意兩關鍵點間是否存在一根樹枝,即判斷點與點之間是否具有連接關系。針對這一問題,提出了取線覆蓋法予以解決。
2.2.3 三維骨骼提取方法的實驗驗證
采集的點云數(shù)據(jù)為ASC格式,大小為(176×144)行3列的矩陣,其內(nèi)容為全局坐標(x,y,z)。其中第三列z值即為該點深度值函數(shù)d,即d(x,y)=z。
將點云數(shù)據(jù)進行處理,通過式(2)~(3)可以分別獲得二值圖像與深度圖像。
二值圖像映射后深度值D1為
式中d為該點原始深度值。d=0代表無深度(即未檢測到物體)。
深度圖像映射后深度值D2為
式中dmax為所有點中最大深度值。將深度值按比例放大到灰度區(qū)間(0,255)即獲得了目標的深度值 2D。
考慮到SR4000易受光照影響,獲取的二值與深度圖像均存在噪聲,因此對二值圖像進行高斯濾波后再進行骨骼提取。角點檢測及無效點篩除過程如圖5所示。
根據(jù)線覆蓋法得到鄰接矩陣E;同時根據(jù)角點檢測后點P的坐標獲取三維關鍵點全局坐標O(x,y,z),從而獲得三維骨骼關鍵點集合V。圖G(V,E)在三維坐標中建立的樹冠三維骨骼模型如圖6所示。
針對果樹修剪的高度抽象、非線性、多變量耦合性的問題,采取BP神經(jīng)網(wǎng)絡實現(xiàn)蘋果樹剪枝決策功能[21-23]。
2.3.1 模型建立
1)激活函數(shù)選用
本研究需分析樹枝是否剪除,且還需判別該樹枝的干擾枝類型,即本研究屬于多分類問題。因此,選用Softmax作為激活函數(shù)。
2)輸入層
對樹枝做BP神經(jīng)網(wǎng)絡訓練需要擬定輸入層的值,這些值應該具備反應樹枝空間特性的能力。綜合考慮了樹枝的形態(tài)特征和實際采集情況,以標定桿為Z軸,南北方向為X軸,東西方向為Y軸,X軸正方向為0°角,建立柱坐標系。規(guī)定:每根樹枝從主枝上的分生點為該樹枝的起始節(jié)點,樹枝生長的末端為該樹枝的末端節(jié)點。據(jù)此擬定如下5個特征值:樹枝縱向高度hΔ ,樹枝徑向長度 Δr,樹枝生長角度 Δα,樹枝平均直徑,樹枝彎曲度ρ。
由于本文構建的神經(jīng)網(wǎng)絡模型輸入層限定為樹枝的5個形態(tài)特征值,實際輸出的圖G(V,E)無法直接輸入神經(jīng)網(wǎng)絡,需要將G(V,E)的數(shù)據(jù)進行處理,轉化為樹枝的形態(tài)特征值。
遍歷鄰接矩陣E,并取出矩陣E中值為1所對應的點Pi(xi,yi,zi)、Pj(xj,yj,zj)構成了樹枝的空間向量
樹枝的空間向量可以轉化為柱坐標系下的空間向量
式中h為高度,m;r為徑向距離,m;α為方位角,弧度。
返回二值圖中,以點Pi(xi,yi)為中心,分別在其8個方向上搜索第一個空白像素的位置,即獲得(x+k1,y),(x-k2,y),(x,y+k3),(x,y-k4),(x+k5,y+k5),(x-k6,y-k6),(x+k7,y-k7),(x-k8,y+k8)。則該點直徑di近似為
同理計算Pj(xj,yj,zj)點的直徑dj,最終根據(jù)Pi(xi,yi,zi)和Pj(xj,yj,zj)點的直徑di和dj求得該樹枝的整體直徑d。
綜上,從樹枝三維骨骼關鍵點中可以計算出該段樹枝的形態(tài)特征值
最后,將所有三維骨骼提取出的樹枝數(shù)據(jù)轉化為上述5個形態(tài)特征值,輸入到經(jīng)過訓練得到的BP神經(jīng)網(wǎng)絡模型,可以得到對每個樹枝的分類判斷。
3)輸出層
輸出層有1個節(jié)點,表示這個樹枝的類別,N的取值為(0,1,2,3)。當N=0時,該樹枝為需要保留;當N≠0時,該數(shù)值為需要剪除。N=1為背上枝,N=2為向心枝,N=3為競爭枝。
4)隱含層
為了選擇神經(jīng)網(wǎng)絡模型性能最優(yōu)化的隱含層節(jié)點數(shù),基于交叉驗證方法,以誤差精度為評估指標,對模型進行性能測試,并確定隱含層節(jié)點為10。
5)網(wǎng)絡參數(shù)調(diào)優(yōu)
初始權重采用隨機初始化,隨著迭代次數(shù)增多,隨機梯度下降法逐漸接近最優(yōu)解。不同學習率下模型性能變化如表1所示??梢?,當學習率達到0.85后,模型的精度基本不會發(fā)生太大變化,但是隨著學習率的減少,訓練時長顯著上升。因此學習率選擇0.85最為合適。
表1 不同學習率的性能對比 Table 1 Comparison between learning rate and model performance
2.3.2 誤差分析
本文采取準確率、精確率、召回率和F1指數(shù)對基于BP神經(jīng)網(wǎng)絡模型的樹枝剪枝分類問題進行評價,如表2所示。
此模型對于背上枝和向心枝的辨別程度較好,準確率在0.9以上,F(xiàn)1分數(shù)在0.8以上。對競爭枝的分類準確率略低,為0.740??紤]到競爭枝和另外2種樹枝存在一些差異,即背上枝和向心枝不受到其他枝條的干擾,滿足空間形態(tài)特征即可以判別,屬于獨立干擾枝。但是競爭枝的判別需要與一個對應的保留枝進行比較,選擇其中之一剪除,即競爭枝的判別需要借助與其在同一主枝上分生的保留枝,不屬于獨立干擾枝,因此競爭枝的判斷精度略低。
從整體上看,該模型精度與其他傳統(tǒng)方法相比有了明顯的提高,可根據(jù)輸入的樹枝形態(tài)特征參數(shù)進行類型判別,分析該樹枝是否需要剪除,實現(xiàn)對三類絕對干擾枝,即背上枝、向心枝和競爭枝的分類,可以有效應用于紡錘形簡單樹形的蘋果樹剪枝。
表2 BP神經(jīng)網(wǎng)絡模型性能 Table 2 Performance of BP neural network model
在第二章和第三章的基礎上,建立基于局部點云的樹枝三維骨骼提取算法與基于BP神經(jīng)網(wǎng)絡的剪枝決策系統(tǒng),實現(xiàn)智能化蘋果樹形管理。
本文所構建的蘋果樹剪枝系統(tǒng)是基于B/S模式的,系統(tǒng)采用MVC模式開發(fā),采用Python作為主要開發(fā)語言,使用了開源框架Django與深度學習開發(fā)平臺Tensorflow進行開發(fā),同時應用了MySQL數(shù)據(jù)庫與WebService技術[24]。
1)蘋果樹虛擬剪枝功能
本功能通過對上傳的ASC點云數(shù)據(jù)文件進行處理,從而得到樹枝的三維骨骼關鍵點,并據(jù)此生成樹枝的三維骨骼圖。同時,利用已經(jīng)訓練好的BP神經(jīng)網(wǎng)絡模型,對樹枝關鍵點進行智能分析,對蘋果樹樹形進行優(yōu)化修剪,得出剪枝方案,并生成剪枝方案圖,以保障果樹來年正常結果產(chǎn)出。具體實現(xiàn)如圖7a所示。
2)蘋果樹查詢與存儲應用功能
果樹剪枝資料查看功能是本系統(tǒng)功能的拓展和完善。用戶可以在內(nèi)置的果樹剪枝資料庫中瀏覽,查詢用戶希望學習的剪枝教學文件;也可以調(diào)閱本系統(tǒng)的往期蘋果樹剪枝記錄,以歷史記錄作為剪枝案例進行學習;當用戶搜集到一些系統(tǒng)內(nèi)尚未登錄的優(yōu)質教學資源,用戶可以上傳到數(shù)據(jù)庫共享和留存。具體實現(xiàn)如圖7b和7c所示。
本節(jié)將建立的蘋果樹剪枝系統(tǒng)與實際剪枝結果進行對比,探討最終的剪枝決策系統(tǒng)的性能并對其評估。
本文共隨機抽取15個ASC點云數(shù)據(jù),對其進行完整的基于局部點云與神經(jīng)網(wǎng)絡的剪枝決策,得出對應的樹枝三維骨骼圖和剪枝方案圖。對每個三維骨骼圖進行人工分析,判斷出該圖中的背上枝、向心枝、競爭枝數(shù)目,并與剪枝決策圖結果進行對比,得到結果如表3所示。
對于大部分ASC點云數(shù)據(jù),剪枝決策方法可以做到100%檢出,該模型對于背上枝和向心枝的辨別程度較好,錯誤率主要出現(xiàn)在樹枝主干和主枝上。少部分形態(tài)較為復雜的ASC點云數(shù)據(jù)會存在少量漏檢,總檢出率85.71%,符合期望。綜上所述,基于局部點云與神經(jīng)網(wǎng)絡的剪枝決策系統(tǒng)符合實際預期需求。
表3 剪枝決策系統(tǒng)應用與測試 Table 3 Application and test of pruning decision model
本文以蘋果樹剪枝環(huán)節(jié)為研究對象,提出了基于局部點云的樹枝三維骨骼提取方法和基于BP神經(jīng)網(wǎng)絡的剪枝決策方法,并構建了蘋果樹剪枝決策系統(tǒng),為推進智慧農(nóng)業(yè)普及,提高自動化、信息化提供了有效的軟件工具。
1)針對果園生產(chǎn)過程中信息化程度較低的問題,實現(xiàn)基于局部點云的三維骨骼提取,生成樹枝的三維骨骼圖,實現(xiàn)真實樹枝的數(shù)字化模擬,提高信息化水平。
2)針對剪枝技術門檻較高的問題,以蘋果樹剪枝為例,建立了基于BP神經(jīng)網(wǎng)絡的蘋果樹剪枝模型。該模型可以根據(jù)輸入的樹枝形態(tài)特征參數(shù)進行類型判別,分析該樹枝是否需要剪除,并實現(xiàn)對三類絕對干擾枝,即背上枝、向心枝和競爭枝的分類,經(jīng)過試驗驗證,此模型對于競爭枝準確率為0.740,背上枝、向心枝準確率均可達0.900以上。
3)以局部點云和BP神經(jīng)網(wǎng)絡為算法核心,構建了蘋果樹剪枝決策系統(tǒng),根據(jù)輸入的果樹數(shù)據(jù)自動分析并生成剪枝方案,輔助從業(yè)人員進行剪枝活動。經(jīng)過實際驗證,剪枝決策系統(tǒng)對干擾枝的總檢出率85.71%,整體符合要求。