写点什么

树莓派 4B+OpenVINO 快速实现人脸识别

发布于: 2021 年 04 月 11 日
树莓派4B+OpenVINO快速实现人脸识别

伴随这人脸检测的普及,越来越多的 AI 爱好者希望能自己部署一个识别模型,那么今天我就带着大家,一起在树莓派上快速的部署一个人脸检测的模型。

话不多说,我们开始吧!

硬件准备

  1. 树莓派 4B, 8G 版本

其他版本应该也可以。

  1. 电源,SD 卡,读卡器

  2. 神经计算棒二代(ntel® Neural Compute Stick 2,简称 NCS2)


软件准备

  1. Raspberry Pi OS(32 位系统)

https://downloads.raspberrypi.org/raspios_full_armhf/images/raspios_full_armhf-2021-03-25/2021-03-04-raspios-buster-armhf-full.zip

  1. Raspberry Pi Imager 软件(用于将系统写入 SD 卡)

https://www.raspberrypi.org/software/

  1. OpenVINO 工具(树莓派版本)

https://storage.openvinotoolkit.org/repositories/openvino/packages/2021.3/l_openvino_toolkit_runtime_raspbian_p_2021.3.394.tgz

  1. VNC Viewer(远程查看树莓派桌面)

https://www.realvnc.com/en/connect/download/viewer/

  1. 局域网 IP 扫描软件 Advanced IP Scanner

https://www.advanced-ip-scanner.com/cn/

当然,如果你可以登录路由器配置页面也可以不用这个软件,即可查看到使用的 IP 地址

安装操作系统

1. 将下载的镜像写入 SD 卡

打开 Raspberry Pi Imager

选择下载好的镜像文件 2021-03-04-raspios-buster-armhf-full.zip 和 SD

这会花费一些时间,我们稍等一会。

2. 配置 SSH 登录,和 WIFI 链接

我们将 SD 重启链接到电脑上,然后打开 boot 盘,在里面创建一个 ssh 文件注意不要有任何后缀名。然后再创建一个 wpa_supplicant.conf 文件,并写入以下内容

country=GBctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdevupdate_config=1network={	ssid="501-5G"	psk="88888888"	priority=5}network={	ssid="501"	psk="88888888"	priority=4}network={	ssid="IT蜗壳"	psk="123456789"	priority=3}
复制代码

ssid:WIFI 名

psk:密码

priority:权重,值越大越优先

将 SD 卡拔出,插入树莓派机器开机等待一会即可。

配置系统

1. 获取树莓派的 IP 地址

在等待初始配置的这段时间,我们可以扫描一下树莓派的 IP 地址,因为一会我们需要远程登录

我们看到有一个名称为 raspberrypi 的 IP(192.168.2.65)

2. 登录系统

打开终端(CMD),输入以下命令

ssh pi@192.168.2.65
复制代码

默认用户名:pi

默认密码:raspberry

看到如上显示后恭喜你树莓派的系统已经成功登录了。在我们初次登录后第一件要做的是就是修改默认密码

passwd pi

passwd root

这两个用户的密码都要修改

3. 开通 VNC 服务

我们可以通过如下命令进入树莓派的配置界面

sudo raspi-config
复制代码


我们选择第 3 选项

我们可以通过上下左右来进行选择

选择 VNC

选择 Yes 开启。

这时如果通过 VNC Viewer 来访问,大概率会看到如下画面

我们还需要进行另外一个配置,即可杰作这个问题

选择第 2 项

选择 D1 选项

根据自己的需求进行选择

选择重启后,我们再通过 VNC Viewer 来访问看看效果

这时我们就可以看到树莓派的桌面了,后面我们查看人脸的识别效果就可以通过它来查看。

其他配置可以参考我的另外一篇文章,这里就不再赘述了

【树莓派远程登录:https://xie.infoq.cn/article/6e1b58e13b5d2ed0d7820835c

下载 OpenVINO 套件并进行安装

在下载前,我们先更新一下软件列表

sudo apt-get updatesudo apt-get install -y git cmake  scons build-essential
复制代码

如果速度很慢,可以修改一下源

/etc/apt/sources.list

/etc/apt/sources.list.d/raspi.list

请把里面的http://raspbian.raspberrypi.org/raspbian/http://archive.raspberrypi.org/debian/分别替换为http://mirrors.ustc.edu.cn/raspbian/raspbian/

然后保存则可


1. 进入 Downloads 文件夹,并开始下载

cd Downloads/wget https://storage.openvinotoolkit.org/repositories/openvino/packages/2021.3/l_openvino_toolkit_runtime_raspbian_p_2021.3.394.tgz
复制代码


2. 创建一个用来保存软件主体的文件夹

sudo mkdir -p /opt/intel/openvino
复制代码

3. 解压软件到指定文件夹

 sudo tar -xf l_openvino_toolkit_runtime_raspbian_p_2021.3.394.tgz  --strip 1 -C /opt/intel/openvino
复制代码

这里的压缩文件是我刚才下载的文件,请根据自己的具体版本好进行修改

4. 配置环境变量

echo "source /opt/intel/openvino/bin/setupvars.sh" >> ~/.bashrc
复制代码

我们可以新开一个窗口来查看一下

看到这段内容即表示你的配置成功了。

  1. 配置 USB 规则

sudo usermod -a -G users "$(whoami)"
复制代码

由于我们需要用到神经计算棒,因此还需要运行一下命令

sh /opt/intel/openvino/install_dependencies/install_NCS_udev_rules.sh
复制代码

/opt/intel/openvino/是我们开始时创建的文件夹

运行示例模型

1. 创建 build 文件夹

mkdir ~/build && cd ~/build
复制代码


2. 编译

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-march=armv7-a" /opt/intel/openvino/deployment_tools/inference_engine/samples/cpp
复制代码



make -j2 object_detection_sample_ssd
复制代码


如果看到如上图的输出,即表示编译成功了。

3. 下载权重文件和模型文件

这些都是因特尔预先训练好的模型,我们直接下载下来使用即可

首先下载权重文件

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
复制代码


全部下载后的结果:

4. 看看效果

我们随机在网上截全一张视频的图片,来看看效果如何

那么,如何将 Windows 的上的截图上传到树莓派里面呢?

我们可以使用 VNC Viewer 的传输功能来传输文件

接下来,就是用一下命令来见证奇迹的时刻啦

./armv7l/Release/object_detection_sample_ssd -m face-detection-adas-0001.xml -d MYRIAD -i 0004.png
复制代码

如果看到如下错误,请将计算棒重新插拔一下

如果看一下输出,则代表运行成功了

接下来让我们打开图片看一下效果吧!

原图

识别后的图(有点奇怪,有个门把手也被标注了,哈哈哈)

我们再换一张海贼王的图片试试

乌索普(右一),可能由于头部颜色特征不够明显,没能识别出来。。。


总结

通过实验我们可以看到,用树莓派+OpenVINO 是可以很容易在低功耗的设备上进行人脸检测的部署,而且相对来说也是比较方便的。

最近,OpenVINO 出了一个针对 ARM CPU 的补丁包,有时间我和大家再分享一下,如果你还有什么不清楚了,可以持续关注我的文章,后期我会将视频操作的录像发布在评论区,期待你的讨论。

如果你觉得这篇文章对您有所帮助,欢迎您将它分享给你的朋友,我们下期再见。

发布于: 2021 年 04 月 11 日阅读数: 700
用户头像

一个日语专业的程序猿。 2017.09.10 加入

【坐标】无锡 【软件技能】Java,C#,Python 【爱好】炉石传说 【称号】InfoQ年度人气作者,Intel OpenVINO领航者联盟成员 【B站】https://space.bilibili.com/397260706/ 【个人站】www.it-worker.club

评论 (12 条评论)

发布
用户头像
2021 年 04 月 12 日 15:45
回复
用户头像
很棒
2021 年 04 月 11 日 18:42
回复
用户头像
写的非常好!
2021 年 04 月 11 日 15:23
回复
用户头像
好用~
2021 年 04 月 11 日 13:00
回复
用户头像
2021 年 04 月 11 日 12:55
回复
用户头像
不错不错
2021 年 04 月 11 日 12:53
回复
用户头像
写的很好
2021 年 04 月 11 日 12:53
回复
用户头像
写的不错,很好
2021 年 04 月 11 日 12:52
回复
用户头像
超棒教程!
2021 年 04 月 11 日 12:38
回复
用户头像
讲的很细,学到了,/:heart
2021 年 04 月 11 日 12:35
回复
用户头像
写的好详细且清晰!
2021 年 04 月 11 日 11:11
回复
用户头像
666,学习了~
2021 年 04 月 11 日 11:03
回复
没有更多了
树莓派4B+OpenVINO快速实现人脸识别