高友文,周本君,胡曉飛
(1.南京郵電大學 通信與信息工程學院,江蘇 南京 210003;2.南京郵電大學 地理與生物信息學院,江蘇 南京 210003)
隨著科學的發展和技術的進步,圖像技術已經得到了廣泛的應用,例如在語音識別、圖像識別、垃圾短信等方面,從開始的最簡單的理論知識發展成為日常生活中隨處可見的現象。而其中圖像識別技術的應用尤為普遍。手機、電腦等的指紋解鎖,公司簽到所使用的打卡機,還有最新的人臉識別的簽到系統,這些都是圖像識別技術的官方應用。在德國漢諾威CeBTT展會的開幕式上,馬云在現場發布并演示了一種最新的支付認證技術:人臉識別支付技術。這就意味著,當以后使用支付寶進行交易時,連手機都不需要攜帶了,只需要刷臉便可以輕松完成支付。圖像識別技術發展至今,己經從最簡單的數字識別發展到了物體的識別、人臉的識別,并且還在繼續發展。
從深度學習[1-2]發展而來的卷積神經網絡(CNN)由紐約大學的Yann LeCun于1998年提出[3]。早期的CNN模型較為簡單[3],應用場景也非常單一,隨著研究的不斷深入,應用領域也在不斷擴展。例如,卷積神經網絡與深信度網絡[4]結合產生的卷積深信度網絡[5]成功應用于人臉的特征提取。AlexNet網絡在大數據分析中取得了非常好的效果。在目標檢測領域,R-CNN也取得了成功[6]。近年來。圖像識別技術得到了進一步的提升[7-8]。在中國,卷積神經網絡也成功應用于商品分類[9-11]和計算機視覺[12]等領域。
CNN本質上是一個多層感知機,具有3個最優秀的特點:稀疏交互、權值共享、等變表示。通過減少權值的數量使得網絡更加容易優化,另一方面也降低了過擬合的概率。CNN也屬于神經網絡,它的權值共享網絡結構和生物神經網絡很類似,采用這種做法,一方面不僅降低了網絡模型的復雜度,而且還降低了權值的數量。多維圖像傳輸時,這些優點更加突出。將原始圖像作為網絡的輸入,就可以有效地避免傳統識別算法中那些相對來說較為復雜的特征提取和數據重建的過程。處理二維圖像也具有優勢,如自行抽取包括顏色、紋理、形狀的圖像特征以及圖像的拓撲結構。CNN在處理圖像上擁有如此強大的能力,因此其在圖像識別技術中的應用可能會得到一個好的表現。
文中研究了卷積神經網絡中的數據增強手段,并將其應用在公開數據集leaves和蘋果表面病變數據集上,觀察數據增強前后的準確率的變化情況。
卷積神經網絡是由人工神經網絡和深度學習算法結合形成的,在圖像處理方面效果顯著。卷積神經網絡包括輸入層、隱層和輸出層,輸入層是未經處理的原始圖像或進行一般預處理后的圖像,輸出層是對圖像通過卷積神經網絡進行特征提取后產生的結果,隱層是一種多層非線性結構的神經元層,包含三級:線性激活響應、探測級、池化函數。卷積神經網絡是在隱層中實現對圖像的特征提取以及分類的,所以通過實現對卷積層和單層感知器的優化就可以提高特征提取的精度和優化分類的效果。卷積神經網絡的結構如圖1所示。

圖1 卷積神經網絡結構
為簡化分析,圖1中的隱層只畫了2個卷積層(C1、C3),2個子采樣層(S2、S4)。輸入數據Input為原始圖像,輸出結果分為A~G七類。C層和S層作為提取特征的基本單元。多次特征提取后,光柵化得到的最終的特征圖,得到一個一維矩陣形式的全連接層。輸出結果通過全鏈接的方式得到。
卷積神經網絡需要優化[13]提高深度學習模型泛化能力的最好辦法是使用更多的數據進行訓練。當然,在實踐中,擁有的數據量是有限的。解決這一問題的一種方法是創建假數據并添加到訓練集中。
數據增強對對象識別這一類問題特別有效。因為圖像是高維的并包括各種巨大的變化因素,其中有許多可以輕易地模擬。即使模型已經使用了卷積和池化技術對部分評議保持不變,沿訓練圖像每個方向平移幾個像素的操作通常可以大大改善泛化。
通常有下面這些數據增強方法:
(1)顏色的數據增強:色彩的飽和度、對比度和亮度等方面。
(2)PCA Jittering,首先按照RGB三個顏色通道計算均值和標準差,對網絡的輸入數據進行規范化,在整個訓練集上計算協方差矩陣,進行特征分解,得到特征向量和特征值,用來做PCA Jittering。
(3)在圖像進行裁剪和縮放時[14],可以使用隨機的圖像差值方式。
(4)Crop Sampling,就是怎么從原始圖像中進行縮放裁剪獲得網絡的輸入。比較常用的有2種方法:一種是使用Scale Jittering,VGG和ResNet模型的訓練都用了這種方法;另一種是尺度和長寬比增強變換,最早是Google提出訓練它們的Inception網絡的。
針對樣本數較少和樣本相似度較高等問題,文中采用如下預處理方法:
(1)對數據進行鏡面對稱增強數據集:分為左右和上下對稱,這樣將會使數據集數量翻兩番。
(2)對于刮痕這一個系列的數據集,因為它的主要語義只占全部圖像的10%左右,且大部分集中在中部區域,所以為了突出特征,進行了背景分割。
(3)對通過變換的圖像進行PCA處理:
首先根據RGB三色對樣本陣元進行如下標準化,變換色通道計算均值和標準差,對網絡的輸入數據進行規范化。

(1)
隨后在整個訓練集上計算協方差矩陣。
(2)

(3)
將求出的特征向量按照特征值的大小進行組合形成一個映射矩陣,并根據指定的PCA保留的特征個數取出映射矩陣的前n行或者前n列作為最終的映射矩陣,用映射矩陣對原始數據進行映射,達到數據降維的目的。
文中的輸入數據為256×256的原始圖像。訓練樣本的數目對于結果的影響非常大。所以為了增加訓練樣本數,同時可以降低過擬合,在保證神經網絡深度的前提下,將訓練樣本調整為126×126的子圖像。文中采用的AlexNet網絡結果的第一層卷積使用64個大小為7×7、步長為3的高斯核對子圖進行濾波,然后以最大池的窗口大小2×2、步長設置為2的池化層進行處理。使用Relu作為激勵層,以達到減少運算量和數據維度的目的。第2層卷積到第7層卷積采用的都是大小為3×3、步長為1的高斯核進行濾波。為了保證卷積運算后的特征圖大小不變,均在4個邊緣擴充1個像素。第5個卷積層后最大池的窗口大小為3×3、步長為2,這個池化層將使得池化的區域產生重疊,這種技術可以在一定程度上降低過擬合。將LRN層放置在第6個和第7個卷積層之后進行局部區域歸一化,達到側抑制的效果。2個全連接層之間使用dropout層,dropout層的比率為0.5。通過隨機選擇部分網絡的隱含層工作節點,使得不工作的網絡神經元不再影響前向傳播,同時也不參與反向傳播,使得每次得到不同結構的神經網絡,阻止了某些特征僅僅在其他特定特征下才有效的情況。
采用Leaves數據集和蘋果表面病變圖像數據集進行測試。Leaves數據集是來自于加州理工的一個開源樹葉圖片集,由Markus Weber在加州理工校園內和校園附近拍攝采集,共186張圖片。圖片集下一共有三個子分類,每個子分類60張圖片,格式為jpeg,大小896×592,圖片背景不同。
蘋果表面病變圖像數據集是人工進入蘋果園區進行拍攝采集的數據樣本。采集到的數據集一共16 000張。采集樣本分為4類:完好、圓形斑點、刮痕、完全腐爛。其中每種分類一共是4 000張左右作為訓練集,60張作為測試集,格式為jpg,大小為4 160×3 120。
蘋果表面病變圖像數據集樣本圖片如圖2所示。

圖2 蘋果表面疤痕樣本
從上之下依次為腐爛,圓形斑點,劃痕,完好。
軟件系統是ubuntu16.04,學習框架為Caffe。硬件環境:CPU為i7-4200hq,GPU為970M。
3.3.1 處理后蘋果表面病變圖像數據集樣本圖片
(1)背景切割和鏡像處理。背景切割和鏡像處理后得到的圖片如圖3所示。

圖3 背景切割和鏡像處理
(2)PCA處理。對圖2腐爛樣本進行PCA變換后得到的圖片如圖4所示。

圖4 PCA降維
3.3.2 數據預處理前后的結果對比
表1給出了原始蘋果表面病變圖像數據集和Leaves數據集和增強后的蘋果表面病變圖像數據集和leaves數據集的性能比較。

表1 實驗結果
數據增強的手段使用了圖像剪裁、鏡像變換、PCA三種方法。從accuracy來看,蘋果表面病變圖像數據集數據增強后由78%上升到83%,公開數據集Leaves由84%上升到86%,說明數據增強對圖像分類的效果有很重要的影響。
為了研究數據增強對CNN識別準確率的影響,針對網絡樣本數較少和樣本相似度較高等問題,在AlexNet網絡模型的基礎上,提出對數據集采用數據集擴增、背景分割和主成分分析等數據預處理方法,并在公開數據集Leaves和蘋果表面病變圖像數據集上進行測試。測試結果表明,數據增強處理后,將該網絡用于對公開數據集和蘋果表面病變數據集的識別,準確率
都有一定的提升。