?

基于深度學習的蘑菇種類識別算法研究*

2019-07-04 05:56
中國食用菌 2019年6期
關鍵詞:張量梯度灰度

羅 奇

(武漢體育學院 體育工程與信息技術學院,湖北 武漢 430079)

蘑菇含有大量的蛋白質和多種氨基酸,因而味道鮮美深受人們喜愛[1]。我國的蘑菇種類有400多種,70% 左右的蘑菇是可以食用的,但也有近100種蘑菇是有毒的,誤食會危及身體健康乃至生命。因此,十分有必要進行蘑菇種類的識別,人工識別受經驗限制,許多蘑菇的外觀非常類似,如可致病的亮黃蘑菇在外觀上和可食用的蘑菇外觀上幾乎沒有區別。因此,借助計算機圖像識別技術來自動識別蘑菇種類在近年來成為了機器學習研究的熱點[2]。

在長期的生產生活實踐中,人們拍攝了大量的蘑菇照片,這些照片包括野外的蘑菇生長照片,也有蘑菇植物標本照片等,從數以萬計的照片中對蘑菇進行分類識別,需要耗費大量的人力資源,也不切實際[3]。因此,使用計算機視覺和機器學習的圖像識別方法被應于蘑菇種類的識別中,從海量的蘑菇圖片中自動識別蘑菇種類成為了可能[4]。

作為一種重要的深度學習模型,卷積神經網絡(CNN)近年在計算機圖像識別中都取得很大的成功,其識別效率也不斷提高。但傳統的卷積神經網絡生成的特征圖在空間維度上還存在有大量的冗余,圖像處理效率上還不算高效[5-7]。文章利用圖片的頻率分離和壓縮中原理,對傳統的卷積網絡也進行頻率壓縮,分別處理高低頻兩個部分的數據,并在二者之間進行信息交換,從而減少傳統卷積神經網絡運算對存儲和計算量的消耗[8],提高圖像識別性能。

1 相關原理

將蘑菇圖像按照其灰度值變化的速率(即變化快慢程度)分成兩部分[9],一部分是顏色變化緩慢的低頻部分,那么剩余的就是顏色變化快的部分,即高頻部分,高頻部分實質上就是圖像的邊緣,因為只有灰度急劇的變化才能出現邊緣的現象,圖像才會呈現明顯的差別,所以其圖像頻率都比較高。而圖像邊緣內的內容就是低頻部分,是一張圖像的大部分信息,即圖像的大致概貌和輪廓,是圖像的近似信息。

對于蘑菇圖像來說,還有兩個圖像指標也在高頻部分。一個是圖像的細節也是屬于灰度值急劇變化的區域,正是因為灰度值的急劇變化,才會出現細節;另外一個就是圖像噪聲(或者噪點),某個像素所在的位置之所以會出現噪點,就是因為它與正常點的顏色出現了明顯的差別,也就是說該像素點灰度值明顯不同于其它區域,從而產生了灰度上顏色快速改變,因此有噪聲一般也都出現在圖像的高頻部分[10-11]。

對于蘑菇圖像來說,如果由于拍攝光線或角度的問題,成像的背景顏色與蘑菇主體顏色差別較小融為一體,那么人眼識別蘑菇體時也會出現問題,其原因就是沒有亮度和顏色的變化,整個成像大面積是一片灰度變化緩慢的區域,對應的頻率值很低。因此,拍攝成像時必須能夠讓蘑菇主體的邊緣與背景出現高亮或陰影,呈現出邊緣的輪廓線條,這些線條就是顏色灰度的分界,就是成像一片灰度變化劇烈的區域,其對應的圖像頻率值較高,能夠呈現出邊緣細節,以便更好地勾勒出蘑菇主體輪廓,從而識別出蘑菇主體特征進行分類[12]。

因此,將卷積特征映射分解成不同空間頻率的兩個組,將蘑菇圖像中的低頻率部分進行壓縮,以減少冗余空間,利用卷積神經網絡中卷積層的輸出特征映射來模擬拍攝的蘑菇照片,將不同頻率信息進行混合處理和信息交換,并分別以相應的頻率處理不同的卷積,從而減少卷積運算對存儲和計算量的消耗。

2 實現方法

2.1 蘑菇圖像的特征表示

對于傳統的卷積神經網絡來說,我們使用傅立葉變換將蘑菇圖像從空間域轉換到頻率域,也就是說將蘑菇圖像的灰度分布函數變換為圖像的頻率分布函數[13]。所有輸入和輸出特征映射都具有相同的空間分辨率,我們用X和Y分別表示輸入和輸出張量。

式中:h,ω表示卷積層的空間,c表示特征圖或頻率通道的數量

我們明確地將輸入張量沿頻率通道維數分解為:X={X H,X L}。其中為高頻特性為低頻特征,注意在這里α的取值范圍為[0,1],α 表示的是分配給低頻部分的信道比率,低頻特征圖定義為比高頻特征圖的梯度要低。

2.2 降梯度卷積的設計

由于蘑菇圖像的特征表示中低頻特征圖定義為比高頻特征圖的梯度要低,因此這種表示方法減少了空間冗余,比傳統的卷積表示方法更加精簡[14]。在降梯度卷積中由于輸入特征的空間分辨率不同,普通卷積不能直接在這種表示上操作。一種簡單的規避方法是將低頻部分采樣到原始空間分辨率,將其與高頻部分連接,然后進行卷積運算,這將導致額外的計算和內存成本,并減少壓縮帶來的所有節省。因此,采用了一種精簡的多頻特征表示,將其稱之為降梯度卷積,降梯度卷積可以直接操作,從而使輸入輸出張量不需要任何額外的計算或內存開銷。

傳統卷積 (vanilla convolution)

在這里,(p, q)為X張量的位置坐標,(i, j)表示所取的近鄰范圍,我們可以定義的一個局部鄰域為:

針對蘑菇圖像的特征表示,我們使用降梯度卷積來處理低頻和高頻兩部分所對應的頻率張量,當然,也需要讓蘑菇圖像特征向量高頻和低頻分量之間進行有效的通信。

設用X和Y為卷積核的輸入和輸出張量,為了能夠直接計算卷積,我們分割卷積核W,將其分割成W H高頻和W L低頻2個部分,分別與X H和X L卷積對應:

其輸出張量也可表示成:

這里Y H = Y H→H + Y L→H,而Y L = Y L→L + Y H→L其中,Y H→L代表從H到L的特征映射后更新的結果,而Y L→H代表從L到H的特征映射后更新的結果;Y H→H與Y L→L都代表了頻率內所更新的信息,而Y L→H與Y H→L代表了頻率間的通信,這樣實際上就是將分量進一步分解為頻率內和頻率間分量,即:

蘑菇圖像降梯度卷積的具體方法是:對于圖像中的高頻特征圖,使用常規卷積在位置(p, q) 處進行計算,用于頻率內更新,對于頻率間通信,可以將特征張量X L的采樣折疊到卷積中,從而消除了對上采樣特征圖進行顯式計算和存儲的需要,如下所示:

對于特征張量X H的采樣同樣也可以折疊到卷積中:

傳統卷積會在位置(p, q) 處進行計算,用于頻率內更新,對于頻率間通信,可以將特征張量X L在位置(p, q) 進行向下進行2倍采樣,并將位置進一步移動半步,以確保向下采樣的特征圖與輸入一致,但由于與X H的索引只能是一個整數,因此我們采用了一種四舍五入的方法,即在( 2 *p+i,2 *q+ j)或近似于( 2*p+ 0.5 +i,2 *q+ 0.5 j)的值,以得到所有4個相鄰位置的平均值。

在傳統的卷積神經網絡分類中,池化層用于對輸入的特征圖進行壓縮[15],一方面使特征圖變小,簡化網絡計算復雜度,另一方面也可以用于特征壓縮以便提取主要特征,池化雖然能夠增加視野降低特征圖分辨率,以此來提升分類效果,但會導致錯位,我們使用平均池來估算蘑菇圖像降梯度卷積其余部分的這個值,即使用近似于( 2 ×p+ 0.5 +i,2 ×q+ 0.5 j)的值。利用這個平均值將蘑菇圖像降梯度卷積的兩個輸出張量Y ={Y H, Y L}重新表示為:

其中:f(X;W)表示參數W的卷積,pool(X,K)表示一個卷積內核大小為K × K的平均池函數,其步幅為K;

upsample(X;K)是一個通過最近插值的系數K向上采樣函數。f(X L;W L→L)

可以看出,蘑菇圖像降梯度卷積處理過程由f(X H;W H→H)和f(X L;W L→L) 來計算圖像的高頻和低頻特征值,同時,通過f(pool(X H,2);W H→L)和upsample(f(X L;W L→L) 2)這來進行高頻和低頻特征值之間的信息交換。因此,該降梯度卷積的低頻特征映射有較大的視野,與傳統的卷積神經網絡相比,可以獲得2倍的感受視野,這就在位置(p, q) 之外的更遠的地方可以捕獲更多的上下文信息,從而有效提高了蘑菇分類圖像的識別性能。

3 實驗結果與分析

3.1 蘑菇種類數據集

本次實驗所采用的蘑菇數據集是一個包含8123個樣本的數據集,有22個特征,主要有菌蓋顏色、菌蓋形狀、菌蓋表面形狀、條紋、菌褶、菌環、菌柄、菌托、菌絲索、鱗片等蘑菇的主要外部圖像特征。整個數據集如圖1所示,對于氣味等非圖像特征不列入本次實驗。

圖1 蘑菇種類數據集Fig.1 mushroom species data set

由于實際拍照的角度和野外環境的限制,蘑菇圖像一般不太可能有全株完整的圖像,同時,由于原始的蘑菇數據集中會含有一些干擾背景內容,這些干擾背景不能成為蘑菇分類識別的特征,有些背景會嚴重影響本分類算法的魯棒性。為了保證實驗方法的有效性,我們在蘑菇分類識別前,先對原始蘑菇圖像進行背景去除,形成單一背景的蘑菇圖像,選取數據集的5 023張蘑菇圖像當作訓練集,其余的3 100張圖像作為測試集開展實驗。

3.2 實驗結果與分析

傳統神經網絡訓練模型訓練結果如圖2所示??梢钥闯?,第1張圖片命中類別的準確率為48.7%。圖3為降梯度卷積模型的實驗結果,第1張圖片命中類別的準確率達到了81.7%,訓練的損失率0.2%幾乎接近于0,而驗證的損失率穩定在0.7%左右??梢钥闯龈倪M的深度學習降梯度卷積模型的泛化能力比較好,而且已經達到較高的識別準確率。

圖2 傳統卷積神經網絡(CNN)訓練模型Fig.2 Traditional Convolutional Neural Network (CNN) training model

圖3 降梯度卷積訓練模型Fig.3 Falling gradient convolution training model

在3 100張測試圖像中,對每種蘑菇挑選30張圖像作為測試圖像,測試降梯度卷積訓練模型對每種蘑菇圖像中的第1張、第2張和第3張命中準確率和耗費時間,部分蘑菇圖像識別的測試示例如表1所示,同時,表1也給出了整個測試的統計結果。

從測試結果可以看出,降梯度卷積訓練模型的平均耗費時間為0.985 s,識別第1張的平均準確率達到了91.6%,第2張和第3張的平均準確率都高于95%,說明降梯度卷積訓練模型具有較高的準確性,而且在數據量比較大的情況下識別速度也比傳統的傳統卷積神經網絡要快。

表1 部分蘑菇圖像識別測試示例及統計結果Tab.1 Part of mushroom image recognition test examples and statistical results

4 結論

本文將深度學習方法應用于蘑菇圖像的識別分類中,并針對傳統的卷積神經網絡在樣本訓練中存在的空間冗余問題,采用了一種降梯度卷積訓練模型,利用圖像高頻和低頻部分不同的特性值分別進行存儲和處理,并對不同頻率傳遞的信息給出了信息交互的方法,有效提高了蘑菇分類圖像的識別性能。通過對蘑菇種類數據集的實驗驗證,證明該方法具有較好的識別速度和準確率。

但由于本次實驗驗證采用了單一背景的蘑菇圖像,其實際應用效果還需要研究,后續將研究降梯度卷積訓練模型對復雜背景自然環境中蘑菇圖像的識別準確率,以期獲得更貼近實際應用的蘑菇圖像分類識別方法。

猜你喜歡
張量梯度灰度
帶非線性梯度項的p-Laplacian拋物方程的臨界指標
采用改進導重法的拓撲結構灰度單元過濾技術
一類張量方程的可解性及其最佳逼近問題 ①
嚴格對角占優張量的子直和
一類張量線性系統的可解性及其應用
Bp-MRI灰度直方圖在鑒別移行帶前列腺癌與良性前列腺增生中的應用價值
四元數張量方程A*NX=B 的通解
Arduino小車巡線程序的灰度閾值優化方案
一個具梯度項的p-Laplace 方程弱解的存在性
基于AMR的梯度磁傳感器在磁異常檢測中的研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合