北方工業(yè)大學信息學院 余奕盈
傳統(tǒng)的圖像分類過程復雜,準確率低,而卷積神經網絡在圖像分類領域表現出色。本文基于遷移學習,先對小樣本數據集進行歸一化數據增強等預處理,在ImageNet大數據集預訓練后,微調網絡權值,比較VGG16、Inception、Xception三種網絡模型圖像分類效果,得到了較好的準確率。
近年來,計算機視覺發(fā)展迅速,圖像分類是計算機視覺領域核心問題之一,新型的基于深度學習和卷積神經網絡的方法可以通過自動執(zhí)行提取和自我學習特征[1],在圖像分類方面取得了較大的突破。例如:吳[2]等人提出改進的Inception-V3網絡,對花卉圖像數據集分類準確率達92.85%;王[3]等人改進DenseNet、Xception和MobileNetV2三種模型,提高了災難圖像場景分類的精度;劉[4]等人預訓練CNN、Resnet、DBN和SGAN網絡,分析了不同網絡對醫(yī)學影像分類識別的準確率。
本文提出一種基于遷移學習的圖像分類方法,在大數據集ImageNet預訓練后,遷移參數優(yōu)化調整VGG16、Inception-V3、Xception新模型,得到較好的分類效果。
深度學習依賴大規(guī)模的數據集,若數據量太少,可能會出現過擬合現象導致圖像分類準確率下降。針對訓練集不足的情況,利用遷移學習的方法,可將預訓練的模型權值應用到新模型,大大減少訓練時間,降低消耗成本,實現了在小數據集上取得較好分類效果的目標。
遷移學習常采用從網絡上抓取的1000個對象類別的近150萬張照片的ImageNet數據集進行訓練,遷移到其他神經網絡中。Inception-V3、ResNet50、ResNet152V2、Xception等神經網絡模型都使用了遷移學習技術,并獲得了較好的分類準確性。遷移學習應用領域廣泛,如李[5]等人基于遷移學習方法優(yōu)化ResNet101網絡,提升野生植物圖像的識別精度;曹[6]等人遷移了GoogleNet中Inception-V3的預訓練模型,解決了壁畫數據集收集困難導致的訓練數據有限等問題;陳[7]等人基于深度殘差網絡和遷移學習,結合數據增強和標簽平滑策略對古印章文本進行識別,驗證了遷移學習的有效性,許多學者在不同領域使用遷移學習方法達到了不錯的效果。
數據增強一方面指為解決數據集有限過擬合問題,在不改變數據集主要特征的前提下,常采取隨機旋轉、放大縮小、平移、裁剪等操作增加數據集的數量;另一方面指增加噪聲提高模型的魯棒性,提高神經網絡模型識別率。
VGGNet16網絡模型總共16層,如圖1所示,包含13個卷積層和3個全連接層,前13個卷積層負責特征提取,而后3個全連接層負責分類。所有卷積層均使用3×3的卷積核,所有池化層使用2×2的池化核,步長大小為1,該模型通過增加網絡深度來提升性能。
圖1 VGG16Fig.1 VGG16
Inception-V3主要是Keras開發(fā)的一個網絡結構,如圖2所示,網絡模型共22層,該模型將大卷積核分解為小卷積核,對圖像進行1×3和3×1非對稱并行卷積處理,整合多個不同尺寸的卷積核,池化層,形成一個Inceptionmodule模塊,不僅減少了網絡參數的數量,同時還增加了非線性表達能力,減輕過擬合現象。
圖2 Inception-V3Fig.2 Inception-V3
Xception模型是Inception-V3的一種改進模型,主要引入了深度可分離卷積和殘差塊。與普通深度可分離卷積操作相反,Xception先進行1×1的卷積操作,再進行3×3的卷積,該模型可以將卷積神經網絡的征圖中跨通道相關性和空間相關性的映射完全解耦。
3.1.1 實驗環(huán)境
本實驗操作系統(tǒng)為Ubuntu16.04,選擇Keras深度學習框架,Python版本為Python3.7,內存為8GB,處理器為主頻1.60GHz的Intel Xeon E5-2603 v3。
3.1.2 數據集
本實驗采用兩個公共圖像數據集,ETH80數據集和UIUC數據集。
ETH80數據集包含8個類別:蘋果、小汽車、牛、杯子、狗、馬、梨和西紅柿,如圖3所示,每個類別10個對象,每個對象不同視角下的41張圖像構成一個集合,總計80個集合,3280張圖像。UIUC數據集包含8種運動類別:羽毛球、室外滾球、槌球、馬球、攀巖、劃船、航海和滑雪,如圖4所示,共1579張圖像。在實驗中,兩數據集均隨機取一半圖像作為訓練集,一半作為測試集。
圖3 ETH80數據集Fig.3 ETH80 dataset
圖4 UIUC數據集Fig.4 UIUC dataset
3.1.3 參數設置
在實驗中,參數的設置尤為重要。
Epoch:一個Epoch指代所有的數據送入網絡中完成一次前向計算及反向傳播的過程。
batch_size:每次訓練樣本的數量,數量太大增加內存,數量太小影響訓練時間,經過多次測試,本實驗設置為32,在時間消耗和內存消耗中找最佳平衡點。
LearningRate:深度學習網絡的重要參數,其決定著訓練樣本的識別精度,對模型的性能也有一定程度的影響,本實驗將學習率設定為0.001。
3.2.1 歸一化處理
在UIUC數據集中,圖像尺寸從845×1077到1808×496不等,ETH80數據集圖像尺寸為256×256,而深度學習算法需要標準化的圖片輸入,本實驗中VGG16網絡模型需224×224輸入,Xception網絡模型、Inception-V3網絡模型需299×299輸入,在處理時將圖像縮放、裁剪為同尺寸的圖片,進行歸一化處理。
3.2.2 數據增強
因訓練數據集較小,可能會產生嚴重的過擬合現象,造成模型的分類性能下降,實驗中需要通過對小樣本圖像按一定比例旋轉、平移、縮放、調整圖像亮度等方式進行數據增強,有效避免過擬合的風險,增強模型泛化能力。
3.2.3 遷移學習
本實驗分別在VGG16、Inception-V3和Xception網絡模型上進行遷移學習,節(jié)省大量時間。VGG16、Inception-V3和Xception網絡模型在大型數據集ImageNet上充分訓練后,獲得預訓練模型,得到預訓練模型的初始權重,后將參數遷移到新的模型微調即可進行測試數據集的分類。
(1)預訓練:實驗時,首先載入在ImageNet數據集上訓練而成的VGG16、Inception-V3和Xception預訓練模型,保留模型權重。
(2)調整參數,訓練模型:為了使模型更好地適應目標域,需要對這三個模型進行適當微調。針對VGG16、Inception-V3和Xception對三個網絡模型,凍結低層參數,改變最后全連接層神經元個數,調整權值重新訓練新網絡。
(3)測試模型:使用相同測試集對訓練好的三個網絡模型進行測試,輸出識別內容,比較分類效果。
分類結果如表1,表2所示。
表1 圖像數據集1分類結果Tab.1 Classification results of image dataset 1
表2 圖像數據集2分類結果Tab.2 Classification results of image dataset 2
本實驗基于遷移學習,對比了圖像分類應用在InceptionV3、VGG16、Xception網絡下的性能。結果顯示,在相同的數據集下,Xception、VGG16的分類結果略好于InceptionV3,在大數據集上訓練的模型遷移到小數據集,大大減少了時間消耗,且有較好的識別效果。