noise2noise | 实验总结
标签: 计算机视觉
cuda9.1 GTX 1080 11G
环境搭建(Cuda9.1):
conda create -n n2n366 python=3.6.6
source activate n2n366
tensorflow -GPU的 安装 要使用 共享的编译好的 tensorflow-1.10.1-cp36-cp36m-linux_x86_64.whl
使用 pip install tensorflow-1.10.1-cp36-cp36m-linux_x86_64.whl 来进行安装,安装之后 pip list 查看 显示:
tensorflow 1.10.1 但是 已经可以使用。
pip install Keras==2.1.6
pip install opencv-python
pip install pillow
pip install matplotlib
使用数据( 人证照片 ):
train 500
test 200
第二种 text 噪声 加噪去噪 效果验证:
训练
–nb_epochs 300 训练时长 15h
nohup python train.py --image_dir dataset/train --test_dir dataset/test --image_size 128 --batch_size 4 --lr 0.001 --source_noise_model text,0,50 --target_noise_model clean --val_noise_model text,0,50 --loss mae --output_path text_clean --nb_epochs 300 &
测试
纯净数据,加噪去噪,效果如下:
python test_model.py --weight_file text_clean/weights.300-1.180-36.05937.hdf5 --image_dir dataset/commonSet --output_dir commonSetOut --test_noise_model text,0,60
带噪数据,不加噪,去噪 效果如下:
python test_model.py --weight_file text_clean/weights.300-1.180-36.05937.hdf5 --image_dir dataset/commonSet3 --output_dir commonSet3Out --test_noise_model clean
总结:noise2noise 300epoch训练得到的模型,可以较好的去除它本身加的随机 text 噪声,但是对于 其他类型的 文本噪声,并没有去噪效果。
原因如下:
源代码中的 text噪声,虽说是随机生成的,但这些文本都是完整的数字或者字母,而上图 下方的照片里面的噪声 种类 和 训练是 完全 不一致,因此它是没有 消除效果的。
智能推荐
Understanding Perlin Noise
Understanding Perlin Noise http://flafla2.github.io/2014/08/09/perlinnoise.html Technical Writeup Posted on 09 August 2014 by Flafla2 The objective of this article is to present an easy-to-understand ...
Simplex Noise(二)
一、2D Simplex Noise 这次我们不打算从1D做起而是直接从2D Simplex Noise做起,不是因为Simplex Noise不能实现1D噪声,而是应用中2D、3D、4D用得更多一些。从前面的学习中,我们将Simplex Noise生成算法分成四个步骤,本文将继续采用这种分步实现的模式。 (一)、坐标变换(Coordinate skewing)。 &ems...
Worley Noise(二)
根据前文所述,Worley噪声代码实现比较简单,我们着重讲解一下2D噪声的算法,3D、4D实现基本一致,不作详细描述。 一、Worley Noise 2D实现 还是与以前一样,我们分步来实现Worley噪声,根据前文步骤,Worley噪声实现共分六步: 第一步、确定输入点所在的晶胞 这与Perlin噪声确定输入点所在晶格是一样...
Value Noise(二)
一、Value Noise 1D 根据之前学习的Value 噪声原理,我们分步来实现之。但在这之前,我们还有一些准备工作要做,如之前所说的,Value噪声是将随机值赋于晶格点,然后根据输入点所处晶格,对随机值进行线性插值而得到噪声值,所以,我们首先初始化一个晶格顶点值数组,并将各顶点的随机值保存在顶点上,在实施中,我们初始化了一个长度512的float数组保存我们的晶格顶点...
Perlin noise(一)
Perlin noise(一) 一、分形噪声 分形几何学的基本思想是:客观事物具有自相似的层次结构,局部与整体在形态、功能、信息、时间、空间等方面具有统计意义上的相似性,称为自相似性。客观自然界中许多事物,具有自相似的“层次”结构,在理想情况下,甚至分形分形至具有无穷层次。适当的放大或缩小事物的几何尺寸,整个结构并不改变。不少复杂的物理现象,背后就是...
猜你喜欢
Perlin noise(二)
Perlin noise(二) 通过前面两篇文章,我们现在对噪声已经有了初步的了解,对Perlin噪声生成原理也进行了阐述,现在是时候开始学习噪声生成了,即将进入程序纹理这个神秘而又让人觊觎的国度了。 (一)、1D Perlin Noise 前面我们是以2D Perlin 噪声来讲解Perlin噪声的原理的,对于1D Perlin噪声,我们首先要明白...
Perlin noise(三)
Perlin noise(三) 前文学习了1D、2D Perlin噪声的生成算法,本文将更进一步,学习3D、4D Perlin噪声的生成。我们不仅需要2D的噪声面纹理,也需要3D的体纹理(后面将进一步学习),同时,我们可以利用3D体纹理来生成2D动态面纹理,也可以利用4D的超纹理来生成3D的动态体纹理,这就是我们为什么要学习4D Perlin噪声的原因。4D Perlin噪...
Linux信号及工作原理
什么是信号 信号可以理解为软件中断,是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是差不多的。信号是异步的,一个进程不必通过任何操作来等待信号的到达。信号可以直接进行用户空间进程和内核进程之间的交互,内核进程也可以利用它来通知用户空间进程发生了哪些系统事件。 谁来产生信号 信号事件的发生有两个...
手机端图片放大,双指放大,元素的双指缩放
在做webapp时候,遇到一个需要做双指放大的功能,需求是:一张带有坐标的图片上有固定的点,需要点击这些坐标上的点进入相应的商品,并且需要对这一块进行双指可以缩放,双击缩放; 一开始是自己写监听touch事件进行处理,但是再缩放的时候,偶尔出现卡顿闪烁,用户体验不很好,后来采用插件 pinch-zoom GitHub地址: https://github.com/manuelstofer/...
