转载

【机器学习】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.nn.l2_loss(X_ravel)#1/2*(A*X-B)^2+muB^2
    train_op = tf.train.GradientDescentOptimizer(0.5).minimize(loss)

其中图像大小为252x252。tensorflow中,输入图像的坐标意义为[颜色通道,x,y,批处理大小],卷积核坐标意义为[x,y,输入数据个数,输出feature map个数]。我们构建好这个L2最小化模型,启动tensorflow求解即可,几秒钟就可以得到结果。结果如下图所示,振铃现象有点重,修改L2正则化阈值可以削减振铃,但是清晰度会有影响,所以最优化就是一个协调的过程。 【机器学习】tensorflow:图像空间域逆滤波初步

源码: https://github.com/artzers/MachineLearning/blob/master/Tensorflow/Least%20Square%20Deconv.ipynb

原文  http://blog.csdn.net/lpsl1882/article/details/55094930
正文到此结束
Loading...