blind watermark 盲水印技術實現,這裡主要引用網上三種java實現的效果測試和研究。可以將文字隱藏在圖片中,通過提取還原水印,實現版本保護效果。 開源代碼: https://gitee.com/chejiangyi/shuiyin/tree/master ...
gitee 開源代碼(java)
https://gitee.com/chejiangyi/shuiyin/tree/master需求概述
研究盲水印對於版權保護的效果和能力研究嘗試概述
水印實現: 大部分的python或者java演算法都基於頻域的盲水印效果。 涉及的演算法: 傅里葉變換。 開源相關: 大部分是python演算法居多,也有java的一些傅里葉實現,少部分其他語言實現。 涉及的框架: opencv (用來處理圖片)圖片盲水印方式
1. 二維碼(本質是圖片) 盲水印(未嘗試) 2. 圖片盲水印(初步嘗試,未深入,初步效果不佳) 3. 文本盲水印(已嘗試) 圖片盲水印:初步嘗試一個傅里葉演算法,發現在截圖等複雜場景干擾下,似乎沒有文本盲水印抗干擾能力強;但是沒有深入印證其他多種演算法效果。 文本盲水印:經過幾輪嘗試,發現文本盲水印會效果好,但是在一些場景下圖片會有一些失真(對比原圖),色澤會變淺。 在其他抗干擾(截圖,縮放,塗改)情況下效果還可以。圖片失真的情況,在不同傅里葉演算法中,效果不一樣,有些不失真,但是效果抗干擾能力差。文本盲水印嘗試詳解
一. 目前java 有三種demo沉澱
第一種:

第三種:


二. 目前python 效果測試
python 是目前盲水印演算法最多的案例和demo,在github上發現一些python演算法一般加的是圖片盲水印(非文字盲水印),但是沒有詳細測試效果(主要是沒精力)。網上fork數或者關註數多的盲水印,實際測試效果並不佳。比如:https://github.com/guofei9987/blind_watermark 這個盲水印可以支持文字隱藏,但是實際進行截圖和干擾的時候發現文字水印無法如期提取,跟實際描述的文檔有較大差異,可能是姿勢不對。其他的水印效果未深入,未來有更多精力後再深入投入實際場景做驗證。三. 雲服務測試
目前雲服務中支持的,主要有七牛雲和騰訊雲,七牛雲更偏圖片處理,所以用七牛雲做測試(騰訊雲未測)但是實際效果也不是很理想。 七牛雲盲水印恢復靠的是原始圖片(可能是通過水印圖和原始圖對比),從而恢復水印(這種手法可能要與產品商量實際場景行不行),同樣也有version 3第三種演算法實現盲水印,可以在水印圖中提取水印。經過測試version 3的實現,在圖片截圖和縮放等干擾情況下,恢復水印的能力會差很多,丟失的信息更多,不如網上的一些開源演算法,所以雲服務效果不盡如意。總結筆記
盲水印總體效果不是很成熟,但是作為輔助版權驗證應該還是可以的(除了圖片會增加一些大小),關鍵還是在於實際業務場景。 同時自身也不是圖片處理相關專家,很多細節和參數也不敢調整,也無法真正有效結合實際業務場景發揮和調優演算法。 所以真正落地盲水印,後續需要在幾個方面努力: 1)需要專職的一名圖片處理專家或者外聘專家支援。 2)大量的實際場景的圖片和用戶干擾的案例圖做多次驗證。 3)通過機器學習進行演算法參數調優。測試效果示例
常用案例測試:


