Mask_RCNN: How to save trained model and convert it to tflite - tensorflow

I followed the tutorial at
https://machinelearningmastery.com/how-to-train-an-object-detection-model-with-keras/
After successful training I got 5 .h5 files:
mask_rcnn_kangaroo_cfg_0001.h5
mask_rcnn_kangaroo_cfg_0002.h5
mask_rcnn_kangaroo_cfg_0003.h5
mask_rcnn_kangaroo_cfg_0004.h5
mask_rcnn_kangaroo_cfg_0005.h5
I am a newbie to this, so my understanding may be wrong:
How can I convert these .h5 files to .pb files or better to .tflite files, so I can use them in an Android Object Detection app?

You don't need to convert these .h5 to .pb, you can directly convert keras .h5 files to tflite. Here is the official documentation on how to.
Make sure to have the model with layers supported by TFLite, as mentioned here.
Once you have the .tflite model you can run an interpreter on Android.

Related

Build a Tensor Flow model from saved_model file

I trained a model using yolov5, Then exported it to TensorFlow saved_model format, the result was a yolo5s.pt file. As far as I know yolov5 uses PyTorch, I prefer TensorFlow. Now I want to build a model in TensorFlow using the saved_model file, how can I do it?
It will be preferable if the solution is in google colab, I didn't included my code because I don't have any ideas how to start.

How can I convert yolov4tiny weights into .tflite?

I have trained a custom dataset in yolov4 tiny. Now I want to convert it into .tflite to use it into android app. But I can't find any solutions that how to do this conversion.

How to load darknet YOLOv3 model from .cfg file and weights from .weights file, and save the model with the weights to a .h5 file?

I have downloaded the .weights and .cfg file for YOLOv3 from darknet (link: https://pjreddie.com/darknet/yolo/) I want to create a model and assign the weights from these files, and I want to save the model with the assigned weights to a .h5 file so that I can load the .h5 model into Keras by using keras.models.load_model().
Please help.
You should check the instructions given in this repository. This is basically the keras implementation of YOLOv3 (Tensorflow backend).
Download YOLOv3 weights from YOLO website.
Convert the Darknet YOLO model to a Keras model.
python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5
As you have already downloaded the weights and configuration file, you can skip the first step. Download the convert.py script from repository and simply run the above command.
Note: Above command assumes that yolov3.cfg, yolov3.weights and model_data(folder) are present at the same path as convert.py.
For people getting error from this try changing the layers part in 'convert.py'
Not sure if it was version problem but changing the way converter.py file was loading 'keras.layers' solved all errors for me

Can you convert a .tflite model file to .coreml - or back to a Tensorflow .pb file or keras h5 file?

General question: is there tooling to convert from tflite format to any other format?
I'm trying to convert a keras model to a CoreML model, but I can't because the model uses a layer type unsupported by CoreML (Gaussian Noise). Converting the keras .h5 model to a .tflite is simple, removes the offending layer (which is only used in training anyway), and performs some other optimisations. But it doesn't seem possible to convert out of the resultant tflite to any other format. Coremltools doesn't support tflite. I thought I could probably load the model from tflite into a tensorflow session, save a .pb from there, and convert that to coreml using coremltools, but I can't see a way to load the tflite model into a tensorflow session. I saw the documentation linked to in this question, but that seems to use the tflite interpreter to read the tflite model, rather than a "true" Tensorflow session.

How to convert Dlib weights into tflite format?

I want to convert Dlib weights for Face Detection, Face landmarks and Face recognition that is in .dat format into .tflite format. Tensorflow lite requires input format in tensorflow_saved model/ Frozen graph (.pb) or keras model (.h5) format. Conversion of Dlib .dat to any of these will also work. Can anyone help me out that how to do it and are there converted files available?
Tensorflow lite requires input format in tensorflow_saved model/ Frozen graph (.pb) or keras model (.h5) format. Conversion of Dlib .dat to any of these will also work.
I think you're on the right track. You should try to convert Dlib to TensorFlow frozen graph, then convert the TensorFlow frozen graph to TensorFlow Lite format following the guide.
Have you tried this? Did you run into any problem when running tflite_convert? If you have further questions, please update the original question with detailed error messages.