树莓派4B+NCS2,最强最具性价比的边缘计算开发平台

如果不熟悉树莓派4B,可以先参考下面两篇文章,会让你从无到有详细了解树莓派4B:

  • 树莓派4B评测,相比树莓派3B+提升了什么?
  • 树莓派4B性能实测,有史以来最好的树莓派

作为一名电子工程师,我一直对人工智能和机器学习着迷,自从谷歌推出TensorFlow 支持树莓派以来,我们觉得这迟早会是一个闪耀的边缘计算开发平台。

而且恰恰巧合的是去年七月,当英特尔发布神经计算棒时,我注意到了树莓派,以至于树莓派3B,树莓派4B+NCS2(英特尔神经计算棒3代)的组合必将成为本地AI应用程序的加速器的最佳平台之一,尤其是机器视觉。我认为这是一个非常巧妙的想法:它允许我以大约1W的功率成本在嵌入式系统上测试AI应用程序。它需要预先训练好的模型,但现在有足够的可用来做一些有趣的事情。

树莓派4B+NCS2,最强最具性价比的边缘计算开发平台

其实,从一开始的神经计算棒一代我并不怎么看好性能表现,直到去年11月他们发布改进版本“神经计算棒2”(NCS2),它价格合理,并承诺比NCS一代提高6-8倍的性能,因此我决定尝试一下它的效果如何。

树莓派4B+NCS2,最强最具性价比的边缘计算开发平台

我在笔记本电脑上安装了英特尔的OpenVino工具包。英特尔提供的安装脚本不是特别用户友好,但它运行良好,包括几个我可以用来测试性能的示例应用程序。我发现我的网络摄像头几乎可以实时进行人脸检测(类似于19 FPS),并且姿势检测大约为3 FPS。因此,按照节日精神,它知道我什么时候睡觉,知道我什么时候醒来。

这很有希望,但NCS2的市场推广允许在边缘计算设备上进行AI处理。我开始在Raspberry Pi 3 Model B +上安装它并编译应用程序样本以查看它是否比以前的方法更好。事实证明这比我预期的要困难,本文的主要目标是分享我所遵循的过程,并为你们节省一些挫折感。

首先,英特尔为Raspberry Pi提供单独的安装过程。普通的安装程序不起作用(我试过)。通常,使用一些应用程序示例运行NCS2有3个步骤:Raspberry Pi的初始配置,安装OpenVino,最后编译一些应用程序示例。最后一步将花费3个多小时,有些会失败,相应地调整自己。如果您此刻没有安装它,那么仍然值得您花时间阅读下面的其他示例部分,以了解可能的情况。

准备树莓派

首先,下载Noobs,解压缩到microSD卡(我使用16GB),然后启动Raspberry Pi。安装默认图形环境,连接到Internet,并更新设备上的所有软件。完成后,打开终端并运行sudo raspi-config。选择界面→启用摄像头。关闭,断开电源,插上相机,然后启动。

树莓派4B+NCS2,最强最具性价比的边缘计算开发平台

再次打开一个终端并运行sudo modprobe bcm2835-v4l2(注意它是一个小写的L,而不是1),然后通过导航到/ dev并运行确认/ dev / video0现在存在ls。每次希望以这种方式访问​​摄像机时,您都需要运行此modprobe命令,因此请考虑将其添加到启动中。

现在,我们要编译的一些应用程序将耗尽内存,因为默认的交换分区大小为100兆字节。运行sudo nano /etc/dphys-swapfile并增加它 - 我将它从100改为1024,这证明是足够的。保存,重新启动并运行free -h以确认交换大小增加。最后,安装cmake sudo apt-get install cmake,因为我们稍后在编译时需要它。

在这个阶段,您已准备好开始英特尔的OpenVino安装过程。

安装OPENVINO TOOLKIT

在本节中,我们将大致遵循英特尔的说明。为了简单起见,我假设您正在安装到桌面上的文件夹中。下载OpenVino为树莓派(.tgz的文件),然后将其复制到/ home / PI /桌面和解压它tar xvf filename.tgz。

安装脚本需要明确知道它们的位置,因此在OpenVino文件夹中,输入/ bin目录并在任何文本编辑器中打开setupvars.sh。替换为OpenVino文件夹的完整路径,例如/ home / pi / Desktop / inference_engine_vpu_arm /并保存。

后面的脚本需要加载此脚本,因此请输入sudo nano /home/pi/.bashrc并将'source /home/pi/Desktop/inference_engine_vpu_arm/bin/setupvars.sh'添加到文件末尾。每次打开终端时都会加载setupvars.sh。关闭终端窗口并再次打开以应用此更改。

接下来,我们将设置允许NCS2工作的USB规则。首先将自己添加到硬件所需的用户组sudo usermod -a -G users "$(whoami)"。退出,然后重新登录。

输入OpenVino安装的install_dependencies文件夹。跑sh install_NCS_udev_rules.sh。现在,如果您插入NCS2并运行dmesg,您应该会在输出结束时看到它被正确检测到。

英特尔的文档现在向我们展示了如何编译单个示例应用程序。我们稍后会编译更多。现在,输入/ deployment_tools / inference_engine / samples并运行:

$run mkdir build && cd build

$cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-march=armv7-a"

$make -j2 object_detection_sample_ssd

编译其他示例

编译其他示例不那么简单,但由于我们的初始设置,我们可以期待一些成功。我的目标是让人脸识别和姿势估计工作,所以我就在那里停下来。对象检测,分类和某种类型的语音识别似乎也已正确编译。

在我们尝试编译样本之前,重要的是要注意样本的预训练AI模型不包含在Raspberry Pi OpenVino安装程序中。在普通的安装程序中,有一个脚本会自动为您全部下载 - 但是Raspberry Pi版本没有这么好运。幸运的是,您可以下载应用程序示例的相关模型。如果链接中断了一天,我所做的只是在OpenVino安装程序的笔记本电脑/桌面版本的model_downloader文件夹中的所有脚本中查找URL。或者,如果您在另一台计算机上安装了OpenVino,则可以复制模型。我将它们安装到桌面上名为intel_models的文件夹中,下面的命令假设您已完成相同的操作。

完成后,输入/ home / pi / Desktop / inference_engine_vpu_arm / deployment_tools / inference_engine / samples并在任何文本编辑器中打开build_samples.sh。在最后一个if块之后(在最后一个“fi”之后)替换所有内容:

build_dir=/home/pi/Desktop/

mkdir -p $build_dir

cd $build_dir

cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-march=

make -j8

printf "\nBuild completed.\n\n”

现在跑了./build_samples.sh,对我来说这跑了大约3个小时才失败,完成54%。但是,到那时,一些示例应用程序已正确编译。此时,您应该能够进入目录:deployment_tools / inference_engine / samples / build / armv7l / Release并运行:

./interactive_face_detection_demo -d MYRIAD -i /dev/video0 -m /home/pi/Desktop/intel_models/face-detection-retail-0004/FP16/face-detection-retail-0004.xml

树莓派4B+NCS2,最强最具性价比的边缘计算开发平台

或者用于姿势判断:

./human_pose_estimation_demo -d MYRIAD -i /dev/video0 -m /home/pi/Desktop/intel_models/human-pose-estimation-0001/FP16/human-pose-estimation-0001.xml

树莓派4B+NCS2,最强最具性价比的边缘计算开发平台

至于我似乎一直在制作的愚蠢错误,请记得使用前面描述的modprobe使Raspberry Pi相机可以作为/ dev / video0访问,并记住实际插入NCS2。

总体而言,性能类似于面部识别的18FPS和姿势检测的2.5FPS,与我的笔记本电脑的性能非常相似。这足以打开我想到的一些应用程序。

  • 树莓派4B+NCS2,最强最具性价比的边缘计算开发平台已关闭评论
    A+
发布日期:2019年07月03日  所属分类:参考设计