【深度学习实践】文本图片去水印

【声明:本文章仅讲解文本去水印技术实现方法,仅供学习交流,禁止侵权,从我做起】

 

文本去水印的需求比较高,传统算法去水印的效果并不是非常nice,随着深度学习的快速发展,使用深度学习的方法解决文本图片去水印的任务能够获得不错的效果,示例如下:

左图为带水印的三字经,右图为去水印后的结果

【深度学习实践】文本图片去水印_第1张图片

文本去水印在线体验链接:在线文本去水印体验

一、概述

本文不会介绍具体的去水印算法实现流程,仅介绍大体的思路,供学习之用。

去水印是为了得到不带水印的图片,图片的大小并不会改变,也就是说需要一个算法,输入是带水印的图片,输出是不带水印的图片,输入和输出的图片分辨率相同。很容易想到计算机视觉的一个类似的任务-语义分割。

语义分割算法可以端到端的对图片每个像素点进行分类,它的输出是各个类别的概率图,但是去水印要求输出的是图片,所以我们可以采用语义分割模型,并对其进行修改,使其适用于水印去除的任务。

二、方案

以语义分割的经典模型UNet为例,UNet的模型结构如下:

【深度学习实践】文本图片去水印_第2张图片

我们将带水印的图片作为UNet的输入,输出为不带水印的图片,那么使用UNet可以端到端的解决去水印任务。可以把去水印任务当作一个回归问题来看待,UNdet的作用是预测每个位置去水印后的像素值。

需要注意的是,由于网络的输出是图片,所以网络的输出不是概率值,而是数值,代表该处的像素强度。那么损失函数也就不能用交叉熵损失,可以使用L1或者L2损失。

三、数据集

有了解决方案,还需要准备数据集训练模型。

首先准备无水印文本图片,可以下载一些网络小说,生成字体、大小不同的文本图片。接着使用一些水印添加工具或者自己写个脚本来添加水印,需要注意的是添加的水印类型越多越好。

四、体验

因为去水印算法可能被不法分子用于侵权行为,所以本文章并没有给出相关的代码,本文的去水印效果如上文图中所示,为了更好的体验算法的效果,作者提供了在线体验的连接,由于数据集以及模型的限制,可能该算法的普适性并不是很强,可以作为参考。

链接:文本去水印在线体验

你可能感兴趣的:(深度学习,语义分割,去水印,计算机视觉,人工智能,算法)