官术网_书友最值得收藏!

第1章 雙階段檢測

1.2.2 SPP-Net的推理流程

簡單地回顧一下R-CNN的推理流程。對于一個要檢測n類目標的模型,R-CNN首先利用選擇性搜索在輸入圖像上提取2000個左右的候選區域,然后將每個候選區域拉伸到227×227的尺寸,再使用標準的CNN訓練這些候選區域,最后提取特征層的特征用于訓練n個二分類的SVM作為分類模型以及一個嶺回歸位置精校器用于位置精校。R-CNN的性能瓶頸之一是在同一幅圖像的2000個左右的候選區域上重復進行卷積操作時,存在大量的冗余計算,這是非常耗時的。

SPP-Net首先在輸入圖像上提取2000個候選區域。按照圖像的短邊(縮小到s)將圖像縮放后(在實驗中,SPP-Net使用了s∈{480, 576, 688, 864, 1200}中的多個縮放尺度,原始策略是將這5個尺度的特征連在一起作為特征向量,但是SPP-Net發現將圖像縮放到接近224×224像素的那個尺度得到的效果最好),使用CNN提取整幅圖像的特征(這是提升時間最關鍵的部分)。找到每個候選區域對應的輸出特征圖的部分,使用SPP的方法提取長度固定的特征向量。特征向量經過一個全連接層后輸入二分類SVM用于訓練SVM分類器。同R-CNN一樣,SPP-Net也使用了n個二分類的SVM。SPP-Net的檢測過程如圖1.7所示。

圖1.7 SPP-Net的檢測過程

上文提到,我們需要找到原圖的候選區域在特征層對應的相對位置。由于卷積操作并不影響物體在圖像中的相對位置,這涉及感受野(receptive field)的計算問題。感受野的計算要從第一個全連接層從后往前推,表示為式(1.3):

(1.3)

其中,out是上一層感受野的大小,stride是步長,ksize是核函數的大小。根據SPP-Net論文中給出的ZFNet的網絡結構(見表1.1),便得出了SPP-Net論文附錄A中感受野139的計算方法,如式(1.4)所示。當得到感受野之后,我們便可以得到候選區域在骨干網絡輸出層的位置。候選區域左上角的計算方式為,其中139/2是感受野的半徑,16是有效步長,63是左上角的位置偏移;右下角的計算方式為,其中75是右下角的位置偏移。

表1.1 SPP-Net中使用的ZFNet的網絡結構

圖片表格

(1.4)

上面通過感受野來確定候選區域的方式計算起來非常復雜,因為在一些復雜的網絡中它的感受野并不是非常容易計算的。一個更簡單且直接的確定候選區域的方式是按照候選區域的位置等比例地換算到特征網絡輸出層上。

SPP-Net的CNN是可以使用候選區域進行微調的。針對候選區域的類別(n+1個)特征,SPP-Net 在全連接層的最后一層又接了一個n+1個類別的分類層。在實驗中,SPP-Net的特征層沒有經過微調,只是微調了一下分類層,其使用的數據是25%的正樣本(和真值框的IoU大于50%)。和R-CNN一樣,SPP-Net也使用了嶺回歸位置精校器用于位置精校。

主站蜘蛛池模板: 安多县| 大宁县| 荥阳市| 建湖县| 大兴区| 邵阳县| 新密市| 什邡市| 长乐市| 古浪县| 邯郸县| 成武县| 巴南区| 桃园市| 安图县| 射洪县| 镇康县| 临泽县| 绥江县| 同仁县| 阜新| 乐亭县| 九龙城区| 奉化市| 海门市| 巴南区| 新安县| 永济市| 积石山| 类乌齐县| 天峨县| 平湖市| 怀来县| 旺苍县| 清流县| 沁阳市| 四平市| 太谷县| 盈江县| 仙居县| 讷河市|