梁喜鳳,花瑞,楊銘濤
(中國計量大學機電工程學院,杭州市,310018)
中國是世界上番茄生產和消費總量最多的國家之一。近年來,番茄種植管理的人工成本逐漸增加,而番茄打葉又需要周期性的進行,人工成本較高[1]。目前番茄種植方式是以溫室大棚中或者高架形式種植為主,植株之間的行距比較寬闊,無論是采摘果實還是修剪枝葉,都適合機械化作業[2-3]。因此,研發一種代替或輔助人工作業的番茄枝葉修剪機械手是很必要的。
目前,國內研究的枝葉修剪機器人大多是用于林木修剪,徐軍[4]設計的林木剪枝機器人是利用驅動與蝸輪的鏈式連接裝置,實現攀爬樹干和修剪樹枝功能。由于番茄植株的枝干較為細軟、長勢較高[5],所以需要設計一種針對番茄植株的枝葉修剪機械手,而視覺伺服控制系統是番茄修剪枝葉機械手的重要組成部分。視覺伺服分為基于位置的視覺伺服(PBVS)和基于圖像的視覺伺服(IBVS)[6]。基于位置的視覺伺服是通過估計目標位置相對攝像機的位姿,將該位姿與當前位姿進行對比再調整機械臂,由于PBVS固定了攝像機的位置,使得其無法在一些流動性的作業中獲取完備的特征[7-8]。基于圖像的視覺伺服在控制過程中需要估計圖像雅克比矩陣,如今大部分都使用KF算法[9]和UKF算法[10]來估計圖像雅克比矩陣,但其計算工作復雜并受環境噪聲影響較大[11]。Mehta等[12]在IBVS的基礎上加入魯棒反饋去克服外界影響造成目標果實的運動。除此之外還有在視覺伺服上加入神經網絡[13-14],目前大多運用于工業領域,Gu等[15]在模糊神經網絡的基礎上對圖像特征點和機械臂關節變化關系進行估計,在視覺伺服中加入神經網絡可以避免計算圖像雅克比矩陣[16-18],但是需要對目標物體規定尺寸。
本文結合番茄枝葉的生長特點,以項目組設計的五自由度的全自動番茄枝葉修剪機械手為平臺,在PSO-BP神經網絡的基礎上設計了番茄枝葉修剪機械手的視覺伺服系統。以番茄植株的側枝夾取點為研究目標,提出了一種基于不同邊緣類型的番茄側枝特征點識別方法,通過圖像處理算法中橫縱邊緣類型的分類,提取目標剪枝點,在訓練好的PSO-BP神經網絡的基礎上,得到機械臂的關節角度,進行仿真試驗。
本文基于不同邊緣類型的番茄側枝特征點識別方法的流程如圖1所示。

圖1 番茄側枝特征點識別方法的流程
本文以在番茄植株中搜尋番茄側枝特征點為目的,提出了一種基于不同邊緣類型的番茄側枝特征點識別方法,在背景中提取出整株番茄植株,通過區分橫縱邊緣的算法對番茄植株邊緣進行處理,將橫縱邊緣交界點作為番茄植株側枝的特征點,然后再利用邊緣排序算法對每段番茄枝條邊緣進行排序和分類,得到一對分別在上邊緣和下邊緣上的特征點。
通過佳能450D相機,在自然光照條件下獲得番茄側枝的圖像。由于番茄植株側枝的葉片和枝干顏色太過相似,無法基于多光譜識別方法對枝葉進行分類,所以本文中使用形態學方法對番茄側枝進行圖像處理(圖2)。對圖2(a)彩色圖像I進行背景分割,提取出整株的蔬果枝葉如圖2(b)所示,并對提取的圖像進行二值化處理,得到如圖2(c)的二值化圖像C。

(a) 彩色圖像I
由于枝、葉無法通過顏色對其進行區分,采用一種橫縱邊緣分割的方法去除葉片的邊緣的影響。首先對二值化圖像進行橫縱邊緣的提取,分別形成與二值化圖像尺寸相同的縱邊緣圖像C2和橫邊緣圖像C3,在縱邊緣圖像中的像素值取值如式(1)所示。
(1)
式(1)中將橫向邊緣像素賦值0,縱向邊緣賦值1,使得C2圖像用白色顯示出縱向邊緣段。
再將上述的橫邊緣圖像C3分為上下邊緣Cu,其中Cu像素值取值如式(2)所示。
(2)
在式(2)中橫向邊緣像素賦值1,縱向邊緣賦值0,使得橫向邊緣在圖像中顯示出來,在坐標數列里給下邊緣和上邊緣進行分類。再對得到的縱邊緣圖像和橫邊緣圖像分別進行開運算,去除圖像中離散的點和不屬于枝條的邊緣,得到僅保留枝條邊緣的縱向枝條邊緣(圖3)和橫向枝條邊緣(圖4)。

圖3 縱向邊緣

圖4 橫向邊緣
基于上下邊緣標記圖像,再利用蔬果植株邊緣排序算法[19]對植株的橫向枝條邊緣進行排序和類別判斷,將圖像中的每條橫向枝條邊緣按照判斷結果標記為上邊緣或下邊緣;基于縱向枝條邊緣圖像和橫向枝條邊緣圖像,將橫縱邊緣進行整合(圖5)。

圖5 橫縱邊緣整合
由于同一枝條的兩個側枝點不可能距離很遠,因此可以通過設置距離閾值,剔除非側枝點,得到每一根橫向枝條對應的一組分叉點,所述的距離閾值為20~40個像素。如圖6所示得到所有的對偶交點;再根據一組分叉點中兩個交點所靠近或是依附的橫向枝條邊緣類別,來判斷交點是上邊緣點還是下邊緣點,最終識別到橫向枝條側枝點的上邊緣點和下邊緣點,如圖7所示圈出了目標特征點。

圖6 對偶的橫縱邊緣交點

圖7 番茄植株目標特征點
BP神經網絡是一種不需要事先確定輸入輸出之間映射關系的網絡,僅通過自身的訓練,學習某種規則,在給定輸入值時得到最接近期望輸出值的結果[20]。本文中在BP神經網絡訓練的基礎上進行無標定的視覺伺服控制,通過不斷迭代練習,得到一個訓練好的機械臂關節角度和目標特征點映射關系的網絡。
BP神經網絡由輸入層、隱含層和輸出層組成。在本文中由于番茄側枝的圖像特征點只有兩個,為了提高網絡的收斂性和減小訓練方差,增加輸入節點數,所以使用雙目攝像機,這樣就可以得到4個目標特征點,分別將其橫縱坐標作為輸入。輸出層設置為5個輸出節點,分別對應機械臂5個期望關節角度與當前關節角度的差值。BP神經網絡隱含層通常采用經驗公式,如式(3)所示。
(3)
式中:m——隱含層節點數;
s——輸入層節點數;
l——輸出層節點數;
α——1~10之間的整數[12]。
通過計算隱含層節點設置在5~14即可。BP神經網絡的訓練樣本是通過仿真機械臂相應關節角變化,并同時記錄相應的圖像特征點變化來獲取;離線對BP神經網絡進行訓練,訓練網絡的結構圖如圖8所示,其中Δx1…Δx8為特征點變化,q1…q5為關節角度變化值;網絡的執行階段是根據神經網絡的輸入計算期望的關節角變化。

圖8 BP神經網絡結構圖
粒子優化算法(PSO)源于鳥群捕食的行為研究,通過給予粒子位置和速度兩個屬性,讓每個粒子尋求空間中最優解。在PSO-BP神經網絡中利用PSO算法對全局范圍中進行大致搜索[22],得到一個優化過的BP神經網絡的權值和閾值,提高了BP網絡的泛化能力和學習能力,大大提升了其收斂速度。PSO算法優化BP神經網絡流程圖如圖9所示,具體步驟如下。

圖9 PSO-BP神經網絡流程圖
1) 設置BP神經網絡的參數,包括輸入層節點In,隱含層節點Hid和輸出層節點Out,將訓練數據歸一化處理。
2) 初始化粒子群算法的所有參數,包括粒子最大速度,慣性權重,學習因子,迭代次數N和粒子群規模U;速度向量維數Dims按式(4)求得,每個粒子由速度矩陣和位置矩陣組成。
Dims=In×Out+Hid+Hid×Out+Out
(4)
3) 對粒子個體進行評價:首先把最小適應度函數值設置為粒子群的個體極值Pbest,然后將粒子中最小的個體極值設置為全局極值gbest,適應度函數按式(5)確定。
(5)
式中:Vn——實際輸出;
yn——期望輸出。
4) 將粒子的當前最佳位置作為迭代點,進行迭代。
5) 排除越界的粒子,更新粒子的速度和位置。
6) 當迭代次數到達N或是誤差滿足精度要求時,停止迭代;否則轉入步驟5。
7) 結束迭代,將當前的Pbest和gbest作為BP神經網絡的權值和閾值,獲得BP神經網絡的預測輸出。
視覺伺服控制主要通過末端執行器的移動位置和期望位置的偏差進行反饋,不斷調整機械臂的位姿來夾取側枝。本文中視覺伺服控制系統是通過雙目攝像機對目標枝條進行采集圖像,將采集的圖像通過上述圖像處理得出目標側枝點的位置;再通過將位置信息輸入到PSO-BP神經網絡中,來獲得五個關節角度,轉動機械臂各個關節,使用的雙目、基于圖像特征的視覺伺服控制系統,如圖10所示,再通過眼在手上的方式將攝像機安裝在機器人的末端執行器上。

圖10 番茄枝葉修剪機械手視覺伺服系統框圖
為了獲得充足的訓練樣本,本試驗根據課題組中番茄剪葉機械手實物,利用Matlab軟件中的機器人工具箱(Robotics Toolbox)搭建了一個五關節的機器臂模型如圖11所示,并建立了一個基于圖像的視覺伺服(IBVS)仿真系統。變化仿真機械手各個關節的角度,保證得到特征點在同一平面上,在照相機模塊得到對應的圖像特征變化圖,得到300組數據,其中250組作為訓練樣本,50組作為測試樣本。

圖11 枝葉修剪機械手仿真圖
為了驗證本文中提出的視覺伺服系統的可行性,進行simlink仿真試驗。根據上述方法建立的PSO-BP神經網絡模型,其中各項參數設置為BP網絡的學習率μ=0.4,動量因子η=0.8,期望誤差e=10-5;PSO優化網絡中,種群規模為80,迭代100次,學習因子設置為c1=c2=2。
導入訓練集進行反復迭代訓練,訓練完成后測試集的輸出均方差如圖12所示。

圖12 PSO-BP神經網絡曲線圖
由圖12可知,在迭代100次內均方差已經漸漸收斂,最終迭代次數不到90次時,均方差就能收斂到7.933 7×10-5,達到期望的輸出精度。在仿真試驗中,將每個攝像機中兩個期望的特征點坐標(末端執行器的特征點)提取,四個坐標構成一個長方形,將其坐標做以下假設。
1) 四個期望的圖像特征坐標
2) 機械臂的初始關節角

3) 攝像機參數設置:焦距f=8 mm,α=β=80 000 pixels/m,目標成像深度h=1.5 m,圖像中心點為(200, 200)。
如圖13所示,試驗中特征點在攝像機中從初始點移動到最終位置,虛線為初始特征點位置,實線表示最終位置,根據特征點的變化,求解出機械臂各個關節運動角度,各個關節運動軌跡變化如圖14所示。

圖13 初始特征點位置

圖14 各關節角度變化
由圖13可知,圖像特征最終位置的像素坐標為a1=(174,162),a2=(223,218),a3=(174,217),a4=(226,164),與設定的期望圖像特征點對比相差3~5個像素點,由圖14可知,在4 s內機械臂各個關節運動到期望位置。
本文僅在仿真試驗中驗證了該方法的可行性,具體運用到試驗部分還需要改進,并且對機械臂的軌跡規劃未進行研究,在實際工作中會影響修剪效果并損壞側枝,后續應增加對該方面的研究。文中提出的基于神經網絡的視覺伺服系統的研究在工業領域比較多,主要由于工業器件尺寸的確定性,但在農業中番茄側枝的寬度并不確定,所以使用神經網絡只能得到機械臂轉動關節角度,在平動關節還需要使用雙目測距進行調整。
1) 通過對番茄植株圖像進行形態學處理,將番茄側枝分為橫縱邊緣,根據不同邊緣類型找到對偶的番茄側枝點,能夠獲得機械臂修剪枝葉所需要的期望特征點。
2) 在PSO-BP神經網絡的基礎上建立視覺伺服系統,相對于傳統的視覺伺服控制,減少了計算雅克比矩陣的工作量;相對于雙目定位來說,省去了標定環節,也就減少了標定環節帶來的誤差和所需要的人工成本。
3) 試驗結果表明設計的視覺伺服系統能成功的識別番茄側枝修剪點,仿真試驗測試得到圖像特征的實際值和期望值誤差在3~5個像素之間,五自由度的機械手在4 s內能移動到期望位置,具有良好的控制精度和速度。