[論文分享(一)] 水印自動去除(上)---水印的自動識別和特徵提取
簡介:
論文翻譯參考自,Google Research在CVPR 2017上發表的《On the Effectiveness of Visible Watermarks》。文中作者提出了一種高效的水印擦除方法和高魯棒性的加水印方案。在本篇分享中,我會結合結合實踐,一步步分析分享這篇有趣的論文,盡量做到不只是單純的翻譯。
主頁地址:On the Effectiveness of Visible Watermarks
論文下載及補充材料見主頁。我已經用Python對本論文進行復現,由於拖延症晚期,一拖再拖,稍後有機會將會將更新附上我的項目地址,開源相關代碼。在本文發布時已在Github上看到有似乎有作者公開了matlab版的code,有興趣的同學可以自行搜索查閱。由於平時工作較忙,文章會分三部分呈現:水印的自動識別和特徵提取(上),水印的擦除及優化(中),高效打水印方式(下)。
有理解錯誤之處,歡迎大家交流指出。
論文摘要:
眾所周知,水印在標記和保護版權上有著重要的作用。在文章中,四位作者並未用到深度學習方法對水印進行處理,而是單單採用了傳統的圖像處理和優化方法。通過對大量圖像水印的一致性進行分析,從而自動檢測水印和恢復原本圖像。作者們提出了一種新型演算法,通過輸入圖片集合,該演算法能過分離「前景」(水印),「阿爾法層」(Alpha matte)和「背景」(原圖),進而還原圖像。以此同時,作者們還探究水印嵌入時,不同類型的不一致性,從而探討了更高魯棒性和安全性的加水印方案。使得可視水印不單單對單一圖片的擦除具有高抵抗性,還使得對大規模圖片集也能保持高抵抗性。
水印提取:
步驟流程圖直接從論文里截取了,首先如(I)所示,通過梯度特徵提取擬合出matted後的水印,緊接著步驟(II)是估計最開始的Alpha Matte和精確的matted後的水印。再在步驟(III)中,通過多圖片輸入更新水印。
在了解完大致步驟之後我們需要對加了水印的圖片進行數學建模。圖片模型如下:
(1)
代表加了水印的圖像, 代表水印, 代表原圖。其中, 代表像素點的位置, 代表alpha matte,可以當做一種半透明的影響因子,因此對於全部像素點一般在[0,1]區間內。因此:
(2)
上叔模型是對單張圖片的表示, 如果是對圖片集合,公式(2)可變形至:
(3)
對於 K個彩色圖像,每個像素有 3K 個方程 和 3(K + 1) + 1 個變數。
具體步驟:
在實驗過程中,採用了一段從愛奇藝上截取的,時長35秒周杰倫的《告白氣球》MV,共1050幀。貌似現在用客戶端下載視頻水印會自動沒掉?如果需要用論文中相關圖片集,可從項目主頁下載。
廢話不多說,跳過一堆冗長的分析和公式,首先我們要估計水印 。其核心思想是計算水印圖像梯度的中值,通過對 K 張圖片的迭代,水印的梯度值會得到收斂,理論上當 K 越大收斂會越好,但事實是某一區間時會達到趨於平穩,具體不在此推導了。水印估計公式如下:
(4)
對每個像素的 x,y 方向的梯度都要進行計算,結果圖如下:
最後需要對水印進行偏移修正,文中作者用的是0.4的Canny運算元,並在最後一步進行了泊松重建(Poisson Reconstruction)。令
在提取完 之後,根據這個值,我們可以對目標圖片進行水印位置匹配,此處採用圖像處理中最近本的倒角距離(Chamfer Distance) 作為模板匹配方法即可。
在現實中有種更為簡單粗暴的應用方法就是直接手動框出大致水印區域,此方法能過大大減少運算時間,具體效率提升得看處理樣本參數。
總結
在整個方法里,水印的檢測和提取大致遵從以上步驟,中間有繁雜公式的地方已經進行精減,方便大家閱讀。如果想投入現實應用,中間有小的地方可以進行微調優化,但是中心思想不變。對於整篇論文的難點其實在第二部分,後面有空會繼續更新。
推薦閱讀:
※再歪一點-蘋果版常見問題處理方法
※轉載:魅族系統截圖被附上全屏二維碼水印,其中包含設備信息
※蘋果版-03-手機顯示錯位
※如何在圖片上打水印更有吸引力?
※再歪一點-安卓版常見問題處理方法