因为OpenVINO是英特尔基于自身硬件平台开发的一种工具套件,所以树莓派要使用OpenVINO必须配合英特尔神经网络计算棒2(NCS2)
安装openvino
1.下载树莓派OpenVINO安装包
这里使用的是2021.4版本:OpenVINO2021.4.689
下载:l_openvino_toolkit_runtime_raspbian_p_2021.4.689.tgz 下载之后通过WinSCP或Filezilla复制到树莓派
sudo mkdir -p /opt/intel/openvino_2021
sudo tar -zxvf l_openvino_toolkit_runtime_raspbian_p_2021.4.689.tgz --strip 1 -C /opt/intel/openvino_2021
2.脚本设置
更新Cmake
sudo apt install cmake
因为openvino中有自带的opencv,如果事先opencv已经配置好,需要将openvino脚本中的opencv删掉(如果未安装opencv跳过这步)
cd /opt/intel/openvino_2021/bin
sudo cp setupvars.sh setupvars.sh.bak
sudo vi setupvars.sh
删除下面这段,保存退出:
if [ -e "$INSTALLDIR/opencv" ]; then ? ? if [ -f "$INSTALLDIR/opencv/setupvars.sh" ]; then ? ? ? ? source "$INSTALLDIR/opencv/setupvars.sh" ? ? else ? ? ? ? export OpenCV_DIR="$INSTALLDIR/opencv/share/OpenCV" ? ? ? ? export LD_LIBRARY_PATH="$INSTALLDIR/opencv/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" ? ? ? ? export LD_LIBRARY_PATH="$INSTALLDIR/opencv/share/OpenCV/3rdparty/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" ? ? fi fi
?3.设置环境变量
echo "source /opt/intel/openvino_2021/bin/setupvars.sh" >> ~/.bashrc
配置神经计算棒NCS2
1.为NCS2添加usb规则 将当前用户添加到用户组
sudo usermod -a -G users "$(whoami)"
注销重新登录使其生效
2.执行脚本
sh /opt/intel/openvino_2021/install_dependencies/install_NCS_udev_rules.sh
至此,openvino安装配置完成。
检验
检验是否安装成功
新建目录编译示例
cd ~
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-march=armv7-a" /opt/intel/openvino_2021/deployment_tools/inference_engine/samples/cpp
make -j4 object_detection_sample_ssd
下载open_model_zoo中人脸检测模型:open_model_zoo-2021.4.2.zip
git clone https://github.com/openvinotoolkit/open_model_zoo/tree/2021.4.2
unzip open_model_zoo-2021.4.2.zip -d ~/build/
cd ~/build/open_model_zoo-2021.4.2/tools/downloader/
python3 downloader.py --name face-detection-adas-0001
运行示例:?
./armv7l/Release/object_detection_sample_ssd -m ~/build/open_model_zoo-2021.4.2/tools/downloader/intel/face-detection-adas-0001/FP16/face-detection-adas-0001.xml -d MYRIAD -i ../1.png
?
?
输出图片 out_0.bmp:
需要了解的是,树莓派NCS2仅支持FP16,而树莓派的OpenVINO工具套件不包含模型优化器Model Optimizer,因此当我们要实现yolov5等网络时,我们需要在别的机器上对模型进行优化。
需要将深度学习模型转换为支持FP16的IR文件,IR文件包含一个*.xml文件用来描述网络结构,还包含一个*.bin文件用来存储网络的权重和偏置量。
|