树莓派4B + darknet-yolov4-tiny + 英特尔第二代神经计算棒

记录整个部署的步骤:

  1. 英特尔第二代神经计算棒(Intel® NCS2)的使用需要到OpenVINO官网下载安装某一个版本的软件,目前是支持Windows、Linux和树莓派的Raspbian OS。
    下面贴出来的是本教程使用的2020.4版本的官方安装教程和官方安装包,为啥用这么老的版本呢,因为之后异步调用yolov4的python脚本对这个版本的支持比较好。尽管如此,2020.4版本不支持英特尔第一代神经计算棒……
    OpenVINO 2020.4 官方安装教程(Raspbian OS)
    OpenVINO 2020.4 官方安装包(Raspbian OS)
    安装包是名为“l_openvino_toolkit_runtime_raspbian_p_2020.4.287.tgz”的文件,下载后放到树莓派的“/home/pi/Downloads”目录下
  2. 记录安装使用的命令行代码
  • 解压并安装到/opt/intel/openvino目录下
cd ~/Downloads/
sudo mkdir -p /opt/intel/openvino
sudo tar -xf  l_openvino_toolkit_runtime_raspbian_p_2020.4.287.tgz --strip 1 -C /opt/intel/openvino
  • 安装cmake为之后编译官方的Sample做准备,如果不跑Sample的话其实也可以不安装,我就不跑Sample了,省下些空间。
sudo apt install cmake
  • 安装完后设置环境变量,如果临时设置,关闭当前终端之后就不起作用了,永久设置的话,每次打开终端都会在第一行显示“[setupvars.sh] OpenVINO environment initialized”,说明进入了OpenVINO的环境,直接插入神经棒就可以运行。

    • 这是临时设置
    source /opt/intel/openvino/bin/setupvars.sh
    
    • 这是永久设置
    echo "source /opt/intel/openvino/bin/setupvars.sh" >> ~/.bashrc
    

永久设置完后,打开一个新的终端看见第一行显示“[setupvars.sh] OpenVINO environment initialized”就说明设置成功啦。

  • 增添USB规则:因为神经棒是插入USB口使用的,因此需要做这一步设置
sudo usermod -a -G users "$(whoami)"

做完这一步先登出账户,然后登陆账户使命令生效,也可以直接重启一下树莓派。

  • 如果之前是临时设置环境变量的话,现在需要再设置一次
source /opt/intel/openvino/bin/setupvars.sh
  • 正式安装USB规则
sh /opt/intel/openvino/install_dependencies/install_NCS_udev_rules.sh
  • 现在可以插入英特尔第二代神经计算棒了
  1. 在树莓派上安装完OpenVINO,接下来就可以将darknet版本的yolov4-tiny模型(.weights文件)转换成OpenVINO支持的模型文件了,包括Caffe、TensorFlow(2020.4可能只支持1.x的版本)、MXNet、ONNX和Kaldi的模型文件,我们就选择转换成TensorFlow的.pb文件吧。
  2. 将.weights转换成.pb还没完,还需要吧.pb转化成.xml(描述神经网络的拓扑结构)和.bin(包含以二进制形式存储的权重与偏置数据)这两个文件,英特尔管这两个文件叫Intermediate Representation(IR)。
    这一步需要用到OpenVINO的Model Optimizer,但是树莓派的OpenVINO不包含Model Optimizer和Open Model Zoo,因此我们需要在另一台电脑上安装OpenVINO,且必须包含对应版本——2020.4版本的Model Optimizer,因为不同版本的Model Optimizer转换出的IR文件可能不兼容。
  3. 选择在Windows上安装OpenVINO 2020.4,我们如法炮制:
    OpenVINO 2020.4官方安装教程(Windows)
    OpenVINO 2020.4 官方安装包(Windows)
    按照如下选择就能下载离线安装包了
  • 安装的前提条件如下,操作系统必须是64位的win10,Python版本如果达不到要求的话可以使用Anaconda创建虚拟环境。CMake和VS(C++组件)其实就是用来编译官方给的demo的,不跑那个demo应该就不需要安装。
  • 像安装普通软件那样安装OpenVINO就行,不是很大,还是建议装C盘,出现如下画面说xxx is not detected不用管,先装了再说。

    安装成功后别急,咱只是完成了第一部分……
  • 设置环境变量,找到cmd,右键“以管理员身份运行”,然后执行下列命令
cd C:\Program Files (x86)\IntelSWTools\openvino\bin\
// 用conda创建虚拟环境,并激活
conda create -n python37 python=3.7
conda activate python37
// 在该环境下执行设置环境变量的脚本
setupvars.bat

这种环境变量的设置方法是临时的,关闭cmd就失效,也可以手动设置永久的环境变量。

  • 接下来为Model Optimizer做准备,因为我只打算将TensorFlow的模型文件作为我的转换媒介,因此我只做关于TensorFlow的准备,其他模型文件的转换可以参考下面的链接
    Model Optimizer Configuration Steps
  • 接着上述的cmd继续执行,如果你已经关闭了cmd,记得激活刚刚创建的虚拟环境并再设置一遍环境变量。
    • 先进入对应的目录
    cd C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\model_optimizer\install_prerequisites
    
    • 查看一下都有哪些东西

      有个protobuf的egg,应该是caffe才需要用的,我们直接执行
    install_prerequisites_tf.bat
    
  • 成功后就算安装完成了,Windows下的安装验证demo就不跑了。
  1. 接下来我们需要把.weights转换成.pb文件,用到了一个GitHub项目,把这个项目下载并解压到树莓派上
    OpenVINO-YOLOV4
    这个项目中的一个脚本“convert_weights_pb.py”能完成这一步,而且依赖tensorflow 1.x的版本,因此推荐在树莓派上运行这个脚本,命令格式如下:
// 首先安装tensorflow,直接pip3 install默认就是1.14.0版本,但是1.14.0有bug,我用了1.13.1版本
// 安装前记得先换源,否则巨慢无比,但实际上还是会很慢,可以在下载的时候把pip需要下载的whl文件单独下载出来,再用pip3 install xxx.whl
pip3 install tensorflow==1.13.1
// 进入OpenVINO项目文件夹,执行该脚本
cd OpenVINO-YOLOV4
// 命令格式中的.names文件、.weights文件是我们自己的
python3 convert_weights_pb.py --class_names 你自己的.names --weights_file 你自己的.weights --data_format NHWC --tiny

出现“Original error was: libf77blas.so.3: cannot open shared object file: No such file or directory”的问题,直接安装就可解决

sudo apt-get install libatlas-base-dev

还可能出现其他的问题,像是缺了某个python包之类的,直接pip3 install即可,要是慢的话就单独下载whl文件再安装。最后,你能够得到转换后的.pb文件:frozen_darknet_yolov4_model.pb

  1. 接下来将.pb转换成IR文件(.xml和.bin)
  • 首先把刚才得到的frozen_darknet_yolov4_model.pb文件和文件夹中的yolo_v4_tiny.json文件传到Windows上,此时必须修改.json文件,因为该文件是按照coco数据集设计的,有80个类,开启后改成我们自己的类的数量即可。
  • 开启cmd,“以管理员身份运行”,先激活之前创建的虚拟环境并设置环境变量,导航到有.pb文件的地方,使用Windows上的Model Optimizer生成IR文件,按照你自己在Windows上的OpenVINO安装路径来运行下面的代码
conda activate python37
cd C:\Program Files (x86)\IntelSWTools\openvino\bin
setupvars.bat
python "C:\Program Files (x86)\IntelSWTools\openvino_2020.4.287\deployment_tools\model_optimizer\mo.py" --input_model frozen_darknet_yolov4_model.pb --transformations_config yolo_v4_tiny.json --batch 1 --reverse_input_channels

我希望你运行成功了,得到frozen_darknet_yolov4_model.bin和frozen_darknet_yolov4_model.xml

  • 把刚刚得到的.xml和.bin文件传到树莓派上的“~/OpenVINO-YOLOV4/pythondemo/2020.4”路径,接下来可以开始运行模型了,由于会弹出图形化界面,因此你需要VNC或者让树莓派连接显示屏才能运行下面的命令
python3 object_detection_demo_yolov4_async.py -i cam -m frozen_darknet_yolov4_model.xml -d MYRIAD

FPS应该在5~7之间,加速成功!

树莓派4B + darknet-yolov4-tiny + 英特尔第二代神经计算棒相关推荐

  1. 英特尔AIDC2018:神经计算棒二代从天而降,软硬生态合作圈尽露锋芒

    允中 发自 国贸大酒店 量子位 报道 | 公众号 QbitAI 浩浩荡荡开了一天半的英特尔人工智能大会(AIDC 2018)刚刚结束.在国贸大酒店三层的大宴会厅里,俨然有地主姿态的英特尔在几场演讲中秀 ...

  2. 英特尔11代 16G内存笔记本,为你免费包邮到家

    为了回馈长期以来各位老铁对本号的关注支持,更好的去看paper,提高技术水平,直接给你送一个英特尔11代 16G内存 高颜值笔记本!两种颜色可供选择,无论是自己用,还是当礼物送人,都比较不错的. 赠送 ...

  3. 英特尔显卡linux管理_英特尔 11 代酷睿大揭秘:这次全是大招

    英特尔在今年九月份正式推出了第 11 代酷睿移动处理器,这次英特尔将 10 纳米 SuperFin 工艺全面带到移动处理器上,同时还有全新的 Willow Cove 内核.Iris Xe 显卡.全新的 ...

  4. 英特尔核显自定义分辨率_华为推出两款MateBook D系列笔记本:搭载英特尔11代酷睿...

    12月23日,华为举行新品发布会,除了推出nova 8系列新机外,其还发布了两款MateBook D系列笔记本,型号分别为D14和D15,新款笔记本全系搭载英特尔11代酷睿处理器,有着出色的核显性能. ...

  5. 多核处理器_英特尔十代酷睿i5-10400大战R5 3600,到底谁是千元处理器一霸?

    Hello大家好,我是兼容机之家的小牛. 要说英特尔十代酷睿中最走量的处理器,莫过于i5 10400这颗千元神U了. 最近我们兼容机之家推出了几款搭载i5 10400等十代酷睿CPU的主机,性价比非常 ...

  6. 英特尔 11 代酷睿桌面酷睿 i9-11900K登场

    根据爆料者 @APISAK 的消息,英特尔 11 代酷睿桌面酷睿 i9-11900K 型号已经出现在了<奇点灰烬>基准测试跑分库里.访问:京东 数据显示,i9-11900K 为 8 核 1 ...

  7. Maxtang大唐英特尔12代J6412无风扇双网口迷你主机真实评测

    今天为大家评测一款无风扇的双网口迷你主机,这款主机来自于maxtang大唐采用了英特尔12代赛扬J6412处理器,产品最出彩的地方就是它的网络配置,不仅拥有双千兆网口,还搭载了SIM卡插槽,并支持4G ...

  8. openvino只支持英特尔6代以上的cpu

    注意:openvino只支持英特尔6代以上的cpu 例子:Intel core i 8250U. 其中,Intel为CPU的生产厂商:core为品牌:i5为系列:8250U中的第一个8代表它为第8代产 ...

  9. intel酷睿游戏计算机,英特尔11代酷睿游戏芯片跑分曝光

    11代酷睿桌面处理器(Rocket Lake-S)将于3月份上市开卖,泄露的跑分显示,终极一代14nm配合Cypress Cove架构可谓炉火纯青,单核直接将AMD Zen3斩落马下.戴尔(DELL) ...

  10. 真真是硬件界饕餮盛宴!京东助力英特尔第九代酷睿处理器中国首发!

    近日,京东联合英特尔在京召开了"京东&英特尔第九代智能酷睿桌面级处理器发布会",并同时宣布京东将与英特尔延续深度战略合作,在中国区域首发英特尔第九代处理器. 首发名单包含了 ...

最新文章

  1. nacos项目搭建(服务提供者,服务消费者)
  2. MySQL双机热备部署
  3. torch.log函数
  4. java 0x0f_Java - 字节 字符
  5. 【DP】【树状数组】免费馅饼(luogu 7302/金牌导航 数据结构优化DP-4)
  6. mysql用 fifo 记录日志_MySQL一丢丢知识点的了解
  7. 门户网站运营方案_网络营销方案涉及的工作内容有哪些
  8. 轻松搞定ServerCore初始设置
  9. C++中static的用法
  10. mysql支持啥系统_快速的掌握MySQL支持的操作系统
  11. 【AD封装】 Type C 封装库 6Pin 24Pin分享下载(带3D视图)
  12. i78750h怎么样
  13. 怎么绑定虚拟服务器,虚拟服务器里怎样绑定ip地址
  14. 向量的点乘与叉乘的几何意义
  15. 博客与计算机相关的内容无法进行查看,博客检索的关键技术研究-计算机科学与技术专业论文.docx...
  16. Ext.grid.GridPanel,CheckboxSelectionModel的全选的问题
  17. Linux基础知识系统学习.NO2——基础字符界面命令
  18. ArcGIS三维建模(一)
  19. 光流文件(.flo)转图像
  20. 名风360搜索优化点击软件

热门文章

  1. MATLAB工具箱概述
  2. 前端开发入门到实战:纯CSS实现数据上报和HTML验证
  3. 引爆点 mobi_开源中的3个新兴引爆点
  4. 2022年股票估值法研究报告
  5. 笔记本计算机运行程序,这几招让你的笔记本电脑运行速度变快 必学技巧
  6. 在w ndoWS7中屏幕保护程序,怎么设置Windows 7屏幕保护时间
  7. android发送短信验证码并自动获取验证码填充文本框
  8. 恶意软件清理助手 1.76
  9. 野火指南者开发板移植 lvgl 库
  10. 酷睿i3、i5、i7 一代 二代 区别对比