深度学习 效果突然下降_使用深度学习去除复杂图像水印,效果好过photoshop!...

d2219e05071f4eac292d44982282befd.png

视频教程https://www.zhihu.com/question/333086833/answer/841650555

用深度学习方法进行图像去水印,需要大量的训练图像样本对,即带有水印的图片和干净的图片。

我使用英伟达与MIT提出的noise2noise方法实现去水印。

经过题主测试,模型训练样本及次数足够多,去水印后的原图基本上接近原图98%以上。

其效果好过photoshop等专业级软件处理。

bc048c8cab619543f5c9b3d39687a79b.png

从左到右 :原图——>水印图——>去水印图

原理及实现思路请阅读论文:

Noise2Noise: Learning Image Restoration without Clean Data

第三方复现代码:

yu4u/noise2noise​github.com
4511f182bfa78887ea54610ae0f83a57.png

首先将上述代码clone to 本地 or gpuCloud Server。 具体细节请参阅README.md

由于原脚本不支持去水印,需要修改一下。

修改noise_model.py文件

https://github.com/yu4u/noise2noise/blob/c25d5a81cd2c7077e801b42e1dd05442fd19d8c2/noise_model.py#L29

添加引入model

from PIL import Image

将30-50行修改为以下代码

            img = img.copy()
            TRANSPARENCY = random.randint(28, 82)

            image = Image.fromarray(img)
            watermark = Image.open('./watermark.png')#水印路径

            if watermark.mode!='RGBA':
                alpha = Image.new('L', watermark.size, 255)
                watermark.putalpha(alpha)

            random_X = random.randint(-750 , 45)
            random_Y = random.randint(-500 , 30)

            paste_mask = watermark.split()[3].point(lambda i: i * TRANSPARENCY / 100.)
            image.paste(watermark, (random_X , random_Y ), mask=paste_mask)
            return image

首先您需要一张水印,我这里用的是www.shutterstock.com水印。

d41b160a943d9db58e298a59eb086a69.png

训练模型

python train.py --image_dir dataset/291 --test_dir dataset/Set14 --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

训练时间由显卡决定,1080ti跑了55小时。训练过程中会生成xxxxx.hdf5模型文件。也可以使用百度AI Studio - 一站式AI开发实训平台训练

加载训练好的模型测试去水印

python test_model.py --weight_file text_noise/weights.xxxxx.hdf5 --test_noise_model  text,0,25  --image_dir dataset/Set14 --output_dir output

weights.xxxxx.hdf5 为模型路径。output为去水印之后的输出路径

去水印样图(使用的模型训练时间为6个小时。理论上模型训练周期越长,效果越好,想要100%去干净,模型训练至少20h)

原图:

5b011c34d317b581bd5d5d620a304cb7.png

水印图:

38d8d6bf5ca33e36fae999a91cde37e0.png

去水印图:

1dc1b6eb500e373feec3df77416c8d14.png

原图:

cb2a9138f6a8281f78c732c11b4f3e49.png

水印图:

06c5079803a8bdbc8d38ee3261cb5be1.png

去水印图:

d4e94d662b40a94ea210e1c41ca679df.png

原图:

e11d1fd4ea44d21a6a2ea1f8d52973a6.png

水印图:

cddf57d669215a04df88ed9c1b3982ac.png

去水印图:

b3c7001ee357ff9f896b080180094dfe.png

第三张羊驼图去除的比较干净。是因为我用的数据集中存在大量的草地相似图。

aabfa9a80b920f04fa5ff05fab6f7199.png

7f1ceb17a61b3891b869f152867d422e.png

9ceacd06f9be2861c20e4367f815e0a9.png

9caccdf1fc951dab52ba9ea95064bc08.png

2a59957289c30300471ee75ebf8c0e09.png

8061387e9bd90562822a3c46699c0850.png

c3b1204cb5fce28e4304f6da2d8fb3ea.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值