【机器学习】tensorflow:图像空间域逆滤波初步
2017-02-14 09:38
232 查看
相比上两篇文章的逆滤波解法,tensorflow的最优化解法更加高效、简明,往往构建出滤波最优化公式就可以让tensorflow自动最优化,逆向得到目标逆滤波图像。tensorflow逆滤波的实现原理可以参考【图像处理】时域最小二乘逆滤波的最优化快速解法
其中图像大小为252x252。tensorflow中,输入图像的坐标意义为[颜色通道,x,y,批处理大小],卷积核坐标意义为[x,y,输入数据个数,输出feature map个数]。我们构建好这个L1/L2最小化模型,启动tensorflow求解即可,几秒钟就可以得到结果。结果如下图所示,振铃现象有点重,修改L1/L2正则化阈值可以削减振铃,但是清晰度会有影响,所以最优化就是一个协调的过程。
源码:https://github.com/artzers/MachineLearning/blob/master/Tensorflow/Least%20Square%20Deconv.ipynb
with tf.device('/gpu:0'): initial = tf.random_normal([1,252,252,1]) * 0.256 X = tf.Variable(initial)#图像作为变量 A=tf.placeholder("float", shape=[dia,dia,1,1])#卷积核是输入常量 B=tf.placeholder("float", shape=[1,252,252,1])#滤波图像作为输入常量 mu = 0.001 loss = tf.nn.conv2d(X,A,strides=[1,1,1,1],padding='SAME') loss = loss - B loss = tf.reshape(loss,[252*252,-1]) X_ravel = tf.reshape(X,[252*252,-1]) loss = tf.nn.l2_loss(loss)+mu*tf.reduce_mean(tf.abs(X_ravel))#L1#tf.nn.l2_loss(X_ravel)#L2 train_op = tf.train.GradientDescentOptimizer(0.5).minimize(loss)
其中图像大小为252x252。tensorflow中,输入图像的坐标意义为[颜色通道,x,y,批处理大小],卷积核坐标意义为[x,y,输入数据个数,输出feature map个数]。我们构建好这个L1/L2最小化模型,启动tensorflow求解即可,几秒钟就可以得到结果。结果如下图所示,振铃现象有点重,修改L1/L2正则化阈值可以削减振铃,但是清晰度会有影响,所以最优化就是一个协调的过程。
源码:https://github.com/artzers/MachineLearning/blob/master/Tensorflow/Least%20Square%20Deconv.ipynb
相关文章推荐
- 第1章:阿里云机器学习实践之路 / 第5节:深度学习--使用TensorFlow实现图像分类
- 图像直方图均衡化和空间滤波
- 图像滤波及去噪初步
- MATLAB中实现图像的空间域滤波和频率域滤波
- 彩色图像的空间域滤波
- 机器学习Tensorflow基本操作:线程队列图像
- 机器学习零基础?手把手教你用TensorFlow搭建图像识别系统
- 数字图像处理--空间滤波
- 彩色图像空间滤波(MATLAB)
- 数字图像处理——灰度变换与空间滤波(使用MFC)
- 图像处理 灰度变换与空间滤波
- MATLAB中实现图像的空间域滤波和频率域滤波
- HSI彩色图像空间滤波
- 【图像处理】MATLAB:仅有噪声的复原(空间滤波)
- 【图像处理笔记】空间滤波基础
- 数字图像处理-空间域处理-空间滤波-锐化空间滤波器
- 机器学习零基础?手把手教你用TensorFlow搭建图像识别系统
- 阿里云机器学习技术分享1——图像识别之TensorFlow实现方法【视频+PPT】
- 【学习笔记】【数字图像处理】空间滤波
- 【图像处理】从图像空间域滤波到频域滤波