英特尔神经棒二代适用于树莓派4B的部署教程

本文详细介绍如何在树莓派4B上配置神经棒,并通过OpenVINO实现摄像头的实时检测识别功能。文章分享了作者遇到的问题及解决方案,适用于使用C/C++或Python进行开发的读者。

前言

前几天拿到了老师的神经棒,花了一天多的时间终于配置好了,期间踩了很多坑,遇到了很多困难的问题,后来翻了很多国内外的论坛,尝试了多个版本后才解决,成功用opencv运行了摄像头实时检测识别等功能。这篇博客用来给自己做个备忘录,也帮助有需要的人。作者水平不高,如有纰漏,烦请多多包涵,指出错误!

事先准备

  1. 树莓派4B

国内各大论坛里都是树莓派3B的配置教程,虽说和4B配置过程大同小异,但还是有一些小小的变化。
本文所用的树莓派硬件及系统版本如下(其实只要大版本一致即可)
重点信息如下:
系统版本:Raspbian 10 Buster(据我所知,2019版本以前的opvino不适配该系统)
CPU型号:BCM2711-v7l在这里插入图片描述

系统版本

  1. openivo_raspbian_2020.1.023版
    这是部署神经棒的必备程序,建议与笔者版本一致,英特尔官方对其更新速度还是挺快的,而且每次更新都会有变化。
    下面是我上传的地址,只需要一个币,大家有币的支持下吧,我确实缺😭
    链接: openivo_raspbian_2020.1.023版.
    也可以在这里下载免费的版本:
    https://download.01.org/opencv/2020/openvinotoolkit/2020.1/

开始配置

  1. 安装Camke
    如果你是使用C或者C++调用神经棒计算的,这一步是必须的,如果你和笔者一样使用python编译,那么这一步可以跳过。
    打开终端,执行:
apt install cmake
  1. 配置openvino

下载好安装包后,移动到树莓派里,放到一个文件夹下,笔者放在了/Downloads/下,大家可以根据自己的路径进行修改。

//打开终端,输入
cd ~/Downloads/

解压包:

tar -xf l_openvino_toolkit_runtime_raspbian_p_2020.1.023.tgz

解压后将文件夹重命名为 openvino_2020
进入到/bin/目录下,输入一下命令打开setupvars.sh文件

sudo mousepad setupvars.sh

大概在第17行,将

INSTALLDIR="${INTEL_OPENVINO_DIR:-<INSTALLDIR>}"

替换为

INSTALLDIR=/home/pi/Downloads/openvino_2020/

然后再命令行中输入

source /home/pi/Downloads/openvino_2020/bin/setupvars.</
### 如何在树莓派4B上部署英特尔Movidius Myriad X计算 #### 准备工作 为了成功在树莓派4B上部署英特尔Movidius Myriad X计算,需要准备以下硬件和软件环境: - **硬件需求**: 树莓派4B一台,USB接口可用;英特尔Movidius Myriad X USB计算一根[^4]。 - **操作系统**: 推荐使用最新版本的Raspbian OS(基于Debian),并确保已安装必要的开发工具链。 #### 软件配置 1. 更新系统包管理器中的索引文件,并升级现有软件包到最新版本: ```bash sudo apt update && sudo apt upgrade -y ``` 2. 安装依赖库以支持OpenVINO™ Toolkit运行时环境所需的组件: ```bash sudo apt install cmake python3-pip libusb-1.0-0-dev git -y pip3 install numpy opencv-python-headless ``` 3. 下载并解压适用于ARM架构平台上的 OpenVINO ™ 工具套件离线安装包 (可以从官方资源获取) ,然后执行脚本来完成初始化设置过程: ```bash tar xf l_openvino_toolkit_arm_*.tgz cd l_openvino_toolkit_arm_* ./install.sh --mode unattended source /opt/intel/openvino/bin/setupvars.sh ``` #### 测试验证 编写简单的Python程序来加载预训练好的深度学习模型并通过调用推理引擎API来进行预测操作演示效果: ```python from openvino.inference_engine import IECore, IENetwork import cv2 as cv import numpy as np ie_core = IECore() net = ie_core.read_network(model="path/to/frozen_graph.xml", weights="path/to/frozen_graph.bin") exec_net = ie_core.load_network(network=net, device_name='MYRIAD') input_blob = next(iter(net.input_info)) out_blob = next(iter(net.outputs)) image = cv.imread('test_image.jpg') resized_image = cv.resize(image,(width,height)) # width height should match input size of model used. processed_input = resized_image.transpose((2, 0, 1)).reshape(input_shape) results = exec_net.infer(inputs={input_blob: processed_input}) print(results[out_blob]) ``` 以上代码片段展示了如何利用OpenCV读取图片数据输入至经过转换后的IR格式模型当中去得到最终输出结果。 #### 性能考量 尽管树莓派4B搭配Intel Movidius系列AI加速卡能够显著提升边缘侧推断效率,但由于主控芯片性能限制,在处理复杂任务场景下可能仍显吃力。因此建议根据实际应用场景选择合适的优化策略或替代方案比如Jetson Nano等更强劲的产品选项[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值