5.1
Matlab環境中的測試工作
A. 第一套程式
>
輸出結果可參考下圖,圖1為原始之base Image,圖2為標定目的地特徵點用的input Image,而圖3由左至右則依序為選擇 piecewise linear、local weighted mean(with N=6)、local weighted mean(with N=10)、local weighted mean(with N=15)、projective演算法的變形結果。
圖1 圖2
圖3
從操作結果顯示,piecewise linear和projective的運算結果相似度相當高。在查詢程式碼後,發現其實程式中根本未含有projective演算法所對應的程式碼。另外local weighted mean的運算,當N的數值較小時,變形的結果均相當畸形。即如官方教學中所提示:” making N small risks generating ill-conditioned polynomials.”。
整體來說,也許是因為特徵點資訊不足的關係,第一套程式的變形結果皆相當差強人意。
B. 第二套程式
>
輸出結果可參考下圖。圖4為欲進行變形之基底圖片,圖5為欲轉變至的特徵點目標位置圖片,而圖6由右至左分別為原始輸入圖片、圖片變形進行中之狀態、圖片變形完成時之狀態。
圖4 圖5
圖6
明顯可看出第二套程式的結果較符合需求。接著改用第一套軟體中所使用的影像進行變形以進行比較。同樣以同於上方的圖1作為欲進行變形之基底圖片,圖2為欲轉變至的特徵點目標位置圖片,而圖7由右至左分別為原始輸入圖片、圖片變形進行中之狀態、圖片變形完成時之狀態。
圖1 圖2
圖7
除了首先使用的CMU-PIE資料庫圖片有較多特徵點的影響外,從接下來再次使用BU-3DFE資料庫影像進行變形,也可明顯看出成效遠較第一套軟體來得理想。但在與研究室學長討論、比較實驗結果後,由於變形效能仍不盡理想,因此決定改選用學長本身已有研究與使用過的RBF技術作為參考基礎,進行資料搜集與分析以準備於VC平台實作。
5.2 VC環境中的程式撰寫與測試
A. forward和backward兩種計算方式效能比較
>
下列圖片將展示測試成果。圖片中,左上方為原圖,下方兩張依序為欲轉變至的特徵點目標位置圖片,其右則依序為以forward和backward轉換所得之結果,下方t為所花時間(以秒為單位)。
圖a
圖b
圖c
雖然沒有很明顯的差距,但backward計算的需時較少是肯定的,並且變形結果與forward計算所得結果幾乎完全相同。
B. 使用backward方法,在BU-3DFE資料庫中NE與AN兩種表情間變形的效能
>
下列圖片中,左上方為NE表情原圖,左下為AN表情原圖,其右則依序為由另一表情轉換結果圖。旁邊的數值為原圖與轉換圖之間各對應像素的色碼值比對正確率,即(轉換圖與原圖中對應位置色碼值相同像素數/圖片所含總像素數)。
圖d
圖e
圖f
由實驗所得數據可知,若以色碼值正確率作為變形效能參考依據,則本程式必定是相當不及格的(正確率僅約30%上下)。但由於這次專題中實作的僅是較基本的幾何變形計算,尚未加入包含質地、色彩等資訊的分析與計算,因此色碼比對僅能作為一大略參考數值。
C. 使用backward方法,並且分別使用15和68個特徵點,在BU-3DFE資料庫中NE與DI兩種表情間變形的效能
>
下列圖片中,左上方為NE表情原圖,左下為DI表情原圖,其右則依序為使用15個和68個特徵點的結果圖。旁邊的數值為 原圖與轉換圖之間各對應像素的色碼比對正確率。
圖g
圖h
圖i
由圖片與色碼正確率進行交叉比對,可知當輸入較多的特徵點資訊時確實可以得到較符合需求的輸出結果。