李鵬松, 李俊達(dá), 吳良武, 胡建平
(1. 東北電力大學(xué) 理學(xué)院, 吉林 吉林 132012; 2. 大連測控技術(shù)研究所, 遼寧 大連 116013)
在計算機視覺領(lǐng)域, 圖像識別問題一直備受關(guān)注[1]. 卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network)是完成圖像識別任務(wù)的主要方法之一. 為達(dá)到對圖像更好的識別效果, 研究者們開始不斷改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu), 在改進(jìn)過程中卷積神經(jīng)網(wǎng)絡(luò)的深度和參數(shù)量不斷增加[2-4], 使卷積網(wǎng)絡(luò)產(chǎn)生兩點不足[5-7]: 1) 網(wǎng)絡(luò)的識別性能過分依賴于數(shù)據(jù)量; 2) 網(wǎng)絡(luò)在訓(xùn)練過程中, 收斂速度慢, 計算成本高. 數(shù)據(jù)增強和減少參數(shù)量是解決卷積神經(jīng)網(wǎng)絡(luò)存在不足的有效方法, 將兩者結(jié)合用于改進(jìn)卷積網(wǎng)絡(luò), 可使網(wǎng)絡(luò)在數(shù)據(jù)量較少的任務(wù)中取得理想的識別性能[8].
均值迭代閾值分割法是一種經(jīng)典的閾值分割方法, 因其運算量小而被廣泛應(yīng)用[9]. 由于卷積神經(jīng)網(wǎng)絡(luò)無法直接提取圖像目標(biāo)的特征, 只能逐漸聚焦于圖像目標(biāo)[10], 因此, 卷積神經(jīng)網(wǎng)絡(luò)需大量的訓(xùn)練數(shù)據(jù)和參數(shù), 用以區(qū)分圖像的目標(biāo)和背景. 均值迭代閾值分割法可增強圖像目標(biāo), 使卷積神經(jīng)網(wǎng)絡(luò)在池化操作中舍棄無用的背景特征, 降低圖像背景對識別效果的干擾, 即通過閾值分割法簡化識別任務(wù), 進(jìn)而減少卷積神經(jīng)網(wǎng)絡(luò)所需的訓(xùn)練數(shù)據(jù)量和參數(shù)量. AlexNet是深度最小的卷積神經(jīng)網(wǎng)絡(luò)之一, 因其參數(shù)較少被廣泛應(yīng)用于實際應(yīng)用中[11]. 但在數(shù)據(jù)量較小時, AlexNet識別準(zhǔn)確度較低且收斂速度較慢, 其原因是: 1) 卷積核步長過大, 使大量圖像特征丟失, 增加了所需的訓(xùn)練數(shù)據(jù)量; 2) 池化步長較短, 使許多特征被重復(fù)選擇, 浪費了有效計算資源.
根據(jù)上述分析, 本文提出一種基于均值迭代閾值分割法和卷積神經(jīng)網(wǎng)絡(luò)的圖像識別算法. 首先用均值迭代閾值分割法區(qū)分圖像的目標(biāo)和背景, 并擴大兩者灰度值之間的差異; 然后改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)適應(yīng)處理后的數(shù)據(jù), 并識別測試集數(shù)據(jù); 最后, 計算出測試集的識別準(zhǔn)確度和損失值, 作為評價算法識別性能的指標(biāo). 本文算法流程如圖1所示.
圖1 本文算法流程Fig.1 Flowchart of proposed algorithm
均值迭代閾值分割法的基本思想是利用圖像的目標(biāo)和背景在灰度特性上的差異, 把圖像視為具有不同灰度級兩類區(qū)域的組合, 通過閾值T把像素劃分為兩類----目標(biāo)和背景.
均值迭代閾值分割法步驟如下:
1) 初始化閾值, 本文使用圖像的灰度平均值;
2) 用閾值T將圖像的像素分為G1和G2兩部分,G1所包含的灰度值大于T, 否則屬于G2;
3) 分別計算G1和G2中所有像素的灰度均值μ1和μ2;
4) 更新閾值T=(μ1+μ2)/2;
5) 重復(fù)步驟2)~4), 直至相鄰兩次的均值變化小于限定值;
6) 用最后確定的閾值T′進(jìn)行分割,G1為目標(biāo),G2為背景.
圖2為利用均值迭代閾值分割法進(jìn)行區(qū)域分割的實例.
圖2 均值迭代閾值分割法分割實例Fig.2 Example of mean iteration threshold segmentation method
Krizhevsky等[11]建立了AlexNet, 其特點是參數(shù)量較少, 運算成本較低, 其網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示. AlexNet的首層卷積核步長較大、 池化操作步長較小, 使網(wǎng)絡(luò)在卷積核提取特征時丟失了部分特征, 在池化操作選擇特征時重復(fù)選擇部分特征. 同時, AlexNet全連接層參數(shù)量為58 621 955, 約占總參數(shù)量的96%, 大部分運算成本集中在全連接層. 因此, 本文主要針對卷積神經(jīng)網(wǎng)絡(luò)嚴(yán)重依賴數(shù)據(jù)量的問題進(jìn)行改進(jìn), 目標(biāo)是使卷積神經(jīng)網(wǎng)絡(luò)在訓(xùn)練數(shù)據(jù)較少時也可達(dá)理想的識別效果. 因此, 本文以層數(shù)和參數(shù)較少的AlexNet為基礎(chǔ)改進(jìn)卷積神經(jīng)網(wǎng)絡(luò), 改進(jìn)后的卷積網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示, 其中N為圖像邊長,n為圖像種類數(shù).
圖3 AlexNet結(jié)構(gòu)示意圖Fig.3 Structure diagram of AlexNet
圖4 改進(jìn)的卷積網(wǎng)絡(luò)結(jié)構(gòu)示意圖Fig.4 Structure diagram of improved convolutional neural network
本文算法改進(jìn)主要有以下幾點:
1) 在卷積層上, 為提取圖像更多的局部特征, 增加了前兩層的卷積核個數(shù), 并縮小了前兩層卷積核的尺寸和步長;
2) 在池化層上, 為防止在選擇特征時出現(xiàn)重復(fù), 將池化步長增加為2;
3) 在全連接層上, 圖像經(jīng)過均值迭代閾值分割后, 無效圖像像素數(shù)量大幅度減少, 因此, 本文將全連接層所需的參數(shù)量降低了50%以上.
本文以減少算法參數(shù)量和所需的訓(xùn)練數(shù)據(jù)量為目的, 結(jié)合均值迭代閾值分割法與改進(jìn)后的卷積神經(jīng)網(wǎng)絡(luò)對圖像進(jìn)行識別. 圖像識別算法步驟如下:
1) 用均值閾值迭代法求出圖像目標(biāo)和背景的分界值, 區(qū)分背景和目標(biāo);
2) 處理背景像素的灰度值;
3) 用處理后的圖像訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)模型, 并計算每次迭代結(jié)果的識別準(zhǔn)確度和損失誤差;
4) 根據(jù)卷積神經(jīng)網(wǎng)絡(luò)的收斂情況確定模型參數(shù), 輸出測試集的識別準(zhǔn)確度和損失誤差.
均值迭代閾值分割法主要用于區(qū)分圖像的背景和目標(biāo), 處理背景像素的灰度值以擴大圖像目標(biāo)與背景灰度值之間的差異; 卷積神經(jīng)網(wǎng)絡(luò)主要用于圖像的識別, 網(wǎng)絡(luò)通過卷積核提取圖像特征, 通過池化層選擇特征. 均值迭代閾值分割法可減少卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)及所需的數(shù)據(jù)量, 其原理如下:
1) 被弱化后的背景特征因其激活值較小極易被池化操作濾除, 因此, 卷積神經(jīng)網(wǎng)絡(luò)的權(quán)重更新主要受圖像目標(biāo)影響, 網(wǎng)絡(luò)只需少量樣本即可提取圖像目標(biāo)的特征, 從而減少網(wǎng)絡(luò)所需的訓(xùn)練數(shù)據(jù)量和參數(shù)量;
2) 均值迭代閾值分割法減少了無效像素的數(shù)量, 因此可減少全連接層所需的參數(shù)量, 由于卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)主要集中在全連接層, 因此本文即使增加了少量卷積核的個數(shù), 但總的參數(shù)量仍降低50%以上.
本文算法中的卷積神經(jīng)網(wǎng)絡(luò)主要由卷積層、 池化層和分類器組成[12]. 卷積層計算公式為
(1)
(2)
池化層主要對每層得到的特征進(jìn)行選擇, 本文采用最大池化對特征進(jìn)行選擇. 池化后的特征將作為分類器的輸入, 對圖像進(jìn)行識別. 本文使用的分類器為Softmax, 計算公式為
(3)
其中:zj為輸出層第j個神經(jīng)元的輸出值;pij為第i個樣本屬于第j類的概率值. 本文算法使用梯度下降法訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò), 通過不斷迭代更新權(quán)重, 其權(quán)重更新規(guī)則為
(4)
實驗在Tensorflow 1.5.0上實現(xiàn), 最大迭代次數(shù)為500, 學(xué)習(xí)率為0.000 1, 參數(shù)的初始值設(shè)為服從均值為0的高斯分布. 本文用數(shù)據(jù)的平均識別準(zhǔn)確率評價算法的識別準(zhǔn)確度, 用數(shù)據(jù)的平均損失值評價算法的識別誤差, 用收斂速度評價算法的運算成本[14]. 平均識別準(zhǔn)確率和平均損失值的計算公式分別為
(5)
(6)
本文使用3組數(shù)據(jù)集對算法進(jìn)行驗證, 其中訓(xùn)練集占80%, 測試集占20%, 數(shù)據(jù)集的基本信息列于表1. 分別用AlexNet,VGGNet和本文算法對3組數(shù)據(jù)集進(jìn)行實驗, 檢驗本文算法的識別性能. 選擇AlexNet和VGGNet作為對比算法的原因: AlexNet和VGGNet分別為深度學(xué)習(xí)中深度最小和寬度最小的卷積神經(jīng)網(wǎng)絡(luò)之一, 參數(shù)量小于其他卷積神經(jīng)網(wǎng)絡(luò)[15-19], 因此, 相比傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)更適合樣本數(shù)較少的識別任務(wù).
表1 實驗所用數(shù)據(jù)集基本信息
用基于均值迭代閾值分割法和卷積神經(jīng)網(wǎng)絡(luò)的圖像識別算法分別識別Dog&Cat,Cifar-10和 Corel-1000數(shù)據(jù)集, 實驗結(jié)果列于表2. 由表2可見, 本文算法的測試集平均準(zhǔn)確率分別約為98.8%,96.2%,97.5%, 具有較高的平均識別準(zhǔn)確率, 驗證了算法的優(yōu)越性. 在Dog&Cat數(shù)據(jù)集上, 算法的平均準(zhǔn)確率最高, 平均損失最小, 其原因是算法類別數(shù)較少, 識別任務(wù)簡單. 本文算法識別效果符合客觀規(guī)律, 驗證了算法的合理性: 在Cifar-10數(shù)據(jù)集上, 算法的平均準(zhǔn)確率最低, 平均損失最大, 其原因是圖像尺寸相比于卷積核尺寸較小, 但識別結(jié)果并未因為結(jié)構(gòu)問題出現(xiàn)巨大差異, 體現(xiàn)了算法在數(shù)據(jù)量不足識別任務(wù)中的普適性; 在Corel-1000數(shù)據(jù)集上, 算法的平均準(zhǔn)確率與平均損失均居中等. 本文算法在3個數(shù)據(jù)集上的平均準(zhǔn)確率與平均損失雖然不同, 但均大于人眼的識別準(zhǔn)確率(94.9%), 進(jìn)一步驗證了該算法的優(yōu)越性.
表2 訓(xùn)練結(jié)果隨迭代次數(shù)的變化
為進(jìn)一步評價算法的識別性能, 分別使用AlexNet和VGGNet對3組數(shù)據(jù)集進(jìn)行識別. 將在測試集中出現(xiàn)的最高平均準(zhǔn)確率作為算法最終的識別準(zhǔn)確率, 將達(dá)到最終平均識別準(zhǔn)確率時的最小平均損失值作為算法最終的平均損失值, 識別結(jié)果列于表3. 由表3可見: 在平均準(zhǔn)確率與損失誤差方面, 本文算法優(yōu)于AlexNet和VGGNet; 在Dog&Cat數(shù)據(jù)集上, 本文算法的平均準(zhǔn)確率比AlexNet和VGGNet分別高3.8%和1.3%, 平均損失值分別低0.176和0.053; 在Cifar-10數(shù)據(jù)集上, 本文算法的平均準(zhǔn)確率比AlexNet高3.7%, 平均損失值低0.088; 本文算法的平均準(zhǔn)確率比VGGNet高2.5%, 但本文算法的平均損失值低于VGGNet; 在Corel-1000數(shù)據(jù)集上, 本文算法的平均準(zhǔn)確率比AlexNet和VGGNet分別高3.7%和6.2%, 平均損失值分別低0.116和0.122. 平均準(zhǔn)確率的提升和平均損失值的降低, 進(jìn)一步說明本文算法在樣本數(shù)較少的情況下識別性能優(yōu)于傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò), 對數(shù)據(jù)量的依賴程度更低.
表3 不同算法實驗結(jié)果對比
卷積神經(jīng)網(wǎng)絡(luò)的收斂速度直接決定網(wǎng)絡(luò)的訓(xùn)練時間, 快速收斂的網(wǎng)絡(luò)只需較少的迭代次數(shù)即可確定網(wǎng)絡(luò)的參數(shù), 進(jìn)而節(jié)省運算成本. 因此, 本文比較了3種算法在不同數(shù)據(jù)集上的收斂速度, 結(jié)果如圖5所示, 其中各算法的收斂點(首次到達(dá)最終平均識別準(zhǔn)確率的點)用三角形標(biāo)記.
圖5 測試集平均準(zhǔn)確率對比Fig.5 Comparison of average accuracy on test set
由圖5(A)~(C)可見: 在Dog&Cat數(shù)據(jù)集上, 本文算法在迭代150次時收斂, 識別準(zhǔn)確度基本不變, 而AlexNet和VGGNet分別在200次和230次迭代時逐漸收斂, 同時, AlexNet和VGGNet在訓(xùn)練過程中, 平均準(zhǔn)確率一直出現(xiàn)明顯波動, 不利于網(wǎng)絡(luò)參數(shù)的最終確定; 在Cifar-10數(shù)據(jù)集上, 本文算法在280次迭代時收斂, AlexNet在340次迭代時收斂, VGGNet在380次迭代附近收斂, 3種算法的收斂速度均較慢, 但本文算法仍比AlexNet和VGGNet的收斂速度快; 在Corel-1000數(shù)據(jù)集上, AlexNet和VGGNet分別在310次和330次時收斂, 本文算法在第260次迭代時收斂. 因此, 本文算法的收斂速度更快、 平均準(zhǔn)確率更穩(wěn)定、 識別效果更好, 進(jìn)一步驗證了本文算法具有較好的識別性能, 可用于樣本數(shù)量不足時的識別任務(wù). 由圖5(D)可見: 算法在Corel-1000數(shù)據(jù)集和Dog&Cat數(shù)據(jù)集上具有較好的識別效果, 這是由于這兩個數(shù)據(jù)集的背景區(qū)域更復(fù)雜, 均值迭代閾值分割法可有效發(fā)揮作用; 算法在Cifar-10上的識別性能改進(jìn)不顯著, 這是由于卷積網(wǎng)絡(luò)的前兩層卷積核尺寸和步長相比于圖像尺寸過大, 提取的信息相對較少; 雖然3組數(shù)據(jù)背景的復(fù)雜程度不同, 但本文算法的識別效果仍較理想, 可用于樣本數(shù)量不足時的識別任務(wù). 因此, 本文算法適用于背景區(qū)域復(fù)雜、 圖像尺寸較大、 樣本數(shù)量不足的圖像識別問題.
綜上所述, 針對傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)嚴(yán)重依賴數(shù)據(jù)量的問題, 本文提出了一種基于均值迭代閾值分割法和卷積神經(jīng)網(wǎng)絡(luò)的圖像識別算法. 在Dog&Cat,Cifar-10和Corel-1000數(shù)據(jù)集上的測試結(jié)果表明, 該算法對數(shù)據(jù)量的依賴程度較小, 在樣本數(shù)量不足的圖像識別任務(wù)中仍有較好的識別性能, 比傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)有更高的識別準(zhǔn)確度、 更低的損失值和更快的收斂速度.