• 沒有找到結果。

第三章 研究方法

3.2 前期研究

3.2.4 Loss function 評估

pix2pix 的 generator 含有 Unet[15]的結構在其中,用 Unet 取代原本 encoder-decoder 的架構。核心想法為:輸入與輸出的外觀表現也許會不同,但整體結構 應該要類似,也就是輸入某些底層資訊可以分享給輸出,才能達到我們要的image to image translation。

3.2.4. Loss function評估

pix2pix network 的 loss function 是基於 cGAN 做變化(式 3.4),額外增加一 個與target 影像的差距的比較,目的為讓輸出越像越好,如式 3.5.

𝓛𝑳𝟏(𝑮) = 𝔼𝒙,𝒚,𝒛[∥ 𝒚 − 𝑮(𝒙, 𝒛) ∥ 𝟏]

式3.5、pix2pix L1 loss function

新的target function 則變成式 3.6。

𝑮 = 𝒂𝒓𝒈 𝐦𝐢𝐧

𝑮 𝐦𝐚𝐱

𝑫 𝓛𝒄𝑮𝑨𝑵(𝑮, 𝑫) + 𝝀𝓛𝑳𝟏(𝑮) 式3.6、pix2pix target function

X G(X)

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

實作上,GAN 在訓練是不穩定也不容易收斂,在訓練到某一個程度後,又或者

是Generator 及 Discriminator 有出現不平衡狀況,會導致梯度漸漸變小、而 loss function 漸漸呈現飽和,最後 loss function 將無法提供 Generator 及 Discriminator 參數改善的建議,甚至會導致崩潰。為了解決這個問題,便採用 Wasserstein Distance[16],也就是 WGAN[17]所提出的方法。WGAN 的 Loss function 如式 3.7。

另外,WGAN 為了讓梯度變化在一定範圍內,也就是讓 Lipschiz 連續,增加一 個限制:weight clip(式 3.8),限制 NN 的參數[-K, K]。

𝑳(𝑫) = −𝔼𝒙~𝑷𝝉[𝑫(𝒙)] + 𝔼𝒙~𝑷𝒈[𝑫(𝒙)]

𝑳(𝑮) = −𝔼𝒙~𝑷𝒈[𝑫(𝒙)]

式3.7、WGAN loss function

‖𝛁𝒙𝑫(𝒙)‖𝒑≤ 𝑲, ∀𝒙 ∈ 𝑿 式3.8、Weight clip

然而,weight clip 的方法會使得大部分的 weight 往極端的兩端靠近([-K, K]),

因此需要一個新的方法來取代weight clip,WGAN-GP[18]可以進一步解決 weight clip 造成的問題,式 3.9 為取代 weight clip 的方法:

[‖𝛁𝒙𝑫(𝒙)‖𝒑− 𝑲]𝟐

式3.9、取代 weight clipping 的作法

新的Loss function 即為本論文未來訓練顏色修正時的依據,如式 3.10:

𝒙t = 𝑮(𝒛), 𝒙u =∈ 𝒙 + (𝟏−∈)𝒙t

𝓛 = −𝔼𝒙~𝒑𝝉[𝑫(𝒙)] + 𝔼𝒙4~𝒑𝒈[𝑫(𝒙t)] + 𝝀𝔼𝒙5~𝒑𝒙([∥ 𝜵𝒙5𝑫(𝒙w) ∥𝟐− 𝟏]𝟐 式3.10、最終使用之 loss function

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

3.2.5. 物件偵測之影像收集

物件偵測訓練資料取自open source 的 openImage V6[10],並使用 big-query[12]

分出所需要之影像進行訓練。另外,因openImage 的資料隨時可能變動,本論文 的收集時間為 2019 年 7 月到 2020 年 4 月期間,keyword 為 Fish、Jellyfish、

Triggerfish、Swordfish、Milkfish、Cartilaginous fish。

3.2.6. 物件偵測模型效能評估

針對SSD 及 Faster RCNN 效能進行評估。

至此已解決了大部分的實作技術問題,接下來闡述本論文的研究架構設計。

3.3. 研究架構設計

3.3.1. 問題陳述

藉由GAN 方法將水下圖像轉換成一般影像,但實際上是否可以讓現有的物

件偵測模型直接套用呢?此外,利用遷移學習的方式來訓練現有的模型,其效能 上是否可以滿足所需呢?綜合我們前述所提出的,在經過這一連串的機器學習,

是否能夠達到即時的水下物體偵測呢?針對這些問題,我們設計了以下的研究 架構,並在第四章「研究過程與結果分析」之中回答這些問題。

3.3.2. 研究架構

此研究整體架構如圖 3.5, 開發工具使用 Tensorflow 及 Python。訓練 顏色修正的平台為CPU: Intel Core i9/ GPU: Nvidia Titan RTX / CUDA 10/ OS:

Ubuntu;訓練物件偵測的平台為 CPU: Intel Core i9/ GPU: Nvidia GeForce 2080 Ti / CUDA 10/ OS: Ubuntu。

圓柱狀圖示為公共開源(open source)的資料集,可收集到 image data 及 label data。其中,色彩修正部分使用 imageNet dataset,而物件偵測部分使用 openImage dataset。CKPT(check point)則是每次訓練的過程會產生的檔案,為一個檢查文件,

紀錄了模型檔案路徑及訓練過程中所有節點上保存的模型名稱,當然也包含最後

Color correction

Object detection

ImageNet

openImage Img

Data CycleGAN

Paired

image pix2pix model Train

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

一次的保存的模型名稱,藉著這個 CKPT 讀取相對應的網路權重資訊及參數資

訊,同時也可讀取該模型的網路結構,也就是說,我們在tensorflow 下訓練的結 果藉由CKPT 保存所有的變量及網路結構,供給未來需要的時候使用。,

色彩修正流程及物件偵測流程將產出新的模型,其中物件偵測採遷移學習 (transfer learning)方式,基於 open source 的預訓練模型(pre-trained model),配合 訓練資料進行重新訓練而得到新的結果。色彩修正的評估因缺乏真實資料 (ground-truth),依據實際產出的結果進行肉眼及 NIQE[28]分數高低判斷,確認是 否良好的顏色修正。物件偵測的評估依據 mAP 及 speed 數值,評估是否符合需

求。而系統整合流程部分則依據前2 個流程得到的結果,將待測影像進行顏色修

正後再做物體偵測,最後確認mAP 高低來評估其結果。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

第四章

研究過程與結果分析

在本章節中,主要介紹色彩修正及物件偵測模型訓練資料的蒐集以及訓練 過程觀察。先利用CycleGAN 產出 pix2pix 所需的 paired image,接著使用 pix2pix

訓練出水下顏色修正的CKPT;同時,進行物件偵測模型的選定,並基於遷移學

習的概念針對欲偵測的類別重新訓練。再將水下影像透過 pix2pix 模型搭配 CKPT 產出修正後的影像,透過物件偵測模型做出分析、評估、與修正。此外,

還會進行影像品質好壞的判斷,這部分將使用 NIQE[28]分數來量化藉由 GAN based 所產出的影像,分數越低則影像清晰程度則越好,品質越佳。

4.1. 研究過程

4.1.1. 資料集說明

因物體在相機的成像效果與拍攝時的光線行經的介質有關,在此我們可簡單 的定義相機拍攝時所在的位置:水中(即本論文所提的水下)及空氣中(即水面之 上)。而資料集收集則分 3 個需求:用於訓練 CycleGAN 模型,用於訓練 pix2pix 模型、及用於訓練物件偵測模型,如表4.1 所示。

Object detection

Diver 訓練資料集 1023 CycleGAN 來進行。根據式 3.3 為其 loss function,並將 ImageNet 收集的影像依 據品質分為訓練資料集A 及訓練資料集 B,其 NIQE 分數如表 4.2。由 NIQE 分

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

使用訓練資料集A 的實際產出的結果如圖 4.1,A1~D1 分別為輸入的原始圖片,

A2~D2 分別為透過 CycleGAN 產出 paired image。使用訓練資料集 B 的實際產 出的結果如圖4.2。A1~C1 分別為輸入的原始圖片,A2~C2 分別為透過 CycleGAN 產出paired image,表 4.3 為使用測試集產出結果的 NIQE 分數。

4.1、CycleGAN 訓練資料集 A 結果

(A1) (A2)

(B1) (B2)

(C1) (C2)

(D1) (D2)

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

圖4.2、CycleGAN 訓練資料集 B 結果

Max Min Avg

訓練資料集A 結果 23.7651 14.8812345 19.629 訓練資料集B 結果 29.0858 18.1585564 22.585

表4.3、Paired image NIQE 分數

(A1) (A2)

(B1) (B2)

(C1) (C2)

資料,對pix2pix model 進行訓練,而訓練所使用的 loss function 即為式 3.10:

𝓛 = −𝔼𝒙~𝒑𝝉[𝑫(𝒙)] + 𝔼𝒙~𝒑𝒈[𝑫(𝒙)] + 𝝀𝔼𝒙~𝒑𝒙[𝛁𝒙𝑫(𝒙) ∥𝒑− 𝟏]𝟐 GIMP Auto white Balance 76.064 58.040 64.770 G’MIC-QT Color balance 78.441 59.528 68.695

表4.4、顏色修正評估階段之 NIQE 分數

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

首先針對loss function 中的𝝀進行分析評估,基於 Iteration = 38000,Number of Training Data = 6128,圖片解析度為 512x512,結果見圖 4.3。A 為輸入的原始 圖片,B 為 λ = 5 的輸出結果,C 為 λ = 7.5 的輸出結果,D 為 λ = 10 的輸出結果,

E 為 λ = 12.5 的輸出結果,F 為 λ = 15 的輸出結果。

圖4.3、不同 𝝀 結果

(A1) (A2) (A3)

(B1) (B2) (B3)

(C1) (C2) (C3)

(D1) (E2) (E3)

(E1) (E2) (E3)

(F1) (F2) (F3)

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

對於paired image 的數量多寡,進行分析評估,基於𝝀= 10,Iteration = 38000,圖 片解析度為512x512,見圖 4.4。A 為輸入的原始圖片,B 為訓練集數量=3064 的 輸出結果,C 為訓練集數量=6128 的輸出結果。

圖4.4、訓練集數量控制結果

(A1) (A2) (A3)

(B1) (B2) (B3)

(C1) (C2) (C3)

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

接著就 iteration 的次數進行分析評估,基於𝝀 = 10,Number of Training Data = 6128,圖片解析度為 512x512,結果見圖 4.5。A 為輸入的原始圖片,B 為 Iteration

= 38000 的結果,C 為 Iteration = 76500 的結果,D 為 Iteration = 153000 的結果,

E 為 Iteration = 189500 的結果,F 為 Iteration = 306000 的結果。

圖4.5、訓練迭代次數控制結果

(A1) (A2) (A3)

(B1) (B2) (B3)

(C1) (C2) (C3)

(D1) (E2) (E3)

(E1) (E2) (E3)

(F1) (F2) (F3)

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

一般而言,在攝影的角度上要修正色彩,通常是將白平衡調整為正確的色溫 後才拍照或錄影,或者加上濾鏡來改變接受到的顏色狀況,最後才做光源的補償。

而此研究不討論光源補償部分,因為此為直接將水中影像的物理限制做出強制優 化。另外,當影像已經完成拍攝後,傳統做法上,乃是透過影像修飾軟體做出修 正,這裡使用 GIMP 的 AWB 及 GIMC plugin 的 color balance,圖片解析度為 512x512,如圖 4.6。A 為 GAN based 的輸出結果,B 為 GIMP Auto white Balance 的輸出結果,C 為 G’MIC-QT Color balance 的輸出結果。可以看出影像處理軟體 的結果雜訊明顯,中間的顏色並未修正正確,尤其在低對比的圖像更出現顏色完 全錯誤。

圖4.6、軟體自動修正結果

(A1) (A2) (A3)

(B1) (B2) (B3)

(C1) (C2) (C3)

結果。根據Tensorflow detection model zoo,可以預先挑選出可使用的模型,如表 4.5。

Model name Speed (ms) COCO

mAP Outputs

ssd_mobilenet_v1_coco 30 21 Boxes

ssd_mobilenet_v1_0.75_depth_coco 26 18 Boxes ssd_mobilenet_v1_quantized_coco 29 18 Boxes ssd_mobilenet_v1_0.75_depth_quantized_coco 29 16 Boxes ssd_mobilenet_v1_ppn_coco 26 20 Boxes ssd_mobilenet_v1_fpn_coco 56 32 Boxes ssd_resnet_50_fpn_coco 76 35 Boxes

ssd_mobilenet_v2_coco 31 22 Boxes

ssd_mobilenet_v2_quantized_coco 29 22 Boxes ssdlite_mobilenet_v2_coco 27 22 Boxes

ssd_inception_v2_coco 42 24 Boxes

faster_rcnn_inception_v2_coco 58 28 Boxes faster_rcnn_resnet50_coco 89 30 Boxes

rfcn_resnet101_coco 92 30 Boxes

faster_rcnn_resnet101_coco 106 32 Boxes faster_rcnn_inception_resnet_v2_atrous_coco 620 37 Boxes

faster_rcnn_nas 1833 43 Boxes

表4.5、COCO-trained models[19]

由 表 4.5 , 基 於 speed 及 mAP , 預 先 選 定 ssd_resnet_50_fpn_coco 、 faster_rcnn_nas、及 faster_rcnn_inception_resnet_v2_atrous_oidv4 進行評估。此外,

也加入YOLO V4[29]進行評估,並使用針對移動裝置的 Tensorflow lite 深度學習 框架。進行方式為將待偵測的圖片進行前述之色彩修正,並使用預訓練模型偵測。

測試集部分,我們偵測 3 個類別,diver 數量為 231 張,fish 數量為 7563 張,

jellyfish 數量為 487 張。而每個模型針對五種條件的圖片:original 為原始圖片,

其他四種為色彩修正模型不同迭代次數的生成圖像,圖片解析度為512x512,計 算mAP 及每張圖片處理所需的時間來評估及選定,見表 4.6。

Original Number of iterations

38000 76500 153000 306000

這個階段為選定一物件偵測模型後,藉由遷移訓練概念,輸入pre-trained ckpt、

訓 練 集 、 進 行 模 型 的 重 新 訓 練 。 基 於 速 度 與 偵 測 率 , 此 研 究 使 用 ssd_resnet50_v1_fpn 為偵測模型,使用的訓練集分為 3 種類型:水中影像、空氣 中影像、及綜合(水中與空氣中)影像,見表4.7。圖 4.7(潛水員-混合)、圖 4.8(水 母-混合) 、及圖 4.9(魚-混合)為各類別的 loss 結果,因潛水員身上裝備較複雜,

其收斂結果並非很好,而魚及水母的loss 結果則有收斂。

Diver Fish Jellyfish

空氣中

水中

表4.7、不同影像類型

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

圖4.7、潛水員(混合)的 Loss

圖4.8、水母(混合)的 Loss

圖4.9、魚(混合)的 Loss

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

4.2. 分析階段

由研究過程的每個階段,都得到一些結果,此部分即針對這些結果進行分析。

4.2.1. Paired image分析

由圖4.1、圖 4.2、及表 4.3,使用訓練資料集 A(品質好)所產出的結果一般都

比訓練資料集B(品質差)產出的結果好,因此在這部分,我們會採用訓練資料集

A 所做出的結果來成為 GAN 模型需要的 paired images。

4.2.2. 色彩修正結果分析

圖4.3 顯示,λ 必須大於或等於 10,其結果才能符合我們需求。而圖 4.4 來 看,數量較多的訓練集,產出的圖像清晰度及顏色部分都較好,這部分符合深度 學習基本預期。圖4.5 部分,迭代次數與顏色修正結果成正向趨勢,這部分也可 以知道其結果為使用WGAN-GP 的收斂效果是正向的。

4.2.3. 物件偵測重新訓練結果分析

表4.8 為預訓練偵測的結果與使用混合訓練集進行重新訓練的偵測結果,重 新訓練後的 AP 皆有提高。資料集數量部分,diver 的訓練/測試為 1023/231,

jellyfish 的訓練/測試為 2002/487,fish 的訓練/測試為 28465/7563,未做顏色修正,

圖片解析度為512x512。

AP Pre-Trained Re-Train

Diver 0.23 0.32

Jellyfish 0.26 0.50

Fish 0.26 0.39

表4.8、預訓練與重新訓練的比較

影像、及混合影像,而比例上,diver 的水中:空氣中約為 75%:25% (767:256),

fish 的水中:空氣中約為 34%:66% (9678:18787),而 jellyfish 的水中:水空氣 中約為42%:58% (840:1162);測試集部分,diver 為 231 張,fish 為 7563 張,

jellyfish 為 487 張,圖片解析度皆為 512x512,分別進行重新訓練並測試結果。

由表4.9 可看出當圖片經過顏色修正(Gen),AP 均有提升。

Diver Jellyfish fish

AP Original Gen Original Gen Original Gen

x 軸為圖片編號,y 軸為信心指數(confidence score)。由圖可以發現,如果模型重

x 軸為圖片編號,y 軸為信心指數(confidence score)。由圖可以發現,如果模型重

相關文件