語義分割網絡經典:FCN與SegNet

2021-03-02 機器學習算法工程師

   

作者:石文華          

編輯:田  旭           

語義分割網絡經典:FCN與SegNet

全文目錄

1、FCN

概述

編碼和解碼過程

2、SegNet

概述:

特徵上採樣與融合細節

代碼地址

將圖像中每個像素分配到某個對象類別,相關模型要具有像素級的密集預測能力。

FCN

(一)概述

改編當前的分類網絡:AlexNet、VGG、GoogLeNet到全卷積網絡和通過微調傳遞它們學習的特徵表達能力到分割任務中。然後定義了一個跳躍式的架構,結合來自深、粗層的語義信息和來自淺、細層的表徵信息來產生準確和精細的分割。

 

由上圖可以看出,將分類網絡改成全卷積網絡,生成了一個低解析度的類的熱圖(圖中的:tabby cat heatmap),上採樣用雙線性初始化的反卷積,並在上採樣的每一個階段通過融合(簡單地相加)下採樣階段網絡中的低層的更加粗糙但是解析度更高的特徵圖進一步細化特徵。

(二)特徵上採樣與融合細節

上圖可以看出該算法採用了「融合層」策略(簡單地相加),將高層特徵和低層特徵進行融合來提高分割性能,分別採用了3種不同的結構,第一種是32x upsampled ,第二種是16x upsampled,第三種是8x upsampled。 


過程是這樣的:

 
1、32x upsampled 
原圖經過不斷的卷積和池化,得到pool5層的特徵(比原圖縮小了32倍),將pool5通過32倍的上採樣(反向卷積)得到最後結果。但是pool5層的特徵屬於高層抽象特徵,採樣後得到的結果不夠精細。

 
2、16x upsampled 
將pool5的結果進行2倍上採樣,與pool4相加,作為「融合」,然後將「融合」結果進行16倍的上採樣(反向卷積)得到最後結果(註:融合是指對應位置像素值相加,後來的u-net則直接是通道上拼接)。 


3、8x upsampled 
將pool5的結果進行2倍上採樣,與pool4相加,作為「融合」,然後將「融合」結果進行2倍的上採樣,再與pool3的結果進行「融合」,之後進行八倍的上採樣。 


三種結構實驗結果表明,將高層特徵與低層特徵的融合能夠明顯提高像素點的分類效果,如下圖所示:

SegNet

(一)概述

上圖可以看到segNet沒有全連接的層。SegNet和FCN思路十分相似,不同之處在於解碼器使用從編碼器傳輸的最大池化索引(位置)對其輸入進行非線性上採樣,從而使得上採樣不需要學習,生成稀疏特徵映射。然後,使用可訓練的卷積核進行卷積操作,生成密集的特徵圖。最後的解碼器輸出特徵映射被送入soft-max分類器進行像素級分類。 


上採樣使用池化層索引的優勢: 

   1)提升邊緣刻畫度; 
   2)減少訓練的參數; 
   3)這種模式可包含到任何編碼-解碼網絡中。

(2)編碼和解碼過程

SegNet在編碼階段進行pooling的時候會保留保存通過max選出的權值在2x2 filter中的相對位置,用於之後在解碼器中使用那些存儲的索引來對相應特徵圖進行去池化操作,如下圖所示: 

代碼地址

網絡結構部分的代碼詳見: 


https://github.com/cswhshi/segmentation/blob/master/FCN.ipynb 
https://github.com/cswhshi/segmentation/blob/master/SegNet.ipynb 


歡迎大家指正和star~

END

機器學習算法工程師

                            一個用心的公眾號

長按,識別,加關注

進群,學習,得幫助

你的關注,我們的熱度,

我們一定給你學習最大的幫助

相關焦點

  • 圖像語義分割入門:FCN/U-Net網絡解析
    語義分割即是對圖像中每一個像素點進行分類,確定每個點的類別(如屬於背景、人或車等),從而進行區域劃分。目前,語義分割已經被廣泛應用於自動駕駛、無人機落點判定等場景中。與分類不同的是,語義分割需要判斷圖像每個像素點的類別,進行精確分割。圖像語義分割是像素級別的!
  • 語義分割+視頻分割開原始碼集合
    來源:CSDN博客(http://blog.csdn.net/zhangjunhit/article/details/78190283)語義分割
  • 一文概覽主要語義分割網絡:FCN,SegNet,U-Net...
    雖然自 2007 年以來,語義分割/場景解析一直是計算機視覺社區的一部分,但與計算機視覺中的其他領域很相似,自 2014 年 Long 等人首次使用全卷積神經網絡對自然圖像進行端到端分割,語義分割才有了重大突破。
  • 語義分割中的深度學習方法全解:從FCN、SegNet到各版本DeepLab
    量子位今天推薦的這篇文章,回顧了深度學習在圖像語義分割中的發展歷程。發布這篇文章的Qure.ai,是一家用深度學習來讀取醫學影像的公司,他們在官方博客上梳理了語義分割中的深度學習方法。他們希望通過這份介紹,能讓大家了解這個已經在自然圖像處理比較成熟、但是在醫學圖像中仍需發展的新興技術。
  • 一文帶你讀懂 SegNet(語義分割)
    研習社編譯的技術博客,原標題 : Review: SegNet (Semantic Segmentation) 作者 |SH Tsang 翻譯 |史蒂芬•二狗子 校對 | 醬番梨 審核 | 詹森 · 李加薪 整理 | 立魚王 原文連結: https://towardsdatascience.com/review-segnet-semantic-segmentation-e66f2e30fb96
  • 全卷積網絡FCN進行圖像分割
    神經網絡大神Jonathan Long發表了《Fully ConvoluTIonal Networks for SemanTIc SegmentaTIon》在圖像語義分割挖了一個坑,於是無窮無盡的人往坑裡面跳。本文引用地址:http://www.eepw.com.cn/article/201710/365497.htm
  • 語義分割SegNet
    一、算法介紹SegNet網絡結構如下圖所示,Input為輸入圖片,Output為輸出分割的圖像,不同顏色代表不同的分類。
  • [Pytorch]教程-使用 torchvision 進行語義分割
    ▌目錄:PyTorch 語義分割1. 什麼是語義分割2. 語義分割的應用3. 使用 torchvision 進行語義分割4. FCN vs DeepLabv3 模型比較1. 什麼是語義分割?語義分割是一種圖像分析過程中要用到的技術,我們通過該技術將圖像中的每個像素歸為哪一類。
  • 原理講解-項目實戰<->基於語義分割實現斑馬線道路劃分
    精選文章,第一時間送達 好久沒有更新語義分割系列的文章了,但是大家放心,我會持續更新的,話不多說,這期就講解基於MobileNet的SegNet語義分割實現斑馬線的劃分~ 還沒有看過的fans,可以先看一下哦~
  • 10分鐘看懂全卷積神經網絡( FCN ):語義分割深度模型先驅
    語義分割簡單地說,分割就是摳圖。語義分割,就是按圖像中物體表達的含義進行摳圖。現在ps已經集成很多自動分割的功能,相比舊版本軟體,新軟體提高了美工人員的摳圖和美圖的效率。如果我們能在更複雜的環境下,完成自動分割圖像進行分析,這將降低多少人工?這類場景我們很熟悉,比如現在快速發展的自動駕駛。
  • 深度學習第33講:CNN圖像語義分割和實例分割綜述
    從本節開始,筆者將繼續花費幾講的時間來研讀關於語義分割和實例分割相關的經典網絡和論文,以期對深度學習計算機視覺的第三大任務,也是最難的任務——圖像分割有一個宏觀的把握和細節的了解。      總的而言,目前的分割任務主要有兩種: 語義分割和實例分割。那語義分割和實例分割具體都是什麼含義呢?二者又有什麼區別和聯繫呢?
  • FCN、Unet、Unet++:醫學圖像分割網絡一覽
    實例分割(Instance Segmentation):可以理解為目標檢測和語義分割的結合。(eg: Mask R-CNN/...)相對目標檢測的邊界框,實例分割可精確到物體的邊緣;相對語義分割,實例分割需要標註出圖上同一物體的不同個體。
  • 原理講解-項目實戰<->基於語義分割實現斑馬線道路劃分_騰訊新聞
    精選文章,第一時間送達 好久沒有更新語義分割系列的文章了,但是大家放心,我會持續更新的,話不多說,這期就講解基於MobileNet的SegNet語義分割實現斑馬線的劃分~ 還沒有看過的fans,可以先看一下哦~
  • 2019 語義分割指南
    of a Deep Convolutional Network for Semantic Image Segmentation (用於語義分割的弱監督和半監督的深度神經網絡)Fully Convolutional Networks for Semantic Segmentation (用於語義分割的全卷積神經網絡)
  • 圖像分割二十年,Mask R-CNN 影響力僅排第十?
    16th IEEE International Conference on Computer Vision (ICCV)論文:https://arxiv.org/abs/1703.06870代碼:https://github.com/facebookresearch/DetectronMask R-CNN作為非常經典的實例分割
  • 語義分割該如何走下去?
    本人研究方向是語義分割(研一),但目前學習有些迷茫,目前感覺在自己只知道一些fcn,unet,deeplab等模型,看的論文也大多是語義分割模型構建之類的,然後在自己做模型也就是(空洞卷積,編碼解碼結構,restnet,fuse,concat一頓組裝)結果還慘不忍睹,感覺自己自從看完哪些必要的網絡結構模型外,已經很久沒有提升了。不知道自己應該如何提升,看的論文除了構建模型結構,還要看哪些?
  • 實戰 | 基於SegNet和U-Net的遙感圖像語義分割
    這兩周數據挖掘課期末project我們組選的課題也是遙感圖像的語義分割,所以剛好又把前段時間做的成果重新整理和加強了一下,故寫了這篇文章,記錄一下用深度學習做遙感圖像語義分割的完整流程以及一些好的思路和技巧。
  • Deeplab語義分割的發展
    「經典圖像分割方法—基於深度學習的語義分割—Deeplab及其變形」在計算機視覺中,簡單的圖像分割是將數字圖像分為多個段(像素集)的過程。圖像分割是一個長期存在的計算機視覺問題。但是,語義分割是在像素級別「理解」圖像的圖像分割技術。換句話說,語義分割是將每個像素分析和分類為多個類別(標籤)。
  • 語義分割領域開山之作:Google提出用神經網絡搜索實現語義分割
    Google 儼然已是圖像語義分割領域的高產霸主,Liang-Chieh 從 Deeplabv1- Deeplabv3+ 持續發力,還是 MobileNetV2 共同作者,如今在 NAS 領域開發處女地:基於 NAS 的語義分割模型,性能超過之前的基於 MobileNetV2 的 Network Backbone。2.
  • 語義分割入門的總結
    這使得 CRFs 成為語義分割的理想候選者. 這裡介紹下 CRFs 在語義分割中的應用.圖像中的每個像素都是與有限的可能狀態集相關. 在語義分割中,target 類別標籤就是可能狀態集. 將一個狀態(或,label u) 分配給的單個像素 x 的成本(cost) 被稱為一元成本(unary cost).