[簡介]
CycleGAN 是發表在 ICCV2017 image-to-image translation 的著名演算法,最大特點為不要求訓練數據要成對,只需要提供不同 domain 的影像就能成功訓練不同 domain 之間的影像轉換。
可應用於語義標籤的街道轉換成寫實影像、衛星影像轉換成地圖影像、將場景從白天轉換成夜晚、將黑白影像變成彩色影像、用輪廓圖合成出實品圖等各種應用。
[操作步驟及說明]
APP 主要分成四大使用功能,資料準備、訓練、推論、其它。
資料準備 :
Select Dataset選擇要進行 AI 學習的數據集。
如果要訓練自己的影像,請點選 View 檢視 data 資料夾,請複製一個預設的 horse-zebra 資料夾,將其改為自己的數據名稱,此時請先不要刪除資料夾內的任何子資料夾或檔案。
接著找到 trainA、trainB、testA、testB 資料夾,刪除資料夾內的舊影像與替換成自己需訓練、測試的影像。
如果要學習馬與斑馬之間的轉換
trainA : 馬的訓練影像。
trainB : 斑馬的訓練影像。
testA : 馬的測試影像。
testB : 斑馬的測試影像。
注意 :
1. 影像長寬建議相同,正方形,如果不相同可以縮放或裁切等方式。
2. 圖檔與其附檔名需為 .jpg。
訓練前準備 :
訓練前,請依序點擊 1. visdom server 與 2. visdom server browser,如下圖,請勿按 x 關閉,用於訓練過程中,請保持開著。
開始訓練後,訓練的 loss 曲線圖等資訊會 post 到 visdom server 且顯示在 visdom server browser 上。
訓練 :
按下 3. train 即可開始訓練。在訓練過程中,可以藉由前一步驟開啟的 2. visdom server browser 觀看 loss 變化曲線與訓練效果。
其訓練時,可以設定的參數如下 :
Continue training : 如果要接續訓練,請打勾,訓練會自動載最後一個模型接著訓練 (latest_net_G_A.pth、latest_net_G_B.pth、latest_net_D_A.pth、latest_net_D_B.pth)。反之,不要打勾。
Dataroot : 訓練影像檔案位置,按下 view 可以看到 trainA 與 trainB,資料夾內為訓練影像。
Checkpoints dir : 放置訓練產出模型的資料夾,按下 view 可以查看資料夾。
GPU ID : 您的裝置如果有支援 NVIDIA GPU 加速運算,請設定 GPU ID,如使用第 0 顆 GPU 則設置為 0,使用第0、1 顆 GPU 則設置為 0, 1; 若未支援NVIDIA GPU 加速運算,則設置為 -1。
Batch size : 一次訓練的樣本數。
N epochs : 設定訓練的週期數。訓練的總週期數會再額外加 100 期是使用線性衰減至 0 的學習率。
Save epoch freq : 儲存模型的頻率週期數。
推論:
推論整個資料夾。
按下 4. inference folder,選擇模型,開始推論,推論完成後跳出瀏覽器可查看推論結果。
推論參數如下 :
A->B : 將 A 轉成 B;B->A : 將 B 轉成 A。 例如訓練時,A 是斑馬、B 是馬,則推論選擇 A->B,即把斑馬轉成馬。
Inference folder : 顯示推論圖片的資料夾位置。此資料夾為資料準備步驟裡面的 testA 與 testB 資料夾。
GPU ID : 您的裝置如果有支援 NVIDIA GPU 加速運算,請設定 GPU ID,如使用第 0 顆 GPU 則設置為 0,使用第0、1 顆 GPU 則設置為 0, 1; 若未支援NVIDIA GPU 加速運算,則設置為 -1。