1. 程式人生 > >CS231n-2017 第11講 目標檢測與影象分割

CS231n-2017 第11講 目標檢測與影象分割

一、語義分割

將一張圖片中的畫素按類別區分。示例如下:

圖 1. 語義分割示例

語義分割不區分同類事物的不同例項。
語義分割的思路:

    1. 使用滑動窗方法,每次取影象的一部分,使用神經網路判斷此部分的中心畫素屬於哪一類。缺點:低效,未能複用重疊視窗之間的共有特徵。
    1. 使用全卷積(Fully Convolutional)網路:使用補零方法保證卷積的輸出結果的尺寸與源影象尺寸一致,不使用任何降採用方法(如池化)。缺點:計算量巨大。
    1. 使用全卷積網路,同時使用降取樣與升取樣技術。
    • 降取樣:如池化、跨立間隔大於1的卷積操作。
    • 升取樣:逆池化,轉置卷積。
1. 逆池化

平均池化層對應的逆池化操作為:將池化結果擴充套件到池化接觸域。圖示如下:

圖 2. 平均池化對應的逆池化操作

最大池化對應的逆池化操作為:將池化結果按照其原始位置放置,其餘位置填充為0。圖示如下:

圖 3. 最大池化對應的逆池化操作
2. 轉置卷積

卷積總可以表示成矩陣相乘的形式。而轉置卷積,顧名思義,就是將其係數矩陣進行轉置。其之所以可以進行升取樣,說明如下。

考慮一維情形。使用一個長度為3的卷積核對一個長度為4的資料,進行跨立為2的卷積操作,最終可得長度為2的卷積結果,如下圖所示:

圖 4. 一維卷積圖示

而若將卷積矩陣轉置,作用在長度為2的向量上,最終可得一個較長的向量,圖示如下:

圖 5. 一維轉置卷積圖示 實際上,係數矩陣由寬矩陣(意味著輸出向量的維度要小於輸入向量的維度)變成了長矩陣(意味著輸出向量的維度要大於輸入向量的維度)。從某種意義上來說,這樣就實現了升取樣的效果。

相比於逆池化的升取樣方法,轉置卷積引入了可通過訓練資料進行學習修正的引數,使模型具有了更強的靈活性。

3. 語義分割+目標定位

影象中的目標位置由一個包圍該目標的方框標識,該方框由其起始座標 ( x , y ) (x, y) ,和尺寸 ( w , h ) (w,h) 限定。在語義分割的同時,確定目標位置,這屬於一個多目標學習問題。一種方法是將多個目標的損失函式,加權求和,作為整個問題的優化目標,然後進行訓練求解。

二、目標檢測

目標檢測問題,是在依附圖片中判定多類目標的不同個體。圖示如下:

圖 6. 目標檢測圖示
1. 使用Region Proposal技術的解決方案

使用深度神經網路實現目標檢測的思路:

  • R-CNN:使用Region Proposal Network獲取目標可能存在的區域,然後使用卷積神經網路判斷這些區域是否包含目標,同時對區域的位置尺寸進行修正,使得對目標的定位更加精確。
  • Fast R-CNNR-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的語義分割結果。