溫故知新 目標檢測中的FPN

2021-10-07 07:58:16 字數 1622 閱讀 2666

類似影象金字塔,在**筆記中記錄的一樣,模擬人的視覺,從遠到近觀察物體:

頂部-低解析度 檢測到的是尺寸更大的物體

底部-高解析度 檢測到的是尺寸更小的物體

橙色框代表,一般由resize/下取樣操作產生;藍色框代表特徵圖,通過卷積產生,越粗的框代表語義越深。

( a ) 多維度輸入,多維度特徵圖**:影象金字塔,不同尺寸的圖輸入到網路,底層解析度高,可以檢測細節,高層解析度低,可以檢測輪廓

( b ) 單維度輸入,單維度特徵圖**:拿單層(這裡是最後一層)的特徵圖進行**,fast/er r-cnn r-cnn,yolo v1v2都是這種

( c ) 單維度輸入,多維度特徵圖**:和b相比除了拿最後一層外,還會從後往前多拿幾層**,ssd使用這種方式(但是ssd使用低層的feature去檢測小目標,而低階特徵卷積層數少,存在特徵提取不充分的問題。)

( d )單維度輸入,多維度特徵圖**:和c相比可以看到,本層會連線高層的語義,這樣做的目的是使每一層不同尺度的特徵圖都具有較強的語義資訊mask rcnn、yolo v3使用了這種方式

— 來自**筆記補充

左邊就是熟悉的卷積-池化過程,通過卷積池化尺寸變小,維度變高,語義變深這一過程稱為自底向上(bottom-up)網路

右邊就是fpn的核心思想,是乙個從高層語義向底層語義相加的過程,通過最近鄰插值,尺寸變大,維度不變,固定通道數了,語義應該也是變淺的過程,但是可以保持高層語義,(換句話說就是fpn可以傳遞深層語義到高解析度上),這一過程稱為自頂向下(top-down)網路。

既然要相加,就得保持尺寸和維度一樣

上面提到自頂向下過程中維度不變,怎麼保持維度不變?

側連線那邊先經過1 x 1卷積,改變特徵圖的通道數(文章中設定d=256,與faster r-cnn中rpn層的維數相同便於分類與回歸),所以維度始終是給定的d

上面提到自頂向下過程中尺寸變大,怎麼儲存相加時尺寸一樣?

高層到到底層用的是最近鄰插值法,而對應的側連線尺寸對應也變大

最近鄰插值法:

自底向上(左)和自頂向下(右)

**筆記:feature pyramid networks for object detection(fpn)

fpn詳解

溫故知新 Angular 的 filter

angular 中的filtre個人理解,就是這麼個東西,如字面意思,過濾器,是將乙個變數過濾 處理 一下,返回處理後的變數,如 filtername是過濾器的名字,people是其要處理的變數,para是可選的引數。其實,filtername是乙個函式,其返回值也是乙個函式,people和para...

溫故知新的錯題訓練 Coin game

傳送門 輸贏規則 無法再放下硬幣的人就輸。博弈論的基本假定 他倆都按照最優策略進行遊戲。有先手後手之分,此之為動態博弈 dynamic game.均衡 所有局中人都選擇的最優戰略或行動的組合。人的經濟行為的根本動機是自利,alice 先手將硬幣放在桌子中間,之後 bob 每放乙個硬幣,alice 在...

溫故知新(六八)微任務和巨集任務的區別

微任務和巨集任務的區別 答案 微任務和巨集任務是非同步任務的兩個分類。巨集任務 當前呼叫棧中執行的 成為巨集任務。主 塊,定時器等 巨集任務中的事件放在 callback queue 中,由事件觸發執行緒維護 微任務的事件放在微任務佇列中,由 js 引擎執行緒維護。在掛起任務時,js 引擎會將所有任...