朱旭陽,唐正寧
(江南大學 機械工程學院,江蘇 無錫 214122)
玉米加工中的順向工步多為人工完成,不僅勞動強度大而且效率低。為降低用工強度和提高生產率,可通過機器視覺識別玉米的頭尾,實現玉米順向自動化設備的研制。
目前,玉米果穗的頭尾識別多用機械結構來進行區分。崔相德[1]利用玉米頭尾的直徑不同,通過一個介于頭尾直徑之間的孔洞來區別玉米果穗的頭尾。但用機械結構的區分方式具有一定的復雜性和不穩定性。因此近年來,機器視覺和機器學習被眾多學者用于果蔬的頭尾特征識別。Lin等[2]利用基于顏色分割和二值化的機器視覺系統來識別草莓帶有花萼的頭端。Antoni等[3]利用激光投影對蘋果進行三維重建,并利用卷積神經網絡來判斷其方向。田林[4]根據蒜種頭尾紋理特征的不同,通過設定識別閾值來識別蒜種頭尾。張萬里等[5]通過蓮子頭尾灰度值的不同來區分蓮子的頭部和尾部。尚志軍等[6]利用紅綠色差法和閾值分割實現枳殼果梗端的識別。王僑[7]通過提取玉米種粒的外觀特征和顏色特征,獲取白色區域輪廓線上距黃色區域形心的最遠點,完成了玉米種粒的尖端識別。機器視覺和機器學習在玉米方面的應用多為品種分類、果穗參數測量和品質檢測等。Javanmardi等[8]利用卷積神經網絡提取不同品種的玉米種子的特征,之后使用人工神經網絡來對其進行分類。劉長青等[9]利用機器視覺實現對玉米果穗長度、果穗寬度和穗行數等的檢測。李偉等[10]基于HSV顏色空間,利用濾波和形態學處理完成玉米果穗性狀的檢測。李頎等[11]通過提取并融合玉米種穗的顏色和紋理特征,利用SVM實現對4種異常玉米種穗的識別分類。高新浩等[12]通過小波分析算法獲取圖像紋理特征,結合最大熵函數判據和質量判據實現玉米品質的檢測與分類。
機器視覺和機器學習在果蔬頭尾識別的研究中已有相關應用,而在玉米頭尾識別中還不多見。課題組提出了一種基于機器視覺和機器學習的玉米頭尾識別方法。
圖像采集所用玉米采購自無錫農貿市場,選擇穗皮完整未脫落且鮮綠無枯萎的玉米作為實驗材料。采集圖像時選用500萬像素的OV5647攝像頭并將攝像頭用三角支架固定,玉米垂直正置于攝像頭正下方進行采樣。

圖1 樣本采樣
圖像采集和傳輸中常出現噪聲干擾,為排除噪聲的影響,需對圖像進行降噪處理。因中值濾波既能夠過濾掉噪聲又能使玉米邊緣輪廓不被濾波模糊,從而平滑圖像,故使用3×3的模板對圖像進行中值濾波處理。

圖2 中值濾波后的圖像
由于玉米圖像在RGB顏色空間內對光照變化產生的陰影敏感,不利于玉米圖像的分割。為消除光照陰影的影響,將玉米圖像由RGB顏色空間轉入HSV顏色空間,并提取H,S和V通道圖像。由圖3可知,S通道圖像中,玉米和背景的灰度具有明顯差異,故采用閾值分割的算法對S通道圖像進行玉米和背景分割。由于OTSU算法是一種以目標和背景的類間方差最大為標準的閾值分割算法,能夠自動確定出最佳的分割閾值,故采用OTSU算法完成圖像的二值化分割。二值化圖像如圖4所示。

圖3 S通道圖像及其灰度分布直方圖

圖4 二值圖像
初步得到的二值圖像雖然較好地將玉米目標與背景分割開來,但玉米目標的邊緣有些毛糙且連通域內存在大小不一的空洞噪聲。為更好地對玉米目標進行分割,對初得二值圖像進行3×3的十字形結構閉運算,以消除玉米目標連通域內小型空洞,平滑玉米目標的邊緣??梢钥闯觯罱K的二值圖像較好地對玉米圖像進行了分割,如圖5所示。最后,依據最終的二值圖對玉米圖像的灰度圖進行分割,如圖6所示。

圖5 閉運算后的二值圖像

圖6 分割后的灰度圖像
HOG特征是一種基于像素點的梯度大小和梯度方向的特征。該算法將圖像劃分為局部區域,通過計算其方向梯度直方圖,并以此為基礎作為圖像的特征。因其具有描述目標輪廓結構的能力,又對梯度變換敏感,因此能很好地檢測目標輪廓的差異,常被用于目標檢測與目標識別。
為減少提取圖像HOG特征時的計算量,將分割后的玉米圖像壓縮至100×100像素,并將圖像水平平均分割為上下兩部分,以玉米頭端圖像作為正樣本,將玉米尾端圖像旋轉180°作為負樣本,分別提取HOG特征。

圖8 玉米尾端
HOG特征提取流程如下:
1)Gamma矯正。對提取的玉米圖像進行Gamma矯正能夠減少光照和陰影的影響,提升圖像的對比度。
2)計算梯度。對圖像使用梯度算子[-1,0,1]和[-1,0,1]T分別進行卷積運算,得到水平方向和垂直方向的梯度,計算公式為:
Gx(m,n)=I(m+1,n)-I(m-1,n);
(1)
Gy(m,n)=I(m,n+1)-I(m,n-1)。
(2)
式中:Gx(m,n)為像素點(m,n)水平方向的梯度;Gy(m,n)為像素點(m,n)垂直方向的梯度;I(m,n)為像素點(m,n)的灰度值。
圖像中某一像素(m,n)的梯度公式為:
(3)
(4)
式中:G(m,n)為像素點(m,n)的梯度幅值;θ(m,n)為像素點(m,n)的梯度方向。
3)構建細胞單元,計算梯度方向直方圖。根據提取的玉米圖像的大小,選擇構建10×10像素的細胞單元。計算細胞單元內所有像素點的梯度幅值和梯度方向,并將梯度方向以20°為一個區間長度進行劃分,得到bins數為9,再將細胞單元內所有像素點的梯度幅值根據梯度方向大小投到相應的bins中,即得到梯度方向直方圖。由此,一個細胞單元可得到一個9維的特征向量。
4)構建塊,并進行歸一化。選擇構建20×20像素的塊,一個塊中包含4個細胞單元,即包含4個梯度方向直方圖。由此,一個塊可得到一個36維的特征向量。為了更好地消除光照和陰影的影響,對這個36維的特征向量進行歸一化處理。
5)獲取HOG特征。將20×20像素的塊以10像素為步長歷遍整個100×50像素的玉米圖像,則塊水平移動9次,垂直移動4次,再將每次得到的36維的特征向量串聯起來。由此,一個樣本可得到一個1 296維的特征向量,并以此作為該圖像的HOG特征。
由于提取的HOG特征是1 296維的特征向量,當特征向量的維數較多時,往往存在著數據冗余和一些噪聲,同時影響著分類器的復雜程度、分類效率和分類準確性。因此需要在保留有效數據信息的前提下,對特征向量進行降維。
主成分分析(PCA)是一種常用的降維方法,其通過線性變換將高維特征運算變為低維特征,從而達到特征向量降維的目的。其過程如下:

(5)
式中:P為特征樣本個數;xi為特征樣本。
2)由式(6)求協方差矩陣Σ:
(6)
3)求出協方差矩陣Σ的前M個特征值后按從大到小排序,并求出特征值對應的特征向量集A={a1,a2,…,aM},并按式(7)歸一化所有特征向量:
(7)
式中:M為要降至的維數;ai為協方差矩陣Σ的特征向量。

(8)
(9)
7)最終得到降維后的特征樣本集Y={y1,y2,…,yp}。
某個主成分的方差與所有主成分的方差的比值稱為貢獻率,前M個主成分貢獻率的累積稱為累積貢獻率。為保留數據信息的完整性,后續以累積貢獻率為參照選取主成分數目。
支持向量機(SVM)是一種多用于二分類問題的分類器。它通過在高維空間里尋找一個超平面,使得2類支持向量之間的距離最大化,繼而使用該超平面劃分這2類,從而解決二分類問題。
設有樣本集(ui,vi),i=1,2,…,N;其中ui為樣本的特征向量,vi為樣本標簽,正樣本標簽為1,負樣本標簽為-1。設超平面方程為:
wTu+b=0。
(10)
式中:w和b為超平面參數。
則某一樣本點的ui到超平面的距離d為:
(11)
通過放縮超平面方程的參數,使得支持向量到超平面的距離d*為:
(12)
于是可得出SVM的目標函數和限制條件為:
(13)
由此轉為一個二次規劃問題,可以求得超平面參數解w*和b*,從而得出超平面方程:
w*Tu+b*=0。
(14)
繼而得出分類器f(u):
f(u)=sgn(w*Tu+b*)。
(15)
為使用SVM處理非線性問題,可引入懲罰因子C和松弛變量ξ,并通過映射函數φ(u)把樣本映射到高維空間,則SVM的目標函數和限制條件變為:

(16)
引入拉格朗日乘子α和β,并將ξi取其相反數而形成新的ξi,即可得到拉格朗日函數L:
(17)
對w,b,ξ求偏微分可得到對偶問題:
(18)
式中k(ui,uj)為核函數。
由此,可求出解α*,從而得出超平面方程:
(19)
繼而得出分類器f(u):
(20)
試驗在Corei5CPU、8 GiB內存的環境下進行測試。選取800幅采集的玉米圖片構成數據集進行試驗,其中80%作為訓練集,20%用作測試集。
對數據集進行預處理,得到處理后的玉米圖像,然后將圖像水平分割為上下2部分,并對分割后的圖像進行標記:玉米頭部圖像為正樣本,記為+1;玉米尾部旋轉圖像為負樣本,記為-1。由此,數據集共1 600個樣本,正樣本和負樣本各占比50%。
對得到的分割圖像提取其HOG特征,并對特征進行PCA降維。當主成分數目為150時,累積貢獻率達到90%;當主成分數目為230時,累積貢獻率達到95%。95%累積貢獻率保留了大部分的原始數據信息,因此選取前230個主成分作為降維后的HOG特征。

圖9 主成分數目對累積貢獻率的影響
為了試驗核函數的選取對支持向量機分類準確性的影響,試驗選取了線性核函數、多項式核函數、高斯核函數和sigmoid核函數。選取一對一的分類方式,并對支持向量機的參數進行尋優。
以高斯核函數為例,其表達式如下:
k(ui,uj)=exp(-g‖ui-uj‖2)。
(21)
式中g為高斯核參數。
對懲罰因子C和高斯核參數g設定一些選擇范圍,并將其兩兩組合,每次選取一組參數作為支持向量機的參數;再將訓練集平均分為10份,選取1份作為驗證集,剩余9份作為訓練集;使用訓練集對支持向量機進行訓練,使用訓練的支持向量機對驗證集進行分類,得到驗證集分類結果的正確率。再選取另外1份作為驗證集,剩余9份作為訓練集,重復上面的驗證,直到10份都作過驗證集,將驗證集分類的準確率進行平均來作為該組參數的性能參考。歷遍所有參數組合后,比較驗證集分類的平均準確率以得到支持向量機的參數。
試驗使用訓練集降維后的HOG特征對支持向量機進行訓練,然后使用訓練的支持向量機對測試集降維后的HOG特征進行預測,最終得到的分類準確率如表1所示。

表1 不同核函數的支持向量機的分類準確率
為測試不同分類器對本試驗的分類性能,在相同的試驗環境和數據集下,選取最近鄰(KNN)和隨機森林(RF)對訓練集進行十折交叉驗證,以十折交叉驗證得到的分類器對測試集進行分類的準確率作為該分類器的分類準確率,試驗結果如表2所示。

表2 不同分類器的分類準確率
課題組提出一種基于機器視覺和機器學習玉米頭尾識別方法進行玉米頭尾識別。試驗結果表明:相比于最近鄰、隨機森林和其他核函數的支持向量機,使用高斯核函數的支持向量機對降維的HOG特征進行分類能夠得到更高的準確率,分類準確率達到97.2%,實現了玉米頭尾的有效識別。
課題組提出的方法為玉米頭尾識別提供了思路和依據。試驗存在樣本量較小和分類器參數優化的問題,后續可增大樣本量并通過其他尋優算法來優化分類器參數,從而進一步提高分類器的魯棒性。