平台: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上验证