李亞軍 向 陽 林潔雯 胡正方 龍震寰
(湖南農業大學 工學院,長沙 410128)
近年來,我國蔬菜產業發展迅速,蔬菜生產和消費均居世界首位[1]。2010—2018年我國蔬菜出口量持續增長,2018年蔬菜出口量達948 萬t,其中葉菜類蔬菜約占蔬菜生產總量的1/3[2]。但目前我國葉菜類蔬菜的生產作業基本靠人工完成,生產環節機械化自動化水平和綜合效益較低[3]。
現代農業生產工作中,自主導航是農業機械實現施肥、打藥、收獲自動化的重要保障[4]。目前農機自主導航技術主要包括衛星定位導航和機器視覺導航。其中,衛星定位導航適用于定軌跡的導向,對于壟間精確定位行走適用性不好[5];機器視覺導航采集、處理和分析田間圖像提取導航基準線,實現自主行走[6],相對于前者,具有局部定位優勢,更適合復雜的壟作環境[7]。
已有研究對基于機器視覺的田間導航提出了許多方法:1) 基于YUV、HIS等顏色空間光照無關分量進行作物灰度特征提取,減少了外界光照環境的干擾[8-9];2) 基于行列掃描、聚類等歸類算法對作物區域提取,實現多列作物目標的檢測與感興趣區域提取[10-11];3) 基于Hough變換或最小二乘法可實現對作物輪廓離散點進行直線擬合[12-13]。而上述研究仍然存在一些問題,如Hough變換和最小二乘法擬合直線均對噪聲敏感、檢測精度低和適應性差[14]。同時上述的田間視覺導航技術研究主要針對小麥、玉米等糧食作物,目前未見針對葉菜類蔬菜的菜壟導航技術的研究和報道。
基于以上問題,本研究以蕹菜菜地為研究對象,提出一種基于機器視覺的葉菜類蔬菜菜壟識別算法。選用改進的超綠算法對圖像進行灰度化處理,再利用中值濾波進行圖像去噪,并通過二值形態學變換和連通區域提取獲得菜壟區域和邊界,最終基于Huber損失函數對菜壟邊界進行直線擬合,提取導航基準線。
菜地圖像采集平臺由映美精DFK 21BU618彩色相機、康標達(Computar) 8.5 mm工業鏡頭以及相機支架等構成,相機輸出為BMP格式的RGB彩色圖像,分辨率為640像素×480像素。圖像獲取過程中,采集平臺安裝在農業機器人上,相機距地面高度為1 m,傾角為20°。試驗菜地雖然經過平整,但是依舊存在凹凸不平的地方,機器人在圖像獲取過程中相機傾角會發生偏移,偏移量在±5°以內。用于圖像處理的計算機為Intel(R) Core(TM) i5-3230 M CPU,主頻2.60 GHz,4 G內存,安裝Windous10 64位操作系統,視覺導航測試系統基于Microsoft Visual Studio 2015平臺,并搭建OpenCV 3.0開發環境進行圖像處理。
獲取菜地原始圖像后,為準確地把菜壟從菜地背景中提取出來,需要選擇合適的顏色空間和轉換算法進行圖像灰度化處理,以減少復雜背景和光照的影響。從采集的圖片(圖1(a1)~(a4))可以看出,菜壟區域相比于壟間區域具有明顯綠色特征,且壟間區域亮度相對偏暗。
傳統突出圖像中綠色特征的方法常采用超綠算法[15-17]進行灰度化處理,即利用RGB顏色空間R(紅色)、G(綠色)和B(藍色)3個通道分量,構建超綠分量2G-R-B進行圖像灰度化運算,效果見圖1(b1)~(b4)。可以看出,隨著光照強度的變化,2G-R-B分量圖亮度也發生相應變化,尤其是當菜地存在陰影時(圖1(b4)),陰影區灰度值更接近壟間灰度值,為后期的圖像二值化處理增加了難度。
出現上述灰度圖像亮度不同情況的主要原因是RGB 顏色空間對于光照的變化比較敏感,易受到高光和陰影的影響[18]。目前常用的顏色空間還包括HIS、YUV等。HIS空間以H(色調)、S(飽和度)和I(強度) 3種基本特征量來感知顏色,其中S分量可以把蔬菜和背景的對比度體現出來,但是RGB格式轉HIS格式為非線性轉換,處理時間長,效果見圖1(c1)~(c4);YUV又稱為YCrCb,最大優勢是可以把RGB圖像中的色度信息與亮度信息區分開[19],可以有效去除光照的影響,且YCrCb與RGB之間轉換為線性,算法簡單、計算量小[20]。
針對以上特性,本研究引入一種改進超綠算法[14]對蔬菜圖像進行灰度化處理,在YCrCb空間中引入Cg(綠色色度)分量,把超綠算法中的R、G、B轉化為Cr(紅色色度)、Cg(綠色色度)、Cb(藍色色度),構建改進超綠分量2Cg-Cr-Cb進行圖像灰度化運算,在消除光照或陰影的情況下,加大綠色信號,減少紅色和藍色信號的影響。
YCrCb空間顏色各通道分量可以通過對RGB顏色空間進行簡單線性轉換得到,同時為保證YCrCb空間顏色各通道分量非負,通常會在原值基礎上增加偏移量[19,21],轉換公式為:

(1)
式中:Y為YCrCb空間顏色亮度分量;Cr為YCrCb空間顏色紅色色度分量;Cb為YCrCb空間顏色藍色色度分量;其中,Cr與Cb表示RGB輸入信號紅色、藍色部分與RGB信號亮度值之間的差異,且相互獨立。
同時YCrCb空間格式可由R、G、B3個分量表示:
(2)
式中:Kr、Kg和Kb為YCrCb顏色空間加權因子。3個加權因子之間的關系為:
Kr+Kg+Kb=1
(3)
聯立式(2)、(3),得到Cg在YCrCb空間顏色綠色色度分量的表達式:
(4)
根據國際電信聯盟-無線電通信部(ITU-R)的BT.601協議,本研究定義加權因子Kr的值為0.299,Kb為0.114。所以聯立式(1)、(3)和(4),可以得到YCrCb顏色空間中Cr、Cg和Cb分量關于RGB格式的表達式:

(5)

(a1)~(a4)為晴天、高光、陰天和晴天(帶陰影)菜地原始圖像;(b1)~(b4)為2G-R-B分量圖像;(c1)~(c4)為S分量圖像;(d1)~(d4)為2Cg-Cr-Cb分量圖像。(a1)-(a4) are the original images of vegetable field in sunny, highlight, cloudy and sunny with shadows; (b1)-(b4) are 2G-R-B component images; (c1)-(c4) are S component images; (d1)-(d4) are 2Cg-Cr-Cb component images.圖1 4種光照條件下菜地不同顏色空間分量圖Fig.1 Component graph of different color space of vegetable field under four illumination conditions
將式(5)帶入到改進超綠分量2Cg-Cr-Cb對蔬菜原始圖像進行灰度化處理,效果見圖1(d1)~(d4)。
為對比各顏色空間分量在不同光照環境下對背景噪聲的抑制效果,分別針對晴天、高光、陰天以及晴天(帶陰影)4種光照條件下菜地圖像進行試驗(圖1),對比各分量圖像可以發現,2G-R-B分量和2Cg-Cr-Cb分量圖像相對于S分量圖像目標與背景對比度更清晰,更能清晰地顯示菜地壟間特征。
基于上述分析,本研究對4種光照條件下,灰度化處理后的2G-R-B分量和2Cg-Cr-Cb分量圖像繪制灰度直方圖(圖2)。可以明顯發現,在不同光照條件下,傳統超綠算法的2G-R-B分量亮度變化相對于2Cg-Cr-Cb分量更加明顯,受光照干擾較大,因此本研究選用改進超綠算法對菜地圖像進行灰度化處理。

圖2 4種光照條件下菜地2G-R-B分量和2Cg-Cr-Cb分量灰度直方圖Fig.2 Gray histograms for 2G-R-B component and 2Cg-Cr-Cb component of vegetable field under four illumination conditions
為進一步提取菜壟圖像,本研究選用自適應閾值的大津(OTSU)法[4]進行二值化,效果見圖3。圖像中存在大量的細小孤立噪聲(圖3(b)),因此本研究選用5×5的濾波窗口對圖3(a)進行中值濾波,再進行圖像二值化,效果見圖4,二值圖像中(圖4(b))細小孤立噪聲基本上被去除。

圖3 晴天菜地2Cg-Cr-Cb分量圖像和OTSU法處理后二值圖像Fig.3 Gray image of 2Cg-Cr-Cb component and binary image processed by OTSU of vegetable field under sunny condition

圖4 中值濾波處理后的菜地灰度圖像(a)和二值圖像(b)Fig.4 Gray image (a) after median filtering and binary image (b) of vegetable field
本研究以中間菜壟為研究對象,提取二值化圖像中最大連通區域并進行填充,實現中間菜壟區域提取。但是田間環境復雜,存在菜葉遮擋壟間的情況,導致菜壟粘連,影響菜壟區域提取,效果見圖5。針對這一問題,本研究采用5×5的矩形結構元對二值圖像(圖5(a))進行腐蝕處理,可以有效解決菜葉遮擋的問題(圖6(a)、(b)),為了補償因為腐蝕處理造成的邊界信息損失,同樣選用5×5的矩形結構元對圖6(b)進行膨脹處理,效果見圖6(c)。

(a)為陰天(圖1(a3))經灰度化處理、中值濾波和二值化后的圖像,紅色圓圈內為菜壟區域粘連時情況;(b)為對圖(a)提取連通區域后的圖像。(a) is the image after gradation processing, median filtering and binarization of Fig.1 (a3). The red circle in the image shows the situation when the vegetable ridge area adheres to each other; (b) is the image obtained by extracting the connected area from the image (a).圖5 菜葉遮擋壟間條件下菜地二值圖像和連通區域提取圖像Fig.5 Binary image and connected area extraction image of vegetable field with leaves shaded between ridges

圖6 菜葉遮擋壟間條件下菜壟區域形態學處理過程Fig.6 Morphological processing of vegetable ridge with leaves shaded between ridges
以圖6(c)中黑色區域為研究對象,找到最大和第二大連通區域,并基于Canny算法對圖7(a)進行處理,獲得菜壟邊界曲線(圖7(b))。

圖7 菜壟區域提取圖像和邊界提取圖像Fig.7 Vegetable ridge area extraction image and boundary extraction image
為更好獲取導航基準線,對提取的菜壟邊界曲線進行直線擬合。直線擬合主要有Hough直線變換和最小二乘法直線擬合。Hough直線變換計算量較大,且生成多條直線[10];而最小二乘法具有計算公式簡單明確,運算速度快的特點,更滿足循跡機器人在菜地快速獲取導航信息的需求,但易受到誤差點的影響[8]。因此本研究提出一種基于Huber損失函數的菜壟邊界直線擬合方法。
Huber損失函數結合了線性回歸損失函數和絕對值損失函數,是為了增強平方誤差損失函數(最小二乘法)對噪聲(或叫離群點)的魯棒性提出的[22]。當擬合直線與邊界曲線上點之間的距離很小時,就是最小二乘擬合函數,當距離較大時,為二次函數。對于邊界曲線中的異常點沒有最小二乘擬合函數敏感,且相比其他損失函數具有效率高的特點[23]。其中Huber函數的公式為:
(6)
式中:α為殘差,在直線擬合中即為生成直線與離散點之間的距離;δ為邊界值,用于判斷是否為誤差點。
本研究基于OpenCV 3.0函數庫,利用最小化代價函數的方式來進行直線擬合[24]。函數定義如下:
(7)
(8)

傳統的最小二乘損失函數公式為:
(9)
利用Huber損失函數進行距離度量時,擬合函數公式為:
(10)
式中:C為邊界值,可設置C=0,函數自動為選中的擬合方法提供最優C值。
因此,本研究基于式(10)分別對兩側菜壟邊界曲線進行直線擬合,每側擬合直線輸出結果均由Vx、Vy、X、Y4個值組成,其中(Vx,Vy)為生成直線的單位矢量,(X,Y)為通過該測擬合直線的一點,則可得到該側擬合直線函數(單側菜壟邊界線方程)為:
(11)
式中:x表示生成的菜壟邊界線上的點坐標列像素序號;y表示生成的菜壟邊界線上的點坐標行像素序號。分別采用最小二乘和Huber損失函數,對菜壟離散點簇進行直線擬合,生成菜壟邊界線,結果見圖8和圖9。

圖8 基于最小二乘法的菜壟邊界提取圖像Fig.8 Vegetable ridge boundary extraction image based on least square method

圖9 基于Huber損失函數的菜壟邊界提取圖像Fig.9 Vegetable ridge boundary extraction image based on Huber loss function
在得到左右兩條菜壟邊界線方程后,聯立兩直線方程求解角平分線,即為導航基準線。角平分線斜率計算公式為:
(12)
式中:k為中心導航基準線斜率;k1為左邊菜壟邊界線斜率;k2為右邊菜壟邊界線斜率。再求得左右菜壟邊界線方程的交點,即可得到中線方程。生成的菜地導航基準線見圖10。
為驗證葉菜類蔬菜菜壟識別算法的準確性,于2019年5月在湖南農業大學耘園拍取蕹菜菜地圖片,并進行試驗。

黑線為兩側菜壟邊界線,紅線為生成的導航基準線。The black line is the border line of vegetable ridges on both sides, and the red line is the navigation datum line.圖10 菜地導航基準線Fig.10 Navigation datum line in vegetable field
光照條件是影響田間成像效果的重要因素,除了受到天氣、時間的影響,還受到遮擋物甚至工作機具自身陰影的影響。本試驗分別采集晴天、高光、陰天以及晴天(帶陰影)圖像,每種情況抽取20張圖片,共80張圖片,進行不同光照環境下的導航基準線提取試驗。
試驗結果顯示,80張圖片中,78張圖片可以正常獲取菜壟邊界線,識別成功率為97.5%。部分結果見圖11,可以看出在不同光照環境下,本研究提出的葉菜類蔬菜菜壟識別算法可以準確提取菜壟邊界線。對于不能正常獲取菜壟邊界線的2張圖片,主要原因為蔬菜長勢過于旺盛,遮擋了大部分壟間區域,導致菜壟區域粘連嚴重,從而造成菜壟識別結果失敗。

圖11 4種光照條件下菜壟識別圖像Fig.11 Vegetable ridge recognition image under four illumination conditions
在精度驗證試驗中,基于本研究提出的葉菜類蔬菜菜壟邊界曲線提取算法,對78幅圖片進行處理,并基于Huber損失函數對邊界曲線進行直線擬合,生成菜壟邊界線與導航基準線,驗證提取精度。
試驗結果以生成的導航基準線相對于實際菜壟中心線的角度與橫向偏差來衡量導航基準線精度,其中選用均方根誤差來衡量橫向偏差程度。
均方根誤差RMSE的計算公式為:

(13)
角度偏差:
Δθ=||θ1|-|θ2||
(14)
式中:μi為生成導航基準線中第i點的坐標行、列像素序號;ωi為實際菜壟中心線中第i點的坐標行、列像素序號;n為樣本數;θ1為生成導航基準線在圖像坐標系中的偏轉角度,(°);θ2為實際菜壟中心線在圖像坐標系中的偏轉角度,(°);Δθ為圖像坐標系下的角度偏差,(°)。
對于菜壟實際中心線的構造,本研究選用人工標定的方法獲取:首先人工劃定菜壟區域,并去除其他區域,然后根據提取到的圖像獲取邊界直線方程,最后通過得到的兩條邊界曲線角平分線的方式,實現菜壟中心線的提取。具體過程見圖12。

圖12 菜壟實際中心線人工提取過程Fig.12 Artificial extraction process of real center line of vegetable ridge
試驗結果見表1。本研究提出的基于Huber損失函數的直線擬合方法,最大均方根誤差為6.864像素,最大角度偏差為2.749°。用最小二乘法對同一批次圖片進行導航基準線提取,最大均方根誤差為 11.663 像素,最大角度偏差為4.734°。本研究提出的基于Huber損失函數的導航基準線提取方法,平均均方根誤差為0.668像素,比最小二乘法高72.5%,平均角度偏差為0.273°,比最小二乘法高72.6%,處理單張圖片耗時277.1 ms,與最小二乘法處理速度相似。
在試驗的78張圖片中包含4種光照條件,本研究對這4種光照條件下的導航基準線提取進行分析,結果見表2。可見,在晴天、高光和陰天3種天氣情況下,平均均方根誤差最大差值為0.068像素,平均角度偏差最大差值為0.028°,圖像處理速度相似,且3種天氣情況的平均均方根誤差和平均角度偏差均低于78張圖片的整體偏差平均值。在晴天(帶陰影)條件下進行航基準線提取,平均均方根誤差為0.930像素,平均角度偏差最大差值為0.377°,平均耗時290.7 ms,相對于晴天無陰影條件,提取精度較低,耗時更久。

表1 2種菜地導航基準線提取算法性能評估Table 1 Assessment performance under two kinds of vegetable field navigation baseline extraction algorithm

表2 4種光照條件下菜地導航基準線提取算法性能評估Table 2 Assessment performance of vegetable field navigation datum line extraction algorithm under four illumination conditions
本研究提出了一種基于機器視覺的葉菜類蔬菜菜壟識別算法。選用改進的超綠算法對菜地圖像進行灰度化處理,再利用中值濾波進行圖像去噪,并通過二值形態學變換和連通區域提取獲得菜壟區域和邊界,最終基于Huber損失函數對菜壟邊界進行直線擬合,提取導航基準線。試驗結果表明:
1)采用改進超綠算法在進行灰度化處理,可有效降低光照條件影響。在不同光照條件下,相對于傳統超綠算法和HIS空間S分量,本研究采用的改進超綠算法受光照變化的影響最小,菜壟邊界線識別成功率為97.5%,具備較好的魯棒性。
2)基于Huber損失函數實現導航基準線的提取,在保證處理速度的同時提高了識別精度。對78幅圖片進行導航基準線提取精度驗證試驗,并與最小二乘法對比發現,本研究提出的導航基準線提取算法平均均方根誤差為0.668像素,較最小二乘法高72.5%,平均角度偏差為0.273°,較最小二乘法高72.6%,處理單張圖片耗時277.1 ms,與最小二乘法處理速度相似。