creatio ex nihilo

ศล
Location :
กรุงเทพ Thailand

[Profile ทั้งหมด]

ฝากข้อความหลังไมค์
Rss Feed
Smember
ผู้ติดตามบล็อก : 85 คน [?]




Group Blog
 
All Blogs
 
Friends' blogs
[Add ศล's blog to your web]
Links
 

 
Flaw in SVD-based Watermarking

[สารบัญกลุ่มเรื่องที่กำลังศึกษา]

เนื้อหาตอนนี้ผมสรุปจากบทความในชื่อเดียวกันของ L. Lamarche, Y. Liu กับ J. Zhao จาก Canadian Conference on Electrical and Computer Engineering ที่ออตตาว่าปี 2006 ในบทคัดย่อของบทความ Lamarche อ้างถึง Zhang กับ Li (2005) ที่ได้วิจารณ์ image watermarking ของ Liu กับ Tan ซึ่งใช้เทคนิค SVD ที่ได้เสนอไปเมื่อปี 2002 ว่ามีจุดบกพร่อง และเนื่องจาก Ozer ได้นำเทคนิคดังกล่าวมาประยุกต์ใช้กับ audio (ไอเดียของ Ozer ดูได้จาก An SVD-Based Audio Watermarking Technique) Lamarche และคณะจึงจะสำรวจและทดสอบว่า วิธีการของ Ozer จะมีจุดบกพร่องแบบเดียวกันหรือไม่ อันนี้คือแก่นของบทความ ในการชี้จุดผิดของการทำลายน้ำภาพนั้น Zhang ให้เหตุผลว่า ในส่วนตรวจจับลายน้ำต้องอาศัยเมตริกซ์ 2 ตัวซึ่งเราถือว่ารู้ก่อนล่วงหน้า เจ้าเมตริกซ์สองตัวนี้ถูกสร้างขึ้นระหว่างขั้นตอนฝังลายน้ำนะครับ (ถ้าคุณอ่านตอนที่แล้วคงจำได้, ถ้าจำไม่ได้ เดี๋ยวผมจะพูดถึงซ้ำอีกทีในเนื้อหาตอนนี้ ช่วงต่อไป) และการตรวจจับดังกล่าว ขึ้นอยู่กับเมตริกซ์ 2 ตัวนี้มากเกินไป ทำให้อัตราการตรวจจับที่เป็น false positive มีค่าสูง สำหรับ Lamarche เมื่อได้ทดลองแล้วก็พบอย่างเดียวกัน

ทบทวนเทคนิคของ Ozer รูปด้านล่างแสดงการฝัง



นำสัญญาณเสียงมาแปลง STFT แล้วสร้างเมตริกซ์ A ขนาด FxM (ถ้าอ่านเปเปอร์ต้นฉบับ ผู้เขียนจะเขียน M by F matrix ซึ่งน่าจะพิมพ์ผิดนะ เพราะในส่วนถัดมา เราจะเห็นค่า i รันจาก 1 ถึง F และ j รันจาก 1 ถึง M) ต่อมา แยกเมตริกซ์ดังกล่าวด้วย SVD ได้ A = UDVT เมื่อ D เป็นเมตริกซ์ singular value, D = diag(δ1, δ2, ..., δr) เมื่อ δi คือ sv

วิธีการฝังของ Ozer คือการเปลี่ยนเมตริกซ์ D ด้วย DW พูดอีกอย่างว่า ผลคูณของ UDWVT ได้ AW หรือเมตริกซ์ที่เมื่อแปลง STFT ผกผันแล้วจะได้สัญญาณเสียงที่ฝังลายน้ำลงไปเรียบร้อยแล้ว ทีนี้ ในการสร้าง DW เขาจะสร้าง WD ขึ้นมาก่อน โดยเมื่อเอา WD มาแยกด้วย SVD เราจะได้ WD = UWDWVWT

WD สร้างจากการดัดแปลงเมตริกซ์ WFxM หรือ watermark carrier ซึ่งแต่ละ element เป็นเสมือน noise ด้วยค่า δi, a = embedding strength กับ b = polarity {-1, 1} ของ watermark ดังสมการ

          WD(i,j) = δi + abδiw(i,j)

โอเคนะครับ หลังจากได้ WD เอามันมาแยก SVD เพื่อให้ได้ DW แล้วเอา DW ไปแทนที่ D ใน UDVT เราก็จะได้ AW เอาไปแปลง inverse STFT ก็จบ ทั้งนี้ทั้งนั้น ในการตรวจจับลายน้ำ ทางฝั่งตรวจจับจะต้องใช้เมตริกซ์ 2 ตัวคือ UW กับ VW ตรงนี้แหละครับที่เปเปอร์นี้อ้างว่าเป็นตัวปัญหา (จะจริงเท็จแค่ไหน เท่าที่รู้ตอนนี้ ผมยังไม่เห็นมีใครยืนยันซ้ำนะ)

ภาคตรวจจับลายน้ำมี diagram ดังรูป



เอา watermarked signal มาแปลง STFT เพื่อสร้างเมตริกซ์ AW จากนั้นใช้ SVD แยก AW เพื่อให้ได้ D'W ใช้ D'W ร่วมกับ UW และ VW ที่รู้ก่อนล่วงหน้าจากขั้นตอนการฝัง เพื่อสร้าง W'D = UWD'WVWT หลังจากนั้นใช้ W'D หา W' จาก W' = D-1(W'D - D)/a สุดท้ายในการตัดสินว่าบิตที่ฝังคืออะไร เราหา correlation ระหว่าง W' กับ W (original watermark) โดยถ้า ∑wijw'ij สำหรับทุกค่า i, j เป็นบวก เราจะตีความว่า b = 1 (bit 1) นอกนั้น b = -1 (bit 0)

ในส่วนการทดลอง ผู้เขียนบอกว่าไม่สามารถทำตามขั้นตอนที่ Ozer เสนอได้ เพราะหลังจากทำตามเปเปอร์ของ Ozer สร้าง WD ขึ้นมาแล้ว watermarked signal นั้นมี noise เยอะมาก! จึงดัดแปลงสมการตอนฝังข้อมูลเป็น WD(i,j) = D(i,j) + abD(i,j)w(i,j) แต่พอดัดแปลงอย่างนี้แล้ว มีปัญหาตอน detect อีก จึงดัดแปลงอีกครั้ง เป็น WD(i,j) = D(i,j) + abw(i,j) ฉะนั้นสมการตอนตรวจจับจึงต้องเปลี่ยนตาม เป็น W' = (W'D - D)/a

การทดสอบที่ 1 ลายน้ำ Wr สำหรับ bit = 1 ถูกฝังลงในสัญญาณเสียงพูด X0 ได้สัญญาณ XW พร้อมเมตริกซ์ UW กับ VW ทีนี้ แทนที่จะใช้ XW เป็น input สำหรับ detection stage ก็ใช้สัญญาณ Y ซึ่งเป็นเสียงพูดอีกอันหนึ่งแทน สัญญาณ Y นี้ไม่มีลายน้ำนะครับ และเป็นคนละอันกับ X0 ปรากฏว่า ใช้ Y ร่วมกับ UW และ VW เขาก็สามารถตรวจจับลายน้ำได้ รูปด้านล่าง เอาลายน้ำที่ดึงมาจาก Y หาความคล้ายกับลายน้ำที่สร้างอย่างสุ่ม 200 ตัว โดยตัวที่ 100 เป็นลายน้ำของจริง แต่ในความเป็นจริง Y ไม่มีลายน้ำ!



การทดสอบที่ 2 โจมตี UW กับ VW โดยการเติม noise เล็ก ๆ U'W = UW + cUNoise และ V'W = VW + cVNoise เมื่อ UNoise กับ VNoise เป็น random noise matrices ที่มีการแจกแจงแบบปกติ และ c คือ noise variance กรณีที่ c = 10 เมื่อดึงลายน้ำจาก XW โดยใช้ U'W กับ V'W และหาความเหมือนกับลายน้ำที่สุ่ม 200 ตัวโดยตัวที่ 100 เป็นลายน้ำจริงจะได้ผลลัพธ์ดังรูป เห็นว่ากรณีนี้ correlation กับลายน้ำสุ่มไม่ได้ใกล้ 0 หมายความว่า false positive rate สูง



และเมื่อคำนวณ BER เมื่อทดสอบ 1000 ครั้งที่ค่า c = 1, 10 และ 100 ตามลำดับพบว่าเกิด error 47 ครั้งสำหรับทั้ง 3 กรณี นั่นคือ BER = 4.7% สำหรับการใส่ noise ลงในเมตริกซ์ ผู้เขียนสรุปว่า ภาคตรวจจับของ Ozer ขึ้นอยู่กับเมตริกซ์ที่สร้างตอนฝังและส่งผ่านมาใช้ตอนตรวจจับมากเกินไป และไม่ขึ้นอยู่กับ watermarked signal ที่ใช้ในการทดสอบ

ถ้าผลจากเปเปอร์นี้จริง วิธีของ Ozer น่าจะเจอปัญหาซีเรียส และเป็นไปได้ว่า กลุ่มของเทคนิคที่ส่งผ่าน UW กับ VW น่าจะเจออะไรที่คล้าย ๆ กัน, เท่าที่ได้ review มาถึงขณะนี้ ผมยังไม่เจอใครทดสอบการขึ้นอยู่กับเมตริกซ์สองตัวนี้ในกลุ่มเทคนิคที่คล้ายคลึงกับงานของ Ozer นะ


Create Date : 27 สิงหาคม 2556
Last Update : 27 สิงหาคม 2556 20:59:32 น. 0 comments
Counter : 1275 Pageviews.

ชื่อ : * blog นี้ comment ได้เฉพาะสมาชิก
Comment :
  *ส่วน comment ไม่สามารถใช้ javascript และ style sheet
 
 Pantip.com | PantipMarket.com | Pantown.com | © 2004 BlogGang.com allrights reserved.