基于GAN的图像水印去除器,效果堪比PS高手
作者 | 李翔
转载自视说AI(ID:techtalkai)
简介:李翔,国内某互联网大厂AI民工,前携程酒店图像技术负责人,计算机视觉和深度学习重度爱好者,在ICCV和CVPR等会议上发表论文十余篇。
写在前面
当前互联网飞速发展,越来越多的公司、组织和个人都选择在网上展示和分享图像。为了保护图像版权,大家都会选择在图像上打上透明或者半透明的水印。随着水印被广泛地使用,针对水印的各种处理技术也在不断发展,如何有效去除图像上的水印引发了越来越多人的研究兴趣。
今天的文章中,我们会介绍一种更为强大的水印去除器。这次我们借助生成对抗网络来实现,进一步提升水印去除器的性能,从而达到更为理想的去除效果。
生成对抗网络的前世今生
生成对抗网络(Generative Adversarial Networks,GAN),是由Ian Goodfellow等人在2014年首次提出。一般来说,生成对抗网络由两部分组成:生成器(Generator)和判别器(Discriminator)。生成器通过接收输入数据,学习训练数据的分布来生成目标数据。判别器通常是一个二分类模型,用来判别生成器生成数据的真假性。
我们可以将生成器和判别器看作互相对抗的双方,生成器的目的是令生成的数据尽可能的真实,让判别器无法区分真假;而判别器的目的是尽可能地识别出生成器生成的数据。在生成对抗网络的训练过程中,上面的对抗场景会持续进行,生成器和判别器的能力都得到了不断提升。训练的过程可以用如下公式表示:
其中G和D分别表示生成器和判别器,x为真实数据,z是生成器的输入数据。最后训练结束我们就可以使用生成器来生成以假乱真的数据。一个直观的生成对抗网络结构如下图所示。
生成对抗网络近些年被大量应用于计算机视觉领域,根据具体应用不同可以分为图像生成和图像转换两种类型的任务。图像生成可以看成是一种学后联想任务,其中的代表是图像自动生成模型(DCGAN),网络结构如下图所示。这类任务只给出我们希望生成的目标图像,此时生成器的输入是服从某一分布的噪声,通过和判别器的对抗训练,将其转换成目标图像的数据分布。
图像转换可以看成是一种目标引导任务,其中的代表是图像超分辨率模型(SRGAN),SRGAN的网络结构如下图所示。这类任务除了给出我们希望生成的目标图像外,还会给出转换前的原始图像,此时生成器的输入变为原始图像,生成器在和判别器的对抗训练过程中还要同时保证生成的图像和目标图像尽可能的相近。
生成对抗网络的发展非常迅速,近些年出现了各式各样GAN的变种,例如在训练上优化的WGAN和LSGAN,通过对输入添加条件限制来引导学习过程的Conditional GAN,图像生成任务中的BigGAN和StyleGAN,图像转换任务中的Pixel2Pixel和CycleGAN等等。期待未来生成对抗网络在计算机视觉领域给我们带来更多的惊喜。
生成对抗网络 vs 图像水印
上一节中我们介绍了生成对抗网络的核心思想和一些应用,现在我们尝试将生成对抗网络用于图像的水印去除。去水印的目的是将带水印的图像转变为无水印的图像,这本质上也是一种图像转换任务。
因此生成器的输入为带水印的图像,输出为无水印的图像;而判别器用于识别结果到底是原始真实的无水印图像,还是经过生成器生成的无水印图像。通过两者之间不断的对抗训练,生成器生成的无水印图像变得足够“以假乱真”,从而达到理想的去水印效果。
在实际的实践过程中,我们还做了一系列优化改进。下面我们分别介绍生成器和判别器的具体结构以及训练细节。在生成器的选择上,我们继续使用U-net网络结构,U-net通过在输入和输出之间添加跳跃连接,融合了低层级特征和高层级特征。与直接的编解码器结构相比,能够保留更多的图像背景信息,保证去除水印后的图像的真实性。
在判别器方面,我们使用了基于区域判别的全卷积网络。与传统的判别器直接输出整张图像的真假结果不同,我们通过对图像区域级别的判别,可以更好地对图像上的无水印和有水印部分进行区分。
此外,我们采用了Conditional GAN的思想,判别器在对原始真实的无水印图像和生成器生成的无水印图像进行区分的时候会加入带水印图像的条件信息,从而进一步提升生成器和判别器的学习性能。生成器和判别器的具体结构和细节如下图所示。
生成器生成的无水印图像除了要令判别器分辨不了真假之外,还需要保证和真实的无水印图像尽可能接近。为此我们组合一范数损失(L1 Loss)和感知损失(Perceptual Loss)作为内容损失,在生成器和判别器对抗的过程中加入训练。最终的损失函数为
其中的条件对抗损失为
最终我们使用生成器作为水印去除器实现图像上的水印去除。为了对比和单一全卷积网络实现的水印去除器的效果,我们可视化了一些去水印结果,左列是输入的水印区域,中间列是单一全卷积网络得到的无水印区域,右列是生成对抗网络得到的无水印区域。从可视化的结果可以看出,经过对抗训练后的生成器对水印的去除效果更优。
写在最后
图像水印去除问题吸引了越来越多人的研究兴趣,本篇文章介绍了如何利用生成对抗网络来实现水印自动去除。去水印研究的目的是为了验证水印的鲁棒性,更好地提升水印的反去除能力。如何设计一种AI去不掉的水印是一个极具挑战的问题,接下来我们会在这方面做一些尝试,希望能够为版权保护尽一份力。
参考资料:
[1] Towards photo-realistic visible watermark removal with conditional generative adversarial networks
[2] Image-to-image translation with conditional adversarial networks
[3] Photo-realistic single image super-resolution using a generative adversarial networ
(*本文为 AI科技大本营转载文章,转载请联系作者)
◆
精彩推荐
◆
参与投稿加入作者群,成为全宇宙最优秀的技术人~
大会开幕倒计时5天!
2019以太坊技术及应用大会特邀以太坊创始人V神与众多海内外知名技术专家齐聚北京,聚焦区块链技术,把握时代机遇,深耕行业应用,共话以太坊2.0新生态。即刻扫码,享优惠票价。
推荐阅读
6月技术福利限时免费领
2019年技术盘点容器篇(一):听UCloud谈风生水起的K8S | 程序员硬核评测
异类框架BigDL,TensorFlow的潜在杀器!
吐血总结!100个Python面试问题集锦(上)
5G 时代,微软又走对了一步棋!
LinkedIn最新报告: 区块链成职位需求增长最快领域, 这些地区对区块链人才渴求度最高……
写代码不严谨,我就不配当程序员?
碾压Bert?“屠榜”的XLnet对NLP任务意味着什么
如何向妹子解释:为啥 5G 来了需要换 SIM卡!
你点的每个“在看”,我都认真当成了喜欢
基于GAN的图像水印去除器,效果堪比PS高手相关推荐
- 综述:基于GAN的图像翻译模型盘点
作者丨薛洁婷 学校丨北京交通大学硕士生 研究方向丨图像翻译 图像翻译(Image translation)是将一个物体的图像表征转换为该物体的另一种图像表征,也就是找到一个函数能让 A 域图像映射到 ...
- 【每周CV论文推荐】基于GAN的图像修复值得阅读的文章
欢迎来到<每周CV论文推荐>.在这个专栏里,还是本着有三AI一贯的原则,专注于让大家能够系统性完成学习,所以我们推荐的文章也必定是同一主题的. 图像修复(补全)是一个非常基础的图像处理领域 ...
- 基于GAN的图像配准汇总
基于GAN的图像配准汇总 1. Adversarial Similarity Network for Evaluating Image Alignment in Deep Learning based ...
- Pix2Pix——基于GAN的图像风格迁移模型
Pix2Pix--基于GAN的图像风格迁移模型 写在前面 本文是文献Image-to-image translation with conditional adversarial networks的笔 ...
- 【视频课】生成对抗网络经典任务,详解基于GAN的图像生成算法!
前言 欢迎大家关注有三AI的视频课程系列,我们的视频课程系列共分为5层境界,内容和学习路线图如下: 第1层:掌握学习算法必要的预备知识,包括Python编程,深度学习基础,数据使用,框架使用. 第2层 ...
- AugGAN:基于GAN的图像数据增强
数据增强方法无疑是需要重点研究的基本任务之一,因为我们的主流深度学习算法还是一个有监督过程.台湾国立清华大学在ECCV2018发表了一篇AugGAN开始把GAN用在数据增强方面了,当然,这并不是这个领 ...
- 基于GAN的图像生成模型
文章目录 定义一些参数 数据加载类 创建dataset和dataloader 模型权重的初始化函数 定义生成器 验证生成器是否正确 定义判别器 验证判别器是否正确 定义损失函数 训练 输入一个随机值查 ...
- 基于GAN的图像修复--论文笔记
文献下载看下载处或评论链接 /1 Region Normalization for Image Inpainting 主要内容:将损坏的图像输入到神经网络中可能会产生问题,例如无效像素的卷积.归一化的 ...
- 【每周CV论文推荐】初学基于GAN的三维图像生成有哪些经典论文需要阅读
欢迎来到<每周CV论文推荐>.在这个专栏里,还是本着有三AI一贯的原则,专注于让大家能够系统性完成学习,所以我们推荐的文章也必定是同一主题的. 当前二维图像生成领域的发展已经非常成熟,但是 ...
最新文章
- linux服务器加固的命令,Linux 服务器安全加固
- 怎样的视频监控的管理与运营才算高效
- alt+shift+j,添加日期、作者等
- pcb二次钻孔_线路板中的二次孔是什么?线路板钻孔有哪些常见问题?
- 无法获得锁 /var/lib/dpkg/lock
- php artisan 命令
- 小程序和app用什么样的服务器,小程序和APP的本质区别是什么?哪个更值得开发?...
- 湖南大学计算机网络实验,湖南大学《计算机网络》实验报告
- 帆软报表重要Activator之DesignerStartup中的GlobalListenerProvider扩展开发
- bootcamp空间不足_Bootcamp安装WindowsXP补丁时C盘空间不足的解决措施
- 基于python的图像处理的毕业论文_图像处理毕业论文 精品
- STM32应用开发实践教程:初识STM32
- 七彩安卓影视APP源码独立解析接口
- 四十八种微信公众号加人方法
- 员工绩效考核指标设计主要原则(zt)
- 腾讯云产品介绍——腾讯云云服务器之运维指南
- php库存负数,erp系统为什么库存结存单价为负数
- stm32 uv5打开uv4工程错误
- argis利用gp工具打包tpk切片包
- 程序员,职场上请远离这种人!