范峰 曹文馨 向征
摘要:在計算視覺領(lǐng)域中,訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)往往需要大量的數(shù)據(jù),網(wǎng)上公開的數(shù)據(jù)集,少說也有幾十萬張,但是在現(xiàn)實中我們能擁有的數(shù)據(jù)集資源往往沒有那么多,數(shù)據(jù)量少,這是一方面。在學(xué)術(shù)研究與教學(xué)中,很多算法都有一個基本假設(shè),那就是數(shù)據(jù)分布是均勻的,當(dāng)我們把這些算法直接應(yīng)用于實際數(shù)據(jù)時,大多數(shù)情況下都無法取得理想的效果。因為實際數(shù)據(jù)往往分布得很不均勻,都會存在“長尾現(xiàn)象”。數(shù)據(jù)分布不均勻,數(shù)據(jù)量少,往往會造成過擬合等問題,數(shù)據(jù)量少可以通過擴(kuò)充訓(xùn)練數(shù)據(jù)的方法來解決,現(xiàn)在有基本的對圖像的裁剪、翻轉(zhuǎn)、縮放、平移、尺度變換、對比度變換、噪聲擾動、顏色變化等數(shù)據(jù)增強(qiáng)的方法,但是這些方法都是基于原有的數(shù)據(jù)集,雖然能一定程度上解決數(shù)據(jù)集過少的問題,但是對數(shù)據(jù)分布不均勻并沒有多大的幫助,文章對此提出一種易于實現(xiàn)且對數(shù)據(jù)分布不均勻具有一定作用的解決方案。
關(guān)鍵詞:3D建模;數(shù)據(jù)增強(qiáng);卷積神經(jīng)網(wǎng)絡(luò);計算機(jī)視覺
傳統(tǒng)的數(shù)據(jù)增強(qiáng)方法是基于原有的圖像數(shù)據(jù)進(jìn)行各種變換,從這里引出了一個問題,嚴(yán)格地講,任何數(shù)據(jù)集樣本都有分布不均勻的情況,比如說貓與狗的正面圖片比較多,而背面或者上方的圖片比較少,那么經(jīng)過傳統(tǒng)的數(shù)據(jù)增強(qiáng)方法數(shù)據(jù)集的分布一樣沒有產(chǎn)生變化,訓(xùn)練出來的模型對正面的特征識別的準(zhǔn)確率就比較高,但是背面特征識別的準(zhǔn)確率就比較低[1]。在文本處理以及其他非圖像數(shù)據(jù)處理領(lǐng)域針對這一個問題的解決方法目前有采樣、加權(quán),但是這兩種方法在圖像識別中是比較難操作的,還有數(shù)據(jù)合成,數(shù)據(jù)合成方法是利用已有樣本生成更多的樣本,這類方法在小數(shù)據(jù)場景下有很多成功的案例,比如醫(yī)學(xué)圖像分析等,但是這個方法用來生成識別圖像數(shù)據(jù)集是明顯行不通的,不過可以借鑒其合成訓(xùn)練數(shù)據(jù)的思想,如果通過3D建模技術(shù)創(chuàng)建相應(yīng)的3D模型,再對3D模型進(jìn)行全方位圖像信息的收集,再添加到數(shù)據(jù)集中進(jìn)行訓(xùn)練,那么效果會是怎樣,我們針對這個猜想開始進(jìn)行試驗[2]。
1 模型選取及實驗設(shè)計
創(chuàng)建3D模型的方法有兩種:(1)若數(shù)據(jù)集的圖像像素較高,我們可以直接通過數(shù)據(jù)集里的目標(biāo)的多方位圖片來生成模型,現(xiàn)在有眾多的2D圖像轉(zhuǎn)3D模型的技術(shù)及軟件,比較出名的有g(shù)oogle open 3D reconstruction,Autodesk 123D Catch,smart3D等。(2)若數(shù)據(jù)集像素較低,不足以生成高精度的模型,那么我們就需要在其他地方尋找目標(biāo)對象的3D模型資源了,這個可比找數(shù)據(jù)集難度低多了。有了模型之后,我們使用3Ds Max 2018中的動畫渲染,選擇輸出JPG圖片,來合成新的數(shù)據(jù)集[3]。
在這次實驗中,我們隨機(jī)選取了著名的貓狗大戰(zhàn)中部分圖片來進(jìn)行測試,總樣本數(shù)量為25 000張,用相同的卷積神經(jīng)網(wǎng)絡(luò)分別訓(xùn)練這4 000個數(shù)據(jù),以及再加入我們通過對模型制作的數(shù)據(jù)。
卷積神經(jīng)網(wǎng)絡(luò)模型的搭建。考慮到獲取最優(yōu)識別準(zhǔn)確率不是我們的最終目的,我們搭建了一個并不是很深的網(wǎng)絡(luò),避免在這方面浪費(fèi)多余的時間,卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)為一層輸入層,3層卷積層,并在每層卷積層后加入了dropout(隨機(jī)丟棄一部分神經(jīng)元,降低過擬合),損失函數(shù)采用常見的分類用的損失函數(shù)對數(shù)損失函數(shù),最后輸出預(yù)測值,我們將這個算法模型作為控制變量,實驗數(shù)據(jù)作為自變量W。卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如表1所示。
2 實驗概述
為了驗證本文提出的有效性及可行性,實驗主要分為兩個階段:第一階段,實驗A,將從數(shù)據(jù)集中隨機(jī)選取的4 000個數(shù)據(jù),3 000個作為訓(xùn)練數(shù)據(jù),1 000個作為測試數(shù)據(jù),然后訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò),迭代10個epoch,記錄實驗結(jié)果。第二階段,實驗B,將從3D模型獲取到的1 000個數(shù)據(jù)加載到原有的數(shù)據(jù)中,用同樣結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡(luò)以同樣的epoch訓(xùn)練,記錄實驗結(jié)果并對比[5]。
2.1 實驗階段
2.1.1 實驗數(shù)據(jù)選擇與處理
試驗階段一使用的數(shù)據(jù)集為Kaggle官網(wǎng)上下載的catsva dogs的分類數(shù)據(jù)集。此數(shù)據(jù)集一共有25 000個圖像數(shù)據(jù),包括各種類型的貓以及各種各種類型的狗在各種環(huán)境下的圖片。
我們選取部分?jǐn)?shù)據(jù)集,將數(shù)據(jù)集按1:4比例隨機(jī)劃分訓(xùn)練集以及測試集,訓(xùn)練集為4 000個圖像數(shù)據(jù)測試集有1 000個圖像數(shù)據(jù),接下來通過opencv讀取并分別為貓與狗的數(shù)據(jù)打上標(biāo)簽。
圖1為部分制作數(shù)據(jù)集的模型,通過3D MAX動畫對模型實現(xiàn)全方位圖像渲染,每個模型渲染百張左右的圖片,最后分別加入分類貓和分類狗的數(shù)據(jù)集下,并打上標(biāo)簽,測試數(shù)據(jù)集并不改變,它用來作為控制變量。
2.1.2 訓(xùn)練模型
當(dāng)訓(xùn)練數(shù)據(jù)和模型都已經(jīng)準(zhǔn)備好之后,開始試驗,實驗結(jié)果如圖2所示。
模型經(jīng)過10個epoch的訓(xùn)練損失和準(zhǔn)確率的變化情況如圖2所示,loss-A隨著epoch的變化與Loss-B對比,實驗A的loss比實驗B低,這說明實驗B的數(shù)據(jù)比實驗A的樣本之間的平均差異變大了。
圖3中accuracy-A隨epoch變化的曲線與accuracy-B相比較,實驗A的訓(xùn)練準(zhǔn)確率也比實驗B的準(zhǔn)確率高,目前看起來實驗A的效果比實驗B好,但是,實驗A的訓(xùn)練準(zhǔn)確率有85%,測試準(zhǔn)確率卻只有73%,這說明模型過擬合比較嚴(yán)重了,然而實驗B的表現(xiàn)則好很多,雖然訓(xùn)練數(shù)據(jù)準(zhǔn)確率只有81%,但是測試集的準(zhǔn)確率有78%,這說明后來由模型制作的訓(xùn)練數(shù)據(jù)對模型的過擬合問題起到了良好的糾正作用,當(dāng)然模型還可以繼續(xù)調(diào)優(yōu),可以達(dá)到95%或者以上,81%也算不上多好的表現(xiàn),但是我們的目的已經(jīng)實現(xiàn)了,3D模型制作確實能一定程度上起到降低過擬合情況的作用。
2.2 實驗結(jié)論
通過實驗A的數(shù)據(jù)與實驗B的數(shù)據(jù)對比,實驗B的模型表現(xiàn)比實驗A的模型表現(xiàn)準(zhǔn)確5個百分點(diǎn),證明了3D建模技術(shù)在數(shù)據(jù)增強(qiáng)中確實有著良好的表現(xiàn),它不僅能夠改善數(shù)據(jù)集中常見的“長尾現(xiàn)象”,降低模型的擬合程度,而且它與傳統(tǒng)的數(shù)據(jù)增強(qiáng)方法并不沖突,甚至還可以在它合成的數(shù)據(jù)集上面再進(jìn)行傳統(tǒng)的數(shù)據(jù)增強(qiáng),能夠最大限度地利用原有的數(shù)據(jù)集的價值。
3 結(jié)語
在實驗之前我們就猜想,從人的角度出發(fā),讓一個人能夠在多種情況下識別一個對象,那么全方位認(rèn)識該對象的特征是必須的,而對于計算機(jī)視覺來說,也是同樣的道理,只有全方位的圖片數(shù)據(jù)信息夠多,那么才能訓(xùn)練出對對象全方位特征都具有識別能力的模型[6]。
兩個階段的實驗有力地證明了建模技術(shù)在提高模型預(yù)測精度和降低過擬合程度上有著明顯的效果,而且與原來的數(shù)據(jù)增強(qiáng)方法并不沖突,可以一起使用,這樣能夠在有限的原始數(shù)據(jù)集獲得更多有價值的數(shù)據(jù),最大限度地提取出數(shù)據(jù)的價值,從而訓(xùn)練出精度更高的算法模型[7]。
未來計算機(jī)視覺任務(wù)發(fā)展面臨的挑戰(zhàn)就有來自數(shù)據(jù)集因素的,有標(biāo)注的圖像和視頻數(shù)據(jù)較少,機(jī)器在模擬人類智能進(jìn)行認(rèn)知或者感知的過程中,需要大量有標(biāo)注的圖像或者視頻數(shù)據(jù)指導(dǎo)機(jī)器學(xué)習(xí)其中一般的模式。當(dāng)前,主要依賴人工標(biāo)注海量的圖像視頻數(shù)據(jù),不僅費(fèi)時費(fèi)力而且沒有統(tǒng)一的標(biāo)準(zhǔn)?,F(xiàn)在3D建模技術(shù)越來越方便快捷以及成本越來越低,精度也越來越高,我們推測以后用3D建模技術(shù)來制作數(shù)據(jù)集也不是沒有可能,因為通過3D模型來合成數(shù)據(jù)與傳統(tǒng)的收集圖像數(shù)據(jù)有兩個比較大的優(yōu)勢:它能夠迅速制作大量的數(shù)據(jù);它的制作是人為控制的,可以保證數(shù)據(jù)分布得均勻[8]。在深度學(xué)習(xí)算法的門檻越來越低,搭建模型越來越方便,算法模型的調(diào)優(yōu)越來越簡單的現(xiàn)在,將來獲取優(yōu)良的數(shù)據(jù)集將成為一個算法模型提升重要的因素,通過3D建模技術(shù)制作優(yōu)良的數(shù)據(jù)集將成為一個好的選擇。
[參考文獻(xiàn)]
[1]HINTON G E, SALAKHUTDINOV R R.Reducing the dimensionality of data with neural networks[J].Science, 2006(5786):504-507.
[2]HE K, ZHANG X, REN S, et al.Deep residual learning for image recognition[C].Las Vegas:Computer Vision and PatternRecognition, 2016:770-778.
[3]UGULINO W, CARDADOR D, VEGA K, et al.Wearable computing:accelerometers, data classification of body postures andmovements[C].Curitiba:Brazilian Conference on Advances in Artificial Intelligence, 2012:52-61.
[4]GUYON I.Design of experiments for the NIPS 2003 variable selection benchmark[C].Vancouver:Conference and Workshop on NeuralInformation Processing Systems, 2003.
[5]KINGMA D, BA J. Adam:a method for stochastic optimization[M].San Diego:Computer Science, 2014.
[6]盧宏濤,張秦川.深度卷積神經(jīng)網(wǎng)絡(luò)在計算機(jī)視覺中的應(yīng)用研究綜述[J].數(shù)據(jù)采集與處理,2016(1):1-17.
[7]倪晨旭.計算機(jī)視覺研究綜述[J].電子世界,2018(1):91.
[8]GREGORY R.Cordelia Schmid:MoCap-guided data augmentation for 3D pose estimation in the wild[C].Barcelona:Conference andWorkshop on Neural Information Processing Systems, 2016.