• 沒有找到結果。

7.2 辨識效果討論

7.2.1 辨識成果

此研究利用 FCN 概念中的 U-net 架構,並將 200 張鏽蝕影像以及遮罩作為訓 練資料輸入模型中進行訓練,並將 13 張標註較為精細的資料做為測試。在探討 模型表現之前,我們需先了解分類任務中,常需要被拿出來討論的混淆矩陣:

表 7.1 混淆矩陣

TN: True Negative 答案為否,預測也為否。 常偵測,大部分都為正常只有少數為異常的任務,就可以利用 precision 來進行評 估。其中,準確度(Accuracy)的計算方式為 (TN+TP)/總像素量,適用於比例相差 不懸殊的分類任務,此研究中,由於鏽蝕以及正常塗裝的像素比例並沒有相差的 十分懸殊,故我們選用 Accuracy 作為我們評估模型表現的其中一項指標。

另外,這裡的像素預測值由於都會經過模型中的激勵函數運作,出來的值都 會介於 0~1 之間,越靠近 1 代表模型認為是鏽蝕。Tensorflow 套件中的 Accuracy 中的操作閾值設為 0.5,所以當像素被預測出來的值大於 0.5 時,在計算 accuracy 時便會被認定「是」,值小於 0.5 的像素部分便會被認定為「否」。

Accuracy =

(TP+TN)

(TP+FP+FN+TN)

除了準確度(Accuracy),也利用了另外一個名為二元交叉熵(Binary Cross Entropy)的指標作為誤差(Loss)評估。二元交叉熵用以衡量預測結果與正確答案的

表 7.2 二元交叉熵算例表(一)

表 7.3 二元交叉熵算例表(二)

上述為兩個模型對於資料進行男、女、其他類別進行預測之結果,可從表中 看出,從預測的錯誤率來看皆為 0.25,顯然無法用此指標判斷模型的表現,模型 二的預測能力顯然比模型一來的優秀,為此,我們利用計算兩個模型的 Cross-Entropy,來判斷兩個模型的表現:

Model 1 Cross-Entropy

= 類別(男) Cross-Entropy + 類別(女) Cross-Entropy + 類別(其他) Cross-Entropy

= -(1 × log(0.4)+ 0 × log(0.3)+ 1 × log(0.5)+ 0 × log(0.8)) + -(0 × log(0.3)+ 1 × log(0.4)+ 0 × log(0.2)+ 0 × log(0.1)) + -(0 × log(0.4)+ 0 × log(0.3)+ 0 × log(0.3)+ 1 × log(0.1)) = 6.966

Model 2 Cross-Entropy 如上計算後得出結果為 2.310

很明顯能夠看出,若模型預測的越準確,對於對的預測機率數字越高,那計算出 來的 Cross-Entropy 數字則越低,由此可得知,預測結果越接近真實答案者,

Cross-Entropy 的值則越低,故可利用此特性進行模型的表現評估。

了解了模型評估的指標,即可藉由觀察指標數字的變化來檢視模型的訓練成 效,下圖為訓練集影像在模型訓練過程中,準確度(Accuracy)以及誤差(Loss)經過 了數個 epoch 後,所呈現的變化曲線。

(epoch : 一個 epoch 代表過了一遍訓練集中的所有樣本)

圖 7.4 準確率曲線(上)及誤差曲線(下)

在訓練集中,最後的準確度可以達到 0.95 ,而誤差可以降至 0.167,但這些數 字僅供參考用以監視模型的訓練過程,真正用以檢驗模型準確度的為額外獨立出 來沒有加入訓練的測試用 13 張鏽蝕影像及遮罩。

利用 evaluate_generator 的手法批次將測試資料丟入模型後進行評分,得出的 準確率為 0.956,誤差為 0.264。

以下為 13 張測試資料原圖以及辨識成果的展示,白色部份為機器辨識之鏽 蝕區域 (左側為原始圖,右側為模型辨識結果):

Accuracy: 0.975 Loss: 0.13

Accuracy: 0.952 Loss: 0.083

Accuracy: 0.91 Loss: 0.58

Accuracy: 0.92 Loss: 0.47

Accuracy: 0.991 Loss: 0.125

Accuracy: 0.984 Loss: 0.106

Accuracy: 0.93 Loss: 0.67

Accuracy: 0.94 Loss:0.75

Accuracy: 0.93 Loss: 0.12

Accuracy: 0.95 Loss: 0.13

Accuracy: 0.981 Loss: 0.08

Accuracy: 0.979 Loss: 0.103

圖 7.5 研究辨識成果展示

Accuracy: 0.989 Loss: 0.09

相關文件