以下是我的這個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後的可視化如下圖:
如何運行
我的運行環境
- 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情況