空间金字塔池化(Spatial Pyramid Pooling)
簡(jiǎn)介
空間金字塔池化,使得任意大小的特征圖都能夠轉(zhuǎn)換成固定大小的特征向量,這就是空間金字塔池化的意義(多尺度特征提取出固定大小的特征向量),送入全連接層。整體框架大致為:輸入圖像,卷積層提取特征,空間金字塔池化提取固定大小特征,全連接層。
具體的流程圖如下:
具體算法的大體流程
首先通過(guò)選擇性搜索(selective search)
對(duì)待檢測(cè)的圖片進(jìn)行搜索出2000個(gè)候選窗口。這一步和R-CNN一樣。
特征提取階段
這一步就是和R-CNN最大的區(qū)別了,同樣是用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取,但是SPP-Net用的是金字塔池化。這一步驟的具體操作如下:把整張待檢測(cè)的圖片,輸入CNN中,進(jìn)行一次性特征提取,得到feature maps,然后在feature maps中找到各個(gè)候選框的區(qū)域,再對(duì)各個(gè)候選框采用金字塔空間池化,提取出固定長(zhǎng)度的特征向量。而R-CNN輸入的是每個(gè)候選框,然后在進(jìn)入CNN,因?yàn)镾PP-Net只需要一次對(duì)整張圖片進(jìn)行特征提取,速度是大大地快啊。江湖傳說(shuō)可一個(gè)提高100倍的速度,因?yàn)镽-CNN就相當(dāng)于遍歷一個(gè)CNN兩千次,而SPP-Net只需要遍歷1次。
最后采用SVM算法進(jìn)行特征向量分類識(shí)別,和R-CNN一樣
關(guān)鍵步驟解釋:
如何在feature maps中找到原始圖片中候選框的對(duì)應(yīng)區(qū)域:
候選框是通過(guò)一整張?jiān)瓐D片進(jìn)行檢測(cè)得到的,而feature maps的大小和原始圖片的大小是不同的,feature maps是經(jīng)過(guò)原始圖片卷積、下采樣等一系列操作后得到的。
直接利用計(jì)算的公式:假設(shè)(x’,y’)表示特征圖上的坐標(biāo)點(diǎn),坐標(biāo)點(diǎn)(x,y)表示原輸入圖片上的點(diǎn),那么它們之間有如下轉(zhuǎn)換關(guān)系:
(x,y)=(Sx’,Sy’)
其中S的就是CNN中所有的步長(zhǎng)(strides)的乘積,反過(guò)來(lái),通過(guò)(x,y)坐標(biāo)求解(x’,y’),那么計(jì)算公式如下:
x’=x/S+1
輸入原圖片檢測(cè)到的windows,可以得到每個(gè)矩形候選框的四個(gè)角點(diǎn),然后再根據(jù)公式:
Left、Top: x’=x/S+1
Right、Bottom: x’=x/S-1
空間金字塔池化如何提取特征,得到固定大小的特征向量:
我們假設(shè)一個(gè)很簡(jiǎn)單兩層網(wǎng)絡(luò):輸入一張任意大小的圖片,假設(shè)其大小為(w,h),輸出21個(gè)神經(jīng)元。也就是我們輸入一張任意大小的特征圖的時(shí)候,我們希望提取出21個(gè)特征。空間金字塔特征提取的過(guò)程如下:
如上圖所示,當(dāng)我們輸入一張圖片的時(shí)候,我們利用不同大小的刻度,對(duì)一張圖片進(jìn)行了劃分。上面示意圖中,利用了三種不同大小的刻度(4*4,2*2,1*1),對(duì)一張輸入的圖片進(jìn)行了劃分,最后總共可以得到16+4+1=21個(gè)塊,我們即將從這21個(gè)塊中,每個(gè)塊提取出一個(gè)特征,這樣剛好就是我們要提取的21維特征向量。第一張圖片,我們把一張完整的圖片,分成了16個(gè)塊,也就是每個(gè)塊的大小就是(w/4,h/4);第二張圖片,劃分了4個(gè)塊,每個(gè)塊的大小就是(w/2,h/2);第三張圖片,把一整張圖片作為了一個(gè)塊,也就是塊的大小為(w,h)。空間金字塔最大池化的過(guò)程,其實(shí)就是從這21個(gè)圖片塊中,分別計(jì)算每個(gè)塊的最大值,從而得到一個(gè)輸出神經(jīng)元。最后把一張任意大小的圖片轉(zhuǎn)換成了一個(gè)固定大小的21維特征(當(dāng)然你可以設(shè)計(jì)其它維數(shù)的輸出,增加金字塔的層數(shù),或者改變劃分網(wǎng)格的大小)。上面的三種不同刻度的劃分,每一種刻度我們稱之為:金字塔的一層,每一個(gè)圖片塊大小我們稱之為:windows size了。如果你希望,金字塔的某一層輸出n*n個(gè)特征,那么你就要用windows size大小為:(w/n,h/n)進(jìn)行池化了。轉(zhuǎn)自 : https://blog.csdn.net/xzzppp/article/details/51377731
總結(jié)
以上是生活随笔為你收集整理的空间金字塔池化(Spatial Pyramid Pooling)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mac和windows共享键盘鼠标方案
- 下一篇: Amoeba配置读写分离