绵阳网站建设scmmwl,wordpress 百度百科,flash做网站的流程,产品推广文案范例对人类来说#xff0c;将带有文字的图像锐化是很容易的。以图1为例。图1#xff1a;被锐化的图像把图1恢复为图2也不是件很困难的事。图2#xff1a;原图然而#xff0c;我们是懒惰的#xff0c;并且不想这样做#xff0c;所以我们尝试用神经网络来自动实现图片的不模糊化…对人类来说将带有文字的图像锐化是很容易的。以图1为例。图1被锐化的图像把图1恢复为图2也不是件很困难的事。图2原图然而我们是懒惰的并且不想这样做所以我们尝试用神经网络来自动实现图片的不模糊化发展得到被模糊的文本的实图和它们的不模糊的副本是不容易的因此在时间的兴趣中产生了一个训练集。生成文本图像并将它用计算机软件进行模糊处理是很简单的一个python脚本利用PIL(python图片库)就可以完成。训练集的大小可以储存10.000张图片。训练集的例子可以在图3中找到。图3:训练集的例子。上一行显示输入图像而下一行显示输出目标。让Fθ成为不模糊图像神经网络Y1,Y2,…,Yn成为图像然后X1,X2,…,Xn作为模糊的副本。我们为神经网络找到参数θ该神经网络最小化了每个图像的每个像素的均方差。为了解决这一问题我们尝试了两种Fθ的架构。然而它们都是某种形式的卷积神经网络。第一个架构尝试的是一些卷积层它们具有相同的输入和输出维度也就是说当在tf.conv2d函数中填充 “SAME”设置时才会得到结果。然而中间层的通道数量并不是固定的。在层间除了最后一层使用的是一个被激活的正常的ReLULeakyReLU被用作激活函数。由此来看这个结构不能很好的运作。图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此文为编译作品作者Gardar Andri Sigurdsson原网站https://gardarandri.github.io/TextSharpener/