當前位置:
首頁 > 最新 > VGG卷積神經網路模型解析

VGG卷積神經網路模型解析

一:VGG介紹與模型結構

VGG全稱是Visual Geometry Group屬於牛津大學科學工程系,其發布了一些列以VGG開頭的卷積網路模型,可以應用在人臉識別、圖像分類等方面,分別從VGG16~VGG19。VGG研究卷積網路深度的初衷是想搞清楚卷積網路深度是如何影響大規模圖像分類與識別的精度和準確率的,最初是VGG-16號稱非常深的卷積網路全稱為(GG-Very-Deep-16 CNN),VGG在加深網路層數同時為了避免參數過多,在所有層都採用3x3的小卷積核,卷積層步長被設置為1。VGG的輸入被設置為224x244大小的RGB圖像,在訓練集圖像上對所有圖像計算RGB均值,然後把圖像作為輸入傳入VGG卷積網路,使用3x3或者1x1的filter,卷積步長被固定1。VGG全連接層有3層,根據卷積層+全連接層總數目的不同可以從VGG11 ~ VGG19,最少的VGG11有8個卷積層與3個全連接層,最多的VGG19有16個卷積層+3個全連接層,此外VGG網路並不是在每個卷積層後面跟上一個池化層,還是總數5個池化層,分布在不同的卷積層之下,下圖是VGG11 ~GVV19的結構圖:

考慮到整個網路的精簡結構顯示,ReLU激活函數並沒有被顯示在上述結構中。上述結構中一些說明:

conv表示卷積層

FC表示全連接層

conv3表示卷積層使用3x3 filters

conv3-64表示 深度64

maxpool表示最大池化

上述VGG11 ~ VGG19參數總數列表如下:

在實際處理中還可以對第一個全連接層改為7x7的卷積網路,後面兩個全連接層改為1x1的卷積網路,這個整個VGG就變成一個全卷積網路FCN。在VGG網路之前,卷積神經網路CNN很少有突破10層的,VGG在加深CNN網路深度方面首先做出了貢獻,但是VGG也有自身的局限性,不能無限制的加深網路,在網路加深到一定層數之後就會出現訓練效果褪化、梯度消逝或者梯度爆炸等問題,總的來說VGG在剛提出的時候也是風靡一時,在ImageNet競賽數據集上都取得了不錯的效果

在其他類似數據集上同樣表現不俗:


VGG本身提供了預訓練模型供大家可以自由使用,預訓練的VGG-16模型與VGG-19模型下載地址可以在這裡發現:

http://www.robots.ox.ac.uk/~vgg/research/very_deep/

下載VGG-16模型之後使用OpenCV DNN模塊相關API,就可以實現一個圖像分類器,支持1000種圖像分類,基於ImageNet 2014-ILSVRC數據集訓練。原圖:

VGG-16預測分類結果:

稍微有點尷尬的是,OpenCL初始化內存不夠了,只能說我的機器不給力:

載入VGG-16並執行圖像分類代碼如下:

VGG不足之處

VGG的缺點就是參數文件比較大,速度比較慢,但是它依然是學習深度學習、理解卷積神經網路最好的基礎模型之一


書痴者文必工,

藝痴者技必良!

關注【OpenCV學堂】

長按或者掃碼下面二維碼即可關注


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 OpenCV學堂 的精彩文章:

TensorFlow中常量與變數的基本操作演示

TAG:OpenCV學堂 |