1. 程式人生 > >3分鐘理解ROI Pooling層

3分鐘理解ROI Pooling層

歡迎光臨我的個人主頁
在這裡插入圖片描述
直接使用SPPNet論文的原圖,下面的變數均用上圖中的表示,注意對應關係
不同size的圖片(input image)經過’convolutional layers’後得到的feature map of conv5的size不同,ROI Pooling層的功能便是將不同size的feature map of conv5處理後得到相同長度的特徵表示.(對應圖中的大黑框部分)

具體流程:

假設輸入ROI Pooling層的feature map of conv5的shape是(h,w,c)
一. 首先ROI Pooling層把feature map of conv5劃分成4*4的小方塊(對應圖中藍色矩形),每個小方塊的寬高分別為w/4,h/4,通道數為c,不能整除時需要取整.針對feature map的每個通道,分別在這16個小方塊進行最大池化(MaxPooling),也就是取出小方塊裡的最大值.每一個通道都能取出16個最大值,所以所有通道共有16c個值
二. 然後ROI Pooling層把feature map of conv5劃分成2*2的小方塊(對應圖中綠色矩形),使用同樣的方法得到4c個值
三. 接著ROI Pooling層把feature map of conv5劃分成1*1的小方塊(對應圖中灰色矩形),得到c個值
四. 最後將上面三個值串聯起來得到長度為16c+4c+c=21c的特徵表示

顯而易見,通過ROI Pooling層得到的特徵表示是固定長度(21c)的, 與輸入的h,w無關!