环境依赖
- OpenCV2.4.9+
- GFlags2.1.2
- GLog0.3.4
- CMake2.8.7+
- SDL2 2.0.4+
CNStream的使用依赖于寒武纪CNToolkit安装包中CNRT库和CNCodec库。CNToolkit安装包是寒武纪公司发布的基于寒武纪硬件产品的神经网络开发工具包。发送邮件到 barret.bi@wpi-group.com,联系工程师获得CNToolkit安装包和安装指南。
Docker中安装CNStream
执行下面命令,在Ubuntu docker环境下安装和配置环境依赖和依赖库:
- 安装Docker略。宿主机需要预先安装Docker。参考 https://www.runoob.com/docker/ubuntu-docker-install.html
- CNStream提供以下Dockerfile,其中``${CNSTREAM_DIR}`` 代表CNStream源码目录。
${CNSTREAM_DIR}/docker/Dockerfiler.16.04
${CNSTREAM_DIR}/docker/Dockerfiler.18.04
${CNSTREAM_DIR}/docker/Dockerfiler.CentOS
使用Docker镜像配置独立于宿主机的开发环境:
- 编译Docker镜像。用户可以选择以下其中一种方式编译镜像。
如果选择将寒武纪CNToolkit包安装进镜像中:
- 运行下面命令,拷贝寒武纪CNToolkit安装包到CNStream源码目录下。
cp ${toolkit_package} CNStream
- 运行下面命令将寒武纪CNToolkit安装包安装到镜像中,其中 ${cntoolkit_package_name} 为寒武纪CNToolkit安装包及其存放路径。
- docker build -f Dockerfile.18.04 --build-arg toolkit_package=${cntoolkit_package_name} -t ubuntu_cnstream:v1
如果选择不将寒武纪CNToolkit包安装进镜像中,运行下面命令编译镜像:
docker build -f Dockerfile.18.04 -t ubuntu_cnstream:v1
- 运行下面命令,开启容器:
docker run -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY --privileged -v /dev:/dev --net=host --ipc=host --pid=host -v $HOME/.Xauthority -it --name container_name -v $PWD:/workspace ubuntu_cnstream:v1
- 进入docker环境后运行下面指令从github仓库检出CNStream源码。${CNSTREAM_DIR} 代表CNStream源码目录。
git clone https://github.com/Cambricon/CNStream.git
export CNSTREAM_DIR=$HOME/workspace/CNStream
若未安装CNToolkit安装包,参考《Cambricon-CNToolkit-Installation-And-Updation-Guide-CN-v1.7.3.pdf》
安装。(注意:安装CNToolkit之前,需要先安装MLU270对应版本的驱动)
- 编译CNStream指令
完成环境依赖的部署以及依赖库的安装后,执行下面步骤编译CNStream指令:
- 运行下面指令从github检出子仓easydk源码
cd CNStream && git submodule update –init
- 运行下面命令创建 build 目录用来保存输出结果。
mkdir build
- 运行下面命令生成编译指令的脚本。CNSTREAM_DIR 为CNStream源码目录。
cd build
cmake ${CNSTREAM_DIR}
- 如果想要运行寒武纪提供的CNStream示例:
cmake -Dbuild_sample=ON ${CNSTREAM_DIR}
- 运行下面命令编译CNStream指令:
make
运行示例
编译后,执行样例中的.sh文件运行开发样例。例如,执行下面命令运行SSD目标检测样例:
cd ${CNSTREAM_DIR}/samples/demo
vi files.list_video 添加需要使用到的视频文件并把相应的video文件放在${CNSTREAM_DIR}/data/videos目录下。
./run.sh
执行会在终端打印显示出performance统计结果
若希望在终端中显示检测效果,可以在detection_config.json中修改参数值,将displayer中的键show值false改为true,然后执行./run.sh,结果显示如下图所示
参考文档
《Cambricon-CNStream-User-Guide-CN.pdf》
评论