新闻中心

使用树莓派和神经计算棒实践OpenVINO人流量统计项目

  当我们拿到树莓派以后,第一步是要安装操作系统。适用于树莓派的操作系统非常多,官网推荐的系统是Raspberry Pi OS,是目前应用最为广泛的树莓派操作系统,这里我们也将使用Raspberry Pi OS进行实践。由于树莓派没有配置板载闪存,因此我们将Raspberry Pi OS烧写在一张16GB的存储卡上,一般要求存储卡不小于8GB。

  1、在树莓派官方网站()下载Raspberry Pi OS系统镜像。该页面下提供了3种Raspberry Pi OS最新版本的镜像文件,如下图所示。

  3、使用烧写软件Etcher将系统刻录在SD卡。Etcher是支持Windows、macOS以及Linux系统的轻量化软件()。打开Etcher后分别选择镜像文件目录以及待烧写SD卡的盘符,点击Flash即可。

  烧写大概需要10~15分钟的时间,具体时长与设备的读写能力有关。烧写完成后,我们在Windows的磁盘管理器中可能看到SD卡的空间只剩下几十MB,这都是正常现象,因为Windows没办法识别Linux的文件系统。如果系统提示SD卡需要格式化,切记别选“是”,这会使我们之前的工作变成无用功。等待烧写完成,将SD卡插入树莓派背面的SD卡卡槽内,就可以连接硬件了。

  接下来,我们为树莓派上搭建OpenVINO开发环境。树莓派的OpenVINO工具套件包括推理引擎和MYRIAD插件,需要搭配英特尔二代神经计算棒进行AI推理。由于树莓派的OpenVINO工具套件不包含模型优化器,我们应该在其他机器上对模型进行转换,然后将优化后的模型部署在树莓派上。

  2、打开树莓派终端,新建文件夹openvino_2021,将下载好的安装包解压到当前文件夹。

  完成上面的步骤后,我们运行工具套件中的人脸检测模型,测试环境是否搭建成功。

  程序运行结束后,我们大家可以查看生成的out_0.bmp文件中的人脸检测框。

  OpenVINO官网为我们提供了丰富的资源,方便我们快速构建自己的项目。其中,GitHub中的open_model_zoo()仓库为我们提供了一些公开的和英特尔预训练好的模型,以及一些场景下使用OpenVINO的demo。

  由于我们要在树莓派上实践人流量统计项目,首先我们需要在open_model_zoo中筛选能够检测行人的目标检测模型。我们选择适用于移动端的轻量级深度网络模型mobilenet-ssd作为人群检测模型。

  仓库中mobilenet-ssd的介绍文档向我们详细描述了模型的输入、输出、精度、计算量、参数量等。mobilenet-ssd模型是一个单阶段的目标检测模型,使用的是Caffe框架,模型的输入是300*300的BGR三通道图片,计算量2.316GFLOPs,参数量5.783MParams,在VOC2007数据集上的mAP值是67%。输入输出部分向我们介绍了原始模型和使用模型优化器转换后模型的输入输出参数。我们可以按照自己对精度、计算量、参数量、框架以及部署环境的要求,选择自己需要的模型。

  确定好模型后,我们使用OpenVINO提供的模型下载器(downloader.py)下载模型。Windows平台下需要以管理员身份运行Window命令提示符。

  模型优化器Model Optimizer可以将深度学习模型转换为能够被推理引擎执行的IR文件。IR文件包含一个*.xml文件用来描述网络结构,还包含一个*.bin文件用来存储网络的权重和偏置量。

  下载好模型后,使用模型优化器优化模型,树莓派的OpenVINO工具套件不包含模型下载器,因此我们需要在别的机器上对模型进行优化。运行下面命令,完成对模型的优化。--help参数能查看模型优化器的参数设置。

  在距离视频画面顶部2/3处画了一条水平黄线,当有人越过这条黄线,使用模型对其进行仔细的检测和追踪,Up和Down分别对应人员流入和人员流出,以此来实现对特定场所进入和出去人流量的统计。

  我们在树莓派上分别对使用OpenCV的dnn相关函数调用mobilenet-ssd原始模型和OpenVINO运行优化后的模型作比较。视频中左侧为OpenCV运行,右侧为OpenVINO运行,同时对推理部分的FPS值进行计算。能够准确的看出,树莓派上英特尔神经计算棒与OpenVINO搭配的FPS值明显要优于单独使用OpenCV运行原始mobilenet-ssd模型。

 
地址:云南省大理州大理市大理经济技术开发区春华路    服务电话:0872-2335866
传真:0872-2335808    邮箱:/
PG问鼎版权所有©2018-2023
滇公网安备53290102000372号 滇ICP备12002676号