1. 程式人生 > >U-net:執行你的第一個U-net進行影象分割

U-net:執行你的第一個U-net進行影象分割

Unet進行影象分割

注意:本文執行環境為:python3.5、tensorflow 1.4.0

資料準備

  • 原始資料:首先準備資料,參考資料來自於 ISBI 挑戰的資料集。資料可以在 這裡 下載到,含30張訓練圖、30張對應的標籤。30張測試圖片,均為.tif 格式檔案。

以上資料二選一就行

程式準備

程式地址:這裡
程式含有2個檔案,一個檔案為data.py :該檔案是用來將訓練資料轉化為.npy 格式檔案,便於網路使用資料。當然還有其他功能如資料增強等,程式中已經進行了解釋。另外一個檔案:unet.py :該檔案為unet網路結構定義與測試程式碼。

  • 執行前的資料夾結構
--deform
        train
            train
                0.tif
                1.tif
                ...
            0.tif
            1.tif
            ...
            label
                train
                    0.tif
                    1.tif
                    ...
                0.tif
                1.
tif ... --my_test data.py unet.py --npydata --results --test test 0.tif 1.tif ... 0.tif 1.tif ...

執行網路

  • 首先 :執行data.py :執行後會生成三個.npy檔案 :
    imgs_mask_train.npy :訓練圖片標籤
    imgs_train.npy : 訓練圖片
    imgs_test.npy
    : 測試圖片。注意這個測試圖片是最後你要測試的圖片,而非訓練中測試準確率的圖片,測試準確率的圖片和訓練圖片是在一起的,訓練的時候會將訓練圖片分配一部分用於測試準確率等。
  • 其次 :執行 unet.py :你需要修改的地方為第154
model.fit(imgs_train, imgs_mask_train, batch_size=2, nb_epoch=10, verbose=1,validation_split=0.2, shuffle=True, callbacks=[model_checkpoint])

batch_size 根據你的裝置來修改,即每次輸入幾張圖片,建議2~4張。
nb_epoch=10 是訓練多少次,一般20~50次。如果就30張圖片的話,訓練很快,幾分鐘就好了。

  • 最後test 資料夾下的圖片的測試結果放在了results 資料夾下。
  • 另外 :如果你在訓練完後想再測試幾張圖片的話,直接將154行註釋掉就行,再次執行unet.py :就會進行測試你放在test 資料夾下的圖片,結果就會儲存再results 資料夾下。

測試結果如下

1、純粹用原始的30張進行訓練的結果,大約87%的準確率
這裡寫圖片描述
2、用資料增強後的處理效果
增強後的效果

  • 歡迎留言交流

參考