Convert CRNN* Models to the Intermediate Representation (IR)¶
This tutorial explains how to convert a CRNN model to Intermediate Representation (IR).
On GitHub*, you can find several public versions of TensorFlow* CRNN model implementation. This tutorial explains how to convert the model from the https://github.com/MaybeShewill-CV/CRNN_Tensorflow repository to IR. If you have another implementation of CRNN model, you can convert it to IR in similar way: you need to get inference graph and run the Model Optimizer on it.
To convert this model to the IR:
Step 1. Clone this GitHub repository and checkout the commit:
git clone https://github.com/MaybeShewill-CV/CRNN_Tensorflow.git
Checkout necessary commit:
git checkout 64f1f1867bffaacfeacc7a80eebf5834a5726122
Step 2. Train the model using framework or use the pre-trained checkpoint provided in this repository.
Step 3. Create an inference graph:
Go to the
CRNN_Tensorflowdirectory with the cloned repository:
For Linux* OS:
For Windows* OS add
PYTHONPATHenvironment variable in settings.
saver.restore(sess=sess, save_path=weights_path)line, add the following code:
from tensorflow.python.framework import graph_io frozen = tf.graph_util.convert_variables_to_constants(sess, sess.graph_def, ['shadow/LSTMLayers/transpose_time_major']) graph_io.write_graph(frozen, '.', 'frozen_graph.pb', as_text=False)
Run the demo with the following command:
python tools/test_shadownet.py --image_path data/test_images/test_01.jpg --weights_path model/shadownet/shadownet_2017-10-17-11-47-46.ckpt-199999
If you want to use your checkpoint, replace the path in the
--weights_pathparameter with a path to your checkpoint.
CRNN_Tensorflowdirectory, you will find the inference CRNN graph
frozen_graph.pb. You can use this graph with the OpenVINO toolkit to convert the model into IR and run inference.
Step 4. Convert the model into IR:
python3 path/to/model_optimizer/mo_tf.py --input_model path/to/your/CRNN_Tensorflow/frozen_graph.pb