windows下進行FCN影象訓練分割
基本上所有的資料都是在烏班圖下的,在windows下的基本沒有,下面是我在windows 下配置深度學習影象語義分割的一些過程:
首先你要配置好caffe把?這個教程多得很,我就不再累述了;
我建議python同一版本,我之前是2.7和3.6共存,所以配置 的過程中感覺有衝突,後來我都刪了重新裝的2.7的版本。
這是voc-fcn32s資料夾裡面的內容:
其中的trian是訓練模型的儲存位置(可以自定義的),我們訓練的模型就儲存在這裡。
我是設值每300次儲存一次。
要想訓練自己的模型,就要有自己的訓練集。由於FCN是end-to-end,輸出也是一張圖,因此訓練集要分為兩部分,一個是原圖,一個是分割二值圖。圖片太大了跑不了,先切成300*300(自定義),如下圖所示(我分割的結果就兩部分,目標和背景)
下圖是標記圖,其實標記圖應該是二值圖,位深是8的,而且如果是2個lable,比如我的這個圖,需要灰度從0到1,現在顯示是紅色,需要繼續處理。
分別在兩個不同的資料夾裡面,同時還要有一個txt檔案來指定他們的名字:
需要注意的是,這個檔案裡面每個名字之間都有一個換行,最好用nodepad來換行,我直接用txt的換行會執行報錯,找不到檔案。
同時還要修改prototxt檔案:這個檔案裡面本來沒有deploy.prototxt這個檔案,要自己做一個。
下圖是solve.prototxt
其中trian.net是train.prototxt的路徑(我這邊是相對路徑,你可以是用絕對的)
max_iter是最大迭代次數;
snapshot 是每多少次儲存一次模型檔案到下一行的路徑中;
下圖是train.prototxt
其中紅框是需要修改的,黃色框框裡面的就是訓練的資料資料夾,白色的是製作的txt檔案(用來儲存圖片名稱的那個)
不可避免的,有一個val的檔案把我困擾好久,這個好像只是打分的時候才會用到,直接訓練也無妨,我是按照train的格式配置了一遍,但其實沒有用到過。
同時上文提到要修改標記灰度圖為從0,1,2,3,……開始。比如我要標記兩類,只能是會的0和灰度1. 具體這樣修改:
把灰度大於0的都變成1;
很多問題都忘記了,以後想起來補充