PaperWeekly 第28期 | 圖像語義分割之特征整合和結構預測





余昌黔

華中科技大學碩士

研究方向為圖像語義分割

知乎專欄

https://zhuanlan.zhihu.com/semantic-segmentation



前言


近來閱讀了 PASCAL VOC 2012 排行榜上前幾的文章,包括 PSPNet 和林國省老師的幾篇論文,覺得現在在 semantic segmentation 領域對于 Multi-scale Features ensembling 的關注又多起來了(當然其實一直都應用的挺多),然后林國省老師對 CRF 有一些新的認識和解讀。這些都將總結于此。


兩個發展方向


  • 特征整合(Feature Ensembling)?
    又分為:

    • 多尺度(multi-scale) 特征整合

    • 多級(multi-level)特征整合

  • 結構預測(Structure Prediction)?
    比如之前經常使用的條件隨機場


特征整合


多尺度整合


PSPNet


這個方法在前一段時間是 PASCAL VOC 2012 排行榜上的第一,現在的第二。


語義分割中常見問題


  • 關系不匹配(Mismatched Relationship)?
    場景中存在著可視模式的共現。比如,飛機更可能在天上或者在跑道上,而不是公路上。

  • 易混淆的類別(Confusion Categories)?
    許多類別具有高度相似的外表。

  • 不顯眼的類別(Inconspicuous Classes)?
    場景中包括任意尺寸的物體,小尺寸的物體難以被識別但是有時候對于場景理解很重要。


Note:?這些大多數錯誤都部分或者完全和上下文關系以及全局信息有關系,而 PSPNet 就是為了整合不同區域的 context 來獲取全局的 context 信息。


網絡結構


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


其中的一些?tricks:


  • 圖片輸入的 CNN 是 ResNet,使用了 dilated convolution

  • Pyramid Pooling Module 中的 conv 是1×1的卷積層,為了減小維度和維持全局特征的權重

  • Pyramid Pooling Module 中的 pooling 的數量以及尺寸都是可以調節的

  • 上采樣使用的雙線性插值

  • poly learning rate policy

  • 數據擴增用了:random mirror, random resize(0.5-2), random rotation(-10 到 10 度), random Gaussian blur

  • 選取合適的 batchsize


結構還是很清晰明確的,沒太多可說的。?


此外,文中還提到了為了訓練使用了一個輔助的 loss,并不在我們討論內容之內,僅展示一下示意圖:


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


PSPNet 在 PASCAL VOC 2012 上測試的結果如下:


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


FeatMap-Net


這是林國省老師兩篇論文中提到的網絡結構的前面一部分,我把它抽取出來在此討論特征整合,這部分網絡結構利用多尺度 CNN?和?sliding pyramid pooling?來獲取 patch-background 的上下文信息。


網絡結構


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


其中:

  • 圖片進來先進行 0.4, 0.8, 1.2 的放縮

  • 前 1-5 conv block 是共享參數的

  • 向上采樣還是我們熟悉的雙線性插值


Sliding Pyramid Pooling


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


其中使用的是滑動的 pooling,即 stride 為 1,所以不降低 feature map 的尺寸。不同尺寸的窗口有利于獲得不同大小的背景信息,而且增加了 field-of-view,這樣 feature vector 能編碼更大范圍的信息(feature vector 會在之后的結構中使用,下文會介紹到)。


多級整合


RefineNet


這個方法在前一段時間是 PASCAL VOC 2012 排行榜上的第三,現在的第四。本方法主要想解決的限制是:多階段的卷積池化會降低最后預測結果圖片的尺寸,從而損失很多精細結構信息。


現有方法的解決辦法:


  • 反卷積作為上采樣的操作?
    反卷積不能恢復低層的特征,畢竟已經丟失了

  • Atrous Convolution?(Deeplab提出的)?
    帶孔卷積的提出就是為了生成高分辨率的 feature map,但是計算代價和存儲代價較高

  • 利用中間層的特征?
    最早的 FCN-8S 就是這樣做的,但是始終還是缺少強的空間信息


以上所說方法在我之前的文章中都有提到,感興趣的同學可以猛戳以下鏈接,這里就不贅述了。?

圖像語義分割之FCN和CRF: https://zhuanlan.zhihu.com/p/22308032?group_id=820586814145458176


作者主張所有層的特征都是有用的,高層特征有助于類別識別,低層特征有助于生成精細的邊界。所以有了接下來的網絡結構,說實話我是覺得有點復雜。


網絡結構


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


可以看見,整個結構其實是類似于 FCN-8S 的結構的,只是抽出特征更早,而且經過了 RefineNet 進行處理。?


整個流程就是,1/32 的 feature map 輸入 RefineNet 處理后和 1/16 的 feature map 再一起又輸入一個 RefineNet 優化,后面的過程類似。


RefineNet


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


可以看出,每個 RefineNet 的輸入是可以調整的,所以整個網絡的連接也是可以修改的,當然作者做實驗說明在他提出的其他變體中這種連接的效果最好。


Residual Convolution Unit (RCU)


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


Multi-resolution Fusion


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


這里將輸入的不同分辨率的 feature map 上采樣到和最大 feature map 等尺寸然后疊加,此處的 conv 用于輸入的參數自適應。


Chained Residual Pooling


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


文中提到:


  • conv 作為之后加和的權重

  • relu 對接下來 pooling 的有效性很重要,而且使得模型對學習率的變化沒這么敏感

  • 這個鏈式結構能從大范圍區域上獲取背景 context


此處不得不提到,這個結構中大量使用了?identity mapping?這樣的連接,無論長距離或者短距離的,這樣的結構允許梯度從一個 block 直接向其他任一 block 傳播。


現在回過頭來看看 RefineNet 整個網絡結構還是有些復雜的,但是確實還是有一些效果,這種直接將低層特征抽取來優化高層特征的措施可以想象能對結果進行一些優化。但是始終還是覺得這樣的處理有點太復雜了。


接下來看一下 RefineNet 在 PASCAL VOC 2012 上測試的結果:


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


結構預測 (CRF)


其實在語義分割這個領域很早就開始使用 CRF 或者 MRF 等對語義信息進行建模,在深度學習火起來之前就有不少這樣的方法了。所以后來大家很自然地想到了深度學習和條件隨機場的結合。但是,林國省老師指出現在利用條件隨機場的方法都不太“地道”。?


現有方法:


  • dense CRF 作為 FCN 輸出的后處理,并沒有真正地結合進 CNN

  • CRFasRNN 中將二者真正結合了,但是只有其中一元勢函數的輸入來自 CNN,二元勢函數的輸入來自于一元以及迭代,而且這里的二元勢函數被強制考慮為局部平滑度


以上所說方法在我之前的文章中都有提到,感興趣的同學可以猛戳以下鏈接,這里就不贅述了。?

圖像語義分割之FCN和CRF: https://zhuanlan.zhihu.com/p/22308032?group_id=820586814145458176


Contextual CRF


此處提到的結構是和前文所述 FeatMap-Net 為統一網絡結構


整體結構


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


此處我們主要討論 FeatMap-Net 之后的 CRF 的處理。林老師提出的這個方法對一元勢函數和二元勢函數都用 CNN 來直接進行處理,而且二元勢函數是直接對空間語義建模更精確。


  • feature map 中的每個空間位置(即每個像素點)對應 CRF 圖中的一個節點

  • Pairwise connection 就是通過每個節點與預定義的 spatial range box 中其他節點連接來體現的

  • 不同的空間關系通過定義不同類型的 range box 來實現的,每種空間關系通過特定的 pairwise potential function 來建模?


不同空間關系:


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


Surrounding 這樣的關系就在對應節點的周圍畫框,Above/Below 這樣的關系就讓節點在一條邊的中間然后在其上方或者下方畫框,此處的框是原圖最短邊的 0.4.


此處我們回顧一下 CRF 的公式:


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


其中,Ψω?是不同類型一元勢函數的集合,Ω?是一元勢函數對應的節點集合;θ?是不同類型二元勢函數的集合,Φ?是二元勢函數對應的邊的集合。


Unary Potential Functions


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


這里,Zp,yp 對應與第 P 個節點和第 Yp?個類別?


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


一元勢函數對應的處理就是從 Feature map 上的一個節點提取出 feature vector,然后連接幾層全連接層,輸出K個值,這個K就是需要預測的類別數。


Pairwise Potential Functions


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


我覺得這里對二元勢函數的處理很巧妙,將兩個節點對應的 feature vector 提取出來然后連接到一起來學習兩個節點之間的邊,很棒!之后自然也是連接幾層全連接層輸出的是k2?個值,為了將所有類別之間的配對關系都考慮進去,但是這里產生的值應該有很多冗余。


Asymmetric Pairwise Functions


對于不對稱的關系比如 Above\Below 就需要這樣的不對稱二元勢函數進行學習,而這種勢函數主要依賴于兩個節點輸入的順序,這個可以通過兩個 feature vector 連接的順序來體現,所以我說這樣的處理很巧妙啊。


至此,這種對 CRF 的解讀講完了~但是這篇文章中的有一些內容還不得不提一下:


  • 這些 CRF 是用于 coarse prediciton stage 的,為了提升低分辨率的預測;文中提到在最后的輸出的時候還是使用來的 dense crf 進行細化輸出的(這就比較尷尬了,最開始還說人家不好,現在還是要使用……)

  • 文中提到?Piecewise Learning?作為新的一種對 CRF 的訓練方法,這里就沒有闡述了,感興趣的同學可以看看原文。


參考文獻


1. Zhao H, Shi J, Qi X, et al.?Pyramid Scene Parsing Network[J]. 2016.

2. Lin G, Shen C, Hengel A V D, et al.?Efficient Piecewise Training of Deep Structured Models for Semantic Segmentation[C]// IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2016:3194-3203.

3. Lin G, Shen C, Hengel A V D, et al.?Exploring Context with Deep Structured models for Semantic Segmentation[J]. 2016.

4. Lin G, Milan A, Shen C, et al.?RefineNet: Multi-Path Refinement Networks for High-Resolution Semantic Segmentation[J]. 2016.





來源:paperweekly


原文鏈接

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/280995.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/280995.shtml
英文地址,請注明出處:http://en.pswp.cn/news/280995.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

POJ.2774.Long Long Message/SPOJ.1811.LCS(后綴數組 倍增)

題目鏈接 POJ2774SPOJ1811 LCS - Longest Common Substring 比后綴自動機慢好多(廢話→_→)。 \(Description\) 求兩個字符串最長公共子串 \(Solution\) 任何一個子串一定是某個后綴的前綴 可以將兩個字符串拼在一起,中間用一個從未出現過的字符隔開,這樣…

02.CSS基礎筆記及導入

CSS是什么 CSS&#xff08;Cascading Style Sheet&#xff0c;層疊樣式表)定義如何顯示HTML元素。 當瀏覽器讀到一個樣式表&#xff0c;它就會按照這個樣式表來對文檔進行格式化&#xff08;渲染&#xff09;。 CSS樣式 CSS引入HTML 內部樣式與外部樣式 <!DOCTYPE> …

如何還原桌面圖標_如何為Windows 10桌面圖標還原或更改文本的默認外觀?

如何還原桌面圖標For whatever reason, sooner or later we all have someone or something mess around with our keyboards and create ‘interesting’ results. With that in mind, today’s SuperUser Q&A post has a simple and elegant way to help a frustrated re…

「前端早讀君007」css進階之徹底理解視覺格式化模型

今日勵志 不論你在什么時候開始&#xff0c;重要的是開始之后不要停止。 前言 對于部分前端工程師來講&#xff0c;有時候CSS令他們很頭疼&#xff0c;明明設置了某個樣式&#xff0c;但是布局就是不起作用。 如果你也有這種問題&#xff0c;那么是時候學習下什么是css視覺格式…

.NET周報【11月第3期 2022-11-22】

國內文章.NET Conf China 2022 第一批講師陣容大揭秘&#xff01;整個期待了&#xff01;https://mp.weixin.qq.com/s/4p89hhBPw6qv-0OB_T_TOg目光看過來 2022 年 12 月 3-4 日&#xff0c;一場社區性質的國內規模最大的 線上線下.NET Conf 2022 技術大會 即將盛大開幕。目前大…

解讀Facebook CAN:如何給人工智能賦予藝術創作的力量

雷鋒網 AI 科技評論按&#xff1a;能夠迭代進化、模仿指定數據特征的GAN&#xff08;生成式對抗性網絡&#xff09;已經是公認的處理圖像生成問題的好方法&#xff0c;自從提出以來相關的研究成果不少&#xff0c;在圖像增強、超分辨率、風格轉換任務中的效果可謂是驚人的。 &a…

全向輪底盤磁導軌尋跡

全向輪底盤上安裝兩條磁傳感器帶用于磁導軌尋跡 如簡圖所示&#xff0c;兩條與Y直線相交的黑色線條我們認為是兩條磁檢測傳感器帶 矢量方法修正車體位置 定義軌道左為負向&#xff0c;軌道右為正向。傳感器左檢測為負&#xff0c;右檢測為正&#xff1b; 定義底盤坐標系為αβ&…

02-1.CSS邊框,邊界,布局相關筆記

目錄 CSS盒子模型 padding內填充 邊框 邊框屬性 border-radius margin外邊距 CSS盒子模型 Content(內容): 盒子的內容&#xff0c;顯示文本和圖像 >>>>類似word 文字A&#xff0c;改變字體與大小padding: 用于控制內容與邊框之間的距離 …

圖表庫

在2018年最后一天開源了自己的基于svg圖表庫mcharts 后面要大量時間去維護 mcharts 希望多提Issues 具體用法可以看文檔 可以一塊探討下技術問題 2019年新的開始新的起點 加油

android仿ios彈框_在“提示”框中:iOS外觀(在Android上運行),Google Maps作為Time Machine,下載Wii游戲保存...

android仿ios彈框Once a week we round up some great reader tips and share them with everyone. Read on to see how to make your Android phone look like iOS, use a Google Maps mashup like a time machine, and download Wii game saves. 每周一次&#xff0c;我們收集…

使用 C# 開發的摸魚背單詞軟件 ToastFish

你好&#xff0c;這里是 Dotnet 工具箱&#xff0c;定期分享 Dotnet 有趣&#xff0c;實用的工具和組件&#xff0c;希望對您有用&#xff01;摸魚神器ToastFish 是一個使用 C# 開發的桌面軟件&#xff0c;由 Uahh 開發&#xff0c; 這是一個利用Windows通知欄背單詞的軟件&…

使用log4Net 輸出日志到mongodb

將日志輸入到nosql 數據庫可以保證日志輸出速度和統一管理日志&#xff0c;log4mongo-net 項目http://log4mongo.org/display/PUB/Log4mongofor.NET使用log4net把日志保存到Mongodb。通常可用于代替log4netMS SSQL logging &#xff0c;和SQL Server相比可以節省40%的存儲空間&…

03.JavaScript對DOM操作

JavaScript引入方式 外部引入 在head或者body中&#xff0c;添加以下代碼 <script type"text/javascript" src"js/demo.js"></script> 內部引入 在head或body中&#xff0c;定義script標簽&#xff0c;然后在script標簽里面寫js代碼 <…

kotlin的suspend對比csharp的asyncawait

協程的出現大大降低了異步編程的復雜度&#xff0c;可以讓我們像寫同步代碼一樣去寫異步代碼&#xff0c;如果沒有它&#xff0c;那么很多異步的代碼都是需要靠回調函數來一層層嵌套&#xff0c;這個在我之前的一篇有介紹 rxjava回調地獄-kotlin協程來幫忙本篇文章主要介紹kotl…

file協議 控制面板_如何在Windows File Explorer導航窗格中顯示控制面板和回收站

file協議 控制面板By default, the Windows File Explorer’s sidebar is divided into big categories like Quick Access, This PC, Network, and so on. But a quick setting change can make your navigation pane look a bit more like the traditional tree you’d see i…

hdu-2612-Find a way(廣搜,bfs)

Pass a year learning in Hangzhou, yifenfei arrival hometown Ningbo at finally. Leave Ningbo one year, yifenfei have many people to meet. Especially a good friend Merceki. Yifenfei’s home is at the countryside, but Merceki’s home is in the center of city.…

過濾器(Filter)

1 什么是過濾器 過濾器JavaWeb三大組件之一&#xff0c;它與Servlet很相似&#xff01;不它過濾器是用來攔截請求的&#xff0c;而不是處理請求的。 當用戶請求某個Servlet時&#xff0c;會先執行部署在這個請求上的Filter&#xff0c;如果Filter“放行”&#xff0c;那么會繼…

03-1.JavaScript基礎語法略寫/模版字符串

基礎語法 參考前端基礎之JavaScript - Q1mi - 博客園 略寫原因 由于后續主要用jQuery編寫&#xff0c;jQuery簡化編程。大概了解JavaScript語法即可。 jQuery是一個輕量級的、兼容多瀏覽器的JavaScript庫。jQuery使用戶能夠更方便地處理HTML Document、Events、實現動畫效果…

發布適用于 .NET 7 的 .NET MAUI

點擊上方藍字關注我們&#xff08;本文閱讀時間&#xff1a;6分鐘)我們在六個月前向您介紹了 .NET 多平臺應用程序 UI (MAUI)&#xff0c;現在我們很高興地宣布 .NET MAUI 在我們的下一個主要版本 .NET 7 中普遍可用。在此短的時間范圍內&#xff0c;我們在 .NET MAUI 中的主要…

bzoj3160(FFT+回文自動機)

題目描述 https://www.lydsy.com/JudgeOnline/problem.php?id3160 題解 先把問題轉化一下&#xff0c;我們要求的是非連續對稱回文子序列。 ans回文子序列數-回文子串數。 回文子串數可以用PAM或manachar求出來。 復習了一下PAM&#xff0c;用它求回文子串數和SAM一樣&#xf…