日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

论文笔记:FCN

發布時間:2025/3/21 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 论文笔记:FCN 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文:Fully Convolutional Networks for Semantic Segmentation

FCN

1、四個問題

  • 要解決什么問題?
    • 語義分割。
  • 用了什么方法解決?
    • 提出了“全卷積神經網絡”,可以接收任意尺寸的輸入,并給出對應大小的輸出。
      • 使用一些圖像分類模型(如:AlexNet、VGG、GoogLeNet)等做遷移學習。
      • 使用skip architecture的結構,結合深層的較粗糙的信息和淺層的較精細的信息,得到更精確的結果。
      • 使用反卷積做上采樣。
  • 效果如何?
    • 在PASCAL VOC 2012、NYUD v2、 SIFT Flow等數據集上取得了當時(2015年)領先的效果。并且在PASCAL VOC 2012上取得了62.2%的mean IU,比之前的最優方法提高了20%。
    • 文中的FCN網絡對每張圖片處理耗時為0.2s。
  • 還存在什么問題?
    • FCN是深度學習用于語義分割任務的開山之作,現在來說效果不能算很好。
  • 2、論文概述

    2.1、幾個知識點總結

  • 語義分割:我的理解是,像素級別的分類,判斷每個像素屬于哪個類(即語義)。
  • end-to-end:端到端。很好理解,一個端到端網絡的輸入是你的原始數據,輸出就是你想要的預測結果。中間過程不需要對數據另外做處理。
  • deconvolution
  • 有的地方翻譯成“反卷積”,有的地方翻譯成“轉置卷積”(見如何理解深度學習中的deconvolution networks?)。直觀上來說,我覺得“反卷積”更合適;不過從數學形式上來說“轉置卷積”更貼切。怎么叫的順口就怎么叫吧。
  • 特征圖進過普通的卷積層后,輸出的特征圖尺寸通常都會縮小,相當于一個下采樣的過程;而反卷積就是與卷積相反的過程,會讓輸出的尺寸增大,相當于一個上采樣的過程。這篇文章中有可視化的例子,有助于理解。
  • 論文中解釋是:卷積(convolution)的forward、backward過程相互對調,就是反卷積(deconvolution)。
  • 2.2、FCN結構

    2.2.1、將分類用于dense prediction

    • 作者指出,全連接層可以修正維度并會丟棄空間坐標關系。然而這些全連接層本身也可以看做是覆蓋了整個feature map的卷積核組成的卷積層。
    • 使用卷積層替代全連接層。實質上全連接層也可以看做1?11 * 11?1的卷積。
      • 以圖中的網絡為例:
      • 普通的全連接層:假設最后倒數第二個卷積層的feature map為7?7?2567 * 7 * 2567?7?256,我們令最后一個卷積層的卷積核尺寸為7?7?256?40967 * 7 * 256 * 40967?7?256?4096,得到的結果是1?1?40961 * 1 * 40961?1?4096。將結果flatten,展開成1維的向量,隨后接全連接操作。
      • 使用1?11 * 11?1卷積替代全連接:與前面一樣,倒數第二個卷積層的feature map為7?7?2567 * 7 * 2567?7?256,最后一個卷積層的卷積核尺寸為7?7?256?40967 * 7 * 256 * 40967?7?256?4096,得到的結果是1?1?40961 * 1 * 40961?1?4096。下面接上1?11 * 11?1卷積,卷積核為1?1?4096?40961 * 1 * 4096 * 40961?1?4096?4096,其實還是等價于全連接。
      • 1?11*11?1卷積操作取代全連接,其實就是對將卷積核上同一點的所有channel進行FC操作。
    • 對示例圖的解釋:
    • 上面的網絡是一個在ImageNet上預訓練的CNN網絡,輸入一個224?224224 * 224224?224的圖像,跑完全部的卷積層后輸出應該正好是1?1?40961* 1 * 40961?1?4096,隨后flatten得到4096維的神經元,之后再接上全連接層,輸出1000維的softmax。這里為止都是常規套路。
    • 將全連接替換成1?11 * 11?1卷積。
    • 上面的網絡中處理的圖片是下面的圖片中的一部分。那么推廣到處理下面這副同時有"貓狗"的圖像的情況下,可以看作從中取出了m?nm * nm?n227?227227 * 227227?227的patch,分別送到FCN中,每個patch都會有一個1000維的輸出。那么這些patch的輸出拼在一起就可以構成一個heatmap了。
    • 就以tabby cat這個例子來看,再對應tabby cat的那個通道,只要patch里面包含了貓,那么輸出的概率應該都會比較高,而其他patch則會較低,最后結果應該會像圖中所示,有貓的區域在heatmap中的值明顯更大吧。)
    • 我個人的看法是,直接將分類網絡的全連接層改為1?11 * 11?1卷積,從下圖中已經可以在一定程度上進行語義分割了(見heatmap),只要再進行微調不難取得相對精確的效果。

    2.2.2、基本結構

    • 假設使用的預訓練網絡是VGG-16,整個FCN網絡中除了最后deconv的部分都與VGG一樣。
    • 以圖中的網絡為例,FCN網絡的conv7輸出的heatmap,通過deconv進行上采樣32倍得到第一個預測結果FCN-32s。
    • 接著作者使用了skip layers將幾個pooling層輸出的結果結合起來:
      • 先將pool4的輸出接上1?11 * 11?1卷積層,然后對conv7的輸出使用deconv進行2倍上采樣,隨后兩個輸出相加。最后再接上stride為16的deconv層進行16倍上采樣。得到第二個預測結果FCN-16s。
      • 同理,將pool3的輸出接上1?11 * 11?1卷積與pool4以及conv7的輸出組合起來,最后可以得到第三個預測結果FCN-8s。

    2.2.3、訓練細節

  • 在整個網絡上微調,包括預訓練模型(如VGG)的全部參數。
  • 作者實驗結果表明,采樣多個patch進行訓練和直接使用原始圖片訓練,發現基本上沒有太大差別,并且采樣patch還更費時。所以,不進行采樣,直接使用整幅圖片進行訓練。
  • 樣本均衡(class balancing),影響不大,不做處理。
  • 數據增強,給訓練數據加入鏡像和抖動,性能沒有太大提高。
  • 2.2.4、度量指標

    2.3、其他

  • 為了給數據引入深度信息,作者最先訓練了一個4通道輸入(RGB-D)的網絡。發現效果并沒有好多少,可能是由于模型內具有此類信息的梯度較難傳遞。后來,嘗試了對深度信息進行三位HHA編碼,僅僅利用這部分的深度信息進行訓練一個網絡。另外使用RGB圖像數據訓練一個網絡,最后將這兩個網絡的結果進行融合,效果有較大的提高。這個方法可能也可以用來處理RGB-D的一些其他任務。
  • 其他上采樣方法:關于FCN 論文中的 Shift-and-stitch 的詳盡解釋。
  • 3、資料

  • 譯文
  • 關于FCN 論文中的 Shift-and-stitch 的詳盡解釋
  • https://zhuanlan.zhihu.com/p/35370022
  • 總結

    以上是生活随笔為你收集整理的论文笔记:FCN的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。