Movidius--神经棒--ncsdk2.0安装教程

平台:rk3399

1. 更新
    先把源切换到中科大源上,速度比较块,参考http://mirrors.ustc.edu.cn/help/ubuntu-ports.html
    apt update
    apt upgrade

2. 安装所需包
    apt install udev libusb-1.0-0-dev git

3. 下载ncsdk2.0
    cd ~ && mkdir work && cd work
    git clone --depth=1 -b ncsdk2 https://github.com/movidius/ncsdk.git

4. 修改ncsdk2.0源码
    4.1) python库
        修改requirements.txt文件,添加下面四个包,安装tensorflow1.7需要,自动安装会失败(源的问题)
            gast>=0.2.0
            grpcio>=1.8.6
            tensorboard<1.8.0,>=1.7.0
            bleach==1.5.0
            astor>=0.6.0
            absl-py>=0.1.6
    4.2) install.sh脚本修改
        修改
            APT_QUIET=-qq
            PIP_QUIET=--quiet
            GIT_QUIET=-q 
        为
            APT_QUIET=
            PIP_QUIET=
            GIT_QUIET=
        以便可以看到更多的安装信息

        修改install.sh中所有的pip安装源为中科大pypi源
            --trusted-host files.pythonhosted.org替换为-i https://mirrors.ustc.edu.cn/pypi/web/simple --trusted-host mirrors.ustc.edu.cn/pypi

        修改install.sh中的install_sdk函数,添加ncsdk-aarch64文件夹,默认只支持arm32位
            在function install_sdk()函数的 "# copy toolkit"下一行添加如下代码
                 $SUDO_PREFIX cp -rf /opt/movidius/NCSDK/ncsdk-armv7l /opt/movidius/NCSDK/ncsdk-aarch64

        修改install.sh文件,关闭自动安装tensorflow1.7,后面修改为手动安装(关于为什么不修改脚本进行自动安装,因为安装tensorflow的时候还需要安装python依赖库,由于默认源在国外,所以无法安装成功)
            注释"function main()"  中的  [ "${INSTALL_TENSORFLOW}" = "yes" ] && install_tensorflow
            在[ "${INSTALL_TENSORFLOW}" = "yes" ] && install_tensorflow 上面随便写一行会报错的代码,报错以后,开始手动安装tensorflow,我的代码为sudo pip3 install tensorflow-1.7.0-cp35-cp35m-linux_aarch64.whl,因为没有whl这个文件,所以会报错找不到此文件。
        
5. 安装ncsdk---step 1
    sudo chmod 777 -R /tmp                          //给/tmp文件夹权限,否则会报错执行install.sh中的apt-get update 失败
    make install                                    //需要等待很久,因为安装requirements.txt中的python包比较耗时,脚本是下载源码进行编译的,遇到Cython、h5py、numpy等库的安装,一定要耐心等待!!!
    如果pip安装python库的时候报错,请再次执行make install, 仔细看错误信息就会发现都是timeout错误。
    

6. 安装ncsdk---step 2
    手动安装tensorflow1.7                           //sdk的install.sh脚本中要求使用tensorflow1.7
        sudo pip3 install tensorflow-1.7.0-cp35-cp35m-linux_aarch64.whl            //此文件的编译请看另一篇文档,《在arm64的ubunu中编译tensorflow库》
    验证tensorflow是否安装成功,执行以下命令,如果没有报错,表示安装成功,如果报错,多次执行sudo pip3 install tensorflow-1.7.0-cp35-cp35m-linux_aarch64.whl
        python3
        import tensorflow

7. 安装ncsdk---step 3
    修改install.sh脚本
        手动安装tensorflow1.7成功后,把4.2中故意添加的一行错误代码屏蔽掉,然后再次执行 make install , 等待几分钟,ncsdk2.0便会安装成功。


7. 安装ncsdk---step 4
    执行命令sudo make api                   //nvsdk生成的很多库要根据源码进行重新编译安装到系统


8. 安装ncsdk---step 5
    插入Movidius硬件,然后执行命令sudo make examples   //跑官方的示例,如果没问题,表示sdk完全安装成功,并且可用。
        官方的示例demo需要依赖opencv-python>=3.4.0.12,我个人是在第7步以后手动安装的,低版本的opencv会有问题,建议手动安装opencv
            opencv手动编译安装(以3.4.0为例,可为更高版本):
                1. 下载源码https://github.com/opencv/opencv/releases/tag/3.4.0      //可以从opencv官方找到此连接地址
                2. 安装依赖包
                    sudo apt install cmake  build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev  
                3. 解压opencv源码并进入源码
                    tar xzvf v3.4.0.tar.gz && cd opencv-3.4.0
                4. 在opencv源码目录创建编译目录
                    mkdir my_build_dir
                    cd my_build_dir
                5. 指定安装目录,建议安装到/usr下面,不需要再配置/etc/ld.so.conf.d/opencv.conf 
                    cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr ..
                6. 安装opencv到系统
                    sudo make install
                7. 等待安装成功,一小时左右。
                8. 执行命令  sudo ldconfig
                9. 配置成功
                


总结:
    1. 切换科大源
    2. 手动安装tensorflow
    3. 分析install.sh脚本,根据实际情况修改sdk代码


注意事项:
    1. 上述操作是在普通账户下操作,而非root账户
    2. 普通账户要获得sudo权限
    3. 上述操作在rk3399 arm64 ubuntu16.04上验证

你可能感兴趣的:(rk3399)