天天看點

【DeconvNet】Learning Deconvolution Network for Semantic Segmentation基本情況AbstractIntroductionSystem ArchitectureTrainingInference相關資料

基本情況

這是ICCV2015的一篇文章,所屬領域為semantic segmentation.這篇文章比SegNet早.

Abstract

提出深度反卷積網絡: 是在vgg16的頂部添加反卷積層.反卷積層由deconvolution、relu和upooling組成.

通過把每一張圖檔的不同的proposal送入deploy的網絡,通過aggregate得到最後的語義分割結果.

改進之處: 針對基于FCN的方法(FCN感受野固定),實作處理精細的結構以及不同尺度大小的目标.

Introduction

基于FCN的方法最大優勢是:輸入整張圖檔、快速運作、準确推理.

基于FCN的方法的缺點是:(1)感受野固定,導緻過大的物體可能不會被分塊或不連續,過小的物體容易被忽視.FCN雖然使用了skip architecture,但是根本的解決方案是詳細的邊界和語義.(2)輸入反卷積層的label map太粗糙,反卷積過程太簡單,使得物體的細節資訊丢失或被平滑.

為了解決上述兩個問題,本文有一下主要貢獻:(1)提出了一個deep deconvolution network.(2)對于每張圖檔使用多個proposal進行預測,最後進行aggregate,得到最後的預測結果.(3)将FCN的結果和本文的結果結合起來,獲得目前最好的語義分割結果.

System Architecture

總體架構 在VGG16的基礎上,移除softmax層,添加對稱的deconvolution、unpooling、relu.

Pooling層

的作用是通過在一個感受野提取代表性的激活值,來過濾激活噪聲;優點是在上層保留魯棒的激活值,有利于分類;缺點是pooling 過程中一個感覺野的空間資訊丢失,不利于semantic segmentation等要求精确定位的任務;本文給出的解決方法是首先在pooling的時候用switch variables記錄max pooling 選擇的最大值的location,然後在Unpooling層利用switch variables還原回原location,進而恢複成pooling前同樣大小,其它像素應該是用0代替,得到稀疏的響應圖.

Deconvolution層

在unpooling之後得到稀疏響應圖,然後可以通過deconvolution使稀疏響應圖變得稠密.

在反卷積結構中,lower layers撲捉物體總體的形狀;higher layers編碼了特定類别的細節資訊;

本文實質是将semantic segmentation問題視為instance segmentation問題. 原因是: instance segmentation可以處理不同尺度大小的目标; 并且可以減少搜尋空間,減少訓練的複雜度減少存儲需求(不明白)

Training

BN

利用Batch Normalization避免陷入局部最優

Two-stage

第一階段,利用ground-truth 裁剪object instances ,使目标位于裁剪的bounding box的中心,進行訓練;第二階段,利用object proposals構造更加具有挑戰的樣例,進行 fine-tune.

Inference

Aggregate

每張圖檔的object proposals進行aggregate,這裡采用取最大值的方法.

Ensemble

将本文的結果與FCN的結果ensemble,這裡采用mean的方法.并把結果輸送fcCRFs.

相關資料

項目首頁: http://cvlab.postech.ac.kr/research/deconvnet/

源代碼:https://github.com/HyeonwooNoh/DeconvNet

這裡我在看的時候存在一個問題,就是generate_EDeconvNet_CRF_results.m中line 115位置,FCN與DEconvNet進行ensemble的時候使用的是’.*’,而不是論文中說的mean方法.

繼續閱讀