树莓派4B + darknet-yolov4-tiny + 英特尔第二代神经计算棒
树莓派4B + darknet-yolov4-tiny + 英特尔第二代神经计算棒
记录整个部署的步骤:
- 英特尔第二代神经计算棒(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”目录下 - 记录安装使用的命令行代码
- 解压并安装到/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
- 现在可以插入英特尔第二代神经计算棒了
- 在树莓派上安装完OpenVINO,接下来就可以将darknet版本的yolov4-tiny模型(.weights文件)转换成OpenVINO支持的模型文件了,包括Caffe、TensorFlow(2020.4可能只支持1.x的版本)、MXNet、ONNX和Kaldi的模型文件,我们就选择转换成TensorFlow的.pb文件吧。
- 将.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文件可能不兼容。 - 选择在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就不跑了。
- 接下来我们需要把.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
- 接下来将.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 + 英特尔第二代神经计算棒相关推荐
- 英特尔AIDC2018:神经计算棒二代从天而降,软硬生态合作圈尽露锋芒
允中 发自 国贸大酒店 量子位 报道 | 公众号 QbitAI 浩浩荡荡开了一天半的英特尔人工智能大会(AIDC 2018)刚刚结束.在国贸大酒店三层的大宴会厅里,俨然有地主姿态的英特尔在几场演讲中秀 ...
- 英特尔11代 16G内存笔记本,为你免费包邮到家
为了回馈长期以来各位老铁对本号的关注支持,更好的去看paper,提高技术水平,直接给你送一个英特尔11代 16G内存 高颜值笔记本!两种颜色可供选择,无论是自己用,还是当礼物送人,都比较不错的. 赠送 ...
- 英特尔显卡linux管理_英特尔 11 代酷睿大揭秘:这次全是大招
英特尔在今年九月份正式推出了第 11 代酷睿移动处理器,这次英特尔将 10 纳米 SuperFin 工艺全面带到移动处理器上,同时还有全新的 Willow Cove 内核.Iris Xe 显卡.全新的 ...
- 英特尔核显自定义分辨率_华为推出两款MateBook D系列笔记本:搭载英特尔11代酷睿...
12月23日,华为举行新品发布会,除了推出nova 8系列新机外,其还发布了两款MateBook D系列笔记本,型号分别为D14和D15,新款笔记本全系搭载英特尔11代酷睿处理器,有着出色的核显性能. ...
- 多核处理器_英特尔十代酷睿i5-10400大战R5 3600,到底谁是千元处理器一霸?
Hello大家好,我是兼容机之家的小牛. 要说英特尔十代酷睿中最走量的处理器,莫过于i5 10400这颗千元神U了. 最近我们兼容机之家推出了几款搭载i5 10400等十代酷睿CPU的主机,性价比非常 ...
- 英特尔 11 代酷睿桌面酷睿 i9-11900K登场
根据爆料者 @APISAK 的消息,英特尔 11 代酷睿桌面酷睿 i9-11900K 型号已经出现在了<奇点灰烬>基准测试跑分库里.访问:京东 数据显示,i9-11900K 为 8 核 1 ...
- Maxtang大唐英特尔12代J6412无风扇双网口迷你主机真实评测
今天为大家评测一款无风扇的双网口迷你主机,这款主机来自于maxtang大唐采用了英特尔12代赛扬J6412处理器,产品最出彩的地方就是它的网络配置,不仅拥有双千兆网口,还搭载了SIM卡插槽,并支持4G ...
- openvino只支持英特尔6代以上的cpu
注意:openvino只支持英特尔6代以上的cpu 例子:Intel core i 8250U. 其中,Intel为CPU的生产厂商:core为品牌:i5为系列:8250U中的第一个8代表它为第8代产 ...
- intel酷睿游戏计算机,英特尔11代酷睿游戏芯片跑分曝光
11代酷睿桌面处理器(Rocket Lake-S)将于3月份上市开卖,泄露的跑分显示,终极一代14nm配合Cypress Cove架构可谓炉火纯青,单核直接将AMD Zen3斩落马下.戴尔(DELL) ...
- 真真是硬件界饕餮盛宴!京东助力英特尔第九代酷睿处理器中国首发!
近日,京东联合英特尔在京召开了"京东&英特尔第九代智能酷睿桌面级处理器发布会",并同时宣布京东将与英特尔延续深度战略合作,在中国区域首发英特尔第九代处理器. 首发名单包含了 ...
最新文章
- nacos项目搭建(服务提供者,服务消费者)
- MySQL双机热备部署
- torch.log函数
- java 0x0f_Java - 字节 字符
- 【DP】【树状数组】免费馅饼(luogu 7302/金牌导航 数据结构优化DP-4)
- mysql用 fifo 记录日志_MySQL一丢丢知识点的了解
- 门户网站运营方案_网络营销方案涉及的工作内容有哪些
- 轻松搞定ServerCore初始设置
- C++中static的用法
- mysql支持啥系统_快速的掌握MySQL支持的操作系统
- 【AD封装】 Type C 封装库 6Pin 24Pin分享下载(带3D视图)
- i78750h怎么样
- 怎么绑定虚拟服务器,虚拟服务器里怎样绑定ip地址
- 向量的点乘与叉乘的几何意义
- 博客与计算机相关的内容无法进行查看,博客检索的关键技术研究-计算机科学与技术专业论文.docx...
- Ext.grid.GridPanel,CheckboxSelectionModel的全选的问题
- Linux基础知识系统学习.NO2——基础字符界面命令
- ArcGIS三维建模(一)
- 光流文件(.flo)转图像
- 名风360搜索优化点击软件