日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CNN应用之基于Overfeat的物体检测-2014 ICLR-未完待续

發布時間:2025/3/21 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CNN应用之基于Overfeat的物体检测-2014 ICLR-未完待续 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載自:深度學習(二十)CNN應用之基于Overfeat的物體檢測-2014 ICLR-未完待續 - hjimce的專欄 - 博客頻道 - CSDN.NET
http://blog.csdn.net/hjimce/article/details/50187881



基于Overfeat的物體檢測

原文地址:

作者:hjimce

一、相關理論

本篇博文主要講解經典物體檢測算法:《OverFeat:?Integrated Recognition, Localization and Detection?using Convolutional Networks》,至今為止這篇paper,已然被引用了幾百次,可見算法牛逼之處非同一般啊。說實話,當年剛入門深度學習的時候,看這篇文章感覺很難,Overfeat、DCNN、FCN,這三個算法,每個算法都看了將近一周的時間,才打通了任督二脈。開始前,先解釋一下文獻的OverFeat是什么意思,只有知道了這個單詞,我們才能知道這篇文獻想要干嘛,OverFeat說的簡單一點就是特征提取算子,就相當于SIFT,HOG等這些算子一樣。Along?with?this?paper,?we?release?a?feature?extractor?named?“OverFeat”,這是文獻對overfeat定義的原話。這篇文獻最牛逼的地方,在于充分利用了卷積神經網絡的特征提取功能,它把分類過程中,提取到的特征,同時又用于檢測等各種任務,牛逼哄哄啊。只需要改變網絡的最后幾層,就可以實現不同的任務,而不需要從頭開始訓練整個網絡的參數。





未完待續,敬請期待……



訓練部分

對于每張原圖片為256*256,然后進行隨機裁剪為221*221的大小作為輸入訓練數據,訓練的min-batchs選擇128,權重初始化選擇,高斯分布的隨機初始化:

?

然后采用隨機梯度下降法,進行優化更新,動量項參數大小選擇0.6,L2權重衰減系數大小選擇10-5次方。學習率一開始選擇0.05,然后根據迭代次數的增加,每隔幾十次的迭代后,就把學習率的大小減小一半。

然后就是DropOut,這個只有在最后的兩個全連接層,才采用dropout,dropout比率選擇0.5,也就是網絡的第6、7層。下面就是整個網絡的相關參數。

?

由以上的網絡結構可以知道,在訓練過程中,輸出特征圖的大小為1*1,總共有1000個特征圖(1000個分類)。在網絡的第1-5層,基本上和AlexNet是一樣的,也是使用了ReLU激活,最大池化。不同之處在于:

1、作者沒有使用局部響應歸一化層,

2、然后也沒有采用重疊池化的方法

3、在第一層卷積層,stride作者是選擇了2,這個與AlexNet不同,AlexNet選擇的跨步是4。在網絡中,如果stride選擇比較打得話,雖然可以減少網絡層數,提高速度,但是卻會降低精度。

3.3多尺度圖片分類

這一步需要聲明一下,網絡結構在訓練完后,參數的個數、結構是固定的,而這一步的算法并沒有改變網絡的結構,只是用于預測一張圖片時,通過裁剪的方法裁剪成幾張圖片,然后對這幾張圖片分別進行預測,最后對這幾張圖片結果進行平均統計。

我們知道在Alex的文獻中,他們預測的方法是,輸入一張圖片256*256,然后進行multi-view裁剪,也就是從圖片的四個角進行裁剪,還有就是一圖片的中心進行裁剪,這樣可以裁剪到5張224*224的圖片。然后把原圖片水平翻轉一下,再用同樣的方式進行裁剪,又可以裁剪到5張圖片。把這10張圖片作為輸入,分別進行預測分類,在后在softmax的最后一層,求取個各類的總概率,求取平均值。

?

于是,對于預測,作者就提出了多尺度的方法,不過感覺跟AlexNet還是挺像的,如上圖所示,paper提出的是把圖片裁剪成6張大小不同的圖片,然后對每張圖片分別進行預測,經過網絡,得到分類向量。當然輸入6張大小不一的圖片,只是其中的一小步,對于我們來說,沒啥疑問,但是真正有疑問的是,每一種輸入的圖片因為大小不同,最后在卷積層與全連接層

在這里我們以輸入一張圖片為例(6張圖片每一種的計算方法都相同),其:

?

?

上面這個表格中,

從layer-5?pre-pool到layer-5?post-pool:這一步的實現是通過池化大小為(3,3)進行池化,然后△x=0、1、2,△y=0、1、2,這樣我們可以得到對于每一張特征圖,我們都可以得到9幅池化結果。以上面表格中的sacle1為例,layer-5?pre-pool大小是17*17,經過池化后,大小就是5*5,然后有3*3張結果圖(不同offset得到的結果)。

從layer-5?post-pool到全連接層:我們知道,我們在訓練的時候,從卷積層到全連接層,輸入的大小是4096*(5*5),然后進行全連接,得到4096*(1*1)。這個過程其實也是卷積,我們可以把全連接層,看成是對整張輸入特征圖的大小作為卷積核大小,進行卷積,這個在《Fully?Convolutional?Networks?for?Semantic?Segmentation》paper又把它稱之為Fully?Convolutional?Networks,說的簡單一點就是把全連接,看成是對整個圖片卷積,記住是“看成”,并沒有改變網絡的任何結構,因為我們在寫深度學習的代碼的時候,卷積層到全連接層就用到了flatten函數,當然如果你不使用flatten函數,你可以直接繼續調用卷積函數,以整幅圖片的大小為卷積核,進行卷積。

回歸正題,回到我們這篇paper,我們知道在訓練過程中,我們從layer-5?post-pool到第六層的時候,如果把全連接看成是卷積,那么其實這個時候卷積核的大小為5*5,因為訓練的時候,layer-5?post-pool得到的結果是5*5。因此在預測分類的時候,假設layer-5?post-pool?得到的是7*9(上面表格中的scale?3),經過5*5的卷積核進行卷積后,那么它將得到(7-5+1)*(9-5+1)=3*5的輸出。


總結

以上是生活随笔為你收集整理的CNN应用之基于Overfeat的物体检测-2014 ICLR-未完待续的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。