水印作為一種保護版權的有效方式被廣泛地應用于海量的互聯(lián)網(wǎng)圖像,針對水印的各種處理顯得越來越重要,比如水印的檢測和水印的去除與反去除。在這里我們和大家分享一下業(yè)余期間在水印智能化處理上的一些實踐和探索,希望可以幫助大家在更好地做到對他人圖像版權保護的同時,也能更好地防止自己的圖像被他人濫用。
我們大家在日常生活中如果下載和使用了帶有水印的互聯(lián)網(wǎng)圖像,往往既不美觀也可能會構成侵權。為了避免使用帶有水印的圖像帶來的各種影響,最直接的做法就是將帶有水印的圖像找出來丟棄不用,此外還有一種不推薦的做法就是去掉圖像上的水印后再使用。
接下來我們將會圍繞上述兩種大家常見的做法展開,首先介紹如何利用深度學習技術快速搭建一個水印檢測器,實現(xiàn)水印的自動檢測,同時我們還會進一步展示在水印檢測的基礎上如何利用深度學習技術設計一個水印去除器,自動將圖像上的水印去除。
一個包羅萬象的水印數(shù)據(jù)集
無論是搭建水印檢測器或是水印去除器,都需要海量水印圖像作為數(shù)據(jù)基礎。然而現(xiàn)實中并沒有直接可以使用的水印圖像數(shù)據(jù)集。因此,我們的首要任務是構建一個水印圖像數(shù)據(jù)集。首先我們要收集各式各樣的水印,為了保證后續(xù)模型良好的泛化性能,水印的種類要盡可能的多,水印樣式也要盡可能的豐富。
我們一共收集了80種來自于公司、組織和個人的水印,包括了中文、英文和logo等不同樣式。接下來就是制作帶水印的圖像,為了保證圖像數(shù)據(jù)的一般性,我們將公開的PASCAL VOC 2012數(shù)據(jù)集的圖像作為原始的無水印圖像,然后利用圖像處理工具將收集的80種水印以隨機的大小、位置和透明度打在原始圖像上,同時記錄下水印的位置信息,從而得到第一個大規(guī)模的水印圖像數(shù)據(jù)集。
水印數(shù)據(jù)集的80%被劃分為訓練集,剩余的20%被劃分為測試集,為了適應現(xiàn)實場景中需要機器自動檢測和去除從未見過的水印的需求,我們確保訓練集中的水印不會出現(xiàn)在測試集中,這樣可以很好地模擬現(xiàn)實生活中的使用場景。現(xiàn)在水印圖像數(shù)據(jù)集已經(jīng)準備就緒,接下來就是如何去搭建水印檢測器和去除器。
能夠一眼看穿各類水印的檢測器
水印在圖像中的視覺顯著性很低,具有面積小,顏色淺,透明度高等特點,帶水印圖像與未帶水印圖像之間的差異往往很小,區(qū)分度較低。為了構建一個有效的水印檢測器,我們將圖像水印檢測問題轉(zhuǎn)化為一種特殊的單目標檢測任務,即判斷圖像中是否有水印這一單目標存在。
當前基于深度學習的目標檢測模型有很多,可以分為以Faster R-CNN為代表的兩階段目標檢測算法和以YOLO和RetinaNet等為代表的單階段目標檢測算法。前者是先由算法生成一系列待檢測目標的候選框,再通過卷積神經(jīng)網(wǎng)絡進行候選框的分類;后者則不用產(chǎn)生候選框,直接將目標邊框定位的問題轉(zhuǎn)化為回歸問題處理。一般來說單階段的算法在檢測速度上會更快,但檢測精度上會有所下降。我們在這里分別基于Faster R-CNN、YOLOv2和RetinaNet這三種目標檢測算法來搭建水印檢測器,從對比的結果來看,三種方法都展現(xiàn)了令人滿意的檢測效果,其中以RetinaNet最優(yōu)。
為了更加直觀地展示我們搭建的基于RetinaNet的水印檢測器的效果,我們將測試集上的水印檢測結果可視化,藍色的框是實際的水印區(qū)域,紅色的框是檢測器定位的水印區(qū)域,從可視化結果可以看出,對于未出現(xiàn)在訓練集中的水印,我們的水印檢測器依然可以一眼就看穿。有了這樣一款水印檢測器,我們就可以在海量圖像中快速又準確地檢測出帶水印的圖像。
往前走一步:從檢測到去除
如果只是利用AI來自動檢測水印,是不是總感覺少了點什么?接下來我們在水印檢測的基礎上往前再走一步,利用AI實現(xiàn)水印的自動去除。因為水印在圖像上的面積較小,所以直接對整幅圖像進行水印去除顯得過于粗暴,也會嚴重拖慢去除速度。針對這種情況我們結合水印檢測設計了更貼合實際操作的水印處理流程,我們先通過水印檢測器檢測出水印區(qū)域,然后對水印區(qū)域進行水印去除操作。
水印去除問題可以看作是一個從圖像到圖像的轉(zhuǎn)換問題,即將帶水印的圖像轉(zhuǎn)換為無水印的圖像。這里我們使用全卷積網(wǎng)絡來搭建水印去除器,實現(xiàn)這種圖像到圖像的轉(zhuǎn)換。全卷積網(wǎng)絡的輸入是帶水印的圖像區(qū)域,經(jīng)過多層卷積處理后輸出無水印的圖像區(qū)域,我們希望網(wǎng)絡輸出的無水印圖像能夠和原始的無水印圖像盡可能的接近。
為了盡可能提升網(wǎng)絡輸出無水印圖像的質(zhì)量,我們采用U-net結構替換了傳統(tǒng)的編解碼器結構,將輸入信息添加到輸出中,從而盡可能保留了圖像的背景信息。同時我們采用感知損失(Perceptual Loss)和一范數(shù)損失(L1 Loss)相結合的方式替換傳統(tǒng)的均方誤差損失(MSE Loss),使輸出的無水印圖像在細節(jié)和紋理上能夠更貼近原圖。
我們將水印去除器在測試集上的一些去水印效果可視化,左列是輸入的水印區(qū)域,右列是輸出的無水印區(qū)域。從可視化的結果可以看出對未知水印的去除效果還是不錯的。
寫在最后
針對水印的各種處理一直是研究的熱點,也吸引了越來越多的關注。本文介紹了如何通過當前流行的深度學習技術來搭建水印的檢測器和去除器,實現(xiàn)對水印的智能處理。
在后續(xù)的文章中,我們會進一步介紹一種更強大的水印去除器,也會提出一些對水印反去除的思考。值得注意的是,版權保護是大家一直要堅持的事情,水印去除的研究目的更多是為了通過攻擊水印來驗證其是否有效,從而促進水印反去除能力的提升。保護版權,AI有責。
-
數(shù)據(jù)集
+關注
關注
4文章
1208瀏覽量
24689 -
深度學習
+關注
關注
73文章
5500瀏覽量
121111
原文標題:如何利用深度學習技術處理圖像水印?
文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論