部署通用CPU模型

智能边缘 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
  • 部署通用CPU模型
本页目录
  • 一、前提假设
  • 二、在EasyEdge控制台生成端模型
  • 1.获取mobilnetv1-ssd-voc-fluid原模型
  • 2.在EasyEdge上传原模型
  • 3.生成端模型
  • 4.在SDK列表下载端模型
  • 三、在BIE控制台创建模型服务并下发
  • 1.AI模型上传
  • 2.创建AI模型配置项
  • 3.创建AI应用并部署到边缘节点
  • 4.验证边缘AI服务

部署通用CPU模型

更新时间:2025-08-21

本教程说明如何使用EasyEdge生成端模型,以及如何使用BIE将模型下发至边缘设备。

一、前提假设

本案例的前提条件是已完成快速入门当中的操作,边缘节点已连接至云端,并处于在线状态。


二、在EasyEdge控制台生成端模型

1.获取mobilnetv1-ssd-voc-fluid原模型

原始模型可以是用户自己训练的模型,也可以使用现成的模型。在本教程当中,我们将使用一个基于 paddle 框架的 物体检测 模型 mobilnetv1-ssd-voc-fluid。

image.png


2.在EasyEdge上传原模型

打开EasyEdge官网,点击 立即使用 ,登录EasyEdge控制台。这里使用的登录账号就是百度智能云的账号,与BIE账号一致。

image.png

进入 EasyEdge,点击 上传模型 。

image.png

在 上传原模型 界面,输入原模型信息:

  • 模型名称:用户自定义,此处输入 mobilnetv1-ssd-voc-fluid-v2
  • 模型类型:物体检测
  • 模型框架:PaddlePaddle
  • 模型网络:MobileNetV1-SSD
  • 网络结构:选择模型目录当中以的model文件
  • 网络参数:选择模型目录当中以的params文件
  • 模型标签:选择模型目录当中以的label_list.txt
  • 其他配置:选择模型目录当中以的preprocess_args.json

image.png


3.生成端模型

点击 校验并提交模型 ,校验通过以后,进入到 生成端模型 菜单,在此处设置此模型需要适配的端环境,如下图所示:

image.png

点击 生成模型 ,进入到模型生成阶段,这个过程大约需要几分钟,实际实际取决于模型的大小。

此处我们生成基于Linux操作系统的通用ARM芯片版本和通用x86芯片版本的端模型,分别对应 Linux-arm64 和 Linux-amd64 这两种架构。

4.在SDK列表下载端模型

在模型生成完毕以后,进入到 SDK列表 ,可以看到生成的端模型

image.png

点击下载,获取V1(amd64)、V2(arm64)两个不同芯片架构版本的端模型,并计算两个zip文件的MD5值,后续用于模型下发校验文件完整性。

版本 模型SDK文件名 模型文件MD5值 芯片架构
V2 EasyEdge-Linux-m38748-b38748-x86.zip 87a6a8f625fbb4715186c374d2af7add amd64
V1 EasyEdge-Linux-m38748-b38748-arm.zip ff323155e61a99fc2b152f39a01636e0 arm64

此处获得的EasyEdge-Linux-m38748-b38748-x86.zip 点此下载 和 EasyEdge-Linux-m38748-b38748-arm.zip 点此下载 两个文件就是我们的AI模型。


三、在BIE控制台创建模型服务并下发

1.AI模型上传

在得到AI模型以后,需要将AI模型上传到对象存储当中,BIE支持从以下对象存储当中获取模型文件:

  • Baidu BOS
  • AWS S3标准的对象存储,例如AWS S3,CEPH,Minio

模型上传Baidu BOS

如果使用的是Baidu BOS,操作步骤如下:

  • 创建bucket:bucket-demo-01
  • 在bucket当中创建目录:easyedge
  • 将模型文件上传到easyedge目录下,如下图所示:

image.png

模型上传到Minio

如果使用自己搭建的Minio,操作步骤如下:

  • 登录Minio
  • 输入用户名密码,一般默认用户名密码如下:

    • ak:AKIAIOSFODNN7EXAMPLE
    • sk:wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
  • 创建bucket:model-upload
  • 上传模型文件到bucket下,如下图所示:

image2020-9-27_11-30-43.png

2.创建AI模型配置项

进入配置管理界面,点击创建配置项,填写配置项名称:mobilnetv1-ssd-voc-fluid-arm64。然后点击引入文件,填写AI模型文件在对象存储当中的下载信息。

image.png

方案一:从Baidu BOS引入文件

在公有云环境下,BIE与BOS账号集成打通,如果从BOS引入文件,不需要输入用户名密码,直接通过下拉菜单选择模型文件位置即可。如果是引入非当前BIE账号下的模型文件,则需要输入访问BOS的AK\SK

image2020-9-25_17-37-9.png

方案二:从AWS S3引入文件

如果需要从AWS S3,或者是满足AWS S3标准的兑现存储(CEPH、Minio)当中下载模型文件,则按照以下案例输入模型文件下载信息,实际使用的的是自己搭建的minio服务。

image.png

3.创建AI应用并部署到边缘节点

进入应用部署界面,点击创建应用,按照提示以此填写:①基本信息->②服务配置->③目标节点。

①基本信息

在基本信息界面填写应用的基本信息,如下图所示:

image.png

  • 应用名称:edge-ai-demo-app
  • 应用类型:容器应用
  • 应用描述:可选,可为空

②服务配置

在服务配置界面,填写服务信息,点击添加服务,在弹出框当中填写如下信息:

image.png

image.png

  • 基本信息

    • 服务名称:object-detection
    • arm镜像地址:registry.baidubce.com/aiot/edgekit_armv8:1.0.2
    • amd镜像地址:registry.baidubce.com/aiot/edgekit_x86:1.0.1
  • 卷配置

    • 卷名称:ai-model
    • 类型:配置项
    • 参数:从下拉框当中选择前面创建的AI模型配置项
    • 容器目录:/mnt/easyedge
    • 读写权限:读写
  • 端口映射

    • 宿主机端口:8088
    • 容器端口:8701
    • 协议:TCP
  • 启动参数(启动参数与模型和推断镜像强相关,启动参数并非所有模型都是标准的)

    • /bin/bash
    • /home/work/easyedge/serving/bootstrap.sh
  • 其他

    • 使用默认配置

③目标节点

在应用部署当中,可以选择选择将应用部署至哪些边缘节点,部署的逻辑是通过边缘节点的标签进行匹配。例如edge-node这个边缘节点有一个baetyl-node-name: edge-node这样的KV标签,如下图所示:

image.png

那么目标节点界面,点击匹配标签,添加baetyl-node-name: edge-node作为目标节点标签,如下图所示:

image.png

在添加完毕以后,系统自动基于标签匹配出目标节点为edge-node,如下图所示:

image.png

4.验证边缘AI服务

打开原模型的label_list.txt文件,我们可以看到此模型可以识别以下种类物体: background、 aeroplane、 bicycle、 bird、 boat、 bottle、 bus、 car、 cat、 chair、 cow、 diningtable、 dog、 horse、 motorbike、 person、 pottedplant、 sheep、 sofa、 train、 tvmonitor。

可以看到此模型可以识别人和狗这两种物体,我们可以找一张遛狗的测试图片。

浏览器校验

本案例当中的AI推断服务提供了web操作界面,所以可以通过web界面上传上述测试图片。打开浏览器,访问:http://[边缘节点IP地址]:8088/。如果能够打开界面,表示边缘推断服务正常启动。此时上传测试图片,推断服务将自动给出推断结果,如下图所示,在置信度为80%时,识别出图片当中有3个人,1条狗,置信度可用户自定义修改。

image2020-8-18_20-1-47.png

API校验

ai-infer-service作为一个容器服务运行在边缘节点,它同时对外提供API访问接口,支持被其他应用调用,并返回物体检测结果。具体API使用参考EasyEdge SDK文档

下面通过python代码调用接口进行示例说明:

  • 拷贝下面的python代码保存至本地,命名为test_ai_model_api.py。
Python
1import requests
2 
3with open('./1.jpg', 'rb') as f:
4    img = f.read()
5 
6# params is GET params,  data is POST Body
7result = requests.post('http://[边缘节点ip]:8088/', params={'threshold': 0.8},data=img).json()
8 
9print (result)
  • 下载图片 1.jpg,保存至与test_ai_model_api.py同目录下。
  • 执行test_ai_model_api.py
Shell
1python test_ai_model_api.py
  • 查看接口返回结果为如下JSON,同样标识识别出1个人和3条狗。
JSON
1{
2    'cost_ms': 179,
3    'error_code': 0,
4    'results': [{
5        'confidence': 0.9943918585777283,
6        'index': 12,
7        'label': 'dog',
8        'location': {
9            'height': 397,
10            'left': 100,
11            'top': 691,
12            'width': 383
13        },
14        'name': 'dog',
15        'score': 0.9943918585777283,
16        'x1': 0.14523082971572876,
17        'x2': 0.6987910866737366,
18        'y1': 0.6263848543167114,
19        'y2': 0.9866765737533569
20    }, {
21        'confidence': 0.9922541379928589,
22        'index': 15,
23        'label': 'person',
24        'location': {
25            'height': 304,
26            'left': 547,
27            'top': 332,
28            'width': 92
29        },
30        'name': 'person',
31        'score': 0.9922541379928589,
32        'x1': 0.7918291687965393,
33        'x2': 0.9249030947685242,
34        'y1': 0.30082497000694275,
35        'y2': 0.5762962102890015
36    }, {
37        'confidence': 0.9846013784408569,
38        'index': 15,
39        'label': 'person',
40        'location': {
41            'height': 1020,
42            'left': 311,
43            'top': 63,
44            'width': 308
45        },
46        'name': 'person',
47        'score': 0.9846013784408569,
48        'x1': 0.4507014751434326,
49        'x2': 0.8969031572341919,
50        'y1': 0.05781838297843933,
51        'y2': 0.9817966222763062
52    }, {
53        'confidence': 0.9536634683609009,
54        'index': 15,
55        'label': 'person',
56        'location': {
57            'height': 357,
58            'left': 35,
59            'top': 327,
60            'width': 149
61        },
62        'name': 'person',
63        'score': 0.9536634683609009,
64        'x1': 0.05083557963371277,
65        'x2': 0.2662031948566437,
66        'y1': 0.2963605523109436,
67        'y2': 0.6200013160705566
68    }]
69}

上一篇
进程模式应用
下一篇
部署模型SDK至Atlas200DK