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.

YOLOv2 + MYRIAD X + openvino_2019.1.144 - supported ?

tellus__jb
Beginner
1,832 Views

Hi

 

I have successfully converted YOLOv2 608x608  to FP32 and run it on CPU

( following this guide https://github.com/feng1sun/YOLO-OpenVINO )

 

When change the  same code  to use plugin to MYRIAD and convert to FP16 and run

I get the following error ( using openvino_2019.1.144 )
E: [xLink] [ 15573] dispatcherEventReceive:347 dispatcherEventReceive() Read failed -4 | event 0x7f4f39dd0ac0 XLINK_READ_REL_REQ
E: [xLink] [ 15573] eventReader:233 eventReader stopped
E: [xLink] [ 15574] XLinkReadDataWithTimeOut:1343 Event data is invalid
E: [ncAPI] [ 15574] ncFifoReadElem:3353 Packet reading is failed.

 

Is this just a coding error or is not possible to run Yolo V2 with MYRIAD plugin using openvino_2019.1.144 ?

( so far I have not seen any project running yolo v2 with MYRIAD ...)

 

/JB

 

 

 

 

0 Kudos
13 Replies
Shubha_R_Intel
Employee
1,832 Views

Dear tellus, jb,

Yolov2 should definitely work on Myriad X. Instead of following your link instead can you kindly follow the OpenVino Model Optimizer Documentation on Yolo ?

Thanks,

Shubha

0 Kudos
tellus__jb
Beginner
1,832 Views

Thanks,

I tried your link OpenVino Model Optimizer Documentation on Yolov2 ( rebuild of yolov2.xml & bin FP16), and got the same error for Yolov2 on Myriad X ( NCS2 )

I also tested my original files with an old NCS1 stick and it worked, ( but the files generated from "OpenVino Model Optimizer Documentation" just gave a scrambled output on NCS1 and fail on NCS2  )

 

InferenceEngine Version: 1.6
build: custom_releases/2019/R1.1_28dfbfdd28954c4dfd2f94403dd8dfc1f411038b
Plugin Version: 1.6
build: 23780
E: [xLink] [    982742] dispatcherEventReceive:347    dispatcherEventReceive() Read failed -4 | event 0x7f661fffeac0 XLINK_READ_REL_REQ

E: [xLink] [    982742] eventReader:233    eventReader stopped
E: [xLink] [    982742] XLinkReadDataWithTimeOut:1343    Event data is invalid
E: [ncAPI] [    982742] ncFifoReadElem:3353    Packet reading is failed.
terminate called after throwing an instance of 'InferenceEngine::details::InferenceEngineException'
  what():  Failed to read output from FIFO: NC_ERROR
/opt/intel/openvino_2019.1.144/deployment_tools/inference_engine/include/details/ie_exception_conversion.hpp:71
Aborted (core dumped)

 

Something differ between NCS1 & NCS2 ( NCS1 seems a lot more stable but slower )

I had problems with Human position estimation sample ( Load model .. one out of 3 fails with NCS2 )

( Note I have the same problem with two different NCS2 sticks )

 

I have read something about custom layers ( mostly supported for CPU ) could yolov2 use something that is not supported by Myriad X ?  ( even though the conversion signals no error )

 

/JB

0 Kudos
Shubha_R_Intel
Employee
1,832 Views

Dear tellus, jb,

There used to be a time when RegionYolo was not supported on MYRIAD in OpenVino. You can the see the previous post from a year ago .

However, this is no longer the case. It is supported today, please refer To the Supported Devices Document .

My guess is that it's a bug. OpenVino 2019R2 will drop "any day now". My advice is to wait for the latest drop and try it again. If you still have issues, I will file a bug. 

Thanks,

Shubha

0 Kudos
tellus__jb
Beginner
1,832 Views

Hi,

I have tried OpenVino 2019R2, and the issue for yolov2 remains

With NCS1 everything works fine, but when I switch to NCS2 yolov2 won't work.....exactly the same binary just a switch between old and new version of myriad. And as before the old seems to be a lot more reliable for yolov2. ( but, NCS1 won't start with yolov3 ...... )

Software & Hardware I'm using
Description:    Ubuntu 18.04.2 LTS
https://www.acer.com/ac/en/US/content/predator-series-features/predatorhelios500

 

 

NCS2 - yolov2

InferenceEngine Version: 2.0
build: custom_releases/2019/R2_f5827d4773ebbe727c9acac5f007f7d94dd4be4e
Plugin Version: 2.0
build: 27579
E: [xLink] [    605987] [EventRead00Thr] dispatcherEventReceive:336    dispatcherEventReceive() Read failed (err -4) | event 0x7fd1a77fdb00 XLINK_READ_REL_REQ

E: [xLink] [    605987] [EventRead00Thr] eventReader:223    eventReader thread stopped (err -4)
E: [xLink] [    605987] [yolov2] XLinkReadDataWithTimeOut:1323    Event data is invalid
E: [ncAPI] [    605987] [yolov2] ncFifoReadElem:3445    Packet reading is failed.
terminate called after throwing an instance of 'InferenceEngine::details::InferenceEngineException'
  what():  Failed to read output from FIFO: NC_ERROR
/opt/intel/openvino_2019.2.242/deployment_tools/inference_engine/include/details/ie_exception_conversion.hpp:71
Aborted (core dumped)

 

NCS1 - yolov2

InferenceEngine Version: 2.0
build: custom_releases/2019/R2_f5827d4773ebbe727c9acac5f007f7d94dd4be4e
Plugin Version: 2.0
build: 27579

total inference time: 1294.21 ms
[  0]: person         prob = 87.27%     (15,10)-(210,168)
[  0]: person         prob = 64.04%     (2,176)-(290,573)
[  0]: person         prob = 63.09%     (-6,181)-(95,431)
[  0]: person         prob = 62.55%     (188,181)-(305,372)
[  0]: person         prob = 61.41%     (324,182)-(591,422)
[ 27]: tie            prob = 55.52%     (106,129)-(127,169)
[  0]: person         prob = 55.1%     (334,223)-(379,307)

 

I have also noted that "[ ERROR ] Can not init Myriad device: NC_ERROR" frequently has started to occur on the demo for yolov3 and human position estimation. ( An error / exception is better than stuck, but I can't understand why I get it in the first place ). In the previous version yolov3 run almost rocksolid.

Is it possible to somehow update "firmware" in the NCS-stick ? or is the problem related to inference engine / driver ?

/JB

0 Kudos
Shubha_R_Intel
Employee
1,832 Views

Dearest tellus, jb,

Then yolo v2 on NCS2 may be a bug. Let me try and reproduce it. Sorry for the trouble you are having.

I will report back the progress here.

Thanks for your patience !

Shubha

 

0 Kudos
Shubha_R_Intel
Employee
1,832 Views

Dearest tellus, jb,

I just now tried the steps to run yolov2 on NCS2 using OpenVino 2019R2. Here are the steps I did:

1) I followed the yolo v2 steps outlined here yolo Model Optimizer Doc

2) I even recreated the pb using the below step. Before this step though I had to install darkflow properly. I had some missing stuff which I had to pip install (i.e. Cython). As the MO doc recommends I followed the darkflow README exactly. One of the errors I got was that the number of classes between the *.cfg and the labels.txt were mismatched - so I fixed it. I actually had several errors before I was able to execute the below command but these errors are darkflow issues, not OpenVino's. A simple google search helped me resolve each issue I encountered. 

python3 ./flow --model <path_to_model>/<model_name>.cfg --load <path_to_model>/<model_name>.weights --savepb

3) Then I used OpenVIno 2019R2 to regenerate IR

>python "c:\Program Files (x86)\IntelSWTools\openvino_2019.2.242\deployment_tools\model_optimizer\mo_tf.py" --input_model C:\Users\sdramani\Downloads\darkflow\built_graph\yolov2-voc-shu.pb --batch 1 --tensorflow_use_custom_operations_config "c:\Program Files (x86)\IntelSWTools\openvino_2019.2.242\deployment_tools\model_optimizer\extensions\front\tf\yolo_v2.json" --data_type FP16

4) Then I ran the following demo

python "C:\Program Files (x86)\IntelSWTools\openvino_2019.2.242\deployment_tools\inference_engine\demos\python_demos\object_detection_demo_yolov3_async\object_detection_demo_yolov3_async.py" -i cam -m c:\users\sdramani\Downloads\darkflow\yolov2-voc-shu.xml -d MYRIAD

Obviously this is a yolov3 sample and the IR is yolov2 so the demo failed. But I got much further than you did, in fact, I saw these messages printed out on the screen:

[ INFO ] Creating Inference Engine...
[ INFO ] Loading network files:
        c:\users\sdramani\Downloads\darkflow\yolov2-voc-shu.xml
        c:\users\sdramani\Downloads\darkflow\yolov2-voc-shu.bin
[ INFO ] Preparing inputs
[ INFO ] Loading model to the plugin
[ INFO ] Starting inference...
To close the application, press 'CTRL+C' here or switch to the output window and press ESC key
To switch between sync/async modes, press TAB key in the output window

So I cannot reproduce your issue unfortunately. Please re-trace your steps as I did and try again.  Or perhaps you have a defective NCS2 device ? Maybe you are not using the latest driver ?

Thanks !

Shubha

 

 

 

 

0 Kudos
YOO__MinWoo
Beginner
1,832 Views

I have the same problem as jb. He doesn't have a defective NCS2.

I tested the latest version of Benchmark with two NCS2s, but failed. Error message is same as jb. However, it succeeded with NCS1 and CPU. There seems to be a problem with the inference engine. Also, I can get the same result when I run your demo using Python, but yolov2 and yolov3 should not use the same demo because they have different I/O.

So test with the Benchmark provided by intel. Using the yolov3 IR model, NCS2 and NCS1 work well. However, with the yolov2 IR model, you will see that NCS1 works well but NCS2 does not work well.

thanks.

0 Kudos
Shubha_R_Intel
Employee
1,832 Views

 Dear everyone,

can you kindly provide a simple script which performs inference on Yolo V2 ? Please attach it as a *.zip to this ticket. Unfortunately OpenVino does not have a Yolo V2 sample. I realize that running the Yolo V3 sample on a Yolo V2 model makes zero sense, but for the purpose of this investigation, it makes sense - note that I got much further along than the original poster did. I had zero NCS2 errors.

Looking forward to helping you,

Thanks,

Shubha

0 Kudos
ZAhme2
Beginner
1,832 Views

Same issue here guys with NCS 2 and SSDMobileNetV2

I got two NCS2's and both have this issue, any quick fix for this yet?

0 Kudos
ZAhme2
Beginner
1,832 Views

Hi guys

I have the same exact error as OP with two NCS2

Any fix for this yet?

Zubair

0 Kudos
Shubha_R_Intel
Employee
1,832 Views

Dear Ahmed, Zubair or anyone,

Please give me your yolo v2 OpenVino inference script and I will try and reproduce. If you are following yolov2 instructions  exactly from here without modifications then there may be a problem. However OpenVino doesn't offer a yolo v2 inference script so I will need to borrow yours to reproduce. Feel free to attach it to this ticket.

Also I encourage you to download OpenVino 2019R2.01 and try it if you haven't already.

Thanks,

Shubha

0 Kudos
ZAhme2
Beginner
1,832 Views

Hi Shubha

I am using a MobileNetSSD and not YOLOv2 and use prototxt and caffemodel files instead of IR

Hope it makes sense

-Zubair

0 Kudos
Shubha_R_Intel
Employee
1,832 Views

Dear Ahmed, Zubair,

OK. That makes sense. I reproduced the bug for this forum poster and just recently filed a bug. Hopefully it should be fixed in OpenVino R3. That was not a caffemodel though, that was Tensorflow. There definitely seems to be an issue with Mobilenet SSD and NCS2 on OpenVIno R2, and I do acknowledge this. Does this answer your question ?

Thanks,

Shubha

 

0 Kudos
Reply