树莓派 4B+OpenVINO 快速实现人脸识别
![树莓派4B+OpenVINO快速实现人脸识别](https://static001.geekbang.org/infoq/ec/ec38cbbad960d92d954abae67dbe65be.jpeg)
伴随这人脸检测的普及,越来越多的 AI 爱好者希望能自己部署一个识别模型,那么今天我就带着大家,一起在树莓派上快速的部署一个人脸检测的模型。
话不多说,我们开始吧!
硬件准备
树莓派 4B, 8G 版本
其他版本应该也可以。
电源,SD 卡,读卡器
神经计算棒二代(ntel® Neural Compute Stick 2,简称 NCS2)
![](https://static001.geekbang.org/infoq/ec/ec38cbbad960d92d954abae67dbe65be.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
软件准备
Raspberry Pi OS(32 位系统)
Raspberry Pi Imager 软件(用于将系统写入 SD 卡)
https://www.raspberrypi.org/software/
OpenVINO 工具(树莓派版本)
VNC Viewer(远程查看树莓派桌面)
https://www.realvnc.com/en/connect/download/viewer/
局域网 IP 扫描软件 Advanced IP Scanner
https://www.advanced-ip-scanner.com/cn/
当然,如果你可以登录路由器配置页面也可以不用这个软件,即可查看到使用的 IP 地址
安装操作系统
1. 将下载的镜像写入 SD 卡
打开 Raspberry Pi Imager
![](https://static001.geekbang.org/infoq/9c/9c442cf96c05beb7cd602f50d3cbb32d.png)
选择下载好的镜像文件 2021-03-04-raspios-buster-armhf-full.zip 和 SD
![](https://static001.geekbang.org/infoq/3c/3cfc4b798f7961c4f67b336e0a6cb58d.gif)
这会花费一些时间,我们稍等一会。
2. 配置 SSH 登录,和 WIFI 链接
我们将 SD 重启链接到电脑上,然后打开 boot 盘,在里面创建一个 ssh 文件注意不要有任何后缀名。然后再创建一个 wpa_supplicant.conf 文件,并写入以下内容
ssid:WIFI 名
psk:密码
priority:权重,值越大越优先
![](https://static001.geekbang.org/infoq/d1/d19ccdf46fd56b8d42d6fba911c30714.gif)
将 SD 卡拔出,插入树莓派机器开机等待一会即可。
配置系统
1. 获取树莓派的 IP 地址
在等待初始配置的这段时间,我们可以扫描一下树莓派的 IP 地址,因为一会我们需要远程登录
![](https://static001.geekbang.org/infoq/69/69f60555b04e77cd54d9b6fcb2ca4516.png)
我们看到有一个名称为 raspberrypi 的 IP(192.168.2.65)
2. 登录系统
打开终端(CMD),输入以下命令
默认用户名:pi
默认密码:raspberry
![](https://static001.geekbang.org/infoq/bd/bde06e55c2e7040cc3536a2b2187c00a.png)
看到如上显示后恭喜你树莓派的系统已经成功登录了。在我们初次登录后第一件要做的是就是修改默认密码
passwd pi
passwd root
这两个用户的密码都要修改
![](https://static001.geekbang.org/infoq/d5/d5e9a7cdbf5d279b015ebeb74f5ecdf5.png)
3. 开通 VNC 服务
我们可以通过如下命令进入树莓派的配置界面
![](https://static001.geekbang.org/infoq/89/8941775bc2b9efd3396d7c63e88a0b51.png)
我们选择第 3 选项
我们可以通过上下左右来进行选择
![](https://static001.geekbang.org/infoq/17/17669c31dbcabfab7d0426e4fdfbf0e1.png)
选择 VNC
![](https://static001.geekbang.org/infoq/cf/cf8b0e17d27cf1fda292a3c49d7d480c.png)
选择 Yes 开启。
这时如果通过 VNC Viewer 来访问,大概率会看到如下画面
![](https://static001.geekbang.org/infoq/9c/9c7d6bbe248387c27be398aa0ca8df46.png)
我们还需要进行另外一个配置,即可杰作这个问题
选择第 2 项
![](https://static001.geekbang.org/infoq/49/4992e7377d4caf68fb06b13cd48f80fa.png)
选择 D1 选项
![](https://static001.geekbang.org/infoq/2c/2cf4a80f6044c1f85f9afed4d9c8b99c.png)
根据自己的需求进行选择
![](https://static001.geekbang.org/infoq/4e/4efb9ac3cf7a865e531439b99e9e8f4e.png)
选择重启后,我们再通过 VNC Viewer 来访问看看效果
![](https://static001.geekbang.org/infoq/bf/bfa96eba498d8f8e94bae0418ba3ed9a.png)
这时我们就可以看到树莓派的桌面了,后面我们查看人脸的识别效果就可以通过它来查看。
其他配置可以参考我的另外一篇文章,这里就不再赘述了
【树莓派远程登录:https://xie.infoq.cn/article/6e1b58e13b5d2ed0d7820835c】
下载 OpenVINO 套件并进行安装
在下载前,我们先更新一下软件列表
如果速度很慢,可以修改一下源
/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/
然后保存则可
![](https://static001.geekbang.org/infoq/03/033dcacd500b5a125558f48512f74329.gif)
![](https://static001.geekbang.org/infoq/ce/ce675ba63138c819e00498691515ac04.png)
1. 进入 Downloads 文件夹,并开始下载
![](https://static001.geekbang.org/infoq/d7/d7cb76053ac2933e85a5fde6747e06fe.png)
2. 创建一个用来保存软件主体的文件夹
3. 解压软件到指定文件夹
这里的压缩文件是我刚才下载的文件,请根据自己的具体版本好进行修改
4. 配置环境变量
我们可以新开一个窗口来查看一下
![](https://static001.geekbang.org/infoq/2e/2eeb4f5347c1a1c56de2da98bd4f0e5d.png)
看到这段内容即表示你的配置成功了。
配置 USB 规则
由于我们需要用到神经计算棒,因此还需要运行一下命令
/opt/intel/openvino/是我们开始时创建的文件夹
![](https://static001.geekbang.org/infoq/13/139afa89dbc07b9f28e0768573e0fa83.png)
运行示例模型
1. 创建 build 文件夹
![](https://static001.geekbang.org/infoq/ea/ea399ac3dca1472f95943b2e603c4346.png)
2. 编译
![](https://static001.geekbang.org/infoq/00/00a1b1f40e018cf7d001fc3c371b3760.png)
![](https://static001.geekbang.org/infoq/e2/e2028b14bb1074d17362616480b7b1fd.png)
如果看到如上图的输出,即表示编译成功了。
3. 下载权重文件和模型文件
这些都是因特尔预先训练好的模型,我们直接下载下来使用即可
首先下载权重文件
![](https://static001.geekbang.org/infoq/88/888a00b96ff936aec6ab9d14f201a4d0.png)
然后下载模型文件
![](https://static001.geekbang.org/infoq/b7/b7d8c1427e9a74af33342b1d093969ab.png)
全部下载后的结果:
![](https://static001.geekbang.org/infoq/e3/e335c1198353691a34a760fc30a78a7d.png)
4. 看看效果
我们随机在网上截全一张视频的图片,来看看效果如何
那么,如何将 Windows 的上的截图上传到树莓派里面呢?
我们可以使用 VNC Viewer 的传输功能来传输文件
![](https://static001.geekbang.org/infoq/04/044c45f31798505611c1653f787bddac.gif)
接下来,就是用一下命令来见证奇迹的时刻啦
如果看到如下错误,请将计算棒重新插拔一下
![](https://static001.geekbang.org/infoq/c9/c9672240c15f7ea6e9060cf63cff78e7.png)
如果看一下输出,则代表运行成功了
![](https://static001.geekbang.org/infoq/5e/5ed1533333d3db77ae6b18dcbcf0ad14.png)
接下来让我们打开图片看一下效果吧!
![](https://static001.geekbang.org/infoq/bd/bd9bc4db2119f01603753970bd5810a9.gif)
原图
![](https://static001.geekbang.org/infoq/de/de9ffc0c266007834a3bf5af40d8428a.png)
识别后的图(有点奇怪,有个门把手也被标注了,哈哈哈)
![](https://static001.geekbang.org/infoq/13/139e8c15ef9cb9a17634b347321441d8.png)
我们再换一张海贼王的图片试试
![](https://static001.geekbang.org/infoq/42/42d4a3ec703224219b5d2be12f5b05cb.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
乌索普(右一),可能由于头部颜色特征不够明显,没能识别出来。。。
![](https://static001.geekbang.org/infoq/0f/0f4348d8a10497f749835192efe4ca32.png)
总结
通过实验我们可以看到,用树莓派+OpenVINO 是可以很容易在低功耗的设备上进行人脸检测的部署,而且相对来说也是比较方便的。
最近,OpenVINO 出了一个针对 ARM CPU 的补丁包,有时间我和大家再分享一下,如果你还有什么不清楚了,可以持续关注我的文章,后期我会将视频操作的录像发布在评论区,期待你的讨论。
如果你觉得这篇文章对您有所帮助,欢迎您将它分享给你的朋友,我们下期再见。
版权声明: 本文为 InfoQ 作者【IT蜗壳-Tango】的原创文章。
原文链接:【http://xie.infoq.cn/article/e9fcd225ba905702a8f99df78】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论 (12 条评论)