自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

VGG卷積神經(jīng)網(wǎng)絡(luò)模型解析

人工智能 深度學習
VGG全稱是Visual Geometry Group屬于牛津大學科學工程系,其發(fā)布了一些列以VGG開頭的卷積網(wǎng)絡(luò)模型,可以應(yīng)用在人臉識別、圖像分類等方面,分別從VGG16~VGG19。

一:VGG介紹與模型結(jié)構(gòu)

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

考慮到整個網(wǎng)絡(luò)的精簡結(jié)構(gòu)顯示,ReLU激活函數(shù)并沒有被顯示在上述結(jié)構(gòu)中。上述結(jié)構(gòu)中一些說明:

  • conv表示卷積層
  • FC表示全連接層
  • conv3表示卷積層使用3x3 filters
  • conv3-64表示 深度64
  • maxpool表示***池化

上述VGG11 ~ VGG19參數(shù)總數(shù)列表如下: 

 

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

 

在其他類似數(shù)據(jù)上同樣表現(xiàn)不俗: 

 

二:預(yù)訓練模型使用(Caffe)

VGG本身提供了預(yù)訓練模型供大家可以自由使用,預(yù)訓練的VGG-16模型與VGG-19模型下載地址可以在這里發(fā)現(xiàn):

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

下載VGG-16模型之后使用OpenCV DNN模塊相關(guān)API,就可以實現(xiàn)一個圖像分類器,支持1000種圖像分類,基于ImageNet 2014-ILSVRC數(shù)據(jù)集訓練。原圖: 

 

VGG-16預(yù)測分類結(jié)果: 

 

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

 

演示網(wǎng)絡(luò)加載與圖像分類的OpenCV程序代碼如下: 

  1. Net net = readNetFromCaffe(model_txt_file, model_bin_file); 
  2.     if (net.empty()) { 
  3.         printf("read caffe model data failure...\n"); 
  4.         return -1; 
  5.     } 
  6.     Mat inputBlob = blobFromImage(src, 1.0, Size(w, h), Scalar(104, 117, 123)); 
  7.     Mat prob; 
  8.     for (int i = 0; i < 10; i++) { 
  9.         net.setInput(inputBlob, "data"); 
  10.         prob = net.forward("prob"); 
  11.     } 
  12.     Mat probMat = prob.reshape(1, 1); 
  13.     Point classNumber; 
  14.     double classProb; 
  15.     minMaxLoc(probMat, NULL, &classProb, NULL, &classNumber); 
  16.     int classidx = classNumber.x; 
  17.     printf("\n current image classification : %s, possible : %.2f", labels.at(classidx).c_str(), classProb); 
  18.  
  19.     putText(src, labels.at(classidx), Point(20, 20), FONT_HERSHEY_SIMPLEX, 1.0, Scalar(0, 0, 255), 2, 8); 
  20.     imshow("Image Classification", src);  

學習OpenCV 深度學習視頻教程 點擊下面: 

OpenCV深度學習模塊 -《OpenCV 深度神經(jīng)網(wǎng)絡(luò)教程》

責任編輯:龐桂玉 來源: 51CTO博客
相關(guān)推薦

2017-05-04 18:30:34

大數(shù)據(jù)卷積神經(jīng)網(wǎng)絡(luò)

2022-04-07 09:01:52

神經(jīng)網(wǎng)絡(luò)人工智能

2022-10-11 23:35:28

神經(jīng)網(wǎng)絡(luò)VGGNetAlexNet

2018-04-08 11:20:43

深度學習

2020-03-25 09:48:10

AI芯片神經(jīng)網(wǎng)絡(luò)

2024-09-20 07:36:12

2024-10-28 00:38:10

2024-11-15 13:20:02

2017-04-26 09:30:53

卷積神經(jīng)網(wǎng)絡(luò)實戰(zhàn)

2019-06-06 09:00:02

卷積神經(jīng)網(wǎng)絡(luò)CNNAI

2025-02-21 08:29:07

2017-11-24 11:10:39

神經(jīng)網(wǎng)絡(luò)卷積神經(jīng)網(wǎng)絡(luò)全連接神經(jīng)網(wǎng)絡(luò)

2022-06-16 10:29:33

神經(jīng)網(wǎng)絡(luò)圖像分類算法

2021-06-29 09:53:06

神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)圖形

2024-10-05 23:00:35

2018-01-29 00:16:16

神經(jīng)網(wǎng)絡(luò)遞歸卷積深度學習

2025-03-31 09:52:00

2018-08-27 17:05:48

tensorflow神經(jīng)網(wǎng)絡(luò)圖像處理

2024-11-11 00:00:02

卷積神經(jīng)網(wǎng)絡(luò)算法

2024-12-04 10:33:17

點贊
收藏

51CTO技術(shù)棧公眾號