• Guo, Yejun's avatar
    vf_dnn_processing: add support for more formats gray8 and grayf32 · 37d24a6c
    Guo, Yejun authored
    The following is a python script to halve the value of the gray
    image. It demos how to setup and execute dnn model with python+tensorflow.
    It also generates .pb file which will be used by ffmpeg.
    
    import tensorflow as tf
    import numpy as np
    from skimage import color
    from skimage import io
    in_img = io.imread('input.jpg')
    in_img = color.rgb2gray(in_img)
    io.imsave('ori_gray.jpg', np.squeeze(in_img))
    in_data = np.expand_dims(in_img, axis=0)
    in_data = np.expand_dims(in_data, axis=3)
    filter_data = np.array([0.5]).reshape(1,1,1,1).astype(np.float32)
    filter = tf.Variable(filter_data)
    x = tf.placeholder(tf.float32, shape=[1, None, None, 1], name='dnn_in')
    y = tf.nn.conv2d(x, filter, strides=[1, 1, 1, 1], padding='VALID', name='dnn_out')
    sess=tf.Session()
    sess.run(tf.global_variables_initializer())
    graph_def = tf.graph_util.convert_variables_to_constants(sess, sess.graph_def, ['dnn_out'])
    tf.train.write_graph(graph_def, '.', 'halve_gray_float.pb', as_text=False)
    print("halve_gray_float.pb generated, please use \
    path_to_ffmpeg/tools/python/convert.py to generate halve_gray_float.model\n")
    output = sess.run(y, feed_dict={x: in_data})
    output = output * 255.0
    output = output.astype(np.uint8)
    io.imsave("out.jpg", np.squeeze(output))
    
    To do the same thing with ffmpeg:
    - generate halve_gray_float.pb with the above script
    - generate halve_gray_float.model with tools/python/convert.py
    - try with following commands
      ./ffmpeg -i input.jpg -vf format=grayf32,dnn_processing=model=halve_gray_float.model:input=dnn_in:output=dnn_out:dnn_backend=native out.native.png
      ./ffmpeg -i input.jpg -vf format=grayf32,dnn_processing=model=halve_gray_float.pb:input=dnn_in:output=dnn_out:dnn_backend=tensorflow out.tf.png
    Signed-off-by: 's avatarGuo, Yejun <yejun.guo@intel.com>
    Signed-off-by: 's avatarPedro Arthur <bygrandao@gmail.com>
    37d24a6c
filters.texi 660 KB