武蘇雯,趙慧杰,劉 鑫,王佳豪
(中原工學院 計算機學院,河南 鄭州 451191)
圖像分類是將不同類別的圖片分開的圖像處理方法。它在工業、農業、醫學等領域都起著重要的作用。圖像識別在詩詞搜索中的應用研究是根據圖像中的主要特征,例如花、鳥、山來進行圖像分類,得到關鍵詞,通過關鍵詞在已經創建好的數據庫中搜索詩詞,得到搜索結果。當前,許多詩詞應用系統已投入市場,例如西窗燭、古詩詞典和古詩詞分類賞析等應用軟件,這類軟件為用戶提供了一個搜索詩詞的平臺,便于用戶快速獲取到詩詞信息。考慮到現有的搜索方式較為單一,且許多用戶聯想到詩詞的情景各有不同,提出一種新型應用系統,通過對用戶輸入的圖像進行特征提取,將特征提取后的分類結果進行整合,從已有的詩詞庫中自動匹配,輸出與圖像意境匹配最佳的詩詞推薦給用戶。
目前,圖像與詩詞匹配的算法日新月異,國內外致力于這一領域的研究也取得了一定的研究成果。文獻[1]通過學習深度耦合的視覺詩意嵌入模型與基于RNN的聯合學習生成器結合進行多對抗訓練,實現跨模態相關性和詩意的相關性,提出了一種由圖像自動生成英文詩歌的模型。文獻[2]通過改進的VGG16模型,預測輸入圖形的中文預測結果,然后根據RNN的預測結果創作一首詩歌。文獻[3]將深度卷積網絡遷移應用到小規模花卉數據集上,在進行模型微調后可以取得較好的識別結果。文獻[4]通過使用EfficientNet和MixNet構建了一個專家系統,能夠準確、快速識別水果的種類。文獻[5]提出了基于自然性和視覺特征通道的場景分類方法,用Gist模型在Oliva等[6]提出的圖像庫依據其語義類別進行分類,得到了良好的分類效果。文獻[7]通過使用改進的InceptionV3網絡以及改進的激活函數,實現了大規模花卉圖像數據集的分類。
由于項目的特殊需求,本實驗專門構建了意象圖像數據NID(nature image dataset),圖像數據集NID是通過從標準數據集(例如Flower102、ImageNet、CIFAR-10、SUN397-15場景數據集、scene15category等)、百度圖片庫中選取的。刪除無關、重復的圖片以及非JPG格式的圖像數據后,得到了60種共70 206張有效圖片。由于物種類別的多樣性,結合項目中詩詞意象的特點,人為將類型相近的物種歸為一類,便于識別分類。共分為九種不同的類別,對每一種類別的物種分別進行識別,具體的圖像數據集如表1所示。其中有45類的圖像數據在1 000張以上,最多的一種包含1 800張圖像,有15類的圖像數據低于1 000張,最少的一類為478張。由于圖像的分類精度會受到數據樣本數量的影響,文中采用數據增強[8]的方法來進行數據擴充,主要包括隨機裁減、隨機旋轉、亮度調節等操作。其中設置了訓練集和測試集,分別占數據集的80%和20%。

表1 NID數據集
EfficientNet卷積神經網絡[9]是通過使用復合系數網絡的深度(卷積層的數量)、寬度(卷積層的通道數)、分辨率(輸入特征的尺寸)中的所有維度進行均勻縮放的網絡結構。因為單獨縮放其中任一個維度,模型會隨著模型的增大,精度變小,在整個神經網絡的縮放過程中要綜合均衡所有的維度才是關鍵,得到協調的進度和效率。在EfficientNet模型中,其使用一組固定的縮放系數統一縮放網絡深度、寬度和分辨率。若想使用2N倍的計算資源,可將網絡深度擴大αN倍、寬度擴大βN倍、圖像尺寸擴大γN倍,這里的α、β、γ都是由原來的小模型上做微小的網格得到的最優解,N則是表明資源的可用范圍,調節模型的可用資源。圖1為EfficientNet的設計思路,從三個方面同時拓充網絡的特性。

圖1 模型的擴展過程
神經網絡架構采用搜索的方式,在限定存儲空間和目標浮點運算次數的條件下,搜索到了一系列EfficientNet B0-B6模型。文中采用輕量級的EfficientNet-B0網絡作為主干網絡,具體參數如表2所示。其中考慮到在stem stage層的小模型對前期底層特征的依賴,采取的是步長為2的卷積操作,可以有效地避免信息丟失的問題。

表2 輕量級EfficientNet-B0主干網絡參數
文中使用的EfficientNet-B0基本網絡作為主干網絡,主要由1個Stem和16個大Blocks堆疊構成,其中16個大Blocks可以分為1、2、2、3、3、4、1個Block。Block的通用結構如圖2所示,其總體的設計思路是Inverted residuals結構和殘差結構,在3×3或者5×5網絡結構前利用1×1卷積升維,在3×3或者5×5網絡結構后增加了一個關于通道的注意力機制[10],最后利用1×1卷積降維后增加一個大殘差[11]邊。

圖2 Block的通用結構
為了能加快模型的學習速度,本實驗使用遷移學習。遷移學習[12-15]是將訓練好的深度神經網絡模型應用到另一個新的任務中,在這個過程中模型解凍、參數微調,訓練得出適合新任務的模型。將已經在ImageNet數據集上訓練好的EfficientNet-b0參數作為特征提取模型的初始參數,從而繼承模型從ImageNet數據集上學習到的特征提取能力,再在此基礎上進行微調。ImageNet數據集的數據量十分龐大,可以賦予模型極強的特征提取能力以及泛化能力。該方法不僅可以節省大量的訓練時間和計算資源,更可以在一定程度上削弱過擬合現象,使模型擁有比隨機初始化參數更好的表現。
由于NID的圖像數據量目前還不夠大,難以將網絡模型訓練到理想的分類效果,而ImageNet數據集的圖像數量高達100多萬張,EfficientNet模型先在ImageNet數據集上完成訓練,對訓練模型可以得到良好的識別率。因此文中采用基于遷移學習的EfficientNet圖像分類算法來完成NID的分類任務。首先將ImageNet數據集在EfficientNet預訓練模型上進行訓練,在訓練過程中調整模型超參數,使預訓練模型能夠較好地提取出圖像的低層特征,例如邊緣特征、紋理特征,使模型具有更佳的通用性,得到最佳識別結果,并記錄相應的權重文件。再將NID其中一類圖像隨機選擇80%用于訓練,20%用于測試,訓練集可以再次對模型超參數進行微調,充分訓練和調整模型的語義層面的參數信息,提取出具有區分性的圖像特征,最終得到最適合該類圖像數據集的基于遷移學習的EfficientNet圖像分類模型。
具體圖像分類順序如圖3所示。

圖3 基于遷移學習的EfficientNet圖像分類算法順序
NID中9大類圖像分別通過基于遷移學習的EfficientNet圖像分類算法得到9種不同參數的EfficientNet模型,其中包括獸類、鳥類、花類、昆蟲、景物類、樹類、水生動物、天氣、人等。將這9種EfficientNet模型部署為一種融合模型,用于系統中圖像處理的應用,圖像識別與詩詞搜索的系統框架如圖4所示。其中的圖像處理過程可以分為兩個過程,第一個過程是圖像裁剪、預處理,第二個過程是將預處理后的圖像進行通道融合,選取相應的分類模型進行識別,將分類之后的輸出結果傳送到詩詞數據庫中進行下一步的搜索處理,圖像分類過程的基本流程如圖4所示。
(3)與職業技能鑒定相銜接??谇唤萄惺曳e極與自治區職業技能鑒定中心聯系,將技能競賽項目和內容與國家職業資格標準相結合,口腔技能競賽項目與職業技能鑒定操作題相結合,使學生通過參與競賽訓練,達到職業資格標準的要求,取得相應的職業資格證書。這樣,一方面可使競賽資源得到有效利用,另一方面可增強學生參賽的積極性和競賽的實效性。

圖4 圖像分類過程的基本流程
3.1.1 環境設置
本實驗均在kaggle平臺上進行,使用python編程語言結合深度學習模型TensorFlow的高階API:tf.keras實現神經網絡的搭建、訓練和測試。環境配置如下:操作系統為Windows10;GPU為Nvidia Tesla P100-PCIE-16 GB 1.328 5 GHz;CPU Frequency為2.3 GHz;RAM為14 GB;Disk為5.2 GB。
3.1.2 參數設置
該文使用TensorFlow的深度學習庫Keras構建基于遷移學習的圖像分類模型,通過EfficientNet模型遷移學習,設置學習率0.001,批尺寸128,采用AMSGrad優化器及交叉熵損失函數,實現了對NID的特征提取和分類。
AMSGrad算法針對Adam算法收斂性證明的缺陷,對Adam的更新規則做出了一些改進,在某些應用場景下擁有超過Adam算法的收斂速度。
3.2.1 多EfficientNet融合模型結果分析
實驗過程中分別在NID上對9種模型進行訓練,實驗訓練總輪數為15輪,在訓練過程中計算出每一輪的平均損失值,所有的損失值都隨著訓練輪數的增加而減小,收斂速度較快,并未出現過擬合現象。根據記錄下的每一種模型精度繪制的變化圖可以看出,模型精度也在隨訓練輪數的增加趨于穩定,其中每一類圖像的分類精度如表3所示,9種模型的損失值和精確率變化情況如圖5所示。

(a)9種模型的損失值變化曲線 (b)9種模型的精確率變化曲線

表3 NID的分類結果
由表3可知,文中方法圖像分類結果均在90%以上,精確率最高的一類為水生動物,達到了99.62%,相對來說精確率較低的一類為鳥類,精確率為91.88%。
結合圖5來看,基于遷移學習的EfficientNet的圖像分類算法使NID的各類別圖像的平均精確率達到了96.25%。這足以說明在NID圖像分類研究方面的有效性。文中采用的遷移學習思想提取了深度特征避免了模型過擬合,同時結合低層特征來充分表達圖像信息,使得文中分類算法更穩定,魯棒性更強。
3.2.2 不同模型實驗結果分析
為了驗證EfficientNet對于NID的分類效果優于其他模型,將EfficientNet與Xception、Inception-V3、VGG16、ResNet50四種模型作比較,在構建的花類物種數據集上進行對比實驗,結果如表4所示。可以看出,文中算法的精確率分別較Xception、Inception-V3、VGG16、ResNet50模型高5.11%、4.31%、13.32%、8.2%,且參數量為11 574 063,相比其他四種算法的參數量大大減少,降低了運算復雜度,減少了運算時間,符合項目中對圖像分類的要求。

表4 EfficientNet模型與其他模型的對比
文中構建了一個大型的詩詞圖像數據集NID,在此基礎上提出了一種基于遷移學習的多EfficientNet融合的圖像分類算法模型,并取得了良好的分類效果,各類圖像的平均識別率為96.25%,收斂速度快,且訓練集和驗證集之間并未出現過擬合現象。對比其他四個模型,實驗結果表明,文中采用的模型識別結果穩定,且在NID上的識別率最高。
本研究僅對數據集中包含的60種意象景物進行了分類識別實驗,要建立有效的、用于詩詞搜索的圖像識別系統,就要有更強大的訓練數據作為基礎,并且在提升模型的識別率,同時持續補充詩詞庫,以保證搜索到更全面、更精確的詩詞。因此,在后期的工作中將補充圖像數據研究種類、豐富詩詞庫,并增加圖像識別模型識別的特征目標,以便獲取更多的圖像數據信息,以建立更準確的詩詞搜索系統。