CS231n-2017 第11講 目標檢測與影象分割
阿新 • • 發佈:2019-01-05
一、語義分割
將一張圖片中的畫素按類別區分。示例如下:
圖 1. 語義分割示例語義分割不區分同類事物的不同例項。
語義分割的思路:
-
- 使用滑動窗方法,每次取影象的一部分,使用神經網路判斷此部分的中心畫素屬於哪一類。缺點:低效,未能複用重疊視窗之間的共有特徵。
-
- 使用全卷積(
Fully Convolutional
)網路:使用補零方法保證卷積的輸出結果的尺寸與源影象尺寸一致,不使用任何降採用方法(如池化)。缺點:計算量巨大。
- 使用全卷積(
-
- 使用全卷積網路,同時使用降取樣與升取樣技術。
- 降取樣:如池化、跨立間隔大於1的卷積操作。
- 升取樣:逆池化,轉置卷積。
1. 逆池化
平均池化層對應的逆池化操作為:將池化結果擴充套件到池化接觸域。圖示如下:
圖 2. 平均池化對應的逆池化操作最大池化對應的逆池化操作為:將池化結果按照其原始位置放置,其餘位置填充為0。圖示如下:
圖 3. 最大池化對應的逆池化操作2. 轉置卷積
卷積總可以表示成矩陣相乘的形式。而轉置卷積,顧名思義,就是將其係數矩陣進行轉置。其之所以可以進行升取樣,說明如下。
考慮一維情形。使用一個長度為3的卷積核對一個長度為4的資料,進行跨立為2的卷積操作,最終可得長度為2的卷積結果,如下圖所示:
圖 4. 一維卷積圖示而若將卷積矩陣轉置,作用在長度為2的向量上,最終可得一個較長的向量,圖示如下:
圖 5. 一維轉置卷積圖示 實際上,係數矩陣由寬矩陣(意味著輸出向量的維度要小於輸入向量的維度)變成了長矩陣(意味著輸出向量的維度要大於輸入向量的維度)。從某種意義上來說,這樣就實現了升取樣的效果。相比於逆池化的升取樣方法,轉置卷積引入了可通過訓練資料進行學習修正的引數,使模型具有了更強的靈活性。
3. 語義分割+目標定位
影象中的目標位置由一個包圍該目標的方框標識,該方框由其起始座標 ,和尺寸 限定。在語義分割的同時,確定目標位置,這屬於一個多目標學習問題。一種方法是將多個目標的損失函式,加權求和,作為整個問題的優化目標,然後進行訓練求解。
二、目標檢測
目標檢測問題,是在依附圖片中判定多類目標的不同個體。圖示如下:
圖 6. 目標檢測圖示1. 使用Region Proposal
技術的解決方案
使用深度神經網路實現目標檢測的思路:
R-CNN
:使用Region Proposal Network
獲取目標可能存在的區域,然後使用卷積神經網路判斷這些區域是否包含目標,同時對區域的位置尺寸進行修正,使得對目標的定位更加精確。Fast R-CNN
:R-CNN
的一大缺陷是其計算量大,一個解決思路是在影象的卷積特徵空間獲取目標可能存在的位置。這樣做的好處是消除了R-CNN
演算法中重疊區域的卷積特徵的重複計算。Faster R-CNN
:將Region Proposal
任務容納到CNN
網路中。
2. 不使用Region Proposal
的方法
如YOLO
(You Only Look Once)和SSD
(Single Shot Detection),其思想是將目標檢測問題轉換成一個迴歸問題:將影象劃分為若干基本網格,然後使用深度神經網路預測這些基本網格如下引數:其相對於目標方框的偏離,以及隸屬於各個分類的得分。
3、例項分割
例項分割出要求輸出圖片中各類別目標的各個實體的區域。圖示如下:
圖 7. 例項分割圖示實現方案—mask R-CNN
:在目標檢測的同時,輸出各個Region
的語義分割結果。