pytorch實現FCN全卷積網絡的語義分割(Fully Convolutional Networks for Semantic Segmentation論文簡單復現)

以下是我的這個Repo裏的README(還沒有完全寫完),我還會不定期在github裏更新的,首先在github更新,再來更新這篇博客

Github地址: https://github.com/bat67/pytorch-FCN-easiest-demo

歡迎star和提issue或者PR~

pytorch FCN easiest demo

這個repo是在讀論文Fully Convolutional Networks for Semantic Segmentation時的一個pytorch簡單復現,數據集很小,是一些隨機背景上的一些包的圖片(所有數據集大小一共不到80M),如下圖

數據集示意圖

關於此數據集詳細信息,見數據集

根據論文實現了FCN32s、FCN16s、FCN8s和FCNs

部分代碼參考了這個repo

使用visdom可視化,運行了20個epoch後的可視化如下圖:

可視化1 可視化2

如何運行

我的運行環境

  • Windows 10
  • CUDA 9.2 (可選)
  • Anaconda 3
  • pytorch = 0.4.1
  • torchvision = 0.2.1
  • visdom = 0.1.8.5

具體操作

  • 打開終端,輸入
python -m visdom.server
  • 打開另一終端,輸入
python train.py
  • 若沒有問題可以打開瀏覽器輸入http://localhost:8097/來使用visdom可視化

訓練細節

訓練細節

數據集

  • training data來自這裏,ground-truth來自這裏
  • 鏈接中提供的圖片中,部分ground-truth的有誤,而且部分有ground-truth的圖片沒有對應training data的圖片,將這些有錯誤的圖片分別剔除,重新編號排序之後剩餘533張圖片。
  • 之後我隨機選取了67張圖片旋轉180度,一共在training data和ground-truth分別湊夠600張圖片(0.jpg ~ 599.jpg)。

可視化

  • train prediction:訓練時模型的輸出
  • label:ground-truth
  • test prediction:預測時模型的輸出(每次訓練都會預測,但預測數據不參與訓練與backprop)
  • train iter loss:訓練時每一批(batch)的loss情況
  • test iter loss:測試時每一批(batch)的loss情況
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章