用深度学习方法进行图像去水印,需要大量的训练图像样本对,即带有水印的图片和干净的图片。
我使用英伟达与MIT提出的noise2noise方法实现去水印。
经过题主测试,模型训练样本及次数足够多,去水印后的原图基本上接近原图98%以上。
其效果好过photoshop等专业级软件处理。
从左到右 :原图——>水印图——>去水印图
原理及实现思路请阅读论文:
第三方复现代码:yu4u/noise2noise
首先将上述代码clone to 本地 or gpuCloud Server。 具体细节请参阅README.md
由于原脚本不支持去水印,需要修改一下。
修改noise_model.py文件
/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