羅 娟,蔡 騁
西北農林科技大學 信息工程學院,陜西 楊凌712100
近年來,隨著計算機視覺的快速發展,自動識別植物受到越來越多的關注。植物識別就是分類已知類別的植物標本,這個過程已經發展了數百年,即便是對于專業植物學家來說也是一項繁瑣的工作。如圖1所示,識別這些圖像中的植物存在較大的難度。
圖1 PlantCLEF2017
為了縮小植物分類學缺口,自動識別植物圖像有著重要的意義。而且自動識別植物具有廣泛的應用場景。例如,使用自動識別植物算法來識別植物,并開發相應的智能手機應用程序,從而可以達到科普植物學知識的目的[1-2]。它還可以幫助專業植物學家在科學研究期間識別該領域的植物。
目前已經有許多關于自動識別植物的研究工作正在積極地開展[3-4]。盡管在該領域取得了一定進展,但由于這項任務極具挑戰性以及對容易混淆的植物的識別缺乏穩健性,這些工作的表現還不能達到令人滿意的效果。
在早期研究工作中,研究人員主要應用局部特征進行圖像表示。例如,Szücs 等[3]使用尺度不變特征變換(Scale-Invariant Feature Transform,SIFT)[5]作為密集網格上的特征提取器,并應用主成分分析(Principal Component Analysis,PCA)[6]將特征向量的維數從128 減少到80。然后,應用詞袋(Bag-of-Words,BoW)[7]和高斯混合模型(Gaussian Mixture Model,GMM)[8]來描述圖像。支持向量機(Support Vector Machine,SVM)分類算法,應用徑向基函數(Radial Basis Function,RBF)作為核函數將數據映射到特定空間實現分類。然而,由于低級特征的描述和辨別能力有限,這些分類方法的性能并不令人滿意。蔡騁等[9]提出基于壓縮感知的種子識別方法,Kumar 等[1]從葉子圖像中提取基于曲率的形狀特征,然后使用最近鄰法進行識別。付波等[10]提出基于葉片形狀的方法,盡管這些方法實現了較好的性能,但此解決方案在很大程度上依賴于特定的手動選擇的特征集。因此,它可能會遇到過度擬合和數據集偏差問題[4,11],而且這些方法對數據集的要求太高。
近年來,DCNN 以其優良的性能,已經被廣泛應用于圖像識別領域,例如ImageNet 分類[12]、手寫數字分類[13]和 人 臉 識 別[14]。Lee 等[4]提 出 用DCNN 來 識 別 植物。此外,目前使用DCNN進行植物鑒定的方法主要集中在從單個特定器官(例如花、葉或果實)中獨立鑒定植物。用單一器官識別的準確率不高,很難滿足科普植物知識的需求。如圖1中的四張圖片,分別表示植物的整株、花、果和葉,如果直接將植物的四個器官放入一個DCNN 中識別,由于它們的特征相差太大,會降低識別準確率,因此選擇先識別單個器官。對于植物的各個獨立的器官,整株、葉、花和果分別訓練一個識別網絡,最后根據單器官網絡識別的準確率,采用多線索相結合的方法來預測該植物的類別標簽。
現有的深度卷積網絡模型很多,包括Alex Net[15]、VGG Net[16]、Google Net[12]、Resnet[17]等,這 些 網 絡 在ILSVRC 每年的競賽中都有非常出色的表現,它們在人、車以及生活中常見物品的識別中都有非常優良的表現。特別是越深的網絡需要的圖片數量越多,由于本文的圖片數量有限,因此本文的單器官識別模型需要選擇深度適中的網絡。
多線索模型識別系統包含兩個關鍵階段。首先,為每種類型的器官訓練一個單器官子模型。其次是將所有單個器官的模型有效地組合在一起。該系統的整個結構如圖2所示。
單個器官的識別性能直接影響多個器官的識別性能。深度卷積神經網絡已被證明是圖像分類問題的有效模型[10]。受其強大的圖像表示能力的啟發[18],將此模型應用于本文中的植物識別。
CNN 是前饋神經網絡。它首先應用于Lecun[19]等的手寫字符識別問題。近年來隨著并行計算的快速發展,開發了深度卷積神經網絡。DCNN是一種引起廣泛關注的有效識別方法,原始圖像可以直接作為模型的輸入。因此,該網絡可以避免圖像復雜的預處理。卷積神經網絡利用空間關聯關系來減少參數的數量,與其他前饋神經網絡相比,卷積神經網絡需要更少的參數。然而,仍然需要針對深度卷積神經網絡訓練許多參數。因此,用有限的計算資源訓練這樣的網絡仍然是具有挑戰性的。慶幸的是,近年來深度學習領域取得了許多重大進展。例如,Hinton等[20]提出的丟棄部分神經元的方法(Dropout),有效通過防止特征檢測器的共適應性來避免過擬合的現象。此外,修正線性單元(Rectified Linear Units,ReLU)比其他激活函數(如Sigmod、Tanh[15,21])能夠更好地防止梯度彌散。最重要的是,深度卷積神經網絡的GPU實現使每個圖像的訓練時間低至約2.5 ms[22]。由于上述的這些方法,可以有效地訓練深度卷積神經網絡。基于這些方法,Szegedy 等[12]提出的具有數百萬個參數的深度卷積神經網絡被應用于ImageNet數據集。該網絡采用Inception 模塊化的結構,共22 層。網絡最后采用了平均池化來代替全連接層,參數量僅為AlexNet的1/12,性能卻優于AlexNet。在網絡的最后是Softmax層,它輸出ImageNet數據集中1 000個類的概率。
本文中的深度卷積神經網絡如文獻[12]中所述實現。預訓練模型在大規模圖像數據集[23]上進行訓練,其中包含大約120萬個1 000個類別的圖像。通過在大規模圖像數據集上的訓練,該模型可以為圖像分類提供良好的特征表達。本文使用了遷移學習法[24],將在ImageNet 數據集上預訓練好的GoogleNet 僅修改最后的全連接層,將全連接層網絡的神經元的個數改為需要分類的類別數量。根據訓練數據微調網絡,且只迭代更新后三層網絡的參數。然后,對預先訓練的模型在PlantCLEF2017[25]數據集上進行微調,以便對每個植物器官進行識別。如圖2所示,最終模型中使用了四種器官。因此,用四個DCNN 模型在四種器官圖片上微調四種單器官識別網絡。
如圖1 所示,對于植物的每個種類進行分類,由單個器官提供的信息是有限的。通過多器官輸入分類可以在某種程度上緩解這個問題。模型的每個輸入代表該分類單元的一種類型的器官。具有多個器官的輸入可以允許模型獲得關于該植物分類的更多信息用于鑒定。受到Go?au H等[26]、Dan C等[27]和Yang J等[28]的啟發,本文提出了一種新的多線索的植物識別方法。源于集成學習的思想,將多個單器官分類器采用加權式,結合為一個更強的分類器。每次根據各個單器官分類器預測類別的分數,來決定該分類器所預測的類別標簽在最終的多線索模型的輸入中所占的比重。該模型的結構如圖2所示。
在訓練時,四個單獨的網絡模型的輸入是各自對應的器官,這四個網絡模型是完全獨立的,有各自的全連接層和損失函數,根據遷移學習的思想,只更新后三層網絡的網絡參數。多線索模型不需要訓練參數,因此訓練時僅訓練四個單器官模型即可。
在測試時,四個單器官網絡的輸出作為多器官融合識別模型輸入,這種輸入是帶權輸入,多器官融合模型接受的不僅僅是單器官網絡預測的類別,還接收單器官網絡預測的分數,采用加權后的預測分數作為多器官融合模型各類別預測分數的初始值Si*:
其中,Si表示單器官模型對最終預測類別的評分,表示第i 種器官輸入多線索模型的初始分數。
多線索模型對相同的類別分數進行合并當Pi=Pj,Pi,Pj∈{1,2,…,12}時,且i <j
統計得分最高的類別標簽,將它的類別標簽作為最終的類別標簽輸出:
最終確定得分最高的類別作為預測類別。
然而,神經網絡對圖片的數據量要求較高,且要求各類別圖片的數量盡量均衡。在將所有子模型組合在一起之后,該模型中的參數數量是單器官中的參數數量的4 倍。單模型并行計算對GPU 的要求太高,要實現此模型并獲得更好的性能,需要在此模型中應用以下技巧。
(1)對圖片數量較少的類別采用圖像增強技術,使得各類別各器官的圖片數量盡量是均衡的。在訓練準確率上明顯優于沒有采用圖像增強技術。
(2)多個單器官模型依次訓練,并采用遷移學習僅訓練最后三層的參數,凍結前面所有層的參數。它在時間效率和訓練準確率上都明顯優于隨機初始化的權重。
實驗數據集包括ImageNet和PlantCLEF2017,Image Net 數據集用于神經網絡模型的初始訓練,Plant-CLEF2017 數據集用于模型的微調和測試。Image Net是一個用于視覺對象識別軟件研究的大型可視化數據庫。超過14 000 000 的圖像標注了對象類別,超過100萬個圖像標注了對象邊界框。ImageNet 包含2 萬多個類別,其中包括:人、車、氣球和水果等。本文的初始訓練采用的是ImageNet 中用于視覺挑戰賽的包含1 000個類別的數據子集[23]。
PlantCLEF2017數據集包含生長在西歐的10 000種植物(樹木、草本和蕨類)共計約200 000張圖片,每種植物的圖片有植物的七種器官(整株、果實、葉子、花、莖、枝干和掃描葉)的一種或幾種器官,每種植物的每種器官又包含一張或若干張圖片。數據集收集了同一種類的植物可能生活在不同地區和一年中不同時段的圖片。
為了驗證本文提出的多線索植物識別算法的有效性,將PlantCLEF2017 的圖片分器官和類別統計,由于掃描葉的圖片數量太少,將掃描葉的圖片統計入葉器官分類圖片中,最終六種器官都有的植物種類為114 類,枝和干的圖片數量偏少除去枝干這兩種器官后,每種器官圖片數量超過20張的為12類。如圖1,分別是整株、花、果和葉。
原始圖片各器官的圖片數量統計見表1,原始數據的標簽數據對類別的劃分很準確,但對器官的劃分不準確,存在部分器官錯分的圖片。
為了得到分類性能更好的單分類器,用各種器官圖片訓練單分類器。根據圖片的得分和真實的類別標簽,設定一個圖片接收因子,接收因子是圖片正確類別的得分。刪除圖片接收因子低于規定閾值的圖片,本文的圖片接收閾值設定為0.05。刪除噪聲圖片后對正確類別的各器官圖片以9/1 的比例劃分為訓練集和測試集,并對訓練集和測試集分別采用數據增強技術,來均衡各類別各器官圖片。
表1 植物各個器官類別統計表
采用對比增強、疊加噪聲、仿射變換、顏色抖動、透視變換等操作分別對訓練集和測試集實現數據擴充,可以避免訓練階段的識別類別偏向某幾種圖片數據多的類別。通過透視變換可以模擬實際場景的不同視角。仿射變換包括平移、縮放、錯切、旋轉和翻轉等基本變換,具有平行性和平直性,即變換后直線依然是直線,平行線依然是平行線。
利用OPenCV實現透視變換的步驟如下:
(1)指定源圖像和目標圖像中的四組對應點。
(2)利用OpenCV的getPerspectiveTransform函數計算透視變換矩陣。
(3)利用OpenCV 的warpPerspective 函數對源圖像應用剛才的透視變換。
利用OPenCV實現仿射變換的步驟如下:
(1)指定源圖像和目標圖像中的四組對應點。
(2)利用OpenCV的getAffineTransform函數計算仿射變換矩陣。
(3)利用OpenCV 的warpAffine 函數對源圖像應用剛才的仿射變換。
通過刪除接收因子低于閾值的圖片和采用選擇性數據增強后,各類別各器官訓練集圖片數量均在兩百張左右,測試集圖片數量均在二十張左右。
硬件環境如下:Intel?Core?i-6100CPU@3.70 GHz,64 GB 內存;Nvidia GeFore GTX 1050 Ti,4 GB 顯存;軟件環境:CUDAToolkit9.0,CUDNN V7.0;Matlab R2018a,Windows 10 64 bit操作系統。
模型訓練與測試均通過GPU加速。綜合考慮硬件性能和運行時間,訓練和測試的MiniBatch 設置為16,Epoch 設置為10。單器官模型參照經典Google Net 模型的參數設置,綜合考慮實驗復雜度,組合2種學習方式(全新學習和遷移學習),3種數據處理方式(無擴充+無丟棄、無擴充+丟棄、丟棄+擴充),共進行6組組合實驗。這些結果總結在表2。
表2 全新學習和遷移學習準確率對比 %
全新學習時,網絡模型的權值參數W 初值用均值μ=0,標準差σ=0.01 的正太分布生成,偏置參數初值b=0。
遷移學習時,單器官模型最后的全連接層的權值參數W,b 按照上面的方式隨機初始化,其他各層的W,b 則保留Google Net在Image Net圖像數據集訓練得到的權值參數和偏置參數。本文實驗采用十折交叉驗證,為了保證實驗結果的準確性,十次實驗分別采用數據增強。實驗結果為十折交叉驗證的平均實驗結果,后面的實驗結果也均為十折交叉驗證的平均結果,不再贅述。
傳統的植物識別,是將一個種類的植物圖像包括花、果和葉等,直接訓練一個神經網絡,并用類似的植物圖像測試模型性能。為了證明本文提出的多線索模型的性能,優于同種模型的傳統識別方法,將多線索模型的結果與全部植物圖像混合識別結果進行對比。主體模型均采用Google Net模型,采用的數據處理方式和模型參數訓練方式為表2中得出的最好的組合方式,訓練和測試的MiniBatch 設置為16,Epoch 設置為10。實驗結果對比見表3。
表3 多線索模型和混合識別模型準確率對比
目前用于植物識別的優秀的算法包括:CNN+SVM[29]、CNN+SOFTMAX[29]、Alex Net、VGG等,模型的最后輸出改為12 類,其他參數設置均保留原論文的參數設置,本文提出的多線索模型(MC)和目前優秀的植物識別算法的對比結果見表4。
為了評估本文提出的多線索模型的性能,將多線索模型的結果與單器官模型的結果進行比較。對比方式分為兩種,一種是無器官缺失的多線索模型和單器官模型測試準確率對比,見表5,第二種是有一種器官缺失和兩種器官缺失的多線索模型測試結果對比,見表6。采用的數據處理方式和模型參數訓練方式為表2 中得出的最好的組合方式,訓練和測試的MiniBatch設置為16,Epoch設置為10。
表4 多線索模型和其他模型識別準確率對比
表5 單器官模型和多器官模型準確率對比
表6 各種組合的多器官模型準確率對比%
多線索模型與單器官模型的結果相比表明,本文提出的多線索模型大多數結果遠遠優于單器官的結果。但是實驗結果表明,某些組合會導致性能不是太好。例如,整株和葉的組合模型的性能低于單器官花和果模型的性能。因此,單器官的識別性能也是影響組合后識別性能的主要因素。
針對傳統植物識別算法在特征提取上耗時耗力,以及對野外直接采集的圖片識別準確率不高的問題,分析了深度卷積神經網絡在植物識別中的優勢和局限性,提出了一種結合多個神經網絡的多線索植物識別模型,可以有效地自動識別植物。單個模型可以通過遷移學習得到比隨機初始化更加有效的參數初始值,再根據訓練數據對模型中的參數進行微調,可以更加節省時間,得到更高的測試準確率。還提出了丟棄噪聲圖片的方法,來優化本文模型。針對部分類別的部分器官圖片較少的情況,本文采用了選擇性增強的方法來擴充和均衡圖片的數量。個別器官模型的識別性能遠低于其他器官模型,這限制了多線索模型的整體表現。由于圖片數量有限,本次實驗只驗證了12 個植物類別的四種器官模型的組合,今后的工作可以綜合更多的數據集,在更多的植物類別上組合更多的器官模型,從而形成一個更加實用和高效的植物識別模型。此外,Google Net[12]可以被一些更強大的模型取代,例如和ResNet[17]。相信這種自動化植物識別算法的性能將得到進一步提高。