董亮 段正泰 龔彬
【摘要】 ? ?圖像物體分類與檢測是計算機視覺研究中的兩個重要的基本問題,也是圖像分割、物體跟蹤、行為分析等其他高層視覺任務的基礎。為最大限度的發(fā)揮深度學習算法的性能,有必要對不同的深度學習算法進行評估,從而進行不同數(shù)據(jù)集識別方法的最優(yōu)選擇。本文基于CIFAR10和MNIST數(shù)據(jù)集,采用LeNet網(wǎng)絡和VGG網(wǎng)絡進行圖像識別,并比較各算法的效率、準確率、召回率等性能差異,進而對兩種算法進行對比和分析。
【關鍵詞】 ? ?模式識別 ? ?深度學習 ? ?卷積神經(jīng)網(wǎng)絡 ? ?LeNet ? ?VGG
引言
計算機視覺作為人工智能的一個重要分支,其顯著的研究成果已逐漸應用于人們的實際生活中,如人臉識別、目標追蹤等。而圖像分類是計算機視覺中的一個基礎問題,如何高效準確的實現(xiàn)圖像分類具有重要的研究意義和實用價值。與傳統(tǒng)神經(jīng)網(wǎng)絡相比,卷積神經(jīng)網(wǎng)絡可通過局部感受野和權值共享機制大幅降低網(wǎng)絡結構的參數(shù)數(shù)量[1],并且能夠通過池化操作有效降低特征維度,同時可有效改善網(wǎng)絡的泛化能力。因此,卷積神經(jīng)網(wǎng)絡被廣泛應用在大規(guī)模圖像數(shù)據(jù)集的分類與識別中。近年來,Alex Krizhevsky等提出了AlexNet模型,該模型引入全新的深層結構,將錯誤率從25%以上降低到了15%,顛覆了圖像識別領域[2];2014年,VGG團隊提出通過小卷積核增加網(wǎng)絡的深度,減少網(wǎng)絡參數(shù)量[3]。大量研究實驗表明,CNN是一種具有層次結構的學習模型,其在特征提取、特征選擇以及分類等問題上具有突出的優(yōu)勢,可有效提高人圖像識別的準確率和穩(wěn)健性。
一、數(shù)據(jù)集的準備
1.1 MNIST數(shù)據(jù)集
手寫數(shù)字識別數(shù)據(jù)集(MNIST)包含60000條訓練數(shù)據(jù)和10000條測試數(shù)據(jù)[4]。數(shù)據(jù)集中每一條數(shù)據(jù)均由feature(數(shù)字圖像)和lebels(標簽)組成。如圖1所示,每個圖像都是固定大?。?8x28像素),其值為0到1。每個圖像都被平展并轉換為784(28*28)個特征的一維numpy數(shù)組。
1.2 CIFAR10數(shù)據(jù)集
CIFAR-10[5]是由Hinton的學生Alex Krizhevsky和Ilya Sutskever整理的一個用于識別普適物體的小型數(shù)據(jù)集。一共包含10個類別的RGB彩色圖片,如圖2所示。圖片的尺寸為32×32,數(shù)據(jù)集中一共有50000張訓練圖片和10000張測試圖片。
二、算法設計
2.1數(shù)據(jù)預處理
Pytorch框架對MNIST和CIFAR10數(shù)據(jù)集進行了封裝。以MNIST數(shù)據(jù)集為例,每幅圖像是長度784的一維數(shù)組,而卷積網(wǎng)絡直接從彩色或灰度圖像中提取特征,通過transforms.ToTensor()方法轉化為tensor。每一個數(shù)據(jù)labels是One-Hot-Encoding格式,而模型輸出層共有10個神經(jīng)元,因此需將數(shù)據(jù)labels轉換為對應0-9的數(shù)字。每次訓練并不是讀取所有數(shù)據(jù)同時進行訓練,而是讀取一個batch數(shù)據(jù)進行訓練。
2.2 Lenet神經(jīng)網(wǎng)絡
LeNet神經(jīng)網(wǎng)絡[6]模型,該模型共有7層(不包含輸入),每層都包含可訓練參數(shù);每個層有多個Feature Map,每個Feature Map通過一種卷積濾波器提取輸入的一種特征,每個FeatureMap有多個神經(jīng)元。
2.3 VGGNet神經(jīng)網(wǎng)絡
VGGNet是由牛津大學視覺幾何小組(Visual Geometry Group,VGG)提出的一種深度卷積網(wǎng)絡結構[7]。
模型特點為:
①整個網(wǎng)絡都是用了同樣大小的卷積核尺寸3*3和最大池化尺寸2*2;
②兩個3*3的卷積串聯(lián)相當于1個5*5的卷積層,感受野大小為5*5(如圖8所示)。同樣,3個3*3卷積層串聯(lián)的效果相當于1個7*7的卷積層。這樣的連接方式使得網(wǎng)絡的參數(shù)更少,而且多層的激活函數(shù)(前者可以使用三次ReLU激活函數(shù),而后者只有一次)令網(wǎng)絡對特征的學習能力更強。
三、實驗與分析
3.1實驗環(huán)境
本文所有實驗均在Windows10操作系統(tǒng)的計算機上進行,計算機配置為Intel Core i7-8750H CPU、主頻2.20GHz、內存8.0GB、實驗所用編譯器為Pycharm,編程語言為Python,所用到的依賴庫為Pytorch 1.1.0,Tochversion 0.3.0,Numpy 1.17.4和Opencv 3.4.1。
3.2算法對比與分析
3.2.1 LeNet和VGGNet識別CIFAR10數(shù)據(jù)集
在識別CIFAR10數(shù)據(jù)集方面,LeNet在數(shù)據(jù)集迭代不同次數(shù)時,兩算法在不同時期準確率比較如下圖3所示,VGGNet的79.1%明顯優(yōu)于LeNet的66.1%,且在收斂速度上也明顯優(yōu)于LeNet。由此可得出以下結論:
①幾個小濾波器(3x3)卷積層的組合比一個大濾波器(5x5或7x7)卷積層好。
②通過不斷加深網(wǎng)絡結構可以提升性能。
3.2.2 LeNet識別MNIST數(shù)據(jù)集
在識別MNIST數(shù)據(jù)集方面,LeNet在數(shù)據(jù)集迭代不同次數(shù)時,由圖4所示實驗結果可知,應用同一LeNet網(wǎng)絡分別對CIFAR10數(shù)據(jù)集和MNIST數(shù)據(jù)集的訓練效果存在明顯差異,訓練準確率由CIFAR10的66.1%提高到MNIST的98.2%。由此可得出以下結論:
相對于灰度圖的MNIST數(shù)據(jù)集,顯然具有RGB3通道的彩色CIFAR10數(shù)據(jù)集訓練難度要高很多,且在收斂速度上明顯慢于MNIST。
四、總結
本文基于CNN卷積神經(jīng)網(wǎng)絡,介紹分析了LeNet和VGGNet兩個經(jīng)典神經(jīng)網(wǎng)絡,并將兩網(wǎng)絡應用在CIFAR10和MNIST兩類圖像識別數(shù)據(jù)集上,通過控制迭代次數(shù),得出有效結論。本文實驗結果表明,在對同一數(shù)據(jù)集進行訓練時,幾個小濾波器卷積層的組合比一個大濾波器卷積層好,且網(wǎng)絡結構越深效果越好;在應用同一網(wǎng)絡對不同數(shù)據(jù)集訓練時,灰度圖數(shù)據(jù)集在收斂速度和準確率方面明顯優(yōu)于彩色圖,也反映出彩色圖片在訓練時的難度之大。
因此,在訓練諸如MNIST的簡單數(shù)據(jù)集合時,可以采用簡單的全連接層網(wǎng)絡即可達到較高的準確率;此外,在搭建卷積神經(jīng)網(wǎng)絡時,適當?shù)脑黾泳W(wǎng)絡深度,可以有效提高訓練準確率。下一步將通過加寬加深網(wǎng)絡結構,對現(xiàn)有算法進行改進,進一步提高檢測精度,以適用于更為復雜的數(shù)據(jù)環(huán)境。
參 ?考 ?文 ?獻
[1]呂剛,郝平,盛建榮.一種改進的深度神經(jīng)網(wǎng)絡在小圖像分類中的應用研究[J].計算機應用與軟件,2014,31(4):182-184.
[2]侯宇昆.卷積神經(jīng)網(wǎng)絡概述[J].中國新通信,2017,19(9):45-45.
[3]趙秦敏.基于哈希編碼的圖像檢索算法研究[D].成都:電子科技大學,2017
[4]林大貴.TensorFlow Keras 深度學習人工智能實踐應用[M].北京:清華大學出版社,2018:254-270
[5] Alex Krizhevsky.The CIFAR-10 dataset[EB/OL].http://www.cs.toronto.edu/~kriz/cifar.html,2009.
[6] Lécun Y, Bottou L, Bengio Y, et al. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11):2278-2324.
[7] Simonyan, Karen, and Andrew Zisserman. “Very deep convolutional networks for large-scale image recognition.” arXiv preprint arXiv:1409.1556 (2014).
董亮,出生1976年10月,性別:男,民族:漢族、籍貫:吉林 職務(現(xiàn)任云南特殊教育職業(yè)學院院長,計算機應用碩士,副教授,研究方向:計算機軟件系統(tǒng)架構,人工智能,模式識別技術