【学术】卷积神经网络教你如何还原被马赛克的文本图像

对人类来说,将带有文字的图像锐化是很容易的。以图1为例。

图1:被锐化的图像

把图1恢复为图2也不是件很困难的事。

图2:原图

然而,我们太懒了的,并且不想这样做,所以我们尝试用神经网络来自动实现图片的不模糊化!

发展

得到被模糊的文本的实图和它们的不模糊的副本是不容易的,因此在时间的兴趣中产生了一个训练集。生成文本图像并将它用计算机软件进行模糊处理是很简单的,一个python脚本利用PIL(python图片库)就可以完成。训练集的大小可以储存10.000张图片。训练集的例子可以在图3中找到。

图3:训练集的例子。上一行显示输入图像,而下一行显示输出目标。

让Fθ成为不模糊图像神经网络,Y1,Y2,…,Yn成为图像,然后X1,X2,…,Xn作为模糊的副本。我们为神经网络找到参数θ,该神经网络最小化了每个图像的每个像素的均方差。

为了解决这一问题,我们尝试了两种Fθ的架构。然而,它们都是某种形式的卷积神经网络。

第一个架构尝试的是一些卷积层,它们具有相同的输入和输出维度,也就是说,当在tf.conv2d函数中填充 “SAME”设置时,才会得到结果。然而,中间层的通道数量并不是固定的。在层间,除了最后一层使用的是一个被激活的正常的ReLU,LeakyReLU被用作激活函数。由此来看,这个结构不能很好的运作。

图4:左列:模糊的图像,中间的列:目标输出,右列:输出的图像

看看图4中神经网络的输出,它只是简单地学习了恒等函数。这似乎是成本函数(cost function)的一个局部极小值。改变层数,改变激活函数,改变成本函数和改变中间通道的数量,对网络收敛没有任何影响,但局部极小值不能以这种方式被避免。因此, 我们需要重新设计。

卷积层被允许缩小图像的尺寸,而不是强迫卷积的输出维度对所有的层都要一样。这相当于在tf.conv2d函数中填充“VALID”设置。然而,要计算每个像素的均方差的话,输出的图像需要与输入图像尺寸相同。因此,解卷积层需要再一次放大图像。

图5:尝试的第二个神经网络结构

图5显示了尝试的第二种神经网络结构。前四个转换是带有LeakyReLU激活的卷积。前两个卷积的stride为2,但是其他的stride为1。(注:Stride: 移动切片的步长,影响取样的数量。)四个卷积(cony)后面跟着去卷积(decony)。在每一次卷积之后,除了最后一层都是一个常规的ReLU外,LeakyReLU被用作激活函数。通道的数量是选被择的,这样在中间表示中至少会有和输入图像一样多的特性,所以理论上来看,所有来自输入图像的信息都可以被保留。通过这种架构,网络能够更好地适应数据。

训练

采用批量梯度下降法来训练神经网络。批处理大小是8,学习速率设置为0.001。总共的训练时间是约为6小时,共有18次训练。图6显示了训练的过程。

图6:训练期间的cost,橙线是验证集的cost(未经过训练的一个单独的数据集),而绿线是训练集的cost。

为训练找到一个好的学习率是有挑战性的。网络只会在学习率接近学习率的情况下快速学习,这使得训练产生了分歧。所以我们用一种新颖的方法来寻找一个好的学习率: 简单地在神经网络上打印一个参数,在这里使用一个首层的参数,然后在每次迭代之后打印出来。如果没有改变,那么提高学习率。如果它正在发生变化,并且迅速变大,那么训练不仅变得简单,而且还为这项工作带来了巨大的成果。

在选择学习率之后,神经网络开始比以前更好地适应训练数据。首先,它了解了正方形周围的黑色部分,然后用正确的颜色对正方形进行着色。然后慢慢地,网络学会了将这些字母输出到不模糊的情况下。这种进展可以在图7到9中查看。左列是神经网络的输入图像,中间列是目标输出,右列是神经网络的输出图像。

图7:500次迭代

图8:3000次迭代

图9:22000次迭代

图10:来自验证组的图像。左边:原始图像,中间:模糊的图像,右边:训练后的输出图像。

图10显示了神经网络如何在以前没有见过的模糊图像上执行任务。神经网络似乎能够很好地总结出只有10.000张图片和18个训练期的验证集的特点。第四行图像显示,有时网络会给图像增加噪点。这也许可以通过更长的训练来改变这一缺陷。

这项工作的实际用途是用智能手机拍下被锐化的文本照片。图11显示了两个图像,顶部的图像是文本的图像,底部的图像是由神经网络生成的。底部图片的不模糊度是非常糟糕的。罪魁祸首可能是训练数据所遵循的简单分布。为了提高质量,人们可能会试图使训练数据中添加的模糊效果变得更加复杂。然而,这是一种推测,因此需要更多的工作来确定是否提高了图片的整体质量。

  • 这个项目的代码:https://github.com/gardarandri/TextSharpener

原文发布于微信公众号 - ATYUN订阅号(atyun_com)

原文发表时间:2018-01-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

AAAI 2018 | 阿里巴巴提出极限低比特神经网络,用于深度模型压缩和加速

27411
来自专栏AI研习社

手把手教你从零起步构建自己的图像搜索模型

很多的产品是基于我们的感知来吸引我们的。比如在浏览服装网站上的服装,寻找 Airbnb 上的假期租房,或者领养宠物时,物品的颜值往往是我们做决定的重要因素。想要...

793
来自专栏专知

【360人工智能研究院与NUS颜水成团队】HashGAN:基于注意力机制的深度对抗哈希模型提升跨模态检索效果

【导读】近日,中山大学、新加坡国立大学和奇虎360人工智能研究院团队提出了一种具有注意机制的对抗哈希网络(adversarial hashing network...

3395
来自专栏人工智能头条

敲重点!一文详解解决对抗性样本问题的新方法——L2正则化法

【导读】许多研究已经证明深度神经网络容易受到对抗性样本现象(adversarial example phenomenon)的影响:到目前为止测试的所有模型都可以...

662
来自专栏瓜大三哥

图像分割(一) 之简介

图像分割就是将图像划分为若干个互不相交的小区域的过程,所谓小区域是某种意义下具有共同属性的像素的连通集合。 基于阈值分割方法实际上是输入图像f到输出图像g的变换...

1985
来自专栏机器之心

学界 | DeepMind提出关系RNN:记忆模块RMC解决关系推理难题

摘要:基于记忆的神经网络通过长期记忆信息来建模时序数据。但是,目前尚不清楚它们是否具备对记忆信息执行复杂关系推理的能力。在本论文中,我们首先确认了标准记忆架构在...

772
来自专栏机器之心

这是一份优美的信息图,吴恩达点赞的deeplearning.ai课程总结

机器之心整理 参与:思源、刘晓坤 吴恩达在推特上展示了一份由 TessFerrandez 完成的深度学习专项课程信息图,这套信息图优美地记录了深度学习课程的知识...

3376
来自专栏机器之心

学界 | 带引导的进化策略:摆脱随机搜索中维数爆炸的魔咒

机器学习模型的优化常常涉及最小化代价函数,其中代价关于模型参数的梯度是已知的。当梯度信息可用时,梯度下降和变量等一阶方法因其易于实现、存储效率高(通常需要与参数...

601
来自专栏专知

卷积神经网络的最佳解释!

1844
来自专栏CSDN技术头条

深度学习性能提升的诀窍

克服过拟合和提高泛化能力的20条技巧和诀窍 你是如何提升深度学习模型的效果? 这是我经常被问到的一个问题。 有时候也会换一种问法: 我该如何提高模型的准...

2758

扫描关注云+社区