使用Movidius VPU加速边缘视频推断

智能边缘 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
  • video-infer实现边缘视频AI推断
  • arrow
  • 使用Movidius VPU加速边缘视频推断
本页目录
  • 一、前提准备
  • 二、搭建边缘硬件环境
  • 三、模拟场景
  • 四、边缘应用描述
  • 五、边缘应用关系
  • 六、边缘应用配置
  • vi-function配置
  • video-infer配置
  • remote-object配置
  • 七、验证边缘AI检测结果
  • step1:应用部署至边缘节点
  • step2:使用MQTT Box订阅边缘节点本地broker服务
  • step3:使用摄像头检测物体
  • step4:验证被保存的图片当中的对象
  • step5:验证推断结果图片上传至云端对象存储

使用Movidius VPU加速边缘视频推断

更新时间:2025-08-21

本章将使用已经开源的 ssd_mobilenet_v1_coco_2017_11_17 模型完整演示边缘视频AI的DEMO。

一、前提准备

  • 有一个边缘节点设备,本文使用的是宸曜 POC-351VTC,安装ubuntu-18.04-desktop-amd64。
  • 有一个英特尔(Intel) 神经计算棒 Movidius 二代。
  • 有一个摄像头,可以是USB摄像头,也可以是网络摄像头,本实验使用后者,通过边缘节点的PoE口给网络摄像头供电。
  • 有一个物体识别模型,本实验用的是 ssd_mobilenet_v1_coco_2017_11_17,该模型支检测90种物体,具体清单请参考:mscoco_label_map。
  • 边缘节点已经按照快速入门教程连接到云端。

二、搭建边缘硬件环境

搭建边缘硬件环境,如下图所示

WechatIMG975.jpeg

搭建步骤如下

  1. 给边缘节点硬件供电
  2. 网络摄像头连接到PoE口
  3. 无线网卡和Movidius随便插一个USB口

整体环境信息如下

  1. 边缘节点

    • 无线网卡IP:172.30.196.93
    • 与网络摄像头连接的IP:192.168.100.14,需要设置边缘盒子PoE网口的IP地址。

    image.png

  2. 网络摄像头IP

    • 网络摄像头IP:192.168.100.10,出厂默认IP地址
    • RTSP流地址:rtsp://b:a1234567@192.168.100.10:554/Streaming/channels/1/,后续会用到。

      RTSP协议地址通用格式为 rtsp://<username>:<password>@<ip>:<port>/<Streaming/channels/stream_number> ,各参数解释如下

      • <username> :摄像头登录用户名 ,一般可以在摄像头底座当中找到
      • <password> :摄像头登录密码,一般可以在摄像头底座当中找到
      • <ip> :路由器/交换机分配给摄像头的IP地址
      • <port> : RTSP 协议的端口号,一般默认为 554,
      • <Streaming/channels/stream_number> :摄像头信道

三、模拟场景

  1. 摄像头连接边缘盒子,实时探测视野范围内的物体
  2. 当检测到目标物体以后,保存抽帧图像,并同步发送一条消息到边缘broker服务。如果没有检测到目标物体,丢弃抽帧图像。
  3. 支持检测多目标物体,本场景实验检测的物体包括:剪刀、笔记本电脑、书本、键盘和人。

四、边缘应用描述

除了边缘节点连接云端是自动部署的系统应用,还需要在边缘节点上部署以下三个应用

序号 应用名 用途
1 vi-function 模型推断结果后处理函数,将模型推断结果解析成可识别数据
2 video-infer 模型推断应用,负责加载AI模型并执行AI推断
3 remote-object 将边缘推断图片上传到云端对象存储

最终边缘节点上将会有6个边缘应用,如下图所示

image.png

五、边缘应用关系

各模块之间的调用关系如下图所示

image.png

整个视频推断流程如下

  1. 视频抽帧
  2. 加载模型执行AI推断
  3. 调用函数对推断结果做后处理
  4. 基于函数返回结果,保存达到指定阈值的图片
  5. 将推断结果发送到
  6. 订阅本地broker消息,将满足条件的推断图片上传云端对象存储minio

六、边缘应用配置

vi-function配置

  1. 创建函数配置项:vi-function-code,如下图所示:

image.png

  • 标签:baetyl-function: python3-opencv
  • 配置数据变量名:analyse.py,此变量名analyse后续会作为函数入口
  • 配置数据变量值为python代码,代码如下:
Python
1#!/usr/bin/env python
2# -*- coding:utf-8 -*-
3"""
4function to analyse video infer result in python
5"""
6
7import time
8import numpy as np
9
10location = "var/lib/baetyl/image/{}.jpg"
11classes = {
12        1: 'person',73: 'laptop',76: 'keyboard',77: 'cell phone',84: 'book',87: 'scissors'
13}
14
15def handler(event, context):
16    """
17    function handler
18    """
19
20    data = np.fromstring(event, np.float32)
21    mat = np.reshape(data, (-1, 7))
22    objects = []
23    scores = {}
24    for obj in mat:
25        # print("obj:", obj)
26        clazz = int(obj[1])
27        if clazz in classes:
28            score = float(obj[2])
29            if classes[clazz] not in scores or scores[classes[clazz]] < score:
30                scores[classes[clazz]] = score
31            if score < 0.6:
32                continue
33            objects.append({
34                'class': classes[clazz],
35                'score': score,
36                'left': float(obj[3]),
37                'top': float(obj[4]),
38                'right': float(obj[5]),
39                'bottom': float(obj[6])
40            })
41
42    res = {}
43    res["imageDiscard"] = len(objects) == 0
44    res["imageObjects"] = objects
45    res["imageScores"] = scores
46    path = location.format(time.time())
47    if len(objects) != 0:
48        res["imageLocation"] = path
49        res["publishTopic"] = "video/infer/result"
50        res["type"] = "UPLOAD"
51        content = {}
52        content["localPath"] = path
53        content["remotePath"] = path
54        res["content"] = content
55
56    return res
  1. 创建函数应用:vi-function,添加函数服务:vi-function-service,如下图所示:

image.png

  • 服务名称:vi-function-service
  • 服务类型:函数服务,非容器服务
  • 函数配置项:使用之前创建的配置项:vi-function-conf
  • 运行时:python3-opencv
  • 函数入口:analyse.handler。函数入口表示执行函数,对于Python/Node运行时来说,由函数脚本和处理函数名组成。

函数的完整路径是 [服务名称/函数入口] ,则上述 analyse 这个python函数的完整调用路径就是:vi-function-service/analyse。

video-infer配置

  1. 创建配置项:video-infer-conf,如下图所示:

image.png

  • 创建配置数据,变量名为:conf.yml,变量如下:
YAML
1video:
2  uri: 'rtsp://b:a1234567@192.168.100.10:554/Streaming/channels/1/'
3  limit:
4    fps: 1
5process:
6  before:
7    swaprb: true
8    width: 300
9    hight: 300
10  infer:
11    model: var/lib/baetyl/model/frozen_inference_graph.pb
12    config: var/lib/baetyl/model/ssd_mobilenet_v1_coco_2017_11_17.pbtxt
13    backend: openvino
14    device: vpu
15  after:
16    function:
17      name: vi-function-service/analyse
18logger:
19  path: var/lib/baetyl/app-log/video-infer.log
20  level: debug
  • 通过 backend: openvino 和 device: vpu 这两个配置项,实现让video-infer这个应用使用Movidius加速棒的vpu算力来执行边缘推断计算。如果没有这两个配置项,则默认使用CPU推断。
  • video-infer执行AI推断以后会调用分析函数 vi-function-service/analyse
  • 分析函数返回的消息会发布到本地MQTT Broker tcp://baetyl-broker:1883
  1. 创建配置项:video-infer-model,如下图所示

image.png

  • endpoint:对象存储访问地址
  • bucket名称:在对象存储当中创建的bucket名称,此处为model-upload
  • 文件名称:模型文件在对象存储当中的文件名,如果在在目录当中,则这里需要填写目录名称+文件名称,此处为:ssd_mobilenet_v1_coco_2017_11_17.zip
  • AK/SK:对象存储访问凭证
  • MD5:模型文件ssd_mobilenet_v1_coco_2017_11_17.zip的MD5值为:acc050a4e8fcea32edcb30ab510e63b7。边缘节点在下载完ssd_mobilenet_v1_coco_2017_11_17.zip模型文件以后,会对模型文件执行MD5校验,以验证下载文件的完整性。
  • 是否解压:选择 是 ,解压格式为ZIP。边缘节点下载模型文件ssd_mobilenet_v1_coco_2017_11_17.zip以后,会负责将其解压。在本案例当中,ssd_mobilenet_v1_coco_2017_11_17.zip解压以后会得到frozen_inference_graph.pb和ssd_mobilenet_v1_coco_2017_11_17.pbtxt这里两个模型文件。
  1. 创建应用:video-infer,添加容器服务:video-infer-openvino,如下图所示:

image.png

image.png

  • 服务名:video-infer-openvino
  • 镜像:baetyltech/video-infer:v2.1.1
  • 卷配置:

    • conf:添加 video-infer-conf 配置项,作为模块配置。
    • model:添加 video-infer-model 配置项,边缘节点会自动下载ssd_mobilenet_v1_coco_2017_11_17模型文件并解压至/var/lib/baetyl/model目录,然后video-infer应用会从此处加载模型文件frozen_inference_graph.pb和ssd_mobilenet_v1_coco_2017_11_17.pbtxt。
    • image:将AI推断保存的图片从容器内目录/var/lib/baetyl/image映射到宿主机目录。此处参数填写的是video-infer-image,对应宿主机目录/var/lib/baetyl/app-data/video-infer-image。
    • dev:Movidius USB插入到边缘盒子以后,会在宿主机/dev目录下多出一个设备,将宿主机的/dev目录映射到容器内的/dev目录下。
  • 特权选项:

    • 启用特权模式:是。

remote-object配置

  1. 创配配置项:remote-mino-conf,如下图所示:

image.png

添加配置数据变量名为:conf.yml,对应的变量值如下所示:

Plain Text
1clients:
2  - name: minio
3    kind: S3
4    endpoint: 'http://ip:port' # 替换为自己的对象存储地址
5    ak: minioadmin
6    sk: minioadmin
7    timeout: 10m
8    pool:
9      worker: 100
10      idletime: 30s
11    bucket: image-upload
12rules:
13  - name: remote-minio-1
14    source:
15      topic: video/infer/result
16      qos: 1
17    target:
18      client: minio
19logger:
20  path: var/lib/baetyl/app-log/minio.log
21  level: debug
  1. 创建应用:remote-object,然后添加容器服务:remote-object,如下图所示:

image.png

  • 服务名称:remote-object
  • 镜像地址:docker.io/baetyltech/remote-object:v2.1.0
  • 卷配置

    • minio-conf:挂载remote-object服务的配置项
    • image:将宿主机当中的推断图片映射至容器内目录,这样remote-object服务才能拿到图片将其上传至minio对象存储当中。
    • log:如果需要将模块的日志文件映射到宿主机,需要配置此项。

七、验证边缘AI检测结果

step1:应用部署至边缘节点

  1. 将上述应用全部部署至边缘节点,如下图所示:

image.png

  1. 检查边缘节点上的应用部署情况,如下图所示:

image.png

step2:使用MQTT Box订阅边缘节点本地broker服务

在模拟场景当中提到“当检测到目标物体以后,保存抽帧图像,并同步发送一条消息到边缘broker服务”,为了监测发送到broker服务的消息,我们使用MQTT Box工具提前订阅 video/infer/result 这个topic的消息,如下图所示:

image.png

step3:使用摄像头检测物体

  1. 手持摄像头,旋转一周,让摄像头能够扫描到办公桌上的剪刀、笔记本电脑、书本、键盘,以及坐在工位上的人。
  2. 实时查看订阅了hub模块的MQTT Box的消息界面,每检测到一个目标物体,MQTT Box就能订阅到一条消息。

image.png

  1. 将MQTTBox订阅的消息进行Json格式化,得到如下结果:
JSON
1{
2    "content":{
3        "localPath":"var/lib/baetyl/image/1602639487.0222735.jpg",
4        "remotePath":"var/lib/baetyl/image/1602639487.0222735.jpg"
5    },
6    "imageCaptureTime":"2020-10-14T01:38:06.971394704Z",
7    "imageDiscard":false,
8    "imageHight":720,
9    "imageInferenceTime":0.046391136,
10    "imageLocation":"var/lib/baetyl/image/1602639487.0222735.jpg",
11    "imageObjects":[
12        {
13            "bottom":0.9267578125,
14            "class":"scissors",
15            "left":0.166259765625,
16            "right":0.505859375,
17            "score":0.97412109375,
18            "top":0.233154296875
19        }
20    ],
21    "imageProcessTime":0.082386501,
22    "imageScores":{
23        "book":0.09637451171875,
24        "cell phone":0.0443115234375,
25        "person":0.0282135009765625,
26        "scissors":0.97412109375
27    },
28    "imageWidth":1280,
29    "publishTopic":"video/infer/result",
30    "type":"UPLOAD"
31}

通过上述消息,可以得出如下结论

  • 检测到物体是剪刀:"class": "scissors"
  • AI推断为剪刀的得分是0.974:"scissors": 0.974121093751
  • 图片已保存:"imageLocation": "var/lib/baetyl/image/1602639487.0222735.jpg",对应宿主机目录:/var/lib/baetyl/app-data/video-infer-image/1602639487.0222735.jpg

step4:验证被保存的图片当中的对象

  1. SSH登录到边缘节点,查看已经保存了多张抽帧图片,如下图所示:

image.png

  1. 将 1602639487.0222735.jpg 下载到本地电脑,确认该图片当中物体是剪刀,与MQTT Box接收到消息一致,如下图所示:

1602639487.0222735.jpg

step5:验证推断结果图片上传至云端对象存储

打开minio控制台,进入到选择image-upload这个bucket,然后进度到目录var/lib/baetyl/image,我们可以看到从边缘节点上传的图片,如下图所示:

image.png

上一篇
部署自定义容器镜像模型
下一篇
使用CPU实现边缘视频推断