您的位置:首页 > 其它

【机器学习】tensorflow:图像空间域逆滤波初步

2017-02-14 09:38 232 查看
相比上两篇文章的逆滤波解法,tensorflow的最优化解法更加高效、简明,往往构建出滤波最优化公式就可以让tensorflow自动最优化,逆向得到目标逆滤波图像。tensorflow逆滤波的实现原理可以参考【图像处理】时域最小二乘逆滤波的最优化快速解法

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息