在macOS上运行NCSDK Movidius Neural Stick

时间:2018-03-08 19:50:21

标签: docker neural-network usb ncsdk

我试图在macOS上运行Movidius NCSDK。在macOS上使用NCSDK需要VirtualBox plus docker,因为这个USB记忆棒必须在Ubuntu16.04上运行,它支持TensorflowCaffe。 我已经使用this Dockerfile在docker上成功编译了NCSDK。 然后我像往常一样创建了一个docker-machine并附加到virtualbox:

$ docker-machine create --driver virtualbox linux
$ eval $(docker-machine env linux)
$ docker-machine ls
NAME    ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER        ERRORS
linux   *        virtualbox   Running   tcp://192.168.99.100:2376           v17.12.1-ce 
$ docker-machine env linux
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/Users/loretoparisi/.docker/machine/machines/linux"
export DOCKER_MACHINE_NAME="linux"
# Run this command to configure your shell: 
# eval $(docker-machine env linux)

我已将设备插入VirtualBox,因此在运行docker图片时会像

一样
docker run --rm -it movidius bash

我可以看到设备已连接:

movidius@macos:~/ncsdk/examples/apps/hello_ncs_cpp$ lsusb
Bus 001 Device 005: ID 03e7:2150  
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

其中03e7是Linux设备ID列表here中预期的Intel设备:

03e7  Intel
    2150  Myriad VPU [Movidius Neural Compute Stick]

所以我应该制造并运行:

cd examples/apps/hello_ncs_cpp/ \
make hello_ncs_cpp \ 
make run

但是我得到了

cd cpp; ./hello_ncs_cpp; cd ..
Error - Could not open NCS device.
    mvncStatus value: -6

尝试python示例

时出现同样的错误
movidius@macos:~/ncsdk/examples/apps/hello_ncs_py$ python hello_ncs.py 
Error - Could not open NCS device.

查看python代码,我可以看到设备已被正确枚举:

     # get a list of names for all the devices plugged into the system
    ncs_names = fx.EnumerateDevices()
    if (len(ncs_names) < 1):
        print("Error - no NCS devices detected, verify an NCS device is connected.")
        quit()


    # get the first NCS device by its name.  For this program we will always open the first NCS device.
    dev = fx.Device(ncs_names[0])

    print(ncs_names[0])

因为我可以看到1作为设备名称。打印我有dev.OpenDevice() api的错误堆栈跟踪:

mvncStatus.ERROR
Traceback (most recent call last):
  File "hello_ncs.py", line 43, in <module>
    dev.OpenDevice()
  File "/usr/local/lib/python2.7/dist-packages/mvnc/mvncapi.py", line 147, in OpenDevice
    raise Exception(Status(status))
Exception: mvncStatus.ERROR
Error - Could not open NCS device.

我还尝试使用docker选项--device附加设备但没有成功尝试:

docker run --rm -it --net=host --privileged --device=/dev/usb/hiddev4

here所述。

[UPDATE] 我在最新版本的Microsoft Windows和Microsoft Surface笔记本电脑上发现了相同的驱动程序问题。

2 个答案:

答案 0 :(得分:3)

在Docker容器中,您必须以root用户身份运行make run,而不是普通用户。原因是Docker不支持udev / udevadm服务,因此只有root才能访问USB设备。

答案 1 :(得分:-1)

看看您是否可以通过以下线程解决问题: https://ncsforum.movidius.com/discussion/140/mac-os-x

请参阅Ramana.rachakonda的第8点: &#34; Stick仅在连接到USB集线器上的USB2端口时工作,而不是连接到USB3端口时。如果您只有USB3端口,请尝试使用USB2延长线连接杆&#34;。