• 沒有找到結果。

論文組織與架構

第一章 緒論

1.3 論文組織與架構

第一章 說明本論文的動機與目的。

第二章 EXIF資訊的介紹,資訊隱藏的分類並探討數位浮水印技術(watermarking)及影像 隱藏技術(steganography)的相關文獻。

第三章 常見數位浮水印方法介紹。

第四章 浮水印嵌入和取出演算法介紹。

第五章 EXIF資訊重複及BCH編碼實驗。

第六章 本論文結論及未來研究發展方向。

第二章

此類數位浮水印技術介於強韌型與易碎型數位浮水印之間的特性。嵌入半易碎型浮水印

1. 安全性(Security)

如同密碼學上的技術,也必須將浮水印演算法公開,也就是說不能把技術的安全性,建 立在假設不法人士不知演算法的前提下。真正的安全性是指,即使嵌入及取出的演算法 是眾人所周知,不法人士仍無法將浮水印移除。

2. 不易察覺性(Invisibility)

嵌入浮水印後,必須不影響原來的影像品質,一來可維持原有的商業價值,也能對不法 人士多一層防護。

3. 明確性(Unambiguity)

取出的浮水印正確率必須足以說服別人,至少要達到人眼可以辨識的程度。相對的,不 能從別人的影像中取出自己的浮水印。

4. 無法統計(statistically undetectable)

就算有再多藏有浮水印的不同影像,也無法利用統計或其他的方法,將嵌入的浮水印分 析出來。

5. 不需原圖(blindness)

如果取出浮水印時需要原始影像,假如原始影像被有心人士拿走,這樣我們仍然無法達 到智慧財產權的保護。另一方面,在某些應用上根本沒有原始影像,譬如可以直接嵌入 浮水印的數位相機,它所產生的圖檔就已經是嵌入浮水印的影像。

6. 強韌性(robustness)

浮水印嵌入影像後必須是無法輕易被移除,如果利用一些簡單的訊號處理就能將浮水印 濾波器(low-pass filter)。或者是A/D、D/A 轉換動作,例如將影像影印出來,然後再用 數位相機拍攝或利用掃瞄器掃瞄等。

(2)幾何處理

將原本的影像加以裁剪(cutting),旋轉(rotation),放大或縮小(scaling)等。例如:剪掉 影像外圍的25%,或者是旋轉90度等。

(3)惡意攻擊

將整體圖形做些微的位移(shift),或者是將兩張不同的影像結合,一些空間域的數位浮 水印技術便會失效。

2.2 空間域浮水印方法

常見的空間域浮水印演算法有 LSB 替換[4]、長條圖移動嵌入[5]和差值擴展

(Difference expansion)[6][7]…等方法,LSB 替換是較早期的方法,屬於不可逆型的浮 水印演算法,長條圖與差值擴展屬於可逆型的浮水印演算法,以 LSB 方法為例,將灰 階影像的像素值分成八個位元平面,如圖 2.1 所示,LSB 即為 Least Significant Bit,最 不重要的位元,使用浮水印將 LSB 平面的部份位元取代,優點是方法簡單、影像品質 PSNR 良好,缺點是無法抵抗攻擊,也無法回復成原始影像[8]。

圖2.1 位元平面示意圖[數位影像處理]

另外一個常見的方法,長條圖移動嵌入的方法,先統計影像像素值個數,以長條圖 表示影像像素值個數,如圖 2.2 所示,通常選擇個數最多的像素值,作為移動的目標,

移動後的結果如圖 2.3 所示,空出來的部份,可以用來嵌入浮水印,優點是計算簡單、

影像品質PSNR 普遍良好,缺點是如果每個像素值個數皆不為零,就無法使用。

圖2.2 採用 lena 影像的長條圖

圖2.3 採用 lena 影像右移後的長條圖

2.3 頻率域浮水印方法

常見的頻率域浮水印演算法有 DFT(離散傅立葉轉換)、DCT(離散餘弦轉換)、

DWT(離散小波轉換),都是屬於強健型的浮水印演算法,我們一般常見的格式 JPEG 編碼所使用的是DCT 演算法 [9],而後來的 JPEG2000 則是使用 DWT 演算法[10]。

以DCT為例,離散餘弦轉換(Discrete Cosine Transform,DCT)是與傅利葉轉換相關 的一種轉換,類似於離散傅利葉轉換(Discrete Fourier Transform,DFT)。離散餘弦轉換

相當於一個長度大概是它兩倍的離散傅利葉轉換,這個離散傅利葉轉換是對一個實偶函

表2.1 輸入的像素值

第三章

EXIF 資訊介紹

3.1 EXIF 資訊

EXIF(exchangeable image file format)是可交換圖像文件的縮寫[12]。EXIF 標準,是 專門為數位相機的照片設定的,可以記錄數位相片的屬性、拍攝時間等訊息以及包含光 圈、快門拍攝情境數據。EXIF 最初由日本電子工業發展協會在 1996 年制訂,版本為 1.0。1998 年,升級到 2.1 版,增加了對音頻文件的支持。2002 年 3 月,發表了 2.2 版。

EXIF 可以附加於 JPEG、TIFF 等影像格式之中,可協助記錄數位相機拍攝時的設定參 數與索引圖等訊息。到目前為止,將EXIF 資訊納入浮水印演算法,文獻上不多見。

圖3.1 使用 Ultra-Edit 開啟 JPEG 影像

圖3.2 顯示 EXIF 資訊

原本我們以為EXIF 資訊無法更改,或者是不易更改,經過實驗之後發現,只要使 用記事本或其他的文書編輯軟體,就可以輕易地更改EXIF 資訊,甚至是影像的內容,

如圖 3.1 所示,使用Ultra-Edit 開啟 JPEG 檔,就可以清楚地看出 EXIF 資訊,找到我們 想要竄改的資訊,就可以經由ASCII Code 編碼的規則進行更改。以下小節介紹一些與 EXIF 的其他應用[13][14][15][16]。

3.2 GPS 相片定位

圖3.3 GPS 衛星定位資訊(北緯 22°43’59”,東經 120°16’33”)

圖3.4 使用電子地圖定位

3.3 影像分類和檢索

因為數位相機的普遍,所以相片檢索與分類最近得到廣泛的重視,尤其是以影像內 容(像素值、人物、建築物或景色)來進行判斷的研究為主[17][18][19][20]。但是以前 的方法效果都不是很好,因為以前的方法大多是使用相片中的內容物,來作為判斷的依 據,因此若是加上相片中的所內含的EXIF資訊,將可以有效地提升分類之準確率。使 用EXIF資訊所包含的閃光燈(flash fired)、焦距(focal length)、曝光時間(exposure time)等資訊,在分辨室內/戶外相片或人物/景物上具有顯著的辨識力。由圖3.5我們 的程式可以看出,我們拍攝的時候並沒有使用閃光燈(flash was not used),而且根據拍 攝時間所示(15:23:40),可以知道相片是在下午三點二十三四十秒所拍攝,如果是在晚 上閃光燈未開的話,就可以判斷拍攝地點應該是在室內,根據以前的相片檢索與分類方 法,再加上我們的EXIF資訊輔助,就可以提高辨識的正確率。

圖3.5 EXIF 閃光燈資訊

圖3.6 使用的實驗影像

第四章

浮水印演算法

4.1 程式流程

圖4.1 頻率域浮水印流程圖

程式流程主要分成三個部分,第一部份將EXIF 資訊取出,將 ASCII Code 型態的 EXIF 資訊轉成二進位,將原本的 JPEG 影像轉成 BMP 影像:第二部分主要是 DCT 演 算法以及浮水印嵌入取出的方法,將BMP 影像經過 DCT 轉換,將像素值變成 DCT 係 數值,嵌入浮水印,下面的章節會說明詳細的嵌入方法,將DCT 係數經過反餘弦轉換,

輸出BMP 影像。第三部分,將 BMP 影像輸入,BMP 影像經過 DCT 轉換,將像素值變 成DCT 係數值,取出浮水印資訊,下面的章節會說明詳細的取出方法,程式結束。

表 4.1 ASCII Code 表

DEC HEX CHAR DEC HEX CHAR DEC HEX CHAR DEC HEX CHAR

065 41 A 078 4E N 097 61 a 110 6E n

表4.2 Zig-Zag 表

DC AC2 AC3 AC9 AC10 AC20 AC21 AC35 AC1 AC4 AC8 AC11 AC19 AC22 AC34 AC36 AC5 AC7 AC12 AC18 AC23 AC33 AC37 AC48 AC6 AC13 AC17 AC24 AC32 AC38 AC47 AC49 AC14 AC16 AC25 AC31 AC39 AC46 AC50 AC57 AC15 AC26 AC30 AC40 AC45 AC51 AC56 AC58 AC27 AC29 AC41 AC44 AC52 AC55 AC59 AC62 AC28 AC42 AC43 AC53 AC54 AC60 AC61 AC63

( )

threshold TH

圖4.2 影像第一個區塊的像素值

圖4.3 經過 DCT 轉換後的係數

圖4.4 計算 AC8 的平均值作為門檻值

由圖4.2 所示,為影像藍色部分第一個區塊的像素值,恰巧這個區域鄰近的像素值 差異都不大,可以看出這個部分比較平滑,而圖4.3 為圖 4.2 的像素值經過 DCT 轉換之 後的結果,由圖中可以看出,能量集中在左上角第一個數,而且必定為正值,右下角的 數值大多趨近於零,而且像素值必定為0~255 之間的正整數,但是經過 DCT 轉換之後 的值為小數,大小並不會限制在某一個區間,所以對於我們設計演算法時,比較不會受 到數值的限制。我們將所有區塊 AC8 的平均值計算出來,由圖 4.4 左上角第一個數值 顯示,可以看出數值從圖4.3 的 120.75 變成 0.09,由於各個區塊 AC8 可能為正值,也 可能為負值,所以平均之後大多會趨近於零,接下來的部分我們就以 AC8 的平均值做 為門檻值。

圖4.5 64 個區塊 AC8 嵌入浮水印後的係數

圖4.6 反 DCT 轉換後的像素值

圖4.7 含有浮水印的影像

圖4.5 所示為浮水印嵌入之後,影像前 64 個區塊 AC8 的數值,可以看出我們如果 嵌入的浮水印位元為1,AC8 的數值為 10.09,為平均值 0.9 加上嵌入強度 10 的結果,

如果嵌入的浮水印位元為0,AC8 的數值為-9.91,為平均值 0.9 減掉嵌入強度 10 的結 果。圖4.6 為反 DCT 轉換之後的結果,可以看出與圖 4.2 的差異不大,所以不會造成失 真的現象,由圖4.7 含有浮水印的影像,無法看出與原圖的差異,表示我們的演算法可 以兼顧影像品質,以上為浮水印嵌入的方法。

取出方法:

因為我們把浮水印藏在頻率域,所以要將浮水印取出來,要先將像素值轉換成DCT 係數值,而且有些係數+10,有些係數-10,除以(256×192)平均之後,並不會對門

檻值有太大的改變。

a. 進行 8×8 DCT,計算出整張影像所有 AC8 的平均值,令其為門檻值 TH。

b. 將每個 8×8 方塊的 AC8 與平均值進行比較。若 AC8 < TH,則輸出浮水印位元 0;

反之,則輸出浮水印位元 1。

c. 將輸出的二進位浮水印,轉換為 ASCII Code 表示形式。

圖4.8 取出浮水印

圖4.9 顯示浮水印資訊

圖4.10 藏有浮水印之影像

在抽取浮水印時,也必須先將影像像素值,經過DCT 轉換成 DCT 係數值,才能進

PSNR (Peak Signal to Noise Ratio)是一個表示訊號最大可能功率,以及影響它的表 示精度的破壞性雜訊功率的比值。我們使用PSNR做為對已嵌入浮水印的影像品質的評

其中,255 是表示圖像點顏色的最大數值,每個像素點用 8 位元表示,那麼使用

BCR(Bit Correct Rate),位元正確率

( ) ( )

SCR(Symbol Correct Rate),符號正確率

每八個位元編碼為一個符號,只要八個位元中有一個位元錯誤,就會造成符號錯 誤,SCR就是比對原始EXIF資訊與萃取出來的位元編碼成的ASCII Code兩者之間的相同 比例,與BCR相同。所以,當SCR的值越高時,兩者之間的相似度越高,完全一樣時 SCR=100%。

)

4.4 嵌入位置選擇說明

我們使用8×8 的 DCT 轉換,每一個區塊會有 64 個係數,所以我們必須選擇一個係 數,當作浮水印嵌入的位置,以下我們使用四張日常生活中所拍攝的影像,以拍攝地點

我們使用8×8 的 DCT 轉換,每一個區塊會有 64 個係數,所以我們必須選擇一個係 數,當作浮水印嵌入的位置,以下我們使用四張日常生活中所拍攝的影像,以拍攝地點

相關文件