印桂生, 嚴(yán) 雪, 王宇華, 張 震
(哈爾濱工程大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 哈爾濱 150001)
手繪草圖是人類進(jìn)行交流的一種有效的方式, 近幾年隨著各種電子設(shè)備及觸摸屏的發(fā)展, 手繪圖像已經(jīng)變得隨處可見, 人們可以在手機(jī)、 iPad及電子手表等產(chǎn)品上通過手指觸動屏幕畫出想要表達(dá)的內(nèi)容, 也因此帶動了對于手繪草圖的研究和發(fā)展, 包括手繪草圖識別[1], 手繪草圖檢索[2]和基于手繪草圖的3D模型檢索[3-4]等。其中手繪草圖識別是目前廣大學(xué)者研究的重點(diǎn)也是這一領(lǐng)域的基礎(chǔ)。
手繪草圖識別是一項(xiàng)有挑戰(zhàn)性的任務(wù), 主要因?yàn)橄啾扔谟蓄伾屑y理等信息因子的自然圖像而言, 手繪草圖有以下幾個(gè)明顯的特征: 1) 具有高度的抽象性和夸張性。2) 大部分的手繪圖像都是由非專業(yè)人士繪制的, 因此由于不同人的繪畫能力和風(fēng)格不同導(dǎo)致同畫一個(gè)自然物體產(chǎn)生的手繪圖像之間的差異很大。3) 繪畫過程中會產(chǎn)生筆畫的停斷。4) 手繪圖像缺乏紋理和顏色等要素, 一般為二值圖像或灰度圖像[5]。這些挑戰(zhàn)使目前對手繪草圖的識別精確度仍然較低, 且經(jīng)過實(shí)驗(yàn)驗(yàn)證, 準(zhǔn)確識別手繪圖像的類別也具有一定的難度[1]。
研究以前的工作發(fā)現(xiàn), 手繪草圖的識別方法和傳統(tǒng)的自然圖像識別方法非常相似, 即先進(jìn)行手工特征提取, 然后將提取到的特征傳給分類器進(jìn)行分類識別。手工提取特征一般采用方向梯度直方圖(HOG: Histogram of Oriented Gradient)[6]和尺度不變特征變換(SIFT: Scale-Invariant Feature Transform)[7]等并結(jié)合詞袋模型BOW(Bag-Of-Words)[4]形成最后的K維統(tǒng)計(jì)直方圖, 而后使用相應(yīng)分類器進(jìn)行分類[8]。但這種方法存在的問題是訓(xùn)練精度不高且忽略了手繪草圖本身的固有特征, 例如忽略了其自身存在的筆畫順序信息。最近隨著卷積神經(jīng)網(wǎng)絡(luò)在圖像處理領(lǐng)域的顯著優(yōu)勢, 不少學(xué)者嘗試使用經(jīng)典CNN(Convolutional Neural Networks)進(jìn)行手繪草圖的識別, 結(jié)果發(fā)現(xiàn)即使目前性能最好的CNN, 也是為彩色圖像識別而設(shè)計(jì), 在解決手繪圖像識別的工作中性能卻并不突出[9], 因此, 有學(xué)者嘗試設(shè)計(jì)專門的手繪圖像識別CNN網(wǎng)絡(luò), 解決了上述問題, 且取得了超人類的性能[5]。
筆者提出了一種深度神經(jīng)網(wǎng)絡(luò)DCSN(Deeper-CNN-Sketch-Net), 主要針對手繪圖像的特殊性進(jìn)行設(shè)計(jì)。考慮到手繪草圖都沒有顏色和紋理信息, 只是由簡單的黑色線條勾勒而成的圖像, 因此存在很多空白區(qū)域, 如果使用太小的卷積核, 會導(dǎo)致一些區(qū)域?qū)W習(xí)不到特征, 增加一些不必要的計(jì)算和開銷, 所以DCSN首層采用大的卷積核, 以保證每個(gè)卷積核都可以提取到有用的特征, 且大的卷積核便于提取手繪草圖的空間結(jié)構(gòu)特征。考慮到小的步長可以保留手繪草圖更多的特征信息, DCSN首層卷積層采用更小的步長。最后, 通過增加網(wǎng)絡(luò)層數(shù)加深網(wǎng)絡(luò)深度從而學(xué)習(xí)更多特征提高網(wǎng)絡(luò)的識別準(zhǔn)確率。在利用CNN進(jìn)行網(wǎng)絡(luò)訓(xùn)練時(shí)發(fā)現(xiàn), 過擬合是一個(gè)常見的問題, 在網(wǎng)絡(luò)中可以利用Dropout技術(shù)[10]減少過擬合, 此外, 增加數(shù)據(jù)量也可以明顯的改善過擬合問題。在常見的數(shù)據(jù)增強(qiáng)技術(shù)外, 筆者根據(jù)手繪圖像的筆序信息, 提出了兩種新的數(shù)據(jù)增強(qiáng)算法, 即小圖形縮減策略和尾部移除策略。小圖形縮減策略可以選取面積小于某個(gè)閾值的圖形進(jìn)行不同比例的縮減, 這也符合不同人對于同一個(gè)物體的某一部分可能畫的偏大或偏小的特點(diǎn), 表示了不同人不同的繪畫風(fēng)格。尾部移除策略主要考慮大部分人進(jìn)行繪畫通常會先畫外部輪廓, 最后去描細(xì)節(jié)的特點(diǎn), 所以每次從最后幾筆去移除筆畫, 即不會影響圖像的整體表達(dá)含義而且使圖片具有差異性。通過這兩種方法豐富了訓(xùn)練數(shù)據(jù)集, 有效改善了過擬合問題。
筆者提出的算法主要思路如下。
1) 提出了一個(gè)深度卷積神經(jīng)網(wǎng)絡(luò)模型DCSN, DCSN在首層使用了更大的卷積核獲取手繪草圖的結(jié)構(gòu)信息和更小的步長保留更多的特征信息, 并增加了網(wǎng)絡(luò)層數(shù)加深網(wǎng)絡(luò)深度, 通過這些方法提升網(wǎng)絡(luò)的識別準(zhǔn)確率;
2) 根據(jù)手繪圖像的固有特征提出了兩種數(shù)據(jù)增強(qiáng)算法, 小圖形縮減策略和尾部移除策略, 增加了訓(xùn)練數(shù)據(jù)集, 減少了網(wǎng)絡(luò)的過擬合。
筆者使用了TU-Berlin[1]數(shù)據(jù)集在GPU(Graphics Processing Unit)服務(wù)器上進(jìn)行實(shí)驗(yàn)驗(yàn)證筆者所提方法的有效性。
從原始時(shí)期到現(xiàn)在, 手繪草圖一直在人類生活交流中扮演著重要的角色, 隨著科技和時(shí)代的發(fā)展, 人們開始對手繪草圖重視起來并展開了一系列的相關(guān)研究, 比如手繪草圖識別[1], 手繪草圖檢索[2]等并將相關(guān)技術(shù)應(yīng)用到特定領(lǐng)域。很長一段時(shí)間, 人們普遍采用的方法是人工提取特征而后將得到的特征傳給分類器進(jìn)行分類。其中識別性能最好的是Tuytelaars等[11]提出的使用Fisher Vector進(jìn)行手繪草圖分類的方法, 取得了近人類的識別性能。近幾年, 隨著深度神經(jīng)網(wǎng)絡(luò)(DNN: Deep Neural Network)的發(fā)展[12], 人們發(fā)現(xiàn), 它對特征的學(xué)習(xí)更加方便和有效, 不僅節(jié)省了人工提取特征所需要的人力且減少了對先驗(yàn)知識的依賴, 特別是卷積神經(jīng)網(wǎng)絡(luò)在近幾年的視覺識別挑戰(zhàn)賽[13]上的不斷突破, 以及出現(xiàn)的一大批優(yōu)秀的經(jīng)典網(wǎng)絡(luò)結(jié)構(gòu), 如AlexNet、 GoogleNet、 ResNet等[14], 顯示了CNN在圖像識別上的優(yōu)勢, 目前, 70%左右的CNN應(yīng)用于圖像處理領(lǐng)域。但現(xiàn)有的CNN網(wǎng)絡(luò)架構(gòu)大部分為更好的識別自然彩色圖像而設(shè)計(jì), 專門為只由黑白線條組成的手繪草圖設(shè)計(jì)的網(wǎng)絡(luò)相對較少。2015年, Yu等[4]提出了一種專門為識別手繪圖像而設(shè)計(jì)的網(wǎng)絡(luò)架構(gòu)Sketch-a-Net, 并達(dá)到了超人類的性能, 進(jìn)一步推動了手繪圖像識別的發(fā)展。2016年, 趙鵬等[15]提出Deep-Sketch模型, 從整個(gè)網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)適合手繪草圖缺乏紋理和顏色信息、 高度抽象等特點(diǎn)的網(wǎng)絡(luò), 取得了很好的性能。2018年, 在文獻(xiàn)[15]的基礎(chǔ)上, 他們進(jìn)行了改進(jìn), 提出了deep-CRNN-sketch模型[16], 將CNN與RNN(Recurrent Neural Network)進(jìn)行結(jié)合, CNN用于提取各子圖特征, 并按照時(shí)序?qū)⑻崛〉淖訄D特征圖傳給RNN, 生成最終的手繪草圖特征, 最終輸入到SVM(Support Vector Machine)分類器中進(jìn)行分類識別, 相比之前Deep-Sketch網(wǎng)絡(luò)提高了2.6%的識別準(zhǔn)確率。
盡管很多工作已經(jīng)在很大程度上設(shè)計(jì)了適合手繪草圖識別的網(wǎng)絡(luò)架構(gòu), 但是網(wǎng)絡(luò)仍然存在很多問題, 例如目前的相關(guān)網(wǎng)絡(luò)層數(shù)相對較少, 不能更深入的學(xué)習(xí)手繪草圖的內(nèi)在特征, 且目前的網(wǎng)絡(luò)參數(shù)較多, 訓(xùn)練時(shí)間較長, 如何有效減少參數(shù)提高性能是人們應(yīng)該努力的方向。筆者在經(jīng)典AlexNet網(wǎng)絡(luò)的基礎(chǔ)上, 增加了網(wǎng)絡(luò)的深度, 進(jìn)行了相應(yīng)的結(jié)構(gòu)改進(jìn), 使之適合應(yīng)用于手繪圖像的識別。
在深度學(xué)習(xí)圖像識別任務(wù)中, 構(gòu)建一個(gè)識別率高的網(wǎng)絡(luò)除了需要一個(gè)好的網(wǎng)絡(luò)結(jié)構(gòu)外, 用于訓(xùn)練的數(shù)據(jù)也至關(guān)重要, 需要使用大量的數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)訓(xùn)練, 而現(xiàn)存的很多數(shù)據(jù)集數(shù)據(jù)規(guī)模較小, 不能滿足訓(xùn)練網(wǎng)絡(luò)時(shí)對大量數(shù)據(jù)的要求, 且當(dāng)訓(xùn)練數(shù)據(jù)集過小時(shí), 網(wǎng)絡(luò)很容易產(chǎn)生過擬合, 影響網(wǎng)絡(luò)的性能?,F(xiàn)存有很多的數(shù)據(jù)增強(qiáng)技術(shù), 比如最基本的翻轉(zhuǎn)、 旋轉(zhuǎn)、 隨機(jī)切割、 加噪等[17-18], 可以通過這些增強(qiáng)技術(shù)增加訓(xùn)練集, 提高訓(xùn)練模型的泛化能力。除了這些基本方法, 也存在一些特殊的數(shù)據(jù)增強(qiáng)技術(shù), 如Inoue等[19]提出的一種高效數(shù)據(jù)增強(qiáng)方式SamplePairing, 從訓(xùn)練集隨機(jī)抽取的兩幅圖像疊加合成一個(gè)新的樣本(像素取平均值), 可以使訓(xùn)練集規(guī)模從N擴(kuò)增到N×N。當(dāng)然也存在對于要處理的特殊數(shù)據(jù)集的數(shù)據(jù)圖片進(jìn)行特殊處理, 比如筆者的手繪圖像數(shù)據(jù)集, 可以針對這一類圖像的特征設(shè)計(jì)專門的圖像增強(qiáng)技術(shù); 如Yu等[20]在2017年提出了針對手繪圖像的多種數(shù)據(jù)增強(qiáng)技術(shù), 可以根據(jù)手繪圖像筆畫的順序和長度移除筆畫生成更多的相似圖像,也可以通過局部和全局的圖像形變豐富訓(xùn)練數(shù)據(jù), 數(shù)據(jù)集的擴(kuò)充很好的提高了識別性能。筆者在此基礎(chǔ)上根據(jù)手繪草圖的筆畫順序信息提出了兩種數(shù)據(jù)增強(qiáng)方法, 擴(kuò)大了原有數(shù)據(jù)集, 將新增的數(shù)據(jù)應(yīng)用于DCSN網(wǎng)絡(luò)的訓(xùn)練中, 并取得了很好的效果。
在本節(jié)中筆者主要給出根據(jù)手繪草圖特點(diǎn)而設(shè)計(jì)的用于手繪草圖識別的DCSN網(wǎng)絡(luò), 并進(jìn)行一系列的數(shù)據(jù)增強(qiáng)以訓(xùn)練網(wǎng)絡(luò), 提高所設(shè)計(jì)的網(wǎng)絡(luò)的識別準(zhǔn)確率。
卷積神經(jīng)網(wǎng)絡(luò)主要包括卷積層和池化層, 卷積層進(jìn)行圖像特征提取, 池化層進(jìn)行圖像壓縮, 卷積層中, 上一層的特征圖會和當(dāng)前卷積層的卷積核進(jìn)行卷積運(yùn)算, 卷積的結(jié)果加權(quán)求和后, 經(jīng)過非線性函數(shù)處理得到這一層的特征圖。卷積層的計(jì)算如下所示
(1)
其中xi和yj表示第i個(gè)輸入特征和第j個(gè)輸出特征,kij表示xi和yj之間的卷積核, *表示卷積操作,bj表示第j個(gè)輸入特征的偏置系數(shù),r采用非線性函數(shù)ReLU作為激活函數(shù), ReLU被證明比sigmoid函數(shù)的擬合效果要好。具體計(jì)算如圖1所示。圖中將6×6的原始圖像輸入或上一層的特征映射圖經(jīng)過中間的3×3卷積核, 生成4×4的特征映射圖, 圖中最右面的第1行不同顏色的框中的值是由左圖中相同顏色3×3的框中的值同中間卷積核進(jìn)行卷積操作求得的值。筆者所用的池化方法為最大池化, 它是選取某一個(gè)區(qū)域中的最大值代表選中的區(qū)域, 它的計(jì)算如式(2)所示。xi表示一個(gè)特征圖上某個(gè)區(qū)域第i個(gè)數(shù)值,y是最后得到的代表值, 即所選區(qū)域的最大值。具體如圖2所示, 圖中將4×4的輸入特征圖進(jìn)行最大池化降維處理后變?yōu)?×2的特征映射圖。
y=max(x1,x2,x3,…,xn)
(2)
a 4×4的輸出特征映射圖 b 3×3的卷積核(權(quán)重) c 6×6的輸入圖1 卷積層計(jì)算過程示例圖Fig.1 Example of convolutional layer calculation process
a 3×3的卷積核(權(quán)重) b 6×6的輸入圖2 池化層計(jì)算過程示例圖Fig.2 Example of the pooling layer calculation process
筆者采用softmax進(jìn)行多分類, 它將多分類的輸出數(shù)值轉(zhuǎn)化為相對概率, 通過概率值確定此樣本所屬的類別, 計(jì)算公式如下所示
(3)
其中Vi是前一級輸出單元的輸出,i是類別索引,C為總類別數(shù),Si表示當(dāng)前元素的指數(shù)與所有元素指數(shù)和的比值。
卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練主要包括3部分, 初始化、 前向傳播和反向傳播。初始化主要是初始化網(wǎng)絡(luò)權(quán)值和神經(jīng)元的閾值, 初始化后通過前向傳播逐層向前計(jì)算出輸出值, 通過誤差函數(shù)計(jì)算誤差和反向傳播更新網(wǎng)絡(luò)的權(quán)值和閾值, 直到滿足終止條件結(jié)束。筆者進(jìn)行網(wǎng)絡(luò)訓(xùn)練和測試過程如算法1, 算法2所示。
算法1
輸入: 訓(xùn)練樣本、 網(wǎng)絡(luò)參數(shù)、 DCSN網(wǎng)絡(luò)
輸出: 已訓(xùn)練的DCSN網(wǎng)絡(luò)
1) 初始化DCSN網(wǎng)絡(luò)
2) while(未達(dá)到最大迭代次數(shù)或未滿足訓(xùn)練誤差)
3) for(每個(gè)訓(xùn)練樣本X1)
4) 前向傳播: 使用式(1)、 式(2)計(jì)算每層的輸出
5) 通過誤差函數(shù)計(jì)算誤差, 求得誤差和
6) 反向傳播, 更新權(quán)值和閾值
7) 返回2)進(jìn)行判斷, 若滿足條件繼續(xù)3)~6), 直至跳出循環(huán), 若不滿足, 則跳出循環(huán), 訓(xùn)練結(jié)束
8) end while
算法2
輸入: 測試樣本、 訓(xùn)練好的DCSN網(wǎng)絡(luò)
輸出: 識別準(zhǔn)確率
1) for(每個(gè)測試樣本X2)
2) 利用式(1)、 式(2)計(jì)算網(wǎng)絡(luò)輸出
3) 輸入到softmax中使用式(3)計(jì)算概率并分類
4) 計(jì)算識別準(zhǔn)確率
5) end for
在進(jìn)行手繪草圖識別的任務(wù)中, 首先要做的是構(gòu)建一個(gè)CNN網(wǎng)絡(luò)模型結(jié)構(gòu), 這個(gè)模型結(jié)構(gòu)應(yīng)該專門為我們的目標(biāo)圖像而設(shè)計(jì), 即它的設(shè)計(jì)應(yīng)該結(jié)合要識別的手繪草圖圖像的特征使訓(xùn)練出的網(wǎng)絡(luò)更加適合完成對手繪草圖的識別。因此, 筆者以AlexNet網(wǎng)絡(luò)模型為基礎(chǔ), 在此基礎(chǔ)上進(jìn)行更進(jìn)一步的改進(jìn), 完成了DCSN模型的構(gòu)建, 使之更適合識別手繪草圖。
DCSN網(wǎng)絡(luò)專門為識別手繪草圖而設(shè)計(jì), 主要包括9層, 網(wǎng)絡(luò)輸入為225×225像素的經(jīng)過預(yù)處理的草圖圖像, 共有6個(gè)卷積層和3個(gè)全連接層, 第1層卷積層中卷積核大小為15×15, 與為自然圖像識別構(gòu)建的卷積網(wǎng)絡(luò)首層卷積層卷積核較小不同, 這里選取一個(gè)相對大的過濾器, 這是因?yàn)樾〉倪^濾器更能捕捉到顏色、 紋理等細(xì)節(jié)的信息, 因此更適合用于自然圖像識別, 而手繪草圖中筆畫較為稀疏, 使用大的過濾器反而更容易捕捉到整個(gè)圖片的結(jié)構(gòu)信息。每個(gè)卷積層后面接著ReLU激活函數(shù), 1,2,3層后面使用最大池化層進(jìn)行降維處理, 縮小圖像的尺寸, 卷積核的尺寸大致上由大到小, 卷積核的數(shù)量由64不斷以倍數(shù)遞增, 最高為512, 最后一層為250個(gè), 對應(yīng)于分類數(shù)據(jù)集的類別數(shù)(這里250指的是TU-Berlin數(shù)據(jù)集共有250個(gè)分類), 卷積層步長除第1層為2外其余全部為1。池化層的尺寸有3×3、 2×2兩種, 步長均為2。網(wǎng)絡(luò)中第5層使用1進(jìn)行填充, 其余使用0填充, 進(jìn)行填充主要為了保證特征圖按照整數(shù)尺寸大小輸出, 使卷積計(jì)算有意義。跟以往識別自然圖像的CNN和專門為識別手繪草圖而設(shè)計(jì)的CNN一樣, DCSN網(wǎng)絡(luò)最后3層為全連接層, 7,8全連接層后面接著Dropout層, Dropout率為0.5, 這樣的好處是縮減了參數(shù)的數(shù)量, 減少了過擬合和網(wǎng)絡(luò)訓(xùn)練的時(shí)間。網(wǎng)絡(luò)具體參數(shù)如表1所示。
表1 架構(gòu)圖
筆者的DCSN模型和經(jīng)典的AlexNet模型的對比如下。兩種網(wǎng)絡(luò)模型的主要相同點(diǎn)如下。
1) 兩者均是由卷積層、 池化層和全連接層組成的卷積神經(jīng)網(wǎng)絡(luò)。
2) 兩者都使用Dropout解決全連接層參數(shù)多計(jì)算量大以及由此產(chǎn)生的過擬合問題。
3) 兩種網(wǎng)絡(luò)結(jié)構(gòu)均采用ReLU激活函數(shù)解決非線性因素的, 提高模型解決復(fù)雜問題的能力。
兩種網(wǎng)絡(luò)模型的主要不同點(diǎn)如下。
1) DCSN網(wǎng)絡(luò)層數(shù)更多, 共有9層, 而AlexNet只有8層。DCSN結(jié)構(gòu)是在AlexNe前兩層后增加了一個(gè)卷積層和一個(gè)池化層, 并去掉AlexNet第5層卷積層后的池化層。層數(shù)增多, 學(xué)習(xí)到的特征更細(xì), 有利于提高識別準(zhǔn)確率。
2) DCSN網(wǎng)絡(luò)首層使用更大的15×15卷積核學(xué)習(xí)特征, 而AlexNet網(wǎng)絡(luò)使用較小的11×11卷積核進(jìn)行學(xué)習(xí), 這主要是因?yàn)樾〉木矸e核更容易學(xué)習(xí)到細(xì)節(jié)特征如顏色、 紋理特征等, 適合用于識別自然圖像, 而大的卷積核更容易捕獲到圖像的結(jié)構(gòu)信息, 適合識別沒有顏色、 紋理特征的手繪草圖。
3) DCSN網(wǎng)絡(luò)首層卷積步長較小, 在AlexNet中首層步長為4, 而DCSN網(wǎng)絡(luò)首層步長為2, 其余層步長均為1。首層使用較小的步長可以保留更多的特征信息, 學(xué)習(xí)到的特征越多, 分類越準(zhǔn)確。
4) DCSN網(wǎng)絡(luò)過濾器的數(shù)量除最后一層全連接層外, 其他層從64依次或穩(wěn)定或成倍數(shù)遞增, 而AlexNet網(wǎng)絡(luò)則沒有這種遞增規(guī)律, 且沒有倍數(shù)關(guān)系。
5) DCSN網(wǎng)絡(luò)去掉了局部相應(yīng)歸一化(LRN: Local Response Normalization)操作。LRN的主要作用是提供亮度歸一化, 而手繪草圖中沒有亮度特征, 增加LRN不僅不能提高識別準(zhǔn)確率還會增加計(jì)算量, 所以在DCSN網(wǎng)絡(luò)中去掉了LRN。
數(shù)據(jù)增強(qiáng)技術(shù)常被應(yīng)用在原始的自然圖像識別中, 用來豐富數(shù)據(jù)集, 常用的數(shù)據(jù)增強(qiáng)技術(shù)有圖片翻轉(zhuǎn)、 旋轉(zhuǎn)、 裁剪、 高斯噪聲等。這里根據(jù)所要識別的圖像特征提出了兩種增加數(shù)據(jù)量的方法, 在筆者使用的原始數(shù)據(jù)集TU-Berlin的基礎(chǔ)上進(jìn)行數(shù)據(jù)的擴(kuò)充, 并將擴(kuò)充的數(shù)據(jù)應(yīng)用到網(wǎng)絡(luò)的訓(xùn)練中。
2.2.1 小圖形縮減策略
筆者提出小圖形縮減策略的思想是先檢測一幅圖中的圖像輪廓, 將里面的類似矩形、 圓形、 三角形的圖形分別檢測出來并標(biāo)識, 將標(biāo)識的圖形進(jìn)行面積判斷, 這里會先設(shè)定一個(gè)面積閾值, 當(dāng)檢測到的圖形面積小于該閾值時(shí), 將這個(gè)圖形按照原圖75%、50%、25%的比例縮減為3幅圖, 如果面積大于該閾值則保持原大小不變, 這是因?yàn)榇竺娣e圖形對圖像整體識別的影響大, 所以筆者對大面積的形狀不做更改。這樣將部分小圖形做縮減得到3張新的圖片, 便將原數(shù)據(jù)集擴(kuò)大了3倍。提出此策略的依據(jù)是考慮了非專業(yè)人員的繪畫水平和繪畫風(fēng)格不同, 所以對于相同的圖形畫的大小和形狀會有所不同, 將小圖形進(jìn)行縮減可以想象為另一個(gè)人的繪畫風(fēng)格。
圖3左側(cè)為數(shù)據(jù)集原圖, 右側(cè)為經(jīng)過小圖形縮減策略之后生成的3幅圖片, 可以發(fā)現(xiàn)新生成的3幅圖片和原圖片有些微的差別, 這種差別可以類比不同人的繪畫風(fēng)格不同產(chǎn)生的差異。通過這種方法可以有效的將數(shù)據(jù)集擴(kuò)充3倍用于訓(xùn)練, 擴(kuò)充后的數(shù)據(jù)集命名為S1,S2,S3,S1,S2,S3分別含有20 000張?jiān)瓐D像做小圖形縮減比例為75%、50%、25%后的對應(yīng)圖像。
a 原圖 b 縮小25% c 縮小50% d 縮小75%圖3 小圖形縮減策略示例圖Fig.3 Small graph reduction strategy example diagram
2.2.2 尾部移除策略
筆者提出的尾部移除策略是通過去掉原始圖片最后幾筆來完成數(shù)據(jù)的擴(kuò)充。這里由一幅原圖通過去掉最后一筆、 最后兩筆、 最后3筆擴(kuò)展了3幅圖片, 用于訓(xùn)練。由于手繪草圖實(shí)質(zhì)是由一些筆畫序列組成的一個(gè)筆畫集合, 且經(jīng)過研究表明, 大部分人的繪畫都是先整體輪廓, 后進(jìn)行細(xì)節(jié)方面的修飾, 因此, 對于一幅手繪草圖, 最后幾筆一般都是對細(xì)節(jié)的描繪, 對于手繪草圖來說, 一個(gè)細(xì)節(jié)的描述并不能從整體上影響整幅圖片所表達(dá)的含義, 也不會影響整體的識別。提出此策略的依據(jù)便是考慮到不同人的繪畫風(fēng)格和樣式不同, 對于最后的細(xì)節(jié)描繪, 有的人選擇去具體刻畫, 而有的人卻選擇忽略, 筆者去掉最后幾筆的想法來源于此, 將去掉最后幾筆所生成的圖像放入到訓(xùn)練數(shù)據(jù)集中, 增加了數(shù)據(jù)量, 提高了網(wǎng)絡(luò)的泛化能力。
圖4同理左側(cè)為數(shù)據(jù)集原圖, 右側(cè)是經(jīng)過尾部移除策略之后生成的3幅圖片, 分別為由原圖去掉最后一筆生成的圖片, 去掉最后兩筆生成的圖片和去掉最后3筆生成的圖片, 將后3張圖片與原圖進(jìn)行對比發(fā)現(xiàn), 只是在原圖的基礎(chǔ)上去掉了最后幾個(gè)筆畫, 并沒有改變圖片的其他地方, 將擴(kuò)充后的數(shù)據(jù)集命名為W1,W2,W3,W1,W2,W3各含有20 000張?jiān)瓐D像做一筆畫、 兩筆畫、 三筆畫尾部移除策略后的對應(yīng)圖像。
a 原圖 b 去掉最后一筆 c 去掉最后兩筆 d 去掉最后三筆圖4 尾部移除策略示例圖Fig.4 Example of tail removal strategy
使用筆者專為識別手繪草圖設(shè)計(jì)的DCSN網(wǎng)絡(luò)在TU-Berlin數(shù)據(jù)集和筆者新擴(kuò)充的數(shù)據(jù)集上按照2.1節(jié)中算法1、 算法2的步驟進(jìn)行實(shí)驗(yàn)訓(xùn)練DCSN網(wǎng)絡(luò)并測試網(wǎng)絡(luò)的性能, 并將準(zhǔn)確率作為度量標(biāo)準(zhǔn)衡量筆者所提方法的有效性。
筆者實(shí)驗(yàn)在Windows 7系統(tǒng)上進(jìn)行, 系統(tǒng)內(nèi)存為64 GByte, 使用Matlab2016a、 Visual Studio 2015平臺, Matconvnet-1.0-beta25深度學(xué)習(xí)工具, GPU的CUDA版本為CUDA 8.0, 計(jì)算能力2.0。
筆者使用目前存在的最大手繪圖像數(shù)據(jù)集TU-Berlin數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)驗(yàn)證筆者所提方法的有效性。該數(shù)據(jù)集是在2012年, 由Eitz等組織收集的, 它一共包含250類, 每類含有80幅不同風(fēng)格的手繪草圖。原始圖像共20 000張, 擴(kuò)充數(shù)據(jù)集后共140 000張圖像。原始數(shù)據(jù)集示例圖如圖5所示。
圖5 TU-Berlin數(shù)據(jù)集草圖樣圖Fig.5 TU-Berlin dataset sketch sample
筆者使用的度量標(biāo)準(zhǔn)為網(wǎng)絡(luò)的識別準(zhǔn)確率。準(zhǔn)確率是指所有樣本中, 正確分類樣本數(shù)量所占的比例。如式(4), 其中Aacc為實(shí)驗(yàn)的指標(biāo)值(準(zhǔn)確度),n為識別正確的圖像數(shù),N為總的測試樣本數(shù)量。它是圖像識別中最基本也是最重要的度量標(biāo)準(zhǔn), 這里通過這個(gè)度量標(biāo)準(zhǔn)評價(jià)筆者所提出的DCSN網(wǎng)絡(luò)的識別性能。
(4)
這里將筆者的實(shí)驗(yàn)結(jié)果與傳統(tǒng)的手工提取特征的方法及已有的深度學(xué)習(xí)方法進(jìn)行對比, 其中進(jìn)行對比的傳統(tǒng)方法包括: 1) 傳統(tǒng)的HOG-SVM, 即使用HOG進(jìn)行手工特征提取, 使用SVM進(jìn)行分類。 2) 當(dāng)前最新的FV-SP(Fisher Vector Spatial Pooling)方法。進(jìn)行對比的深度學(xué)習(xí)方法包括 1)LeNet網(wǎng)絡(luò), 它在手寫數(shù)字識別任務(wù)中有很好的性能。2) AlexNet網(wǎng)絡(luò), 筆者基于這個(gè)網(wǎng)絡(luò)設(shè)計(jì)的DCSN網(wǎng)絡(luò)。實(shí)驗(yàn)結(jié)果如表2所示。由表2可以看出, 筆者所提方法的識別準(zhǔn)確率要高于其他幾個(gè)對比的方法, 這說明筆者所提出的DCSN網(wǎng)絡(luò)更加適合手繪草圖的識別。另外, HOG-SVM和LeNet的識別準(zhǔn)確率較低, 因?yàn)镠OG-SVM是手工提取特征, 提取的特征相對較簡單, 提取不到更高層次更抽象的特征, LeNet在手寫數(shù)字識別中性能較好, 但由于其網(wǎng)絡(luò)結(jié)構(gòu)簡單, 在手繪草圖的識別中性能卻很差。FV-SP和深度AlexNet網(wǎng)絡(luò)的識別性能差不多, 但略好于AlexNet。筆者的DCSN網(wǎng)絡(luò)是在原有的AlexNet網(wǎng)絡(luò)的基礎(chǔ)上進(jìn)行改進(jìn), 改進(jìn)后的識別準(zhǔn)確率比原網(wǎng)絡(luò)提高了4.3%。
表2 與已有手繪圖像識別方法的對比結(jié)果
筆者為了更好的改善網(wǎng)絡(luò)的過擬合問題, 提高識別準(zhǔn)確率, 提出了兩種數(shù)據(jù)增強(qiáng)策略, 小圖形縮減策略和尾部移除策略。為了驗(yàn)證擴(kuò)充數(shù)據(jù)集的作用, 分別進(jìn)行了幾組對比實(shí)驗(yàn), 對比結(jié)果如表3所示。表3表明, 擴(kuò)充數(shù)據(jù)集可以幫助提高識別的準(zhǔn)確率, 且小圖形縮減策略好于尾部移除策略, 并且同時(shí)使用兩種策略可以達(dá)到最好的識別性能。
表3 數(shù)據(jù)集擴(kuò)充對識別準(zhǔn)確度的影響
筆者針對手繪草圖的特點(diǎn)提出了一個(gè)新的CNN網(wǎng)絡(luò)結(jié)構(gòu)—DCSN。提出兩種數(shù)據(jù)增強(qiáng)策略, 防止網(wǎng)絡(luò)過擬合問題的產(chǎn)生, 最后使用擴(kuò)充的數(shù)據(jù)集訓(xùn)練DCSN網(wǎng)絡(luò)。實(shí)驗(yàn)證明, 筆者提出的網(wǎng)絡(luò)模型在TU-Berlin數(shù)據(jù)集上有較高的識別準(zhǔn)確率, 且進(jìn)行數(shù)據(jù)擴(kuò)充后可以減少網(wǎng)絡(luò)的過擬合問題, 進(jìn)一步提高網(wǎng)絡(luò)的識別準(zhǔn)確率。最后, 筆者的研究還有很多未解決的問題, 例如目前筆者進(jìn)行的是類級即粗粒度的分類, 如何進(jìn)行實(shí)例級即細(xì)粒度的分類等, 是未來的努力方向。另外, 訓(xùn)練一個(gè)網(wǎng)絡(luò)需要大量的時(shí)間, 這種時(shí)間消耗是訓(xùn)練網(wǎng)絡(luò)的一個(gè)關(guān)鍵瓶頸, 隨著近幾年加速硬件的發(fā)展和并行技術(shù)的廣泛運(yùn)用, 如何將并行計(jì)算加入到卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練中以減少網(wǎng)絡(luò)訓(xùn)練時(shí)間也是我們需要進(jìn)一步研究的方向。