萬華,謝志亨,涂淑琴
(華南農(nóng)業(yè)大學數(shù)學與信息學院,廣州 510642)
蛹蟲草(Cordyceps Militaris)是一種含有蟲草酸、蟲草素、蟲草多糖等多種生物活性成分的珍貴食用菌,被廣泛的用于免疫力低下、腫瘤、心血管等疾病的臨床治療中[1]。由于其市場價值巨大,蛹蟲草的人工種植被列為廣東省農(nóng)業(yè)主推技術之一。
蛹蟲草從菌絲體培養(yǎng)到最后出草這個過程可分為4個生長階段:菌絲培養(yǎng)期、菌絲變色期、子座培養(yǎng)期和子實體生長期。在不同生長發(fā)育階段,特別是在菌絲轉色到子座出芽的關鍵生長節(jié)點上,對光照、溫度、濕度等環(huán)境因素有著不同的要求[2-3]。如果不及時調(diào)整環(huán)境條件會嚴重影響蛹蟲草的產(chǎn)量和品質,造成較大的經(jīng)濟損失。在目前蛹蟲草的種植過程中,判斷其生長階段的方法仍然停留于人工識別。這需要依賴工作人員的種植經(jīng)驗來識別蛹蟲草的生長情況,在大規(guī)模的培養(yǎng)環(huán)境下費時費力,觀察結果主觀性強,因此這種手工作業(yè)方式亟待改善。
20世紀90年代起,科學家們開始將計算機視覺技術應用于食用真菌領域[4-7]。為了提高蛹蟲草栽培效率,本文引入計算機視覺技術以實現(xiàn)蛹蟲草生長階段的自動識別。首先將蛹蟲草圖像轉化為RGB顏色通道信息提取其SIFT特征,在此基礎上應用稀疏編碼的空間金字塔匹配(Linear Spatial Pyramid Matching using Sparse Coding,ScSPM)方法[8]獲取高層特征,再使用支持向量機進行長勢判別。最后本文應用MATLAB編寫了蛹蟲草生長識別系統(tǒng)接口并進行了演示。
SPM算法[9]首先在訓練圖像集里提取出大量的圖像塊,隨后對每個圖像塊提取任一種基本特征,然后使用聚類的方法對這些基本特征進行處理獲得特征中心向量。它將圖像樣本投射到不同的層次,每層次劃分成不同的子塊,隨后統(tǒng)計出每個子塊上的詞袋特征信息,再把每個子塊的特征拼接到一起,最后形成了圖像的完整特征。一般而言,字典數(shù)為K、級數(shù)為L的空間金字塔模型,生成向量維數(shù)如公式(1)所示:
稀疏編碼[10]是對信息進行稀疏表示的一種方法,它通過用少量的基向量線性擬合來逼近目標向量,要求基向量含有數(shù)據(jù)的主要特征。對圖像進行稀疏編碼操作的核心思想是獲得一組基向量?i,預定系數(shù)αi,則圖像的稀疏表達如公式(2)所示:
David在1999年提出了基于圖像局部特征的描述子[11],即SIFT(全稱為尺度不變特征變換)。從訓練集中提取 SIFT特征可以用 X={x1,x2,…,xN}∈RD×N表示,該特征需要學習獲得一組基向量(碼本或字典),其次根據(jù)稀疏表示算法,約束函數(shù)如公式(3)所示:
其中‖c‖i1是稀疏正則化項,而ci是 xi的稀疏編碼表示。
稀疏編碼可以劃分為兩部分:訓練階段(即構建稀疏字典)、編碼階段。在訓練階段,從訓練圖像樣本集里提取出圖像的特征,用來表示,訓練特征是為了獲得所需的一組基向量。實際上訓練特征的過程就是重復迭代的過程,迭代的過程可以總結如下:先固定字典,再調(diào)整α[k],令目標函數(shù)達到最小,于是再固定字典α[k],調(diào)整?[k],令目標函數(shù)達到最小,重復上述的步驟(迭代的過程)直到收斂為止。在編碼階段,對從新圖像中提取出的SIFT特征進行稀疏編碼,編碼之后獲取的稀疏向量就是圖像的稀疏表達,C是圖像特征的稀疏編碼表示。
在稀疏編碼后,可以用C={c1,c2,…,cm}∈RK×m表示圖像特征的稀疏編碼表示,要令表達特征能包含空間信息與局部信息,需采用金字塔方法來對信息做聚合的操作。首先劃分圖像的金字塔層次,再對每塊區(qū)域中的編碼向量進行最大聚合(程序中用max pooling來表示)。最大聚合實際上是指把某個區(qū)域內(nèi)所有編碼向量相對應的最大分量組成一個K維的向量來表示該區(qū)域,如公式(4)所示:
最終形成ScSPM特征表達,即新圖像可以用(1+4+16+...)*K維的特征向量來表達。
本實驗采集的數(shù)據(jù)集是處于不同生長階段的蛹蟲草圖像,分類標準如下:呈白色的菌絲體表示處于菌絲培養(yǎng)期的蛹蟲草樣本;呈黃色菌絲體表示處于變色期的蛹蟲草樣本;呈黃色菌絲且分布米粒狀的突起代表處于子座培養(yǎng)期的蛹蟲草樣本;呈橘黃色的棒狀子實體代表處于子實體生長期的蛹蟲草樣本。菌絲培養(yǎng)期、變色期、子座培養(yǎng)期和子實體生長期四個階段的外觀分別如圖 1中的(A)、(B)、(C)和(D)所示。
圖1 蛹蟲草圖像樣本
圖像采集地點來源于華南農(nóng)業(yè)大學食品學院蛹蟲草人工栽培實驗室。實驗抽取的訓練集數(shù)據(jù)樣本與測試集數(shù)據(jù)樣本共3720張圖片,分為4個類別,每個類別有930張圖像。
實驗流程如下:從圖像的R、G和B顏色通道中提取SIFT特征,并對融合后的特征進行稀疏編碼,進行空間金字塔匹配,選擇性進行PCA[12]降維處理,最后采用SVM支持向量機[13-14]進行蛹蟲草生長階段判別,具體流程如圖2所示。
為了檢驗基于ScSPM算法在蛹蟲草長勢識別中的效果,表1和表2對比了兩種實驗的識別效果,輸入測試集相同。
表1 提取SIFT特征和稀疏編碼的識別準確率
圖2 基于稀疏表示的蛹蟲草生長階段分類實驗流程圖
表1使用SIFT特征與稀疏編碼獲得的識別效果,平均識別準確率達到91%左右。其中融合了R、G、B三種顏色分量達到的識別準確率最高,達到91.84%;提取R顏色分量的識別準確率最低,達到了91.75%。速度上每張樣本圖片的處理時間也在1.2s-1.3s之間,相差不大。
表2 引入PCA后的識別準確率
為了進一步提高識別準確率,引入主成分分析(PCA)方法對特征表達做處理,實驗結果如表2所示??梢钥吹?,引入PCA后識別效率提高了2%左右。原因是PCA方法將原始高維數(shù)據(jù)向方差變化最大的若干個方向進行投影得到低維,得到最能反映圖像本質且具有判別性的特征,從而提高了識別準確性。
在實現(xiàn)基于ScSPM算法基礎上,使用MATLAB編程進一步設計實現(xiàn)了蛹蟲草生長階段識別系統(tǒng)的用戶接口。本文選取了蛹蟲草生長中最接近的兩個階段——變色期、子座培養(yǎng)期進行演示,這兩個階段也是蛹蟲草生長檢測最關鍵的生長節(jié)點。變色期、子座培養(yǎng)期識別的界面效果如圖3和4所示。
本文提出引入計算機視覺技術應用于蛹蟲草長勢的自動識別。在此基礎上,設計實現(xiàn)了一個基于稀疏編碼的空間金字塔匹配模型的蛹蟲草生長識別系統(tǒng),實驗測試表明取得了較好的識別效果。在下一步工作中,我們將繼續(xù)探索稀疏編碼的求解算法,縮短稀疏編碼處理時長,例如局部約束線性編碼[15]是更有效的稀疏編碼方法,將有可能進一步提升識別性能。
圖3 ScSPM算法識別變色期的結果
圖4 ScSPM算法識別子座培養(yǎng)期的結果