Up Core Plus and UP Vision Plus X software configuration issue

SashaBe
SashaBe New Member Posts: 15

Hello.
I've bought Up Core Plus and Up Vision Plus X board with 3 intel Myriad X VPUs.
https://up-shop.org/featured/265-up-vision-plus-x.html

I've assembled them together and installed Ubuntu 18.04 and OpenVINO 2019R1.1, which works fine on CPU.
But when I try to run it with -d MYRIAD flag it fails with errors like can not find device, same thing for -d HDDL. I have followed all Linux installation guide steps and tried security_camera_bla_bla demo from OpenVINO demo directory.

Can you please provide proven step by step instruction for preparing and running Intel OpenVINO samples with all three embedded VPUs.

I have already run OpenVINO asynchronous yolo detection on Windows with IEI Acceleration board Mustang and 4 NCUs 2 under Windows 10 on my desktop PC using tiny-yolo model and 4 network instances per VPU.
It seems that my assembly works fine with NCS2, but it still reports some errors even it executed successfully.

Best regards
Aleksandr.

Comments

  • SashaBe
    SashaBe New Member Posts: 15

    More details here:

    At /opt/intel/openvino/deployment_tools/demo, I run

    ./demo_security_barrier_camera.sh -d MYRIAD
    … some scripted preparations …

    Application start:

    #

    Run Inference Engine security_barrier_camera demo

    Run ./security_barrier_camera_demo -d MYRIAD -d_va MYRIAD -d_lpr MYRIAD -i /opt/intel/openvino_2019.1.144/deployment_tools/demo/car_1.bmp -m /home/sasha/openvino_models/ir/FP16/Security/object_detection/barrier/0106/dldt/vehicle-license-plate-detection-barrier-0106-fp16.xml -m_va /home/sasha/openvino_models/ir/FP16/Security/object_attributes/vehicle/resnet10_update_1/dldt/vehicle-attributes-recognition-barrier-0039-fp16.xml -m_lpr /home/sasha/openvino_models/ir/FP16/Security/optical_character_recognition/license_plate/dldt/license-plate-recognition-barrier-0001-fp16.xml

    [ INFO ] InferenceEngine:
    API version ............ 1.6
    Build .................. custom_releases/2019/R1.1_28dfbfdd28954c4dfd2f94403dd8dfc1f411038b
    [ INFO ] Parsing input parameters
    [ INFO ] Capturing video streams from the video files or loading images
    [ INFO ] Files were added: 1
    [ INFO ] /opt/intel/openvino_2019.1.144/deployment_tools/demo/car_1.bmp
    [ INFO ] Number of input image files: 1
    [ INFO ] Number of input video files: 0
    [ INFO ] Number of input channels: 1
    [ INFO ] Display resolution: 1920x1080
    [ INFO ] Loading plugin MYRIAD

        API version ............ 1.6
        Build .................. 23780
        Description ....... myriadPlugin
    

    [ INFO ] Loading network files for VehicleDetection
    [ INFO ] Batch size is forced to 1
    [ INFO ] Checking Vehicle Detection inputs
    [ INFO ] Checking Vehicle Detection outputs
    [ INFO ] Loading Vehicle Detection model to the MYRIAD plugin
    E: [ncAPI] [ 293174] ncDeviceOpen:800 Failed connection to device (1.5.1-ma2480) with error 5
    [ ERROR ] Can not init USB device: NC_DEVICE_NOT_FOUND
    Error on or near line 228; exiting with status 1

    Then I inserted NCS2 and run the same script:

    #

    Run Inference Engine security_barrier_camera demo

    Run ./security_barrier_camera_demo -d MYRIAD -d_va MYRIAD -d_lpr MYRIAD -i /opt/intel/openvino_2019.1.144/deployment_tools/demo/car_1.bmp -m /home/sasha/openvino_models/ir/FP16/Security/object_detection/barrier/0106/dldt/vehicle-license-plate-detection-barrier-0106-fp16.xml -m_va /home/sasha/openvino_models/ir/FP16/Security/object_attributes/vehicle/resnet10_update_1/dldt/vehicle-attributes-recognition-barrier-0039-fp16.xml -m_lpr /home/sasha/openvino_models/ir/FP16/Security/optical_character_recognition/license_plate/dldt/license-plate-recognition-barrier-0001-fp16.xml

    [ INFO ] InferenceEngine:
    API version ............ 1.6
    Build .................. custom_releases/2019/R1.1_28dfbfdd28954c4dfd2f94403dd8dfc1f411038b
    [ INFO ] Parsing input parameters
    [ INFO ] Capturing video streams from the video files or loading images
    [ INFO ] Files were added: 1
    [ INFO ] /opt/intel/openvino_2019.1.144/deployment_tools/demo/car_1.bmp
    [ INFO ] Number of input image files: 1
    [ INFO ] Number of input video files: 0
    [ INFO ] Number of input channels: 1
    [ INFO ] Display resolution: 1920x1080
    [ INFO ] Loading plugin MYRIAD

        API version ............ 1.6
        Build .................. 23780
        Description ....... myriadPlugin
    

    [ INFO ] Loading network files for VehicleDetection
    [ INFO ] Batch size is forced to 1
    [ INFO ] Checking Vehicle Detection inputs
    [ INFO ] Checking Vehicle Detection outputs
    [ INFO ] Loading Vehicle Detection model to the MYRIAD plugin
    [ INFO ] Loading network files for VehicleAttribs
    [ INFO ] Batch size is forced to 1 for Vehicle Attribs
    [ INFO ] Checking VehicleAttribs inputs
    [ INFO ] Checking Vehicle Attribs outputs
    [ INFO ] Loading Vehicle Attribs model to the MYRIAD plugin
    E: [ncAPI] [ 624758] ncDeviceOpen:672 Failed to find suitable device, rc: X_LINK_DEVICE_NOT_FOUND
    [ INFO ] Loading network files for Licence Plate Recognition (LPR)
    [ INFO ] Batch size is forced to 1 for LPR Network
    [ INFO ] Checking LPR Network inputs
    [ INFO ] Checking LPR Network outputs
    [ INFO ] Loading LPR model to the MYRIAD plugin
    E: [ncAPI] [ 626812] ncDeviceOpen:672 Failed to find suitable device, rc: X_LINK_DEVICE_NOT_FOUND
    [ INFO ] Start inference
    To close the application, press 'CTRL+C' or any key with focus on the output window

    Average inference time: 48.7759 ms (20.5019 fps)

    Average vehicle detection time: 31.711 ms (31.5348 fps)

    Average vehicle attribs time: 5.1753 ms (193.226 fps)

    Average lpr time: 11.0977 ms (90.1085 fps)

    Total execution time: 3434.22

    [ INFO ] Execution successful

    #

    Demo completed successfully.

    Finally, in order to compare and be sure that NCS2 actually did the things, the same script started without -d MYRIAD option (on Intel CPU) and it shows the following performance:

    Average inference time: 48.098 ms (20.7909 fps)

    Average vehicle detection time: 21.1481 ms (47.2857 fps)

    Average vehicle attribs time: 9.6757 ms (103.352 fps)

    Average lpr time: 22.2226 ms (44.9993 fps)

    Total execution time: 4611.07

    [ INFO ] Execution successful

    #

    Demo completed successfully.

    Despite the strange similarity of Average inference time, average times of inference stages look really accelerated by NCS2. But it still does not help with embedded VPUs.

  • SashaBe
    SashaBe New Member Posts: 15

    Additional information about USB devices list.
    It looks like 03e7:2485 is my Myriad X, but I can see only one device instead of three ones.
    The output of lsusb:

    Bus 002 Device 002: ID 0951:1666 Kingston Technology DataTraveler G4
    Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 001 Device 005: ID 2c42:5114  
    Bus 001 Device 004: ID 0458:6001 KYE Systems Corp. (Mouse Systems) GF3000F Ethernet Adapter
    Bus 001 Device 003: ID 03e7:2485  
    Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    

    Output of lsusb -v -d 03e7:2485

    Bus 001 Device 003: ID 03e7:2485
    Device Descriptor:
    bLength 18
    bDescriptorType 1
    bcdUSB 2.00
    bDeviceClass 0 (Defined at Interface level)
    bDeviceSubClass 0
    bDeviceProtocol 0
    bMaxPacketSize0 64
    idVendor 0x03e7
    idProduct 0x2485
    bcdDevice 0.01
    iManufacturer 1 Movidius Ltd.
    iProduct 2 Movidius MyriadX
    iSerial 3 03e72485
    bNumConfigurations 1
    Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 32
    bNumInterfaces 1
    bConfigurationValue 1
    iConfiguration 0
    bmAttributes 0x80
    (Bus Powered)
    MaxPower 500mA
    Interface Descriptor:
    bLength 9
    bDescriptorType 4
    bInterfaceNumber 0
    bAlternateSetting 0
    bNumEndpoints 2
    bInterfaceClass 255 Vendor Specific Class
    bInterfaceSubClass 17
    bInterfaceProtocol 255
    iInterface 0
    Endpoint Descriptor:
    bLength 7
    bDescriptorType 5
    bEndpointAddress 0x81 EP 1 IN
    bmAttributes 2
    Transfer Type Bulk
    Synch Type None
    Usage Type Data
    wMaxPacketSize 0x0200 1x 512 bytes
    bInterval 0
    Endpoint Descriptor:
    bLength 7
    bDescriptorType 5
    bEndpointAddress 0x01 EP 1 OUT
    bmAttributes 2
    Transfer Type Bulk
    Synch Type None
    Usage Type Data
    wMaxPacketSize 0x0200 1x 512 bytes
    bInterval 0
    Device Qualifier (for other device speed):
    bLength 10
    bDescriptorType 6
    bcdUSB 2.00
    bDeviceClass 0 (Defined at Interface level)
    bDeviceSubClass 0
    bDeviceProtocol 0
    bMaxPacketSize0 64
    bNumConfigurations 1
    Device Status: 0x0000
    (Bus Powered)

  • SashaBe
    SashaBe New Member Posts: 15
    edited July 2019

    In order to compare the situation with NCS2, I have plugged it in and requested lsusb twice again =)
    As we can see, their descriptors are the same and moreover, they share the same Bus. It is still interesting, why I can see only one embedded device on the USB bus. This issue could be addressed to the hardware developers: which bus initially is used by 3 Myriad X devices? It would be great if they share structural schematics or post some kind of clarification. Thanks.

    Output of lsusb, when additionally NCS2 plugged in:

    Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 001 Device 005: ID 2c42:5114  
    Bus 001 Device 004: ID 0458:6001 KYE Systems Corp. (Mouse Systems) GF3000F Ethernet Adapter
    Bus 001 Device 006: ID 03e7:2485  
    Bus 001 Device 003: ID 03e7:2485  
    Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    

    Finally, the output of lsusb -v -d 03e7:2485 when NCS2 inserted.

    Bus 001 Device 006: ID 03e7:2485
    Device Descriptor:
    bLength 18
    bDescriptorType 1
    bcdUSB 2.00
    bDeviceClass 0 (Defined at Interface level)
    bDeviceSubClass 0
    bDeviceProtocol 0
    bMaxPacketSize0 64
    idVendor 0x03e7
    idProduct 0x2485
    bcdDevice 0.01
    iManufacturer 1 Movidius Ltd.
    iProduct 2 Movidius MyriadX
    iSerial 3 03e72485
    bNumConfigurations 1
    Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 32
    bNumInterfaces 1
    bConfigurationValue 1
    iConfiguration 0
    bmAttributes 0x80
    (Bus Powered)
    MaxPower 500mA
    Interface Descriptor:
    bLength 9
    bDescriptorType 4
    bInterfaceNumber 0
    bAlternateSetting 0
    bNumEndpoints 2
    bInterfaceClass 255 Vendor Specific Class
    bInterfaceSubClass 17
    bInterfaceProtocol 255
    iInterface 0
    Endpoint Descriptor:
    bLength 7
    bDescriptorType 5
    bEndpointAddress 0x81 EP 1 IN
    bmAttributes 2
    Transfer Type Bulk
    Synch Type None
    Usage Type Data
    wMaxPacketSize 0x0200 1x 512 bytes
    bInterval 0
    Endpoint Descriptor:
    bLength 7
    bDescriptorType 5
    bEndpointAddress 0x01 EP 1 OUT
    bmAttributes 2
    Transfer Type Bulk
    Synch Type None
    Usage Type Data
    wMaxPacketSize 0x0200 1x 512 bytes
    bInterval 0
    Device Qualifier (for other device speed):
    bLength 10
    bDescriptorType 6
    bcdUSB 2.00
    bDeviceClass 0 (Defined at Interface level)
    bDeviceSubClass 0
    bDeviceProtocol 0
    bMaxPacketSize0 64
    bNumConfigurations 1
    Device Status: 0x0000
    (Bus Powered)

    Bus 001 Device 003: ID 03e7:2485
    Device Descriptor:
    bLength 18
    bDescriptorType 1
    bcdUSB 2.00
    bDeviceClass 0 (Defined at Interface level)
    bDeviceSubClass 0
    bDeviceProtocol 0
    bMaxPacketSize0 64
    idVendor 0x03e7
    idProduct 0x2485
    bcdDevice 0.01
    iManufacturer 1 Movidius Ltd.
    iProduct 2 Movidius MyriadX
    iSerial 3 03e72485
    bNumConfigurations 1
    Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 32
    bNumInterfaces 1
    bConfigurationValue 1
    iConfiguration 0
    bmAttributes 0x80
    (Bus Powered)
    MaxPower 500mA
    Interface Descriptor:
    bLength 9
    bDescriptorType 4
    bInterfaceNumber 0
    bAlternateSetting 0
    bNumEndpoints 2
    bInterfaceClass 255 Vendor Specific Class
    bInterfaceSubClass 17
    bInterfaceProtocol 255
    iInterface 0
    Endpoint Descriptor:
    bLength 7
    bDescriptorType 5
    bEndpointAddress 0x81 EP 1 IN
    bmAttributes 2
    Transfer Type Bulk
    Synch Type None
    Usage Type Data
    wMaxPacketSize 0x0200 1x 512 bytes
    bInterval 0
    Endpoint Descriptor:
    bLength 7
    bDescriptorType 5
    bEndpointAddress 0x01 EP 1 OUT
    bmAttributes 2
    Transfer Type Bulk
    Synch Type None
    Usage Type Data
    wMaxPacketSize 0x0200 1x 512 bytes
    bInterval 0
    Device Qualifier (for other device speed):
    bLength 10
    bDescriptorType 6
    bcdUSB 2.00
    bDeviceClass 0 (Defined at Interface level)
    bDeviceSubClass 0
    bDeviceProtocol 0
    bMaxPacketSize0 64
    bNumConfigurations 1
    Device Status: 0x0000
    (Bus Powered)

  • SashaBe
    SashaBe New Member Posts: 15
    edited July 2019

    I have some news.
    We accidentally purchased 2 sets (UCP+Up Vision X), and one of them was marked as "Engineering Sample".
    The second one without any marks has enhanced heatsink (it has a notch for RTC-header removing).

    The first finding has been made in lsusb answer:

    Bus 002 Device 002: ID 05e3:0620 Genesys Logic, Inc. 
    Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 001 Device 005: ID 2c42:5114  
    Bus 001 Device 004: ID 0458:6001 KYE Systems Corp. (Mouse Systems) GF3000F Ethernet Adapter
    Bus 001 Device 003: ID 03e7:2485  
    Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 003 Device 003: ID 03e7:2485  
    Bus 003 Device 002: ID 03e7:2485  
    Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    

    As we can see, there are 3 Myriads, listed by lsusb in this set.
    The previous one returned only one Myriad with 2485 PID.

  • SashaBe
    SashaBe New Member Posts: 15

    For those who googled to here.
    The root cause of all issues mentioned above was this blue label on my Up Core Plus board: