Just trying to convert YOLOv3 model via OpenVINO R5 by following the official instructions (https://software.intel.com/en-us/articles/OpenVINO-Using-TensorFlow#converting-a-darknet-yolo-model). Windows 10 64-bit, Python 3.6.5.
>python c:\Intel\computer_vision_sdk\deployment_tools\model_optimizer\mo_tf.py --input_model frozen_darknet_yolov3_model.pb --tensorflow_use_custom_operations_config c:\Intel\computer_vision_sdk\deployment_tools\model_optimizer\extensions\front\tf\yolo_v3.json --input_shape [1,416,416,3] --data_type=FP32
This results in:
Model Optimizer version: 220.127.116.11d067a0
[ ERROR ] List of operations that cannot be converted to IE IR:
[ ERROR ] LeakyRelu (72)
[ ERROR ] detector/darknet-53/Conv/LeakyRelu
[ ERROR ] detector/darknet-53/Conv_1/LeakyRelu
[ ERROR ] Part of the nodes was not translated to IE. Stopped.
For more information please refer to Model Optimizer FAQ (<INSTALL_DIR>/deployment_tools/documentation/docs/MO_FAQ.html), question #24.
Somehow MO does produce the .bin file with weights/biases, but no .xml due to above error(s).
Hi Jakob, glad you solved it. Jakob and Phillip please also refer to my answer to a previous post:
Hello. I recently ran Model Optimizer on a yolo_v3 (also tiny yolo) and successfully generated IR. Afterward I even ran inference_engine\samples\object_detection_demo_yolov3_async on the following video person-bicycle-car-detction.mp4 within
The object detection worked nicely !
Please use the following for documentation:
I actually didn't even bother with the optional step of git checkout fb9f543
I just grabbed the latest and everything worked fine.
Also for inspiration take a look at https://github.com/PINTO0309/OpenVINO-YoloV3.git
That repo was not made by Intel but by someone in the OpenVino community.
Please look into the resources I've posted here diligently and I assure you, you will get yolo working !
Let me add that the yolo*.json files under deployment_tools\model_optimizer\extensions\front\tf are not intended to be perfect. It is expected that you may have to modify them to suit your needs. For instance this line "entry_points": ["detector/yolo-v3/Reshape", "detector/yolo-v3/Reshape_4", "detector/yolo-v3/Reshape_8"] will very surely have to change if you are doing tiny yolo. How do you know what to put there ? Using Tensorboard or by dumping your model into a text file, you will search for "Reshape" and see what the correct hierarchical name is.
Thanks for a swift response. As it turned out, it did not help.
It seems there's an issue related to the tensorflow (v 1.13) that gets installed by OpenVINO.
Having these done, get the things going smoothly:
- pip3 install tensorflow==1.12.0 --upgrade
- git clone https://github.com/mystic123/tensorflow-yolo-v3.git
- cd tensorflow-yolo-v3
- wget https://pjreddie.com/media/files/yolov3.weights
- wget https://github.com/pjreddie/darknet/blob/master/data/coco.names
- python ./convert_weights_pb.py --data_format NHWC
- python c:\Intel\computer_vision_sdk\deployment_tools\model_optimizer\mo_tf.py --input_model frozen_darknet_yolov3_model.pb --tensorflow_use_custom_operations_config c:\Intel\computer_vision_sdk\deployment_tools\model_optimizer\extensions\front\tf\yolo_v3.json --input_shape=[1,416,416,3]