图像目标分割_5 DeepLab V2 V3 V3+
6.5.1 DeepLab V2
6.5.1.1 改變特點
- atrous convolution
- 采用ASPP ( atrous spatial pyramid pooling) 多尺度獲得更好的分割效果
- 合并深度卷積網絡和概率圖模型方法,增強對物體邊界的定位。
- 基礎層由VGG16轉為ResNet
和v1不同:
- 通過多尺度輸入處理或者多孔空間金字塔池化,可以更好地分割物體。
- DeepLab采用最新的ResNet圖像分類深度卷積神經網絡構建,與原來基于VGG-16的網絡相比,取得了更好的語義分割性能。
6.5.1.2 Astrous conv
結構如下:
?
6.5.1.3 ASPP
使用多個不同采樣率上的多個并行多孔卷積層。每個采樣率上提取的特征再用單獨的分支處理,融合生成最后的結果。
多孔空間金字塔池化(ASPP)。為了分類中間像素(橙色),ASPP用不同采樣率的多個并行濾波器開發了多尺度特征。視野有效區用不同的顏色表示。
- DeepLab-LargeFOV 使用 rate=12的空洞卷積
- DeepLab-ASPP 使用 不同 rate 的多個 filter 在 multiple scales 獲得物體和內容,有不小的提升。
6.5.1.4 CRF
與DeepLabv1一樣
6.5.1.5 訓練
DeepLabv2在PASCAL VOC 2012, PASCAL-Context, PASCALPerson- Part, and Cityscapes四個數據集上做了評估。
訓練細節:
| DCNN模型 | 權重采用預訓練的VGG16,ResNet101 |
| DCNN損失函數 | 輸出的結果與ground truth下采樣8倍做像素交叉熵 |
| 訓練器 | SGD,batch=20 |
| 學習率 | 初始為0.001,最后的分類層是0.01 |
| 權重 | 0.9的動量, 0.0005的衰減 |
-
模型對預訓練的VGG16和ResNet101模型做fine-tune。訓練時DCNN和CRF的是解耦的,即分別訓練,訓練CRF時DCNN輸出作為CRF的一元勢函數輸入是固定的。
-
大概訓練驗證手段是對CRF做交叉驗證。使用ω2=3和σγ=3在小的交叉驗證集上尋找最佳的ω1,σα,σβ,采用從粗到細的尋找策略。
6.5.1.6 效果
PASCAL VOC 2012,在PASCAL VOC 2012上評估了DeepLab-CRF-LargeFOV模型,這里做了三個主要的改進:
- 1.訓練期間使用不同的學習策略;
- 2.使用ASPP模塊;
- 3.使用深度網絡和多層次處理.
6.5.2 DeepLab V3
6.5.2.1 V3的改進
- 連續池化和下采樣,使特征分辨率下降,不利于定位。
- 全局特征或上下文之間的互相作用有助于做語義分割,4種解決目標多尺度問題的結構
- 去除條件隨機場CRF
V3的改進
- 1、提出了更通用的框架,適用于任何網絡
- 2、改進了ASPP:由不同采樣率的空洞卷積和BN層組成,我們嘗試以級聯或并行的方式布局模塊。
- 3、討論了一個重要問題:使用大采樣率的3×3 的空洞卷積,因為圖像邊界響應無法捕捉遠距離信息,會退化為1×1的卷積, 將圖像級特征融合到ASPP模塊中。
6.5.2.2 V3工作
V3做了一個總結,全局特征或上下文之間的互相作用有助于做語義分割,下面是四種不同類型利用上下文信息做語義分割的全卷積網絡。
- 圖像金字塔(Image pyramid):小尺度的輸入響應控制語義,大尺寸的輸入響應控制細節。通過拉布拉斯金字塔對輸入變換成多尺度,傳入DCNN,融合輸出。
- 這類的缺點是:因為GPU存儲器的限制,對于更大/更深的模型不方便擴展。通常應用于推斷階段。
- 高斯金字塔(Gaussianpyramid): 用來向下采樣,主要的圖像金字塔
- 拉普拉斯金字塔(Laplacianpyramid): 用來從金字塔低層圖像重建上層未采樣圖像
- 編碼器-解碼器(Encoder-decoder):編碼器的高層次的特征容易捕獲更長的距離信息,在解碼器階段使用編碼器階段的信息幫助恢復目標的細節和空間維度。
- 例如SegNet利用下采樣的池化索引作為上采樣的指導;U-Net增加了編碼器部分的特征跳躍連接到解碼器;RefineNet等證明了Encoder-Decoder結構的有效性。
- 上下文模塊(Context module):包含了額外的模塊用于級聯編碼長距離的上下文。有效的方法是DenseCRF并入DCNN中,共同訓練DCNN和CRF。
- 空間金字塔池化(Spatial pyramid pooling):采用空間金字塔池化可以捕捉多個層次的上下文。
- 在ParseNet中從不同圖像等級的特征中獲取上下文信息;DeepLabv2提出ASPP,以不同采樣率的并行空洞卷積捕捉多尺度信息。PSPNet在不同網格尺度上執行空間池化,并在多個數據集上獲得優異的表現。
6.5.2.3 架構
-
Deeplab 把在 ImagNet 上預訓練得到的 ResNet 作為它的主要特征提取網絡。
-
最后一個 ResNet Block
- 頂部使用了空洞空間金字塔池化 (ASPP,Atrous Spatial Pyramid Pooling)
下面表示空洞卷積提取密集特征、討論空洞卷積模塊以級聯(串行)和并行布局
1、Model 1 :Going Deeper with Atrous Convolution
串行的空洞卷積模型(modules with atrous convolution laid out in cascade)變得更深了。
采用串行的ResNet,級聯block為block5、block6、block7(均為block4的復制)。輸出步長為16.在沒有使用帶孔卷積的情況下它的輸出步長是256。
Multi-grid Method
對block4~block7 采用不同atrous rates
2、Module 2 :Parallel modules with atrous convolution (ASPP)
- 1、為了增加全局的語境信息,ASPP 還通過全局平均池化(GAP global average pooling)獲得圖像級特征。即將特征做全局平均池化,經過卷積,再融合。
-
將image pooling得到的圖像級特征輸入到一個1×1 convolution with 256 filters(加入 batch normalization)中
- 然后將特征進行雙線性上采樣(bilinearly upsample)到特定的空間維度
-
2、改進的ASPP由一個 1×1 卷積,和三個 3×3卷積組成,步長為(6,12,18),輸出步長為16
-
3、ASPP所有分支處理好的特征以及image pooling 卷積上采樣之后的特征將會 concat 在一起通過另一個 1×1 卷積(也有著256個filter,加入BN)
-
4、最后還有一個 1×1 卷積產生最終的分類;條件隨機場(CRF)被去除了,模型比較簡潔易懂。
這個版本的 ASPP 包含 4 個并行的操作:
- 一個 1×1 的卷積
- 三個 3×3 的卷積(擴張率分別是(6,12,18)) 特征圖的標稱步長(nominal stride)是 16.
6.5.2.4 實驗
總結:
- 1、級聯模塊越多,準確率越好,速度下降
- 2、使用Multi_Grid 方法比原來要好
- 3、使用Hole卷積 ,步長越小,準確率越好,速度下降
- 4、ASPP最好的模型準確率高于級聯帶孔卷積模型的最優值,選擇ASPP作為我們最終的模型。
PASCAL VOC 2012效果
在 PASCAL VOC-2012 達到 86.9 mIOU
1、訓練設置
| 數據集 | PASCAL VOC 2012 |
| 工具 | TensorFlow |
| 剪裁尺寸 | 采樣513大小的裁剪尺寸 |
| 學習率策略 | 采用poly策略,在初始學習率基礎上$(1 - \frac{iter}{max_iter})power$,其中power=0.9 |
| BN層策略 | 1、output_stride=16時,采用batchsize=16,同時BN層的參數做參數衰減0.9997。 2、在增強的數據集上,以初始學習率0.007訓練30K后,凍結BN層參數。 |
| 上采樣策略 | 之前將最終的輸出與GroundTruth下采樣8倍做比較。發現保持GroundTruth更重要,所以將最終的輸出上采樣8倍與完整的GroundTruth比較。 |
2、級聯使用多個帶空洞卷積的block模塊
| OS(output_stride) | OS(output_stride)越小,mIOU越高。stride=256,信號嚴重抽取,性能大大下降 |
| Hole | 使用空洞卷積 |
| ResNet | 網絡越深,block越多,效果越好 |
| Multi-grid | 主分支的三個卷積都使用空洞卷積,Multi-gird策略 (1,2,1)時+網絡越深 效果越好 |
3、ASPP設置
| Method | Multi-grid (1,2,4)+APSS(6,12,18)+Image Pooling |
| OS | 小 |
| inputs | Multi-scale input during test Adding left-right flipped inputs |
| pretrained | Model pretrained on MS-COCO |
| 同時使用上采樣和BN | 越好 |
| batch_size | 越大效果越好 |
| eval output_stride 影響 | train output_stride = 16 , eval output_stride=8/16時,效果越好 |
6.5.3 V3總結
- 1、Deeplab v3的級聯模型和ASPP模型在PASCAL VOC 2012的驗證集上表現都要比Deeplab v2好
- 2、提升主要來自增加了調好的批次歸一化參數和更好地編碼多尺度上下文信息
6.5.4 DeepLab v3+
2018年2月份,Google 團隊在 arXiv 放出了 DeepLabv3+,在語義分割領域取得新的 state-of-the-art 水平。
DeepLabv3+ 繼續在模型的架構上作文章,為了融合多尺度信息,引入語義分割常用的 encoder-decoder。在 encoder-decoder 架構中,引入可任意控制編碼器提取特征的分辨率,通過空洞卷積平衡精度和耗時。
6.5.4.1 與DeepLab V3對比
-
deeplab v3 缺陷
- 輸出圖放大的效果不好,信息太少
-
改進
- 1、encoder-decoder
- 設計基于v3的 decode module
- 把中間一層的特征圖用于輸出圖放大
- 為了融合多尺度信息,引入語義分割常用的 encoder-decoder
- 2、Xception
- 1、encoder-decoder
6.5.4.2 結構
結構對比
1、是v3的縱式結構;2、是常見的編碼—解碼結構3、V3+提出的基于deeplab v3的encode-decode結構
1、V3+結構細節
在語義分割任務中采用 Xception 模型,在 ASPP 和解碼模塊使用depthwise separable convolution,提高編碼器-解碼器網絡的運行速率和健壯性
- encoder 的output feature 首先 經過一個 1×1 conv,然后 bilinearly 向上采樣4倍
- 和具有相同空間分辨率的低層特征concat
- 再經過一個3×3 conv ,上采樣4倍
2、Modified Aligned Xception(修正對齊的Xception)
- 1、Entry flow 保持不變,添加了更多的 Middle flow。
- 2、所有的 max pooling 被 depthwise separable convolutions 替代。
- 3、在每個 3x3 depthwise convolution 之外,增加了 batch normalization 和 ReLU。
其中三種不同的卷積對比:
Sep Conv是深度可分離卷積(Depthwise separable convolution)
6.5.4.3 訓練細節
| 數據集 | PASCAL VOC 2012(1464 (train)、1449 (val)和1456 (test)像素級注釋圖像) |
| 工具 | TensorFlow |
| Pretrained | ImageNet-1k pretrained ResNet-101 or modified aligned Xception |
| 學習率策略 | 采用poly策略,在初始學習率基礎上$(1 - \frac{iter}{max_iter})power$,其中power=0.9,初始0.007 |
| crop size | 513 ×513 |
| output_stride | 16 |
| Train | ent-to-end |
6.5.4.4 實驗效果
-
兩個結構:論文提出的模型在主干網絡 ResNet-101 和 Xception均進行驗證。兩種方式均在 ImageNet 預訓練。其中 Xception 預訓練過程中,使用 50 個 GPU,每個 GPU batch size=32,分辨率 299x299。Xception 相比 ResNet-101,在 Top-1 和 Top-5 分別提高 0.75% 和 0.29%。
-
數據集具體結果:在 PASCAL VOC 2012 數據集上取得新的 state-of-art 表現,89.0 mIOU。使用 depthwise separable convolution,使用 Pretraining on COCO 和 Pretraining on JFT,在這些 tricks 輔助下,PASCAL VOC 2012 test set 達到驚人的 89.0%,取得新的 state-of-the-art 水平。
6.5.5 DeepLab系列總結
從 DeepLabv1-v4 系列看,空洞卷積必不可少。從 DeepLabv3 開始去掉 CRFs。 DeepLabv1-v4 沒有用很多 tricks,都是從網絡架構中調整,主要是如何結合多尺度信息和空洞卷積。
| Backbone | VGG-16 | ResNet | ResNet+ | Xception |
| Atrous Conv | √ | √ | √ | √ |
| CRF | √ | √ | × | × |
| ASPP | × | ASPP | ASPP+ | ASPP+ |
| Encoder-decoder | × | × | × | √ |
6.5.6 小結
- V2的ASPP結構以及使用深度網絡Resnet
- V3的ASPP+結構
- V3+(V4)的Xception引入和具有Encder-decoder的ASPP
總結
以上是生活随笔為你收集整理的图像目标分割_5 DeepLab V2 V3 V3+的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网络教育计算机 判断,北京师范大学网络教
- 下一篇: 【Pytorch神经网络实战案例】27