所謂的手機去水印軟體實在太多了,剛剛我下了所有知乎推薦過的軟體,沒有一個滿意的,如果水印位置是這樣的

那麼所有軟體都能做到完美去水印

可是,像這一類的

真真沒辦法,效果不如意啊

.

.

.

.

.

.

可能很多人都覺得沒問題吧,對於強迫的人來說只能剪了,畢竟p了以後的效果實在難受,求大神解答一下如果去水印又不帶影響線條的!!!(好吧,我作(?﹏?))


本項目僅限於程序員或者計算機深度愛好者測試使用,請電腦小白請不要嘗試,某些人弄個amd顯卡的電腦運行,然後私信說跑不起來,每個星期都有這樣的私信,一檢查要不是沒有獨顯,要不就是amd的gpu。這個腳本是有python編寫,一般的報錯信息都可以通過百度查詢錯誤信息得到解決方案。如果你連ImportError: No module named Image錯誤都解決不了就不要私信。

瀉藥,乾貨來了

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

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

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

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

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

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

論文 Noise2Noise: Learning Image Restoration without Clean Data

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

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

github

https://github.com/zxq2233/n2n-watermark-remove?

github.com

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

必須是裝有英偉達系列顯卡的電腦才能運行!!!

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

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

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

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

n2n-watermark-remove-數據集-阿里雲天池?

tianchi.aliyun.com圖標

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

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

2.搭建運行環境。

首先去英偉達官網下載您的計算機顯卡對應的顯卡驅動最新版本。(studio版-設計師PS 建模作圖用 GRD版-打遊戲用)

NVIDIA 驅動程序下載?

www.nvidia.cn圖標

很多人使用的是老版本的顯卡驅動,cuda版本過低,tf框架跑起來報錯的

安裝完成重啟電腦,桌面右鍵點擊NVIDIA控制面板,系統信息—&>組件

看看cuda版本是不是大於9.0,低於9.0會報錯。

如果安裝之後還是低於9.0,使用軟體管家之類的軟體卸載了電腦裏所有NVIDIA開頭的軟體,然後再通過上方的地址重新下載最新版的顯卡驅動安裝。

然後搭建python運行容器。不用去python官網下載軟體包,太麻煩,推薦使用Miniconda,一鍵化傻瓜安裝。

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

Miniconda3-4.5.4下載地址:

https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-4.5.4-Windows-x86_64.exe

備用下載 代碼託管

下載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==1.9

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

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

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

3.準備數據集

下載coco2017數據集,下載地址 http://images.cocodataset.org/zips/val2017.zip

如果下載慢可以從

這個壓縮包可以解壓出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.com

https://www.bilibili.com/video/av58550738?

www.bilibili.com

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

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

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

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

參考 https://github.com/yu4u/noise2noise/blob/master/noise_model.py#L29

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

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 小時以上就可以達到基本可用程度。,想要水印去的乾淨,訓練時間不能少。

【AI女朋友生成器】三分鐘定製漂亮小姐姐?!一鍵get女朋友?_嗶哩嗶哩 (゜-゜)つロ 乾杯~-bilibili?

www.bilibili.com圖標

給大家介紹幾種去除水印的技巧,親測好用

1.使用Inpaint 軟體去除水印

下載鏈接

快速去除水印,操作十分簡單?

mp.weixin.qq.com圖標

2.使用「以圖搜圖」去除水印

原本的圖像是沒有添加水印的,水印可能是某些平臺自動添加的,或者為了保護版權人為添加的,使用以圖搜圖就能搜到原本的圖像,或者別人已經去除過水印的圖像。

隨便在網上下載一張帶水印的圖片

進入搜狗圖片網站

https://pic.sogou.com/

點擊以圖搜圖按鈕,添加圖片,會搜索出許多不帶水印的原圖像,最後右擊圖片,選擇圖片另存為即可

3.通過編程去除水印

最近無聊就寫了一個簡單的去除水印程序,是基於Matlab的,在matlab軟體上才能運行。

待處理的圖像

執行程序

去除水印後的圖像

有興趣的可以試一下,這是程序的源代碼

%讀取for page = 1:5filename = strcat(D:img wocolor,num2str(page),.png);I = imread(filename);%迭代求閾值I=im2double(I);T0=0.01;T1=(min(I(:))+max(I(:)))/2;r1=find(I&>T1);r2=find(I&<=T1);T2=(mean(I(r1))+mean(I(r2)))/2;while abs(T2-T1)&T1);r2=find(I&<=T1);T2=(mean(I(r1))+mean(I(r2)))/2;endJ=im2bw(I, T2);imwrite(J,strcat(filename));disp(strcat(成功去除水印,num2str(page),張));end

背景比較單一的圖片,採用這種方法能夠很好的去除水印,對於顏色比較豐富的圖像,就要用更複雜的程序來處理了。

如果喜歡我的內容,可以關注我的知乎@漫步

想要了解更多技術,可以關注我的公號:漫步博客


手機就用美圖秀秀,挺方便的


秒去水印 sao yi 賊 永久免費!!!


作者有聯繫方式嗎?有個問題想請教下


訓練了 兩天的數據沒有任何效果 求指導


1.png水印能重疊,是不是重疊的越多,訓練出來去水印的效果更好,shutter加了隨機的作者名字這種方法還有效嗎?


推薦閱讀:
相關文章