mirror of https://git.ffmpeg.org/ffmpeg.git
37d24a6c8f
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: Guo, Yejun <yejun.guo@intel.com> Signed-off-by: Pedro Arthur <bygrandao@gmail.com> |
||
---|---|---|
.. | ||
doxy | ||
examples | ||
.gitignore | ||
APIchanges | ||
Doxyfile | ||
Makefile | ||
authors.texi | ||
bitstream_filters.texi | ||
bootstrap.min.css | ||
build_system.txt | ||
codecs.texi | ||
decoders.texi | ||
default.css | ||
demuxers.texi | ||
developer.texi | ||
devices.texi | ||
doxy-wrapper.sh | ||
encoders.texi | ||
errno.txt | ||
faq.texi | ||
fate.texi | ||
fate_config.sh.template | ||
ffmpeg-bitstream-filters.texi | ||
ffmpeg-codecs.texi | ||
ffmpeg-devices.texi | ||
ffmpeg-filters.texi | ||
ffmpeg-formats.texi | ||
ffmpeg-protocols.texi | ||
ffmpeg-resampler.texi | ||
ffmpeg-scaler.texi | ||
ffmpeg-utils.texi | ||
ffmpeg.texi | ||
ffmpeg.txt | ||
ffplay.texi | ||
ffprobe.texi | ||
ffprobe.xsd | ||
fftools-common-opts.texi | ||
filter_design.txt | ||
filters.texi | ||
formats.texi | ||
general.texi | ||
git-howto.texi | ||
indevs.texi | ||
issue_tracker.txt | ||
lexicon | ||
libav-merge.txt | ||
libavcodec.texi | ||
libavdevice.texi | ||
libavfilter.texi | ||
libavformat.texi | ||
libavutil.texi | ||
libswresample.texi | ||
libswscale.texi | ||
mailing-list-faq.texi | ||
metadata.texi | ||
mips.txt | ||
multithreading.txt | ||
muxers.texi | ||
nut.texi | ||
optimization.txt | ||
outdevs.texi | ||
patchwork | ||
platform.texi | ||
print_options.c | ||
protocols.texi | ||
rate_distortion.txt | ||
resampler.texi | ||
scaler.texi | ||
snow.txt | ||
style.min.css | ||
swresample.txt | ||
swscale.txt | ||
t2h.init | ||
t2h.pm | ||
tablegen.txt | ||
texi2pod.pl | ||
texidep.pl | ||
undefined.txt | ||
utils.texi | ||
writing_filters.txt |