Convolutional Implementation of Sliding Windows
前言
如何解決Sliding Windows計算成本過高的問題。
內容
Turning FC layer into convolutional layers
- 首先,想辦法將CNN model中,原本最後三層FC layer轉成conv layer。
- 第一層FC轉conv
- 替換一個5x5x16(跟input相同) filter,400個(原本fc的個數)。
- 所以生成400個值。
- 第二層FC轉conv
- 替換一個1x1x400(跟input相同) filter,400個(原本fc的個數)。
- 所以生成400個值。
- 第三層FC轉output
- 替換一個1x1x400(跟input相同) filter,4個(output個數)。
Convolution implementation of sliding windows
- 測試數據 16x16x3
- 擷取成4張14x14x3的圖片
- 原本做法,是將4張圖分別通過CNN model去判別是否有物品存在,但效率低,計算成本高。
- 這4張圖,其實有大量重複的部分,所以直接用原圖丟入模型,一次行的計算,完成原本4次計算的結果。
- 產生的output變大了(1x1x4 -> 2x2x4)
- 其中2x2 = 4,其實也就是原本4張圖的結果合併。
Convolution implementation of sliding windows
該學到的
- 如何將原本FC轉成conv。
- 瞭解Convolution implementation是如何加速計算。