树莓派+神经计算棒2部署Openvino的human_pose_estimation_demo实例

文章目录


前言

研一刚上来,导师就让部署从来没碰过的树莓派和人体姿态识别,网上将人体姿态识别部署至树莓派上的资料属实少之又少,搞了快一周算是实现了(😓头快秃了都),为了对得起我的头发,用博客来祭奠一下。。。

本文不涉及神经网络理论以及代码的解读,所以对于稍微有点计算机基础的人应该都不成问题,next,备齐家伙开始搞。

所需硬件:树莓派(我用的4B),外接摄像头,神经计算棒2,micro hdmi转换器,usb hub。

 

一、树莓派配置

树莓派的配置主要是镜像文件的烧入(就是给小电脑装系统),ssh远程连接的配置,自动连接wifi的配置。

如果有像我一样之前没有接触过树莓派的hxd,可以去b站关注一个叫同济子豪兄的up,他讲的非常好很多知识可以学习到,树莓派相关视频链接在此:

  1. 树莓派购买指南
  2. 树莓派新手开机
  3. 树莓派相关配置 

以上教程的代码仓库:点这里复制代码吧

     4.最后加一步安装cmake,这个东西用于最后human_pose_estimation_demo代码的编译,在命令行输入

sudo apt-get update//更新一下包管理工具
sudo apt-get install cmake

如果出现这种问题

 

先用sudo apt-get install libcurl3下载一下再下载cmake

 

二、安装openvino

这里我们要安装的是针对树莓派的openvino

安装包链接:https://pan.baidu.com/s/1g-pCfJY0wkwTCclqOCKOng 
提取码:48z7 

1.解压

   通过ssh将压缩包传入~/Downloads文件夹下,输入解压语句

tar -xf l_openvino_toolkit_runtime_raspbian_p_2020.4.287.tgz 

2.配置变量

  然后把解压出来的文件夹用mv命令改成这个名字inference_engine_vpu_arm,别问,问就是它可能比较短。
  之后在Downloads文件夹下输入三条语句

source inference_engine_vpu_arm/bin/setupvars.sh 

sh inference_engine_vpu_arm/install_dependencies/install_NCS_udev_rules.sh //添加神经棒规则
​
sed -i "s|<INSTALLDIR>|$(pwd)/inference_engine_vpu_arm|" inference_engine_vpu_arm/bin/setupvars.sh

  接下来配置环境变量 

sudo nano /home/pi/.bashrc

  最后一行增加 

source /home/pi/Downloads/inference_engine_vpu_arm/bin/setupvars.sh

  如图 

  断开ssh连接重新连接出现下面,说明安装成功 

[setupvars.sh] OpenVINO environment initialized

 

三、运行human_pose_estimation_demo

现在树莓派和计算棒的环境都已经配置完成,就差最后一个主角了human_pose_estimation_demo,虽说现在这个openvino里的samples也都可以跑,但是很不幸因为这个openvino是针对树莓派的所以说他是个mini版,里面的demo没有ubantu,windows版本的全,所以你在这个opevino的samples里是找不到human_pose_estimation_demo的(普通版本是在demos文件夹下,mini就是mini,小demo都放到samples文件夹下了),所以我们要将普通版本里的human_pose_estimation_demo复制到树莓派的samples文件夹下对其进行编译再运行。

总的来说分为三部:1.复制human_pose_estimation_demo到samples文件夹下2.cmake编译源码3.运行

说着很简单,但对于我来说,不知道试错了多少次。希望可以前人栽树,后人乘凉。。。

1.复制代码

因为我之前已经在windows上实现了human_pose_estimation_demo加神经棒,所以直接在普通版本的openvino文件夹中找到

我的在这里,我是用u盘拷到树莓派的(感觉好low的方法),考到树莓派这个文件夹下

2.编译

  先说一下,编译分为两步,cmake和make,这两步需要一个叫cmakelists.txt的文件,这个文件每个要编译的文件夹都有。

  但是因为树莓派的openvino对其目录下的demo(也就是sample)的编译文件(也就是cmakelists.txt)和我们复制来的         human_pose_estimation_demo的编译文件不一样!!因为这两个编译文件不一样导致编译时候很多     human_pose_estimation_demo里cpp文件的依赖找不到,我就在这里因为这个问题编译失败了好多次,之后把树莓派在sample   文件里的cmakelist.txt和windows那个demo文件夹下的cmakelist.txt换了一下就可以正常编译了。。。只用换这两个文件夹下的   编译文件就行,除此之外还有一个在树莓派cpp文件夹下和windows中demo文件夹下都有的common文件夹需要互换才可以让复   制来的human_pose_estimation_demo代码正常编译。以下操作是在换完这两个文件夹的情况下工作的。

  首先我们在cpp文件夹下创建一个build文件夹,并进入

mkdir build && cd build

  之后开始cmake

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

有时候不管用可以自己手敲一遍。然后开始make

make human_pose_estimation_demo

make成功之后就算是编译成功啦!还有最后一步就可以运行啦!想要代码运行我们还需要openvino对于不同demo做的预训练模型,其实就是一个xml文件,下载地址,要下载FP16的因为神经棒只支持FP16的。你可以在树莓派上直接wget这两个文件,也可以windows下载传输。最后存放这两个文件路径你要记住,一会执行要用。

接下来就是运行。首先拿出摄像头,我没有用树莓派自带的那种排线式的摄像头,实验室有个罗技的usb,一插就能用,主要是要知道你的摄像头在树莓派中如何获取,方法是先不插摄像头,用ls /dev/video* 命令看一下有哪些设备,之后再插上摄像头,再次输入ls /dev/video*,看多了哪个设备哪个就是你的摄像头。

此时因为你make成功在build文件夹下应该有一个armv7l/Release路径,进去输入

./human_pose_estimation_demo -i /dev/video+摄像头号 -d MYRIAD -m 路径/human-pose-estimation-0001.xml

之后就是成功的运行啦,就酱

fps到达了6点多,比在我的华硕破顽石上好太多了。。。

  • 10
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
C:\Users\TXN>CD C:// C:\>Python "C:\Program Files (x86)\Intel\openvino_2021.4.752\deployment_tools\open_model_zoo\demos\human_pose_estimation_demo\python\human_pose_estimation_demo.py" -at openpose -d CPU -i 0 -m D:\model\fall_detection_zpp\intel\human-pose-estimation-0001\FP16\human-pose-estimation-0001.xml [ INFO ] Initializing Inference Engine... [ INFO ] Loading network... [ INFO ] Reading network from IR... Traceback (most recent call last): File "C:\Program Files (x86)\Intel\openvino_2021.4.752\deployment_tools\open_model_zoo\demos\human_pose_estimation_demo\python\human_pose_estimation_demo.py", line 283, in <module> sys.exit(main() or 0) File "C:\Program Files (x86)\Intel\openvino_2021.4.752\deployment_tools\open_model_zoo\demos\human_pose_estimation_demo\python\human_pose_estimation_demo.py", line 184, in main model = get_model(ie, args, frame.shape[1] / frame.shape[0]) File "C:\Program Files (x86)\Intel\openvino_2021.4.752\deployment_tools\open_model_zoo\demos\human_pose_estimation_demo\python\human_pose_estimation_demo.py", line 111, in get_model prob_threshold=args.prob_threshold) File "C:\Program Files (x86)\Intel\openvino_2021.4.752\deployment_tools\open_model_zoo\demos\common\python\models\open_pose.py", line 62, in __init__ strides=(1, 1), name=self.pooled_heatmaps_blob_name) File "C:\Users\TXN\AppData\Local\Programs\Python\Python37\lib\site-packages\ngraph\utils\decorators.py", line 22, in wrapper node = node_factory_function(*args, **kwargs) TypeError: max_pool() missing 1 required positional argument: 'dilations'
05-30

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值