首先需要弄清楚以下幾個概念:
- 語義分割(semantic segmentation)
- 目標檢測(object detection)
- 目標識別(object recognition)
- 實例分割(instance segmentation)
語義分割,簡單來說就是給定一張圖片,對圖片中的每一個像素點進行分類
目標檢測,就是在一張圖片中找到並用box標註出所有的目標.
目標識別,就是檢測和用box標註出所有的物體,並標註類別.
實例分割,對圖像中的每一個像素點進行分類,同種物體的不同實例也用不同的類標進行標註.
FCN網絡
FCN,全卷積神經網絡,是目前做語義分割的最常用的網絡.
與經典的CNN在卷積層之後使用全連接層得到固定長度的特徵向量進行分類(全聯接層+softmax輸出)不同,FCN可以接受任意尺寸的輸入圖像,採用反捲積層對最後一個卷積層的feature map進行上採樣, 使它恢復到輸入圖像相同的尺寸,從而可以對每個像素都產生了一個預測, 同時保留了原始輸入圖像中的空間信息, 最後在上採樣的特徵圖上進行逐像素分類。
UNET結構
上圖就已經說的非常清楚了對於UNET網絡的架構。
以下是使用torch的UNET-128 與 UNET-256的結構:
UNET-256