摘" 要:在嵌入式系統(tǒng)和邊緣計算中,為提高VGG16卷積神經網絡對小尺寸圖像識別的計算效率,通過調整模型全連接層數(shù)量、卷積核數(shù)量和使用全局平均池化替代全連接層等方式對VGG16網絡進行改進,降低網絡模型的可訓練參數(shù)量。將改進的神經網絡模型在圖像增強的CIFAR-10數(shù)據(jù)集上進行訓練,訓練集達到99%以上的識別準確率,測試集可以達到90%以上的識別準確率,改進后的網絡模型參數(shù)量較VGG16網絡參數(shù)量減少了89.04%,驗證了改進網絡模型的有效性。
關鍵詞:卷積神經網絡;VGG16;CIFAR-10數(shù)據(jù)集;網絡輕量化;圖像增強
中圖分類號:TP391.4;TP183" 文獻標識碼:A" 文章編號:2096-4706(2024)23-0105-05
Research on Small-size Image Recognition Based on Improved VGG16 Network
CHEN Lingfang, ZHANG Peng, LI Kun, YANG Hang, QIU Yuanyuan
(Xinjiang Institute of Technology, Aksu" 843100, China)
Abstract: In embedded systems and edge computing, in order to improve the computational efficiency of the VGG16 Convolutional Neural Networks for small-size image recognition, the VGG16 network is improved by adjusting the number of fully connected layers and the number of convolutional kernels in the model, using global average pooling to replace fully connected layers, and other ways, so as to reduce the number of trainable parameters of the network model. The improved neural network model is trained on the CIFAR-10 dataset with image enhancement. The recognition accuracy of the training set reaches more than 99%, and the recognition accuracy of test set can reach more than 90%. The number of parameters of the improved network model is reduced by 89.04% compared with the VGG16 network, which verifies the effectiveness of the improved network model.
Keywords: Convolutional Neural Networks; VGG16; CIFAR-10 dataset; network lightweight; image enhancement
0" 引" 言
卷積神經網絡在基于嵌入式系統(tǒng)和邊緣計算系統(tǒng)的圖像分類識別中有十分廣泛的應用。在圖形分類識別的中,由于在嵌入式系統(tǒng)和邊緣計算中,系統(tǒng)的計算能力有限,過大的圖片增加嵌入式系統(tǒng)的計算量,會造成系統(tǒng)計算速度較慢,而采用較小的圖片尺寸,并對網絡模型進行輕量化,可以降低嵌入式系統(tǒng)和邊緣計算的計算量,提高系統(tǒng)反應速度[1]。
VGG網絡及其改進網絡模型在圖形識別領域有著廣泛的應用,多數(shù)關于VGG網絡及其改進網絡的研究都是在ImageNET數(shù)據(jù)集上進行訓練和測試,均達到了較好的圖像識別性能[2]。但針對諸如CIFAR-10、MNIST數(shù)據(jù)集,由于其圖像通道數(shù)、分辨率等均遠小于ImageNET數(shù)據(jù)集圖像,標準的VGG網絡對圖像尺寸較小數(shù)據(jù)集的識別效果雖然較好,但是參數(shù)較多,計算量較大,不適宜應用在多數(shù)的嵌入式設備和邊緣計算上。實現(xiàn)模型的輕量化即減少模型參數(shù)量,可采用網絡模型壓縮、采用全局池化代替全連接層、使用多個小卷積核來代替一個大卷積核、使用并聯(lián)的非對稱卷積核來代替一個正常的卷積核、剪枝等多種方法,也有諸如SqueezeNET、MobileNET、Xception等優(yōu)秀的輕量化模型,這些典型網絡模型的輕量化思路也被廣泛應用[3-5]。
為了提升模型的泛化能力,最普遍的做法是對數(shù)據(jù)集采取數(shù)據(jù)增強。在深度學習中,往往要求樣本數(shù)量充足,樣本數(shù)量越多,訓練出來的模型效果越好,模型的泛化能力越強,但在實際中樣本數(shù)量不足或者樣本質量不夠好,這時就需要對樣本做數(shù)據(jù)增強來提高樣本質量。例如在圖像分類任務中,對輸入的圖像可以進行一些簡單的旋轉、平移、縮放、遮擋、剪切、顏色變化等操作,這些操作不會改變圖像的類別,但可以增加訓練樣本的數(shù)量和提高樣本質量,這一些增強后的樣本可以幫助模型更好地學習和理解圖像的特征,提高模型的泛化能力和識別準確率。
本文通過調整VGG16卷積神經網絡的卷積核數(shù)量、全連接層參數(shù)、卷積層數(shù)等,來實現(xiàn)網絡模型參數(shù)的輕量化,并進行數(shù)據(jù)增強以提高數(shù)據(jù)質量,較好實現(xiàn)CIFAR-10數(shù)據(jù)集的分類識別。
1" 基于VGG網絡的圖像識別
VGG卷積神經網絡在圖像分來中有著廣泛的應用,VGG網絡根據(jù)網絡深度主要有VGG11、VGG13、VGG16、VGG19等幾種網絡結構。其中VGG16卷積神經網絡在網絡模型參數(shù)量、特征提取能力、訓練收斂速度等方面擁有十分均衡的性能。由于小尺寸圖像的分辨率較低,所含特征相對較少,VGG16就可以完全滿足諸如Fashion-MNIST數(shù)據(jù)集、MNIST手寫字體數(shù)據(jù)集、CIFAR-10數(shù)據(jù)集等小尺寸圖像的識別分類任務。VGG16網絡結構如圖1所示。
CIFAR-10數(shù)據(jù)集包含10個類別的圖像,每個類別有6 000張圖片,每張圖片有3個顏色通道、圖片尺寸為32×32像素。在諸多文獻中,對CIFAR-10數(shù)據(jù)集采用卷積神經網絡的識別性能分析,在訓練集上均能達到十分優(yōu)秀的識別準確率,但對于測試集數(shù)據(jù)的識別準確率仍有較大的提升空間,若模型訓練時沒有進行數(shù)據(jù)增強,測試集數(shù)據(jù)的識別準確率一般不會超過85%,而訓練時進行數(shù)據(jù)增強后,測試集數(shù)據(jù)的識別準確率明顯好于沒有進行數(shù)據(jù)增強的情況[6-7]。
圖1中所示VGG16網絡結構圖部分參數(shù)做了相應改變。在諸多可查詢的相關文獻中,VGG16卷積神經網絡大多是在ImageNet數(shù)據(jù)集上進行的分類訓練測試的,其類別數(shù)達到了1 000種,而CIFAR-10數(shù)據(jù)集、MNIST手寫字體數(shù)據(jù)集、Fashion-MNIST數(shù)據(jù)集僅有10種類別,需要將輸入層Input的數(shù)據(jù)輸入尺寸改為(32,32,3),將FC3全連接層的輸出參數(shù)設置為10,可訓練參數(shù)量為33 638 218。因此對VGG16網絡結構和參數(shù)做必要的調整來對模型適當輕量化,從而減少計算量理論上是可行的。
本文中采用的模型訓練平臺參數(shù):CPU為Intel i3 8100,內存為DDR4,8 GB,2 400 MHz,顯卡為NVIDIA GTX1060,3 GB,使用TensorFlow 2.10.0深度學習框架搭建模型。
2" 基于VGG16網絡的改進
在VGG16網絡中,模型的優(yōu)化器采用SGD,沖量系數(shù)momentum為0.9,學習率為0.01,激活函數(shù)為ReLU,批大小為128,測試數(shù)據(jù)集作為驗證數(shù)據(jù)集,分別迭代50次、100次和150次,且求三次運算結果的分類識別準確率平均值為最終值,減小偶然因素的影響。模型識別準確率如表1所示。
CIFAR-10數(shù)據(jù)集相較于ImageNET數(shù)據(jù)集圖像尺寸小很多,圖像包含的特征也要少一些,可以對VGG16網絡模型進行輕量化而不降低網絡模型對CIFAR-10數(shù)據(jù)集的識別精度。通過調整VGG16卷積神經網絡網絡層數(shù)、卷積核數(shù)量、調整全連接層參數(shù)等方法,可以實現(xiàn)對VGG16網絡的輕量化改進,達到對小尺寸圖像良好的分類識別性能[8-9]。
2.1" 減少卷積核數(shù)量
降低各卷積核的數(shù)量可以較為明顯地減少模型的可訓練參數(shù)數(shù)量。本文通過等比例減少各層的卷積核數(shù)量和全連接層神經元數(shù)量,來初步實現(xiàn)針對小尺寸圖像識別的卷積神經網絡輕量化。將第一層卷積核由64逐步改為32、24、16,其余各層參數(shù)等比例減少,得到了3個卷積神經網絡,針對CIFAR-10數(shù)據(jù)集進行訓練,選出性能表現(xiàn)優(yōu)秀的模型。得到的3個卷積神經網絡在訓練過程中采用固定學習率的方法會出現(xiàn)明顯的過擬合現(xiàn)象,訓練數(shù)據(jù)集和測試數(shù)據(jù)集均在迭代50次以后出現(xiàn)明顯的識別準確率跳動,說明出現(xiàn)了過擬合現(xiàn)象。為此采用動態(tài)更新學習率機制來克服過擬合現(xiàn)象,每迭代20次后,學習率變?yōu)橹暗?.65倍,得到的訓練結果如表2所示。
在表2中,各分類精度數(shù)據(jù)是在進行150次迭代后得到的??梢钥闯?,隨著卷積核數(shù)量減少,模型的測試數(shù)據(jù)分類準確率有較為明顯的下降,但訓練數(shù)據(jù)集的分類準確率并沒有較大改變。因此對于小尺寸圖像,測試數(shù)據(jù)分類準確率會隨著第一層卷積核數(shù)量減少而下降,綜合測試集數(shù)據(jù)分類識別結果選取第一層的卷積核數(shù)量為32的模型作為優(yōu)化對象,繼續(xù)進行改進。
2.2" 調整網絡層數(shù)
通過刪減網絡模型的層數(shù)簡化網絡,增加全連接層會顯著增加網絡模型的參數(shù)量,相反的減少全連接層可以明顯減少網絡模型的參數(shù)量,嘗試刪減FC1、FC2以及BLOCK1池化層等,來研究模型對CIFAR-10數(shù)據(jù)集的分類識別準確率。采用固定學習率(學習率設為0.01)經過三次訓練后,仍然取三次分類準確率的平均值作為最終的分類準確率,實驗結果如表3所示。
通過表3中數(shù)據(jù)能夠很清晰看出,無論是VGG16模型還是簡化后的模型,在經過150次的迭代訓練結束后,對訓練數(shù)據(jù)集的分類準確率差別很小,對測試數(shù)據(jù)集的分類準確率集中在80%左右,說明模型均有較好的收斂性和圖像特征提取與分類能力。結合網絡模型各層訓練參數(shù)數(shù)量可看出,全連接層神經元數(shù)量對網絡參數(shù)數(shù)量影響最大,因此將原有的3個全連接層調整為兩個全連接層用來進行分類。在訓練過程中,由于全連接層的減少,可訓練參數(shù)明顯減少,模型的過擬合現(xiàn)象有所減弱,在訓練過程中采用固定學習率仍可以達到較好的訓練效果。
分析網絡的各層輸出,VGG16網絡模型的輸入圖像尺寸為32×32,BLOCK1的輸出圖像尺寸為16×16,BLOCK2的輸出圖像尺寸為8×8,BLOCK3的輸出圖像尺寸為4×4,BLOCK4的輸出圖像尺寸為2×2,BLOCK5的輸出圖像尺寸為1×1,BLOCK5的輸出圖像尺寸太小,池化過程中會喪失部分圖像特征,對模型的性能有削弱,因此可采用刪除部分池化層,以增BLOCK5輸出的特征圖尺寸。對于刪除BLOCK1_POOL池化層網絡識別率降低的問題,是由于在訓練過程中出現(xiàn)相對較為明顯的過擬合現(xiàn)象,采取動態(tài)調整學習率或是采取批歸一化的方法,可以較好地抑制過擬合現(xiàn)象。
2.3" 增加批歸一化層
增加批歸一化層可以有降低模型對參數(shù)初始化的敏感性,將各層的輸入數(shù)據(jù)均值變?yōu)?、方差變?yōu)?,從而使網絡不再需要不斷適應輸入數(shù)據(jù)的分布變化,允許使用更高的學習率,而不會導致訓練不穩(wěn)定或發(fā)散,有助于防止網絡過擬合,加速訓練過程。采用先進行批歸一化操作后進行激活,增加批歸一化層后采用固定學習率(學習率設為0.01)訓練迭代150次實驗結果如表4所示。
從表4中可以看出增加歸一化層后,刪除FC1和BLOCK1_POOL池化層后的網絡對CIFAR-10數(shù)據(jù)集測試集的分類識別性能更好,但該網絡的參數(shù)量也是3個網絡中最多的。
2.4" 調整全連接層的參數(shù)
在刪除FC1層的前提下,沒有刪除BLOCK1_POOL池化層時,BLOCK5的輸出特征圖尺寸太小為256×1×1,展開后輸入全連接層的參數(shù)為256;刪除BLOCK1_POOL池化層時,BLOCK5的輸出特征圖尺寸太小為256×2×2,展開后輸入全連接層的參數(shù)為1 024。完全可以將全連接層的輸出參數(shù)調整為256,結合表4增加批歸一化層后模型識別精度,選擇刪除FC1和BLOCK1_POOL池化層后的網絡將其全連接層FC1輸出參數(shù)調整為256,經過訓練得到在CIFAR-10數(shù)據(jù)集測試集上最終的網絡識別準確率為86.02%,可訓練參數(shù)量為3 949 354。
綜上,經過各環(huán)節(jié)改進后,改進后的模型如圖2所示。
3" 改進網絡的優(yōu)化與測試分析
經過對VGG16網絡進行改進和適度輕量化,得到的網絡在CIFAR-10數(shù)據(jù)集上測試集的識別準確率達到86%以上,還可以通過對數(shù)據(jù)進行數(shù)據(jù)增強、增加Dropout層、采用全局平均池化層等方法,實現(xiàn)更高的識別準確率。在采取有效方法抑制模型訓練過擬合的情況下,理論上可以通過增加迭代次數(shù)使測試集識別準確率達到或接近100%,但實際上受限于數(shù)據(jù)集各類別圖像在訓練集和測試集上的分布、數(shù)據(jù)增強措施、模型的結構與參數(shù)量等因素,測試集識別準確率只要達到期望值,就可以認為模型得到了有效訓練,達到了性能要求。
3.1" 采用數(shù)據(jù)增強
對CIFAR-10數(shù)據(jù)集的訓練集圖像進行隨機水平平移、隨機垂直平移、隨機縮放、隨機水平翻轉、隨機錯切變換操作,同時對FC1全連接層增加Dropout層,設置Dropout值為0.4,防止模型訓練出現(xiàn)過擬合,提升模型的泛化能力。采用固定學習率(學習率設為0.01)迭代150次后數(shù)據(jù)增強后的訓練集識別準確率達到98.27%,測試集識別準確率達到88.05%。數(shù)據(jù)增強后訓練結果如圖3所示。
從圖3可以看出,采用固定學習率,在訓練初期可以使模型快速收斂,在訓練集上達到了很高的識別準確率,但隨著迭代次數(shù)的增加,模型驗證數(shù)據(jù)集的識別準確率出現(xiàn)明顯上下浮動,出現(xiàn)過擬合現(xiàn)象,模型訓練過程中的穩(wěn)定性有進一步提升的空間。
3.2" 動態(tài)調整學習率
在模型訓練過程中適時減小學習率可以防止因學習率過大造成的模型不收斂和過擬合現(xiàn)象。采取學習率動態(tài)調整策略:迭代前100次固定學習率為0.01,迭代次數(shù)在101到160之間為每迭代20次學習率變?yōu)橹暗?.65倍,迭代次數(shù)161到210之間為每迭代10次學習率變?yōu)橹暗?.75倍,迭代次數(shù)211到250之間為每迭代8次學習率變?yōu)橹暗?.8倍,迭代次數(shù)251到300之間的學習率為0.000 1。動態(tài)調整學習率后訓練結果如圖4所示。
學習率動態(tài)調整后,測試集識別準確率變化變得平順,過擬合現(xiàn)象有效改善。迭代150次后數(shù)據(jù)增強后的訓練集識別準確率達到99.31%,測試集識別準確率達到89.78%;迭代300次后數(shù)據(jù)增強后的訓練集識別準確率達到99.67%,測試集識別準確率達到90.39%。
3.3" 采用全局平均池化層
采用全局平均池化層替代FC1全連接層,主要目的還是減少模型參數(shù)量,也會在一定程度上防止過擬合的發(fā)生[10],替代后模型可訓練參數(shù)量為3 686 954。迭代150次后數(shù)據(jù)增強后的訓練集識別準確率達到99.48%,測試集識別準確率達到90.10%;迭代300次后數(shù)據(jù)增強后的訓練集識別準確率達到99.72%,測試集識別準確率達到90.64%。訓練過程中識別精度變化和結果如圖5所示。
此時的模型比VGG16模型可訓練參數(shù)量少了89.04%,測試集上的分類識別準確率也提升了近9%。
4" 結" 論
本文對VGG16模型進行改進,通過減少卷積核數(shù)量、刪除部分網絡層、使用全局平均池化替代全連接層等方法,使改進后的模型在小尺寸圖片分類識別中仍然保持良好的性能,在CIFAR-10數(shù)據(jù)集上進行驗證網絡模型性能。
在模型訓練過程中,采取數(shù)據(jù)增強、動態(tài)調整學習率、增加Dropout層等方法來抑制過擬合現(xiàn)象。最終得到網絡模型可訓練參數(shù)量為3 686 954,比VGG16模型可訓練參數(shù)量少了89.04%,測試集上的分類識別準確率也提升了近9%,更加適合嵌入式系統(tǒng)和邊緣計算的應用場合。
參考文獻:
[1] 郭慶梅,于恒力,王中訓,等.基于卷積神經網絡的圖像分類模型綜述 [J].電子技術應用,2023,46(9):31-38.
[2] 李靖霞,李文瑾.基于遷移學習和多尺度融合的遙感影像場景分類方法研究 [J].現(xiàn)代信息科技,2024,8(8):138-141+145.
[3] 郭子寧,黃海龍,高培根.改進SqueezeNet卷積神經網絡機械零件表面缺陷檢測算法 [J].制造業(yè)自動化,2024,46(2):121-124.
[4] 辛聰,李菁.基于MobileNet的電力設備圖像識別 [J].工業(yè)控制計算機,2024,37(3):157-158+166.
[5] 謝生鋒.基于Xception和遷移學習的圖像分類研究 [J].現(xiàn)代計算機,2024,30(1):75-78.
[6] ERDAS A,ARSLAN E,?ZTüRKCAN B,et al. A Study on Object Classification Using Deep Convolutional Neural Networks and Comparison with Shallow Networks [C]//2018 6th International Conference on Control Engineering amp; Information Technology (CEIT).Istanbul:IEEE,2018:1-4.
[7] CHAUHAN R,GHANSHALA K K,JOSHI R C. Convolutional Neural Network (CNN) for Image Detection and Recognition [C]//2018 First International Conference on Secure Cyber Computing and Communication (ICSCCC).Jalandhar:IEEE,2018:278-282.
[8] 張玉,武海,林凡超,等.圖像識別中的深度學習模型剪枝技術 [J].南京理工大學學報,2023,47(5):699-707.
[9] 代東南,馬睿,劉起,等.基于特征融合注意力機制的櫻桃缺陷檢測識別研究 [J].山東農業(yè)科學,2024,56(3):154-162.
[10] 李玥辰,趙曉,王若男,等.基于改進卷積神經網絡的中藥飲片圖像識別 [J].科學技術與工程,2024,24(9):3596-3604.
作者簡介:陳靈方(1989—),男,漢族,河南新安人,講師,碩士,主要研究方向:機械傳動系統(tǒng)設計、農機智能化。