鄭如新,孫青云,肖國棟
(1. 南京林業大學機械電子工程學院,南京市,210037; 2. 天津微深科技有限公司,天津市,300000)
隨著科技水平的逐漸提高,不僅要求機器視覺能夠在工業上面有所應用,而且還要應用于農林業領域,對復雜背景下機器視覺的應用提出了更高的要求[1-3]。當前,利用機器視覺識別一些植物和林果已成為研究熱點。由于金銀花屬清熱解毒藥中的重要藥物,且在面對2020年初突發的新冠肺炎疫情方面,金銀花在治療患者方面也發揮了其重要的作用[4]。因此,金銀花的需求量逐漸增加,但是,在金銀花生產產業化方面,金銀花的采摘工作一直是難以克服的問題,因為金銀花從花蕊到開花也就短短幾天的時間,而金銀花的花蕊才是可以采摘下來做成中藥的重要的成份,一旦開了花就失去了其意義,所以要在有限的時間內采摘盡可能多的金銀花,不僅勞動強度大,而且時間也緊迫,耗時費力,將金銀花種植的成本抬高了。
在進行植物采摘的過程中,首先要對圖像進行預處理,提高圖像質量。蘇博妮等[5]對草莓進行了圖像處理,添加了0.02的椒鹽噪聲,分別利用中值濾波、維納濾波和均值濾波去降噪,最后發現中值濾波的效果最好。王麗麗[6]對番茄的識別定位進行了研究,通過利用Otsu算法來從背景中分割出成熟番茄,再選擇番茄所在的特征區域,得到了匹配點的三維坐標,識別番茄成功率達到99%。金理鉆[7]研究了黃瓜采摘機器人,對于黃瓜,采用了識別提取紋理的方法進行了特征匹配并定位,最后灰度共生矩陣能夠算出14種紋理特征,由于計算量大,實際中不可取,因此也需要不斷改進。張瑞華等[8]針對獼猴桃的識別,由于獼猴桃自身呈現橢圓狀,所以采用了Hough變換的方法來對獼猴桃進行特征匹配。由于獼猴桃的種植背景復雜,非目標物體太多,故采用最小外接矩形法來縮小目標區域,運用橢圓形擬合獼猴桃果實的處理面積,同時也提高運行效率。然而在針對金銀花的識別采摘技術還停留在人工操作階段,缺少對金銀花識別的研究,無法達到自動化程度[9],因此本文將著手對金銀花的識別進行研究。通過機器視覺的基礎,研究了金銀花的識別。首先利用了圖像預處理的方法對金銀花圖像金銀處理,再利用顏色空間模型的方法結合形態學運算對金銀花進行閾值分割操作,成功將金銀花從背景中分割出來。之后利用邊緣檢測Canny算法金銀花進行檢測,再對傳統的Canny算法進行改進,將改進后的Canny算法運用到金銀花的檢測中,最后進行試驗對比。
試驗硬件設施:大恒水晶系列相機(型號為MER—500—7UC),其分辨率為2 592 dpi×1 944 dpi,幀率為14 fps,像元尺寸為2.2 μm×2.2 μm,與鏡頭的接口為C接口。同時搭載了型號為gx—0816,焦距為8 mm的光學鏡頭,工作距離在300 mm左右,一臺內存為8 G并且裝配有Windows操作系統與HALCON軟件的工業計算機,相機是通過USB2.0標準接口與計算機相連接并實時采集圖像。將采集到的圖像通過USB2.0傳輸到計算機上面,開始對圖像進行處理操作,圖像處理系統為HALCON,如圖1(a)所示,同時采集的金銀花實物圖如圖1(b)所示。由于試驗條件有限,將金銀花移植在實驗室中進行試驗,針對簡單背景下的金銀花識別研究,流程圖如圖2所示。


(a) 金銀花圖片采集實際環境 (b) 金銀花采集圖片圖1 金銀花采集設備Fig. 1 Honeysuckle collection equipment

圖2 流程圖Fig. 2 Flow chart
通過相機采集金銀花圖片,使用HALCON圖像處理軟件進行讀取,在得到彩色圖片之后,將圖片轉到RGB模型空間中,之后再將圖片轉到HSV顏色空間中與RGB模型空間進行對比,找出金銀花與背景分離效果最好的顏色分量,通過閾值分割將金銀花從背景中分割出來,再運用形態學處理方法對金銀花進一步處理。
本文采用的是中值濾波算法來對圖像進行雜點和噪音的消除。中值濾波算法是以像素為中心,取一個指定形狀的領域作為濾波器。然后將該區域內的像素灰度值進行排序,以排序結果的中間值作為灰度計算結果賦值給該區域內的像素。具體數學表達式如式(1)所示。
Y(i,j)=median(X(i,j))
(1)
式中:X(i,j)——輸入圖像的灰度值;
Y(i,j)——輸出圖像的灰度值;
median函數——返回該窗口總像素值的平均值。
對原圖像進行中值濾波處理,如圖3所示。

圖3 中值濾波處理Fig. 3 Median filtering processing
RGB[10]是最為熟悉的一種表示顏色的方式。彩色圖像的每個像素擁有3個通道,各8位,分別表示紅色、綠色、藍色3個分量,各自的取值范圍都為0~255。因此,任意顏色F都可以由三種基本色不同程度的混合而成,即
F=r(R)+g(G)+b(B)
(2)
式中:R——紅色分量;
G——綠色分量;
B——藍色分量。
該顏色模型空間對顏色的表達較為準確,因為沒有進過其他色彩空間的轉換,圖像信息幾乎沒有丟失。具體的模型圖如圖4所示。
圖片預處理過后再通過RGB顏色空間模型對圖像進行處理,結果如圖5所示。

圖4 RGB顏色空間模型Fig. 4 RGB color space model


(a) R分量 (b) G分量

(c) B分量圖5 RGB分割圖Fig. 5 RGB partition diagram
HSV[11]顏色空間模型為六角錐體模型,其中模型參數:色調(H)、飽和度(S)、純度(V)。其中色調H為色彩信息,其取值范圍為0~360°。具體的模型圖如圖6所示。

圖6 HSV顏色空間模型Fig. 6 HSV color space model
該模型沿水平軸測量飽和度,100就代表顏色飽和。取值范圍為0.0~0.1,值越大越飽和。明度V表示顏色明亮的程度,通常取值范圍為0%(黑)~100%(白),在模型中,V是從圓錐底部的0變化到頂部的1,表示的是所選色彩與該色彩最大明度的比率。其中H分量的計算公式如式(3)所示。
(3)
接著再對預處理后的圖片進行HSV顏色空間處理,比較RGB空間模型與HSV中的分量,得出最容易從背景中分割出金銀花的分量,如圖7所示。


(a) H分量 (b) S分量

(c) V分量圖7 HSV分割圖Fig. 7 HSV segmentation diagram
通過比較可以看出,在6個分量中,可以看出分量B與背景和金銀花的枝葉、枝干區分較為明顯。
通過第2節可以知道,B分量區分效果最佳。因此可以對B分量進行閾值分割,通過閾值分割來將金銀花識別出來。閾值分割是一種按圖像像素灰度幅度進行分割的方法,把圖像的灰度分成不同等級,然后設置灰度門限(閾值)的方法確定目標區域或邊界,閾值法也是一種簡單有效的圖像分割方法[12-14]。本文采用根據直方圖谷底確定閾值法來將圖像從背景中分割開來,達到提取目標的目的。按下式進行二值化,就可將目標有效的提取出來,具體計算公式如式(4)所示。

(4)
式中:g(x)——閾值運算后的二值圖像;
f(x,y)——原始灰度圖像的二元函數;
T——分割閾值。
按照上述閾值分割方法在拍攝的圖像中將工件與背景分割開來如圖8所示。

(a) 金銀花圖像分割圖

(b) 金銀花圖像灰度直方圖圖8 金銀花提取Fig. 8 Honeysuckle extract
在HALCON中調用算子threshold,并設定閾值在109~255,在這范圍之內的像素都會被選中,這樣就可以將金銀花成功地從背景中分割開來。
在對金銀花進行閾值分割之后,往往其目標的完整性不能達到理想狀態,因此需要利用形態學運算,使目標變得更為完整。
腐蝕與膨脹是形態學的基礎,在圖像處理過程之中,往往需要將腐蝕與膨脹相結合起來運用對圖像進行處理[15]。腐蝕與膨脹都是屬于一次運算,而一次運算往往不能達到令人滿意的圖像處理效果,所以就需要涉及開運算和閉運算的二次運算,所謂的開運算就是先腐蝕后膨脹,減少圖像像素,閉運算就是先膨脹后腐蝕,增加圖像像素。
集合A被結構元素B作開運算,記為A°B,其定義如式(5)所示。
A°B=(AΘB)⊕B
(5)
集合A被結構元素B作閉運算,記為A?B,其定義如式(6)所示。
A?B=(A⊕B)ΘB
(6)
對金銀花圖像進行閾值分割后,由于非目標信息也被分割出一部分,因此只需對其進行閉運算將其去除即可,閉運算結果如圖9所示。

圖9 金銀花閉運算效果圖Fig. 9 Effect picture of honeysuckle closed operation
提取金銀花目標,由于通過閾值分割法會識別連通區域,導致識別出的目標物體誤差稍大。因此還可以通過提取邊緣的方式來獲得目標。在圖像處理中,邊緣信息也是重要的圖像特征信息,一般是使用Canny算法對圖像的邊緣進行提取。
Canny算法首先使用二維高斯平滑濾波對圖像進行去噪處理,其表達式如式(7)所示。
(7)
式中:σ——高斯標準差,控制著平滑去噪的程度;
G(i,j)——像素點(i,j)的灰度值。
在通過平滑濾波處理后,需要計算圖像梯度值,往往是利用求偏導數的方法,采用2×2鄰域一階偏導的有限差分來計算數據陣列(x,y)平滑后的梯度幅值和梯度方向。點(i,j)處兩個方向的偏導數Gx(i,j)和Gy(i,j)分別表示如式(8)和式(9)所示。
Gx(i,j)=[I(i,j+1)-I(i,j)+I(i+1,j+1)-I(i+1,j)]/2
(8)
式中:I(i,j)——卷積運算濾波后的圖像。
Gy(i,j)=[I(i,j)-I(i+1,j)+I(i,j+1)-I(i+1,j+1)]/2
(9)
其中,梯度方向和梯度值計算如式(10)和式(11)所示。
(10)
(11)
在Canny算法的高斯平滑濾波中,由于高斯標準差σ是隨機選取的,導致圖像平滑濾波效果不理想,噪點去除不充分,存在一些檢測上的缺陷。因此,針對此缺陷,提出了一種使用自適應高斯—中值濾波算法代替傳統的高斯平滑濾波算法,主要為了解決標準差σ隨機選取的問題[15-19]。具體算法步驟如下。
1) 首先定義G(x,y)為像素點(x,y)的圖像灰度值大小,并對圖像進行中值濾波處理。
2) 在對圖像進行中值濾波后,再進行自適應高斯濾波處理,先利用二維高斯濾波函數生成高斯核,公式如式(12)所示。
(12)
式中:k——高斯核半徑。
可根據方差大小求得高斯標準差σ,方差大小的計算如式(13)所示。
(13)
式中:Si,j——中心點(i,j)的卷積窗口。
由式(9)和式(10)可得到式(14)。由于方差是一個常數量,所以W(i,j)和G(i,j)是一個反比例關系。對W(i,j)取不同數值,反復迭代,從而形成一種自適應高斯濾波。
(14)
通過HALCON軟件來實現目標邊緣信息的提取,如圖10所示。


(a) 改進的Canny算法 (b) 經典Canny算法圖10 金銀花邊緣檢測結果Fig. 10 Edge detection results of honeysuckle
可以看出,經典Canny算法在使用的過程中會標記出對目標物理無用的輪廓,而有用的輪廓中邊緣雜線較多,無法做到對目標的正確識別。
此次識別主要是針對金銀花而言,而非金銀花部分,如樹枝、樹葉、背景等等則需要過濾掉。因此本文通過試驗來驗證上述算法的實用性。試驗結果圖如圖11所示,圖11(a)在閾值分割下智能識別出4朵金銀花;圖11(b)在傳統Canny算法程序下識別出4朵金銀花,存在許多雜亂線條,導致結果不理想;圖11(c)在改進的Canny算法下,識別出了6朵金銀花,且效果較好。最后通過選取8株金銀花,每株上存在6朵金銀花,試驗結果如表1所示。


(a) 閾值分割 (b) 傳統Canny算法

(c) 改進的Canny算法圖11 試驗結果Fig. 11 Experimental results

表1 算法識別結果Tab. 1 Algorithm recognition results
對于閾值分割法識別率為79.17%,傳統Canny算法識別率為66.67%,改進Canny算法識別率為93.75%,對于閾值分割法,由于光線和顏色的原因所以導致識別率不高,而傳統的Canny算法會使得識別出的邊緣較多,線條砸亂,不能夠完全識別出目標。對于改進過后的Canny算法可以看出,識別率明顯增加。
本文研究了基于圖像處理技術的金銀花識別方法,通過閾值分割和邊緣檢測方法對金銀花進行了識別研究。包括顏色閾值分割和邊緣檢測兩種方法,可以看出,在顏色空間試驗模型中,B分量可以很好地將金銀花從背景中分割開來,達到識別效果,但是由于閾值分割法會識別連通區域,導致識別結果出現誤差,因此又采用了經典的Canny算法試驗來對金銀花進行識別研究,之后又通過改進Canny算法,進一步對金銀花進行識別試驗。最后對于閾值分割法試驗的識別率為79.17%,傳統Canny算法試驗的識別率為66.67%,改進Canny算法識別率為93.75%,最終改進的Canny算法相對于前兩種方法,效果較好,同時也增加了Canny算法的實用性。