劉彩玲 岳荷荷
(山西農業(yè)大學軟件學院 山西 太谷 030800)
將計算機視覺技術和農作物圖像識別相結合可以減緩人工識別結果的主觀性和提升識別的速度。圖像的特征表示是識別的關鍵,常見的特征有圖像的大小、顏色、形狀、紋理等。采用PCA[1]、KPCA[2-3]等算法對圖像矩陣降維后表示特征,這些特征都是低層特征,文獻[4-7]研究者采用該方法對雜草種子圖像進行識別,取得了較好的結果。組合低層特征形成較高層次的特征,即深度特征學習[8-10],相比低層特征,大部分采用深度特征表示圖像的方法有更好的識別率。提取圖像高層特征的關鍵是特征提取網絡中的特征模板。常見的深度學習神經網絡有DNN[11]、CNN[12]、RNN[13]、GAN[14]等,而PCANet[15-19]是其中一種簡單的特征提取CNN網絡,其采用PCA算法計算特征模板,在雜草種子圖像識別上取得了較好的識別率。LDA算法和KPCA算法都是比較常見的降維方法,但是LDA方法是有監(jiān)督的降維方法,需要知道每一個訓練樣本的類別,而特征提取網絡是將一個圖像分割為多個分片,提取每一個分片的特征。因此考慮將同一類圖像的所有分片作為一類,但是實驗結果表明,采用LDA算法計算特征模板的識別率遠不如PCA算法,所以將同一類圖像的所有分片作為一類不合適。雖然KPCA算法考慮了圖像的高階相關性,但是由于一個圖像會分割成大量的分片,導致計算量很大。
采用PCA等算法計算特征模板時,需先將二維圖像表示為一維向量,然后計算協(xié)方差矩陣,并計算特征向量,這種方法不僅計算量很大,而且在計算相關性時可能會破壞圖像的二維結構,丟失像素點行列之間的關系信息。而本文改進后的(2D)2-PCANet采用(2D)2-PCA[20]計算網絡的特征模板。2DPCA[21-23]算法是直接對二維矩陣求協(xié)方差矩陣,然后計算特征向量進行特征提取的,不需要轉換為一維向量后再計算協(xié)方差矩陣,不僅計算量小,而且相比PCA方法,保留了行列之間的相關性信息。但是2DPCA算法相比PCA需要更多的空間表示圖像,因此圖像識別速度較慢。本文采用(2D)2-PCA計算特征模板,先對行進行降維,再對列進行降維,相比2DPCA算法減少了所需空間,但也導致可能丟失更多圖像信息。為了彌補減少輸出個數、加快識別速度而降低的圖像識別率,本文對計算出的特征模板進行特征訓練,通過減小每一層圖像的重構誤差來進一步提高識別率。實驗結果表明,相比PCANet,使用帶特征訓練的(2D)2-PCANet取得了較高的識別率。
本文實驗采用的雜草種子圖像數據集包括211個類別,共9 191幅彩色圖像,每幅種子圖像的大小為110×80像素。部分種子圖像如圖1所示。
圖1 部分種子圖像
本文構建了兩個兩層特征提取網絡PCANet和(2D)2-PCANet。首先采用PCA和2D2-PCA算法計算每層的特征模板,然后通過該層的輸入和相應的特征模板做卷積即可得到每一層的輸出,并將最后一層的輸出二值化,減少圖像表示特征的維數,最后將網絡的輸出輸入到SVM分類器中進行圖像識別。
PCA與2DPCA算法都是主要用于提取圖像特征表示圖像并進行圖像識別的,本文將這兩種算法分別用于兩層網絡的圖像分片的特征提取中。設N個m×n圖像矩陣Ii(i=1,2,…,N)是獨立同分布的隨機圖像樣本,它們的列拉直向量為ai(i=1,2,…,N)。
1.2.1PCA特征模板
假定Ii∈Rm×n×3表示每幅彩色種子輸入圖像,為了構建兩層卷積特征提取網絡,首先需確定特征模板值,然后采用該模板和每幅輸入圖像做卷積得到輸出。因此為了計算方便,在網絡的第一層,首先將輸入圖像分割為大小為k1像素×k1像素×3通道有重疊的分片,為了將圖像中所有的特征都提取出來,設分割步長為1,則每幅輸入圖像可分割為s1s2個有重疊的分片,其中,s1=m-k1+1,s2=n-k1+1。然后將每個圖像分片去均值并表示成一個列向量ai,j∈R3k1k1,將每幅圖像的所有分片向量表示成矩陣Ai=[ai,1,ai,2,…,ai,j,…,ai,s1s2],其中ai,j表示圖像i的第j個分片。假設訓練集中有N幅種子圖像,則訓練集中所有圖像的分片向量構成矩陣A=[A1,A2,…,AN]。
(1)
通過類似的方法計算該兩層PCANet卷積網絡模型中每層的特征提取模板。
1.2.2(2D)2-PCA特征模板
(2)
通過類似的方法計算兩層卷積網絡模型中每層的特征提取模板。
p=1,2,…,d1q=1,2,…,d2k=1,2,3
(3)
實驗表明,對于彩色圖像,如果對輸出結果進行稀疏,即增強每幅圖像中的明顯特征,同時弱化圖像中的不明顯特征,可以提升圖像的識別率。對每個輸出結果采用式(4)進行稀疏處理,其中:sign()表示符號函數;max()表示求最大值函數;abs()表示求絕對值函數。
(4)
l=1,2,…,L2p=1,2,…,g1q=1,2,…,g2
k=1,2,…,U
(5)
(6)
(7)
對于Ii在第二層的R個輸出,本文將每個輸出分為B塊,每塊的大小為b1×b2。對于每個輸出中的每塊,計算十進制0至2L2-1的直方圖,將每塊化作長度為2L2的向量。然后將這B塊對應的向量連接起來作為
(8)
雖然特征網絡在采用權值初始化方法初始化各層的權值后,不需要再增加權值訓練即可取得較好的識別率,但是當網絡的輸出個數較少時會丟失部分主成分,而當網絡的輸出個數較多時,會增加表示圖像特征向量的長度,從而增加分類的復雜性,并且圖像的識別率不會隨著輸出數量的增加而一直增加。因此可以在保持輸出個數一定的情況下,對網絡的權值進行訓練,提升圖像識別率的同時,并且分類時間不長。
(9)
(10)
(11)
(12)
由于Yi是稀疏的,故本文采用Sparse Orthonormal Transforms(SOTs)[25]稀疏正交交換權值訓練方法,其在滿足輸出矩陣稀疏的條件下,通過求使得跡最小的權值矩陣來訓練權值。SOTs不僅所需的訓練時間較短,并且不會隨著訓練集中樣本的增加而占用更大的內存,占用內存的大小只與每個樣本圖像分片的大小有關,而與訓練集中樣本的數量無關。
(13)
(14)
本文采用逐層訓練方法,首先訓練第一層的行列權值模板,然后固定第一層的模板。采用類似的方法訓練第二層的權值。
本文將深度卷積網絡的輸出輸入到SVM[26]分類器中,對雜草種子圖像進行分類。雜草種子圖像訓練集中共包含N幅訓練圖像,經過兩層(2D)2-PCANet后即可得到所有訓練圖像的特征表示,用矩陣F=[f1,f2,…,fN]∈RN×2L2UB表示。每幅圖像都有確定的類別mi,若將所有圖像的類別表示為一個向量M,則M=[m1,m2,…,mN]∈RN。根據任意兩類種子圖像的特征和類別,為它們構建一個SVM模型。對于測試數據集中的每幅圖像,首先根據(2D)2-PCANet得到圖像的特征表示,然后將其輸入到每一個SVM模型中,得到該測試種子圖像的可能類別。每個SVM模型會給出一個預測類別和預測概率,SVM分類器將最大概率的類別作為該測試種子圖像的最終類別。
本文隨機地將數據集分為訓練數據集和測試數據集兩部分,其中80%的種子圖像,共7364幅圖像作為訓練數據,20%的種子圖像,共1827幅圖像作為測試數據。
對于本文設計的兩種兩層特征網絡,第一層的特征數為18,第二層的特征數為9。對于(2D)2-PCANet第一層的18個輸出,將第{x,x+6,x+12}(x=1,2,…,6)個輸出作為第二層網絡的一個輸入;對于PCANet的第一層的18個輸出,將第{(x-1)×3+1,(x-1)×3+2,(x-1)×3+3}(x=1,2,…,6)個輸出作為第二層網絡的一個輸入。因此第二層共6個輸出。如表1所示,通過實驗比較(2D)2-PCANet在不同分片大小下的識別率可知,當k1=5,k2=7時識別率較高,為97.04%,由此網絡得到的圖像表示向量為138240維。
表1 不同分片的識別率
對于PCANet的第一層的18個特征模板,取PCA特征矩陣的前18個特征值較大的特征向量作為特征模板,每個特征模板是75維的向量,由于原始圖像為彩色圖像,因此可以將其表示成一個5×5×3的矩陣,每個5×5的矩陣用于提取1個顏色通道的特征。類似第一層計算特征模板的方法,可以計算出PCANet第二層的9個特征模板,每個特征模板是147維的向量,由于將第一層的每3個輸出組合作為第二層的1個輸入,因此將其表示成1個7×7×3的矩陣,分別用于每幅輸入圖像的特征提取。
(2D)2-PCANet采用(2D)2-PCA計算特征模板,從行和列的角度同時降維的,因此既有行特征模板又有列特征模板,經過多次實驗,得出當行特征模板為5×3的矩陣、列特征模板為5×2的矩陣時的識別率較高。(2D)2-PCANet將原始圖像的3個顏色通道看作3幅圖像,因此每幅圖像經過第一層的特征提取后有18個輸出。類似第一層計算特征模板的方法,可以計算出(2D)2-PCANet第二層的2個特征模板,經過多次實驗,得出當行特征模板為7×3的矩陣、列特征模板為7×1的矩陣時的識別率較高,由于將第一層的每3個輸出組合作為第二層的1個輸入,因此每幅圖像經過第二層的特征提取后有9個輸出。
圖2為(2D)2-PCANet深度卷積網絡模型,每一層只列出了部分輸出。原始的種子圖像經過第一層的特征提取后,會得到18個輸出,圖中只列出了第一層的3個輸出,第一層的每3個輸出組合在一起作為第二層的1個輸入,因此每幅圖像在第二層會產生6組輸入,每組輸入經過第二層的特征提取會產生9個輸出,圖中只列出第二層的1個輸入和其3個輸出。然后將第二層的1個輸入產生的9個輸出二值化并轉換成1個十進制矩陣。最后計算直方圖,得到該圖像的一個表示向量,將其輸入到分類器中進行分類??梢钥闯觯啾纫粚泳W絡,兩層網絡可以提取圖像更多的特征,可以更好地表示圖像,因此深度網絡可以提高圖像的識別率。
圖2 (2D)2-PCANet深度卷積網絡模型
圖3分別為存在0%、5%、10%、15%、20%缺損的種子圖像,存在0%缺損的測試集是由所有訓練網絡的訓練集和測試集中的種子圖像構成的,共9 189幅圖像。表2為兩種網絡對不同缺損程度的雜草種子圖像的識別效果,由識別結果可知,相比PCANet,(2D)2-PCANet對存在缺損的種子圖像的識別率會更好一些,對于存在20%缺損的種子圖像,(2D)2-PCANet的識別率為74.05%,而PCANet的識別率為71.78%。
(a)0% (b)5% (c)10% (d)15% (e)20%
表2 兩種網絡對缺損圖像的識別率
圖4分別為存在0°、30°、60°、90°旋轉的種子圖像,表3為兩種網絡對不同旋轉程度的雜草種子圖像的識別效果。對于存在旋轉的種子圖像,在識別時首先采用PCA方法對圖像進行旋轉,如圖5所示,先通過增加背景的方式使長和寬相等,然后采用PCA方法計算主向量,計算旋轉角度,使得圖像不再有大幅度的旋轉,將旋轉后的圖像通過切割背景的方式和原圖像等長寬,最后再將旋轉后的種子圖像輸入到兩個網絡。由表3的識別結果可知,相比PCANet,(2D)2-PCANet對存在旋轉的種子圖像的識別率會更好一些,對于存在90°旋轉的種子圖像,(2D)2-PCANet的識別率為70.65%,而PCANet的識別率為68.66%,對于存在10°旋轉的種子圖像,(2D)2-PCANet的識別率為98.38%,而PCANet的識別率為93.06%。
(a)0° (b)30° (c)60° (d)90°
表3 兩種網絡對存在旋轉的圖像的識別率
圖5 采用PCA旋轉圖像
圖6和圖7分別為在y方向和x方向存在偏移的圖像。表4和表5分別為兩種網絡對不同方向偏移的種子圖像的識別效果。可以看出,相比PCANet,(2D)2-PCANet對存在缺損的種子圖像的識別率會更好一些。對于向右存在10 px偏移的種子圖像,(2D)2-PCANet的識別率為73.03%,而PCANet的識別率為63.68%;對于向下存在10 px偏移的種子圖像,(2D)2-PCANet的識別率為66.64%,而PCANet的識別率為63.41%。
圖6 在y方向存在偏移的圖像
圖7 在x方向存在偏移的圖像
表4 兩種網絡對在x方向存在偏移的圖像的識別率
表5 兩種網絡對在y方向存在偏移的圖像的識別率
為提高圖像的識別率,給網絡增加了權值訓練,表6列出了β為不同值時的識別率,由表可知,當β=0.005時,識別率最高,達到97.84%。
表6 增加權值訓練的網絡對圖像的識別率
盡管采用增加了模板訓練的(2D)2-PCANet取得了較好的識別效果,但還是有部分種子會被識別錯誤,圖8列出了部分被識別錯誤的種子圖像,可以看出,有的被錯誤分類的圖像間是非常相似的,這也說明提取的圖像的特征區(qū)分度不夠。
圖8 錯誤識別的種子圖像
本文基于(2D)2-PCANet提取雜草種子圖像的特征,并采用SVM進行分類,取得97.04%的識別率,相比PCANet的96.44%的識別率要更好一些,增加權值訓練的(2D)2-PCANet最高取得97.84%的識別率。采用兩種網絡分別對存在缺損、旋轉和偏移的種子圖像進行識別,(2D)2-PCANet的識別率更高。下一步將優(yōu)化特征模板的初始計算方法,且對于兩層以上的網絡,可以采用重構到初始輸入的方法來訓練特征模板。