Intel® Distribution of OpenVINO™ Toolkit
Community assistance about the Intel® Distribution of OpenVINO™ toolkit, OpenCV, and all aspects of computer vision-related on Intel® platforms.

tiny-yolo v3 result in FP32 and FP16 are different

ininder__gg
Beginner
1,128 Views

I use the great work by PINTO and convert the darknet yolo_v3 weights to tensorflow's pb graph.

However, when I use mo_ts.py to convert the pb graph to openvino's type FP32 (for CPU) and FP16 (for NCS 1), both from same pb graph . I find that the result is too different. In FP32 it is as good as in darknet but in FP16 is too bad to use.

in FP32 in CPU

https://imgur.com/OzfhWwl

all fine

but in FP16 in NCS1

https://imgur.com/nkJDo4L

too much false-positive

what should I do

0 Kudos
5 Replies
Shubha_R_Intel
Employee
1,128 Views

Dear gg, I have sent you a private message asking for your detection script. I can certainly try it on NCS2 and see if it's better. Or did you just use the OpenVino sample object_detection_demo_yolov3_async ?

Thanks,

Shubha

0 Kudos
ininder__gg
Beginner
1,128 Views

hi sir,

I just use the OpenVino sample object_detection_demo_yolov3_async with my own model file

0 Kudos
Shubha_R_Intel
Employee
1,128 Views

Dear gg, can you attach your model file here as a zip ?  Or you can message me with your model as an attachment (use Send Author A Message link).

Thanks,

Shubha

0 Kudos
Shubha_R_Intel
Employee
1,128 Views

Dearest gg, 

I received your frozen model via private message and created "tiny" IR based on it using instructions here:

https://docs.openvinotoolkit.org/latest/_docs_MO_DG_prepare_model_convert_model_tf_specific_Convert_YOLO_From_Tensorflow.html

I used the yolo_v3_tiny_changed.json from https://github.com/PINTO0309/OpenVINO-YoloV3

I could not get your model to work at all and I used person-bicycle-car-detction.mp4 within
https://github.com/intel-iot-devkit/sample-videos .

Using https://github.com/PINTO0309/OpenVINO-YoloV3/blob/master/openvino_yolov3_test.py I saw no bounding boxes when I used your model, whether FP32 (CPU) or FP16 (GPU). I did not try MYRIAD.

However when I followed the openvino documentation above to create a frozen.pb and then tiny IR, both FP16 and FP32 versions,  I saw bounding boxes on the person-bicycle-car-detction.mp4 using PINTO's openvino_yolov3_test.py . PINTO also has a openvino_tiny-yolov3_test.py and I'm sure it would have been more accurate but the non-tiny was sufficient for this test.

The only appreciable difference between FP32 and FP16 was that FP32 ran on CPU and was slower than the FP16 version which ran on GPU.

As for running your original model using object_detection_demo_yolov3_async.exe I could not get that to work at all. Again, when I use the above openvino instructions to build a frozen.pb from scratch, I have no issues - object_detection_demo_yolov3_async.exe works fine.

The model you are using is different from the one here :

https://github.com/mystic123/tensorflow-yolo-v3

I would suggest modifying the yolo-v3 model in incremental steps and testing.

Hope it helps,

Thanks,

Shubha

0 Kudos
Shubha_R_Intel
Employee
1,128 Views

Dearest gg, I responded to you over PM. Can you kindly try the latest OpenVino release 2019 R1 ? Also I cannot debug code from https://github.com/PINTO0309/OpenVINO-YoloV3 since it's not Intel code. If you can reproduce your issue using an OpenVino sample (or a slightly modified version of one of our samples), that would be better. A good place to start would be object_detection_demo_yolov3_async which is available in both Python and C++.

Thanks for using OpenVino !

Shubha

0 Kudos
Reply