树莓派Opnevino环境搭建以及快速实现人脸识别
本文主要介绍了在树莓派(Raspbian 4)上搭建openvino相关环境以及实现一个简单人脸识别功能的详细步骤
相关软硬件准备
1.硬件准备:
-
树莓派4(Raspberry Pi 4 Model B Rev 1.4)一枚
-
SD卡一张、读卡器一枚
-
神经计算棒一枚(Intel Neural Compute Stick2, NCS2)
2.软件准备:
-
Raspberry Pi OS (32bit) :32位的树莓派操作系统
-
Rasberry Pi Imager:树莓派官方提供的将树莓派操作系统写入sd卡的软件工具
-
树莓派版本的Openvino工具
-
VNC Viewer/Xshell:远程查看操作树莓派工具
2.树莓派配置
2.1 安装树莓派操作系统
- 打开 软件Raspberry Pi Imager
选择第一个的操作系统Raspberry PI OS(32-bit)
选择SD卡
然后开始写入
- 安装好后,将SD卡插入树莓派,启动树莓派,开启ssh/VNC权限
依次打开 菜单(Menu) > 首选项(Preferences) > Raspberry Pi Configuration:
点击 Interfaces 栏,选择“enable” SSH/VNC服务
- 在Terminal中使用
ifconfig
命令,查询树莓派ip地址:
注意,需要重启树莓派,相关权限才能生效
- 输入树莓派ip地址,使用Xshell工具链接到树莓派:
2.2 Openvino下载以及安装
- 进入Downloads文件夹,下载openvino Raspberry工具
wget https://storage.openvinotoolkit.org/repositories/openvino/packages/2021.3/l_openvino_toolkit_runtime_raspbian_p_2021.3.394.tgz
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gfnG3AF5-1618553331494)(https://i.loli.net/2021/04/12/NO4q5Ghfrx6tp2b.png)]
- 创建一个用来保存软件主体的文件夹,并解压到该文件夹
sudo mkdir -p /opt/intel/openvino
sudo tar -xf l_openvino_toolkit_runtime_raspbian_p_2021.3.394.tgz --strip 1 -C /opt/intel/openvino
- 设置环境变量
echo "source /opt/intel/openvino/bin/setupvars.sh" >> ~/.bashrc
新开一个Terminal有如下初始化提示时便说明配置成功
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LUKF3niM-1618553331495)(https://i.loli.net/2021/04/12/NO4q5Ghfrx6tp2b.png)]
-
配置USB规则
sudo usermod -a -G users "$(whoami)"
-
运行如下命令以能够使用神经计算棒
sh /opt/intel/openvino/install_dependencies/install_NCS_udev_rules.sh
3.Cmake环境搭建
- 前往Cmake官网查找满足要求的Cmake版本
本文使用的为’cmake-3.20.1`版本 - 使用如下命令下载Cmake
wget http://www.cmake.org/files/v3.20/cmake-3.20.1.tar.gz
- 解压源码
tar zxvf cmake-3.20.1.tar.gz
- 进入解压的文件夹开始安装(时间可能较长)
cmake-3.20.1
./configure
make
sudo make install
-
在configure期间可能会因为缺失OpenSSL报错,需要先安装OpenSSL
OpenSSL最新下载版本参见http://www.openssl.org/source/
通过以下命令下载解压安装:
wget https://www.openssl.org/source/openssl-3.0.0-alpha14.tar.gz
tar xzvf openssl-3.0.0-alpha14.tar.gz
./Configure
make
make install
- 验证是否安装成功
cmake --version
4.运行实例模型
- 创建build文件夹
mkdir ~/build && cd ~/build
- 编译样例
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-march=armv7-a" /opt/intel/openvino/deployment_tools/inference_engine/samples/cpp
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sFjs3qz2-1618553331497)(https://i.loli.net/2021/04/13/AMdLZnVwtBFCY6U.png)]
- 编译
object detecion_sample_ssd
样例
make -j2 object_detection_sample_ssd
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M2O4IV0I-1618553331497)(https://i.loli.net/2021/04/13/nMyovCfdiPNkcbA.png)]
编译成功后,还需要下载添加模型文件才能完成完成检测
- 下载权重文件和模型文件
下载Inter仓库中预训练好模型的权重文件和模型文件:
wget --no-check-certificate https://storage.openvinotoolkit.org/repositories/open_model_zoo/2021.3/models_bin/2/face-detection-adas-0001/FP16/face-detection-adas-0001.bin
wget --no-check-certificate https://storage.openvinotoolkit.org/repositories/open_model_zoo/2021.3/models_bin/2/face-detection-adas-0001/FP16/face-detection-adas-0001.xml
- 测试结果
在网上下载一张带有人脸的图片,然后使用如下指令进行推理测试:
./armv7l/Release/object_detection_sample_ssd -m face-detection-adas-0001.xml -d MYRIAD -i face.png
原图如下所示:
控制台输出如下所示:
检测结果如下所示:
至此,基于树莓派的openvino人脸检测部署就全部完成了。