部署模型SDK至Intel Movidius设备

智能边缘 BIE

  • 产品描述
    • 名词解释
    • 使用限制
    • 产品概述
    • 产品优势
    • 应用场景
  • 配置文件说明
    • baetyl-rule
    • baetyl-remote-object
    • baetyl-function
    • baetyl-broker
  • 快速入门
    • 融合模式节点安装
    • 快速入门指南
    • 离线安装k3s+docker
    • 进程模式节点安装
      • 在linux上安装
      • 在windows上安装
  • 典型实践
    • OPC-UA使用
    • 使用BIE函数计算调用文心一言
    • 边缘规则引擎实战
      • 集成Kuiper流式计算引擎
      • 边缘规则实例
    • 将AI中台模型部署至边缘节点
      • 获取AI中台模型部署包进行应用部署
      • 部署模型SDK至Atlas200DK
      • 模型中心1.0
        • 通过AI中台转换模型并下发至边缘
        • 通过AI中台直接将模型下发至边缘
      • 模型中心2.0
        • 将物体检测模型部署至边缘
        • 将图像分类模型部署至边缘
    • 部署PaddleServing模型
      • 使用BIE下发PaddleOCR模型
      • 制作GPU版本Paddle Serving推理镜像
      • 通过BIE部署Paddle Serving
    • Modbus协议采集温湿度传感器
      • 连接边缘baetyl-broker
      • 使用内置modbus驱动采集数据并进行边缘函数计算
      • 数据从baetyl-broker上传至IoTCore
    • 部署EasyDL模型SDK
      • 部署EasyDL烟火检测模型至ARM64节点
    • 部署EasyEdge模型SDK
      • 进程模式下发python SDK模型
      • 使用EasyEdge模型转换获取边缘模型
      • 部署模型SDK至Windows设备
      • 部署模型SDK至Intel Movidius设备
      • 部署模型SDK至Jetson Xavier
    • 部署自定义容器镜像模型
      • 部署mnist手写数字识别模型
      • 部署物体检测模型
    • video-infer实现边缘视频AI推断
      • 使用Movidius VPU加速边缘视频推断
      • 使用CPU实现边缘视频推断
  • 操作指南
    • 主子用户鉴权
    • 设备管理
      • 设备模拟器
      • 子设备数据云边交互方式
      • 进程模式软网关设备接入指南
      • 子设备数据云边交互方式-v2
      • 视频流管理
        • IPC子设备和驱动
        • 边缘转发RTSP视频流
      • 设备接入
        • 设备模型管理
        • 接入模板
        • 设备管理
        • 子设备绑定
      • 驱动管理
        • 进程模式软网关自定义驱动开发
        • 驱动管理
        • GO语言实现示例
        • 自定义驱动开发指南
      • 不同协议设备接入
        • BACnet设备接入
        • OPC-UA设备接入
        • Modbus 设备接入
        • IEC104设备接入
        • OPC-DA设备接入
    • 节点管理
      • 边缘应用获取云端STS鉴权
      • 进程模式节点
      • 远程MQTT消息下发
      • 节点运行模式说明
      • 节点影子
      • 远程调用
      • 容器模式节点
      • 远程调试
      • 远程SSH边缘节点
      • 边缘节点OpenAPI
      • 证书管理
      • 节点预配
    • 业务编排
      • 单元管理
      • 技能管理
      • 常见技能
    • 应用管理
      • 业务模版
      • 应用部署
        • 应用运行模式与分类说明
        • 函数应用
          • 自定义函数与依赖包解耦下发
          • 从CFC引入多个函数下发
          • 典型使用说明
          • 使用函数调用边缘AI模型
          • 自定义函数与依赖包整体下发
        • 容器应用
          • subpath子路径使用说明
          • workdir工作目录使用说明
          • Job类型容器应用
          • 容器应用状态说明
          • 原生yaml接入使用说明
          • 端口映射说明
          • 容器应用工作负载类型说明
          • Deployment类型容器应用
          • DaemonSet类型容器应用
          • QPS监控
          • emptyDir卷使用说明
          • 边缘服务调用
        • 进程应用
          • 进程应用概述
          • 可执行二进制程序类型进程应用
          • 可执行脚本类型进程应用
      • 配置管理
        • 证书
        • 函数
        • 镜像仓库凭证
        • 配置项
        • 密文
        • 镜像
        • 进程程序包
    • AI加速卡
      • AI加速卡通用资源调度方法
      • 自定义加速卡算力指标采集
      • 华为昇腾
        • 昇腾310资源监控
      • 英伟达
        • GPU资源调度-显存隔离
        • Jetson资源监控
        • GPU资源调度-显存共享
        • Jetson依赖说明
        • NVIDIA GPU资源监控
      • 寒武纪
        • MLU270资源监控
      • 百度昆仑
        • 昆仑芯片资源监控
      • 比特大陆
        • 挂载比特大陆边缘计算盒子tpu资源
        • BM-SE5资源监控
  • 服务等级协议SLA
    • 服务等级协议SLA(V1.0)
  • 备份
    • 进程模式应用
    • 部署通用CPU模型
    • 部署模型SDK至Atlas200DK
    • 适配列表
    • 连接边缘节点本地baetyl-broker
    • 使用自定义modbus应用采集
    • NVIDIA GPU资源管理
    • FAQ
    • NVIDIA Jetson专用模型部署-进程模式
    • 容器模式应用
    • 连接边缘节点本地baetyl-broker服务
    • DaemonSet类型和job类型服务部署
    • 通用CPU模型部署-容器模式
    • NVIDIA Jetson专用模型部署-容器模式
    • 功能发布记录
    • 在BIE控制台部署从AI中台下载的模型
    • EasyEdge概述
    • Nvidia_Jetson
      • 使用NVIDIA官方镜像运行模型-容器模式
      • 二进制程序运行模型-进程模式
      • 使用edgekit镜像运行模型-容器模式
    • 下载专区
      • 相关资源下载
  • 产品定价
    • 产品定价
所有文档
menu
没有找到结果,请重新输入

智能边缘 BIE

  • 产品描述
    • 名词解释
    • 使用限制
    • 产品概述
    • 产品优势
    • 应用场景
  • 配置文件说明
    • baetyl-rule
    • baetyl-remote-object
    • baetyl-function
    • baetyl-broker
  • 快速入门
    • 融合模式节点安装
    • 快速入门指南
    • 离线安装k3s+docker
    • 进程模式节点安装
      • 在linux上安装
      • 在windows上安装
  • 典型实践
    • OPC-UA使用
    • 使用BIE函数计算调用文心一言
    • 边缘规则引擎实战
      • 集成Kuiper流式计算引擎
      • 边缘规则实例
    • 将AI中台模型部署至边缘节点
      • 获取AI中台模型部署包进行应用部署
      • 部署模型SDK至Atlas200DK
      • 模型中心1.0
        • 通过AI中台转换模型并下发至边缘
        • 通过AI中台直接将模型下发至边缘
      • 模型中心2.0
        • 将物体检测模型部署至边缘
        • 将图像分类模型部署至边缘
    • 部署PaddleServing模型
      • 使用BIE下发PaddleOCR模型
      • 制作GPU版本Paddle Serving推理镜像
      • 通过BIE部署Paddle Serving
    • Modbus协议采集温湿度传感器
      • 连接边缘baetyl-broker
      • 使用内置modbus驱动采集数据并进行边缘函数计算
      • 数据从baetyl-broker上传至IoTCore
    • 部署EasyDL模型SDK
      • 部署EasyDL烟火检测模型至ARM64节点
    • 部署EasyEdge模型SDK
      • 进程模式下发python SDK模型
      • 使用EasyEdge模型转换获取边缘模型
      • 部署模型SDK至Windows设备
      • 部署模型SDK至Intel Movidius设备
      • 部署模型SDK至Jetson Xavier
    • 部署自定义容器镜像模型
      • 部署mnist手写数字识别模型
      • 部署物体检测模型
    • video-infer实现边缘视频AI推断
      • 使用Movidius VPU加速边缘视频推断
      • 使用CPU实现边缘视频推断
  • 操作指南
    • 主子用户鉴权
    • 设备管理
      • 设备模拟器
      • 子设备数据云边交互方式
      • 进程模式软网关设备接入指南
      • 子设备数据云边交互方式-v2
      • 视频流管理
        • IPC子设备和驱动
        • 边缘转发RTSP视频流
      • 设备接入
        • 设备模型管理
        • 接入模板
        • 设备管理
        • 子设备绑定
      • 驱动管理
        • 进程模式软网关自定义驱动开发
        • 驱动管理
        • GO语言实现示例
        • 自定义驱动开发指南
      • 不同协议设备接入
        • BACnet设备接入
        • OPC-UA设备接入
        • Modbus 设备接入
        • IEC104设备接入
        • OPC-DA设备接入
    • 节点管理
      • 边缘应用获取云端STS鉴权
      • 进程模式节点
      • 远程MQTT消息下发
      • 节点运行模式说明
      • 节点影子
      • 远程调用
      • 容器模式节点
      • 远程调试
      • 远程SSH边缘节点
      • 边缘节点OpenAPI
      • 证书管理
      • 节点预配
    • 业务编排
      • 单元管理
      • 技能管理
      • 常见技能
    • 应用管理
      • 业务模版
      • 应用部署
        • 应用运行模式与分类说明
        • 函数应用
          • 自定义函数与依赖包解耦下发
          • 从CFC引入多个函数下发
          • 典型使用说明
          • 使用函数调用边缘AI模型
          • 自定义函数与依赖包整体下发
        • 容器应用
          • subpath子路径使用说明
          • workdir工作目录使用说明
          • Job类型容器应用
          • 容器应用状态说明
          • 原生yaml接入使用说明
          • 端口映射说明
          • 容器应用工作负载类型说明
          • Deployment类型容器应用
          • DaemonSet类型容器应用
          • QPS监控
          • emptyDir卷使用说明
          • 边缘服务调用
        • 进程应用
          • 进程应用概述
          • 可执行二进制程序类型进程应用
          • 可执行脚本类型进程应用
      • 配置管理
        • 证书
        • 函数
        • 镜像仓库凭证
        • 配置项
        • 密文
        • 镜像
        • 进程程序包
    • AI加速卡
      • AI加速卡通用资源调度方法
      • 自定义加速卡算力指标采集
      • 华为昇腾
        • 昇腾310资源监控
      • 英伟达
        • GPU资源调度-显存隔离
        • Jetson资源监控
        • GPU资源调度-显存共享
        • Jetson依赖说明
        • NVIDIA GPU资源监控
      • 寒武纪
        • MLU270资源监控
      • 百度昆仑
        • 昆仑芯片资源监控
      • 比特大陆
        • 挂载比特大陆边缘计算盒子tpu资源
        • BM-SE5资源监控
  • 服务等级协议SLA
    • 服务等级协议SLA(V1.0)
  • 备份
    • 进程模式应用
    • 部署通用CPU模型
    • 部署模型SDK至Atlas200DK
    • 适配列表
    • 连接边缘节点本地baetyl-broker
    • 使用自定义modbus应用采集
    • NVIDIA GPU资源管理
    • FAQ
    • NVIDIA Jetson专用模型部署-进程模式
    • 容器模式应用
    • 连接边缘节点本地baetyl-broker服务
    • DaemonSet类型和job类型服务部署
    • 通用CPU模型部署-容器模式
    • NVIDIA Jetson专用模型部署-容器模式
    • 功能发布记录
    • 在BIE控制台部署从AI中台下载的模型
    • EasyEdge概述
    • Nvidia_Jetson
      • 使用NVIDIA官方镜像运行模型-容器模式
      • 二进制程序运行模型-进程模式
      • 使用edgekit镜像运行模型-容器模式
    • 下载专区
      • 相关资源下载
  • 产品定价
    • 产品定价
  • 文档中心
  • arrow
  • 智能边缘BIE
  • arrow
  • 典型实践
  • arrow
  • 部署EasyEdge模型SDK
  • arrow
  • 部署模型SDK至Intel Movidius设备
本页目录
  • 1、概述
  • 2、获取 Movidius 类型SDK
  • 3、申请测试序列号
  • 4、获得模型二进制运行程序
  • 4.1 检查SDK是否带有模型二进制执行程序
  • 4.2 编译SDK获得模型二进制执行程序
  • 5、本地验证
  • 5.1 检查是否识别movidius神经计算棒
  • 5.2 制作本地run.sh脚本并验证
  • 6、利用BIE进程模式部署
  • 6.1 工作目录的说明
  • 6.2 进程模式运行说明
  • 6.3 制作程序包并创建程序包配置项
  • 6.4 添加模型文件
  • 6.5 创建进程应用
  • 6.6 创建对应节点并将应用部署到节点上
  • 6.7 验证边缘节点AI推断服务

部署模型SDK至Intel Movidius设备

更新时间:2025-08-21

1、概述

进程模式与容器模式不同,进程模式强依赖于边缘节点的运行环境变量,比如lib库、系统变量等参数。如果没有提前设置好path等环境变量,可能导致云端下发的二进制程序在边缘节点上无法正常运行,甚至运行出错。

而所有的运行环境变量,本质上都可以通过脚本命令进行动态设置,因此如果在一个shell脚本提前设置好环境变量,最后再执行二进制程序,就不再需要为每一台设备重复去设置环境变量了。

本文将描述如何在一个脚本(run.sh)当中定义:(a)需要加载的环境变量和(b)需要运行的二进制程序。然后通过这个脚本执行入口(entry)实现BIE云边协同的进程模式。

2、获取 Movidius 类型SDK

参考 模型转换 章节,此处我们需要再多生成一个 Movidius 类型的SDK。

进入我的模型界面,点击生成端模型。

image.png

选择Jetson芯片和Linux操作系统,点击发布。

image.png

过几分钟,可以在离线计算SDK界面看到生成的Jetson SDK,如下图所以

image.png

点击下载获得Jetson专用SDK:EasyEdge-Linux-m38748-b38748-movidius.zip 。

3、申请测试序列号

点击上图当中的获取序列号激活,进入到序列号管理界面,点击新增测试序列号来获取测试序列号,如下图所示:

image.png

4、获得模型二进制运行程序

4.1 检查SDK是否带有模型二进制执行程序

SDK当中的RES目录是模型资源文件,CPP目录是模型运行程序,解压CPP目录当中的文件,找到demo目录,查看是否有bin文件夹。

如下图所示,SDK包当中带了二进制执行程序(easyedge_serving、easyedge_multhread、easyedge_batch_inferenc),针对这种SDK,我们可以直接使用SDK包当中提到的二进制程序。

image.png

本文使用x86_64架构的cpp包,即baidu_easyedge_linux_cpp_x86_64_VPU_gcc7.5_v1.3.2_20210824.tar.gz这个压缩文件。

4.2 编译SDK获得模型二进制执行程序

如果SDK包当中不带模型二进制执行程序,则需要通过编译程序获取模型二进制执行程序,可以参考:https://ai.baidu.com/ai-doc/EASYDL/1k38n3ade#测试demo

5、本地验证

5.1 检查是否识别movidius神经计算棒

对于硬件使用为Intel Movidius MyRIAD2 / MyRIAD X 的,如果宿主机找不到神经计算棒Intel® Neural Compute Stick,需要执行以下命令添加USB Rules:

Shell
1cp ${cpp_kit位置路径}/thirdparty/openvino/deployment_tools/inference_engine/external/97-myriad-usbboot.rules /etc/udev/rules.d/
2sudo udevadm control --reload-rules
3sudo udevadm trigger
4sudo ldconfig

执行命令以后,建议重启一下。

5.2 制作本地run.sh脚本并验证

创建run.sh脚本,放在cpp_kit目录下,如下图所示:

image.png

run.sh的脚本内容如下:

Shell
1#!/bin/bash
2
3workpath=$(pwd)
4param_y="$1 $2 $3 $4"
5source $workpath/thirdparty/openvino/bin/setupvars.sh && LD_LIBRARY_PATH=$workpath/thirdparty/opencv/lib:$workpath/lib:$LD_LIBRARY_PATH $workpath/bin/easyedge_serving $param_y

将上述x86_64整个目录copy至本地测试机器,然后将RES的绝对路径和测试SN号填写到脚本当中。然后授予run.sh可执行权限,命令如下

Shell
1chmod 755 run.sh

最后在本地执行测试

Shell
1# 必须要管理员权限,否则识别不到加速卡
2sudo ./run.sh /xx/xx/xx/x86_64/RES {测试SN号} 0.0.0.0 24401

正常情况下,打开浏览器,输入:http://[ip]:24401 ,即可看到测试界面。

6、利用BIE进程模式部署

6.1 工作目录的说明

进程模式当中,工作目录路径格式如下:/var/lib/baetyl/run/baetyl-edge/{app-name}/{app-version}/{service-name}/1/。

通过进程模式下发的可执行脚本可以通过如下方式获取真实的工作路径。

Shell
1workpath=$(pwd)

6.2 进程模式运行说明

本节介绍如何下发一个可执行脚本,并在脚本中定义:

  • 需要加载环境变量
  • 需要运行的模型二进制执行程序
  • 需要被调用的模型文件。

如果要使用BIE实现模型下发并运行,需要将上述内容分割为以下几部分:

  • 下发文件

    • 程序包:

      • run.sh:需要有可执行权限
      • program.yml:配置文件,在program.yml配置文件当中定义了entry: "run.sh"
      • cpp_kit相关文件:在run.sh当中定义会使用cpp_kit当中的二进制运行程序,以及依赖的lib库。
    • 配置项:模型资源文件,上传对象存储
  • 启动参数

    • 模型资源文件下发以后的工作目录。
    • 模型序列号
    • 服务暴露IP
    • 服务暴露端口

基于上述需要的内容,我们开始后面的的操作。

6.3 制作程序包并创建程序包配置项

本demo当中使用的程序包,主要包含可执行脚本、程序配置文件program.yml和cpp_kit文件:

  • run.sh:具有可执行权限的运行脚本,run.sh的脚本如下:
Bash
1#!/bin/bash
2
3workpath=$(pwd)
4
5# program_apath是固定的,在后面创建进程服务的时候,选择程序包以后,就设定了程序路径为工作目录下的/var/lib/baetyl/bin目录。
6program_apath=$workpath/var/lib/baetyl/bin
7
8echo "pram1 is $1"
9echo "pram2 is $2"
10echo "pram3 is $3"
11echo "pram4 is $4"
12
13param_x=$workpath"/"$1" "$2" "$3" "$4
14param_y="$workpath/$1 $2 $3 $4"
15
16echo "program_apath is $program_apath"
17echo "param_x is $param_x"
18echo "param_y is $param_y"
19
20source $program_apath/thirdparty/openvino/bin/setupvars.sh && LD_LIBRARY_PATH=$program_apath/thirdparty/opencv/lib:$program_apath/lib:$LD_LIBRARY_PATH $program_apath/bin/easyedge_serving $param_y
  • program.yml:可执行文件的配置文件,在其中定义了entry: "run.sh",对应本地验证程序当中的./run.sh命令。详细配置如下:

image.png

  • cpp_kit:模型二进制程序以及依赖lib库

程序包整理目录结构如下图所示:

image.png

将上述文件进行压缩,建议使用zip压缩命令,执行命令如下:

Bash
1$ ls
2ReadMe.txt	bin		include		lib		program.yml	run.sh		src		thirdparty
3# 将当前目录下的文件压缩到压缩包当中
4$ zip -r movidius-native.zip * 

将压缩包上传到对象存储中,然后在BIE云管平台当中创建程序包类型配置项。

image.png

6.4 添加模型文件

将模型资源文件RES目录压缩,并上传至对象存储,然后在BIE配置项中引入这个压缩文件。

制作压缩包建议使用zip压缩命令,执行命令如下:

Bash
1#  查看当前目录下的文件,应该可以看到RES目录
2$ ls
3RES	cpp	python
4# 将RES目录压缩
5$ zip -r RES.zip RES

image.png

6.5 创建进程应用

添加进程服务,将模型以卷的形式添加到服务中。这里的目录填的是工作目录下的相对路径,如下图所示。

image.png

添加启动参数如下:

image.png

  • 因为上面的RES.zip解压以后,会带有一个RES目录,所以启动参数当中的模型资源文件路径为var/lib/baetyl/sdk/RES。是相对于上述卷配置当中模型文件配置项相对路径var/lib/baetyl/sdk多了一层RES。
  • 此处的4个参数,与run.sh脚本当中的4个输入参数$1 $2 $3 $4相对应

6.6 创建对应节点并将应用部署到节点上

image.png

6.7 验证边缘节点AI推断服务

通过浏览器打开在线推断服务:http://「ip」 :24401/,上传测试图片,推断结果如下,证明AI服务正常启动。

image.png

上一篇
部署模型SDK至Windows设备
下一篇
部署模型SDK至Jetson Xavier