去水印


去水印原文鏈接: https://www.zhihu.com/question/333086833
 

瀉葯,干貨來了

傳統的圖片去水印方法雖然效率高,但是對細節破壞的比較嚴重。去水印說簡單也簡單,說難也難。有的水印用修復圖章幾秒鍾搞定,有的水印要一兩個鍾頭還不一定能搞定。

一些細節不是很豐富的圖片,可以通過photoshop等圖像處理軟件進行臨近像素填充,掩蓋水印部分,可以達到接近完美的效果。

面對一些細節極其復雜的圖像,ps已經不能很完美了。

面對細節豐富且復雜的水印,傳統的ps去水印方法已經不能滿足需求啊。

現在,用AI技術,去除水印,可以達到幾乎完美了。

隨着人工智障技術的不斷發展,深度學習其在圖像處理領域的應用越來越廣泛在了,ICML2018上, 英偉達和MIT等機構的研究人員展示了一項圖像降燥技術Noise2Noise,能夠自動 去除圖片中的 水印、模糊等噪音,幾乎能完美復原,而且渲染時間是毫秒級。
論文  Noise2Noise: Learning Image Restoration without Clean Data

第三方復現項目:yu4u/noise2noise 這個可以用來去字幕和圖像噪點,但是作者並沒有添加去水印的功能。

我對這個python腳本進行了修改,已經可以去水印了。

阿里雲登錄 - 歡迎登錄阿里雲,安全穩定的雲計算服務平台

 

下面教你們怎么用,下面的雖然很長,卻很死,只要按照步驟來,一點都不難。

答主在這里聲明:本教程僅供參考,不贊成也不鼓勵大家用來盜圖。

答主在這里聲明:本教程僅供參考,不贊成也不鼓勵大家用來盜圖。

答主在這里聲明:本教程僅供參考,不贊成也不鼓勵大家用來盜圖。

 

1.下載腳本 下載以后把后綴名后面的.bin去掉。后綴改成zip即可解壓

n2n-watermark-remove-數據集-阿里雲天池​tianchi.aliyun.com圖標

首先進去點擊下載文件,然后你會得到一個zip格式的壓縮包。

把這個壓縮包里面的n2n-watermark-remove-master文件解壓到桌面

 

2.搭建運行環境。

為了照顧新手,我這里推薦使用Miniconda3-4.5.4,這個不是最新版,你們也不要去官網下載最新版,tensorflow-gpu版本需要與cuda/cudnn版本匹配,否則腳本跑起來報錯。

Miniconda3-4.5.4下載地址:

備用下載 代碼托管

下載Miniconda3-4.5.4-Windows-x86_64.exe並安裝。連續點擊next,直到安裝完成,安裝目錄隨意

安裝好了。可以在開始菜單找到一個Anaconda Prompt的應用。打開

然后復制下面三行,粘貼到Anaconda Prompt中,

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

然后按兩次回車

然后再復制這一行

conda install tensorflow-gpu

回車,然后界面上一直有文字滾動。不用管它。

等出現Proceed ([y]/n)?的時候輸入y,然后回車,然后又是一陣文字滾動。。。。等它滾完

等到有三行done的時候,可以關閉Anaconda Prompt。

3.准備數據集

下載coco2017數據集,下載地址 

如果下載慢可以從

這個壓縮包可以解壓出5000張圖片,其中4200張用來訓練。剩下的800張用於測試

打開我們剛剛解壓到桌面的n2n-watermark-remove-master目錄,進入里面的dataset,再進入train,使用windows自帶的文件管理器隨便框選其中800張圖片,右鍵剪切,移動到test目錄。

剩下的4200張(ctrl+A)全選選中移動到train目錄里。

然后返回桌面

4.獲取/制作水印

這一步是非常重要的,想要計算機去水印,就要教計算機分辨水印,只有計算機學會了分辨一張有水印的圖像中那些部分是水印,哪些部分不是水印,才能去水印。

這一步最關鍵的就是找到水印原圖。一般LOGO做的水印,一般可以在其網站找到LOGO圖像,(如果是白底需要摳圖),

當然你也可以用聰明一點都辦法,假設某個網站上的圖片都有統一樣式的水印,你只需要去這個網站上傳一張純色背景的圖片(推薦50%中性灰),讓系統為這張圖片加上水印,然后通過圖像減法計算出差值,也就得到了水印圖像。

如果網上找不到相關水印就需要自己制作,制作水印可以看這兩個教程,

https://www.bilibili.com/video/av58901808​www.bilibili.comhttps://www.bilibili.com/video/av58550738​www.bilibili.com

當然n2n-watermark-remove目錄里已經包含了測試用的的模型和水印。

獲得水印之后使用photoshop等軟件新建一個800X800px圖像,將水印密密麻麻的拼到這張圖上,保存並命名為1.png。背景需要透明

把1.png替換掉n2n-watermark-remove目錄下1.png。

此方法只能去除固定大小不固定位置的水印(訓練的水印必須與水印圖像上的水印一樣大)如果您要去除的水印形狀顏色或大小有隨機變化,那么需要修改代碼。

參考 

修改腳本讓水印產生隨機變化。

5.訓練去水印

打開Anaconda Prompt

輸入 cd加一個空格 然后鼠標選中n2n-watermark-remove目錄,拉到Anaconda Prompt界面上,這樣就能自動添加路徑。按回車,具體看視頻。

 

然后輸入下面命令,按回車,接着屏幕又是一陣文字滾動。等它滾完。

pip install -r requirements.txt

然后執行訓練命令

python train.py --image_dir dataset/train --test_dir dataset/test --image_size 128 --batch_size 8 --lr 0.001 --source_noise_model text,0,50 --target_noise_model text,0,50 --val_noise_model text,25,25 --loss mae --output_path text_noise
 

訓練時間由顯卡決定。一般幾十個小時到幾百個小時不等,辦公電腦就不用試了。

有條件的可以用Kaggle和Google Colab

訓練過程中,每迭代一圈就會生成一個weights.xxxxx-xxxx.hdf5模型文件。並不是每次都會生成hdf5文件,有些時候不生成屬於正常現象。

 

開頭的數字代表圈數。數字越大,去水印效果越好,這個腳本默認跑100圈。,一般跑50圈左右就可以關閉窗口停止了,然后生成的模型去水印。

6.利用水印模型去水印

得到模型以后就可以用用來去水印了

使用這個命令

python test_model.py --weight_file 水印模型文件名.hdf5  --image_dir inputdir --output_dir outputdir

水印模型文件名.hdf5替換成實際的文件名,inputdir里放入有水印的圖片,執行命令。去除水印后的圖片會靜靜的躺在 outputdir目錄

 

視頻里演示的效果可能有些不干凈,因為這是短時間內訓練的結果,理論上訓練 30 小時以上就可以達到基本可用程度。,想要水印去的干凈,訓練時間不能少。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM