• 沒有找到結果。

以遺傳演算法求取最佳門檻值

第三章 基於奇異值分解與遺傳演算法之數位浮水印技術

3.3 以遺傳演算法求取最佳門檻值

基本上,不可見性與強韌性之間的衝突可視為一具有相當多種組合的優化問 題。大體上,嵌入時的修改量越大,強韌性會越高,反之則不可見性越高。Holland 在1975年提出遺傳演算法[22],它的概念是源自於達爾文進化論“適者生存,不 適者淘汰”,透過計算機來模擬自然界演化過程,用以解決最佳化問題。因此,

在本論文我們採用遺傳演算法,詴圖解決不可見性與強韌性之間的衝突。

3.3.1 基因編碼方式

(a)一般狀態下的編碼方式

在使用遺傳演算法上,一條染色體就代表了一組解,我們的目標是找出各嵌 入點的最佳門檻值,所以染色體的長度等同於浮水浮像素的數量,其資料結構訂 定為一向量(t1,t2,…,tw×h),ti為第 i 區塊的門檻值,w 與 h 分別代表浮水印的寬與 高。

每個基因的編碼方式可由使用者自定,但由於太大的門檻值會使不可見性變 得極差,太小的門檻值則使得強韌性低到無法接受。從相關數據的分析得知,門

檻值小於 0.001 時將無法顧及強韌性,大於 0.03 時不可見性將會明顯降低;因此,

我們將每個基因的變化範圍定在介於,0.001 到 0.03 之間。為了降低計算上的複 雜度,我們將此區間的數值進行離散化,使其每個門檻值的變化尺度為 0.001;

如此一來,便只有 30 種門檻值在演化中變動。然而,即使如此,對一影像大小 為 32×32 的浮水印而言,解答的組合空間仍高達 301024

(b)縮減染色體維度的編碼方式

為了改善前述解答空間過於龐大的問題,我們提出另一種染色體設計方式。

從公式(9)可以看到,當欲藏入的浮水印位元為 1 時,兩係數絕對值之差值越大 將會越接近門檻值,亦即修改的幅度會越小,當絕對值之差等於或大於門檻值 時,則完全不用修改,如圖 3.6(a)所示,其中i為第 i 個區塊其兩係數絕對值之 差;反之,當欲藏入的浮水印位元為 0 時,兩係數絕對值之差值越小將會越接近 負的門檻值,甚至超越負門檻值而不用修改,如圖 3.6(b)所示。

(a)當浮水印位元為 1 時,門檻值為正 (b)當浮水印位元為 0 時,門檻值為負 圖 3.6:浮水印位元與兩係數絕對值之差示意圖

在浮水印的嵌入程序中,修改的幅度越大,PSNR 將會降低,合適度也一併 下降。因此,我們將所有區塊在嵌入浮水印後的修改量計算出來並排序,將變化 量較大的區塊篩選出來,將此區塊的門檻值設為定值,不進行演化,如此一來即 可減少染色體的維度,進而降低計算量並縮減執行時間。詳細的分析如公式(12) 所列。

Let 

=

| u

i

|

| u

i+1

|

26

• 柔焦類:中值濾波攻擊(median filtering)。

• 壓縮類:JPEG 壓縮攻擊(QF 為 70)。

• 影像處理類:銳利化攻擊(sharpening)。

• 其他:竄改攻擊(tampering),在原始影像中某一區域貼上額外的影像。

經過上述六種攻擊後,分別有六個 BCR 值呈現,我們加總這些數值並以其 代表該組答案的強韌性。但由於不可見性的評估標準的其計量單位與 BCR 值不

同,我們需透過一個由使用者自定的係數 k 將 BCR 值進行放大,將之相乘後再 與 PSNR 相加作為適應函數,如此便可保證 BCR 在合適度中的比重不會差 PSNR 太多而被忽視,使得兩者數據皆能在演化中受重視,如公式(13)所示。

適應函數

6

1 i

BCRi

k PSNR

f (13)

BCRi代表的是第 i 種攻擊後的浮水印 BCR,k 為使用者自定的權重係數。從適應 函數我們可以觀察得到,當 k 值越小時,PSNR 在合適度的比重上就會大於 BCR,

也就是這組解答將會偏向較高的 PSNR 與較低的 BCR;換言之,即是有較好的不 可見性,與較差的強韌性。反過來說,當 k 越大時,則會有較好的強韌性,與較 差的不可見性。但由於 PSNR 與 BCR 間的關係太過複雜,僅能以部分實驗結果 進行大致上的推理,一般而言,k 值在 30 時會有較平衡的解答。

3.3.3 挑選機制

本論文採用的挑選機制為競爭選擇法(tournament selection)中的二元競賽,即 以隨機的方式從族群中挑選兩個染色體出來,比較其合適度,勝者可做為下一代 的親代,如此重複下去直到親代數量達到族群數量。但由於競爭選擇法的隨機性 質,有可能造成合適度最高的染色體沒被挑選到,所以我們另外加入菁英挑選 (elitism)的策略,在每一個子代中都保留一個名額,給現有合適度最高的個體。

3.3.4 交配與突變機制

在交配運算子的使用上,我們採用的是均勻交配(uniform crossover)。其方法 是在每個基因上,以二分之一的機率來決定單個基因是否要交換,如此進行至最 後一個基因。為了引導遺傳演算法進入未曾蒐尋過的解答空間,我們也採用了突 變機制:均勻突變(uniform mutation),此突變機制以低機率的方式,在交配產生 子代時出現,在設計上我們希望每個子代產生時皆有一個基因突變,突變位置為

28

並以隨機的方式從 30 種門檻值中挑選其一。

3.3.5 演化流程

步驟一:初始設定,設定族群大小,以亂數決定每個染色體初始值,設定適應函 數的 k 值,以及交配率,突變率,與終止條件(我們採用固定代數作為終 止條件)。

步驟二:將每個染色體進行浮水印嵌入程序求得其 PSNR 值。

步驟三:將上步驟產生的偽裝影像進行六種不同的攻擊,並在攻擊後擷取出浮水 印求出對應的 BCR 值並加總貣來,再同 k 值與 PSNR 值一併求出此染色 體之合適度。

步驟四:判斷是否符合終止條件,若有則結束演化,若無則進入下一步驟。

步驟五:進行挑選機制,並根據交配率與突變率來產生子代,將子代帶回步驟二 進行下一代的演化。

流程圖如圖 3.7 所示:

初始化

產生第0代 的族群

進行浮水印 的嵌入並求 得PSNR

進行攻擊與 浮水印擷取 並求得BCR

計算合適度

滿足終 止條件

結束

挑選機制 交配與突 變機制 產生下一 代的族群

圖 3.7:演化流程圖

相關文件