智能边缘控制台-多节点版
EasyEdge 智能边缘控制台——多节点版
整体介绍
智能边缘控制台 - 多节点版(EasyEdge Intelligent EdgeConsole Center 以下简称IECC),是EasyEdge推出的边缘资源管理、服务应用与管理一站式本地化方案。
通过IECC,用户可以方便地在中心节点管理子节点:
- 边缘硬件资源的管理与监控
- EasyDL/BML/EasyEdge的SDK的 离线 / 在线激活,服务管理
- 视频流解析,接入本地和远程摄像头,网页中实时预览
- 自动监控和记录相关视频流推理事件
支持的系统+CPU架构包括:
- Windows x86_64 (Windows 7 ~ Windows 10,暂不支持Windows 11)
- Linux x86_64 / arm32 / arm64
支持各类常见的AI加速芯片,包括:
- NVIDIA GPU / Jetson 系列
- Baidu EdgeBoard FZ系列
- 比特大陆 Bitmain SC / SE 系列
- 华为 Atlas 系列
- 寒武纪 MLU 系列
- 其他EasyDL/EasyEdge/BML支持的AI芯片
连接说明
以下为 中心节点(控制中心)
,边缘节点/子节点
,摄像头
的连接示意:
其中:
- 控制中心需要有固定IP,而边缘节点可以处于多级子网之下,只需IEC能够主动访问到控制中心节点即可
- 模型服务均运行于各边缘节点之上
- 摄像头均与边缘节点相连
Release Note
版本号 | 发布时间 | 更新说明 |
---|---|---|
2.2.0 | 2022-10-27 | 边缘节点新增Android支持;新增onvif/gb28181支持;优化端云通信通道安全 |
2.0.0 | 2022-03-25 | 多节点版上线! |
1.0.2 | 2021-12-22 | 更新视频预览推流库;新增若干AI芯片支持;支持多种芯片温度、功耗展示;多项性能优化 |
1.0.0 | 2021-09-16 | 智能边缘控制台 - 单节点版 IEC 第一版! |
安装
从这里选择您需要的操作系统和CPU架构下载:
- Windows amd64 : intel、AMD的64位x86_84 CPU
- Linux amd64 : intel、AMD的64位x86_84 CPU
- Linux arm : 树莓派等32位的ARM CPU
- Linux arm64 : RK3399、飞腾等64位的ARM CPU
或者从纯离线服务管理页可下载智能边缘控制台
以Linux为例,解压缩后目录结构如下所示:
./EasyEdge-IECC-v{版本号}/
|-- easyedge-iecc
|-- easyedge-iecc-setup.sh
|-- etc/
|-- etc/easyedge-iec.yml
|-- readme.txt
Linux 系统
通过系统服务形式安装(推荐)
以管理员运行bash easyedge-iecc-setup.sh install
即可。
0 EasyEdge-IEC-v2.0.0 > bash ./easyedge-iecc-setup.sh install
[setup]: sudo could not be found
[setup]: Start to install IECC...
[setup]: + bash -c "cp easyedge-iec-linux-amd64 /usr/sbin/easyedge-iecc"
[setup]: + bash -c "chmod +x /usr/sbin/easyedge-iecc"
[setup]: + bash -c "cp easyedge-iec-* /var/lib/easyedge-iecc/fs/tmp"
[setup]: + bash -c "cp etc/easyedge-iecc.service.yml /etc/easyedge-iecc/easyedge-iecc.yml"
[setup]: + bash -c "cp etc/easyedge-iecc.service-conf.init.d /etc/init.d/easyedge-iecc"
[setup]: + bash -c "chmod +x /etc/init.d/easyedge-iecc"
[setup]: Install IECC success!
[setup]: + bash -c "service easyedge-iecc start"
Starting easyedge-iecc: success
[setup]: Start to check IECC status...
[setup]: + bash -c "curl -s 127.0.0.1:8702 >/dev/null"
[setup]: IECC status: OK!
[easyedge-iecc]: default configure file: /etc/easyedge-iecc/easyedge-iecc.yml
[easyedge-iecc]: default log file: /var/log/easyedge-iecc/easyedge-iecc.log
[easyedge-iecc]: service usage: service easyedge-iecc { start | stop }
[setup]: Done!
出现sucess字样,表示安装成功。
- 日志:
/var/log/easyedge-iecc/easyedge-iecc.log
- 系统配置:
/etc/easyedge-iecc/easyedge-iecc.yml
- 服务启动/停止:
service easyedge-iecc { start | stop }
(不同操作系统内可能不同,具体命令参考安装日志) - 配置服务自启动:可根据不同操作系统参考这里进行对应配置
可通过
bash easyedge-iecc-setup.sh uninstall
来卸载,以及bash easyedge-iecc-setup.sh upgrade
来升级为当前安装包的版本
自定义安装(不推荐)
自定义安装仅限于 安装脚本无法识别您的操作系统的情况。
- 拷贝
./EasyEdge-IEC-v2.0.0/
整个目录至自定义文件夹,如/opt/EasyEdge-IEC
- 进入到
/opt/EasyEdge-IEC
- 通过 nohup 等方法运行
./easyedge-iec-linux-{您的系统架构} --com.role=hub
amd64: intel、AMD的64位x86_84 CPU arm:树莓派等32位的ARM CPU * arm64:RK3399、飞腾等64位的ARM CPU - 日志:
./log/easyedge-iecc.log
- 系统配置:
./easyedge-iecc.yml
Windows 系统
打开命令行(非powershell)运行 easyedge-iecc-setup.bat install
。
注:如果遇到hang住的情况,可修改命令行配置
验证安装:
启动之后,打开浏览器,访问 http://{设备ip}:8602/easyedge
即可:
更新服务:
关闭服务,下载最新的安装包,重新执行安装流程即可。
注:1. 中心节点更新到新版之后,已连接的边缘节点会自动跟随中心节点,自我升级到同样的版本。
- 报错: Text file busy. 一般是因为服务没有停止。
使用流程
Step 1 注册并激活边缘节点
- 在IECC导航栏中点击边缘节点,点击页面中的添加边缘节点按钮
- 注册边缘节点,填写基本信息
-
激活边缘节点,根据边缘节点上是否安装智能边缘控制台-单节点版(IEC)分两种激活方式
- 边缘节点未安装IEC:复制提供的命令,在边缘节点的终端中输入执行(命令会自动在当前目录,下载单节点版IEC并注册到控制中心)。终端命令执行完成后,在下方校验激活结果,如结果通过即可完成边缘节点的激活
- 边缘节点已安装IEC:记录页面中提供的IP地址和Token
- 在边缘节点的IEC-系统设置中,打开多节点模式开关,将刚才记录的IP地址和Token填入其中,建立连接
- 边缘节点未安装IEC:复制提供的命令,在边缘节点的终端中输入执行(命令会自动在当前目录,下载单节点版IEC并注册到控制中心)。终端命令执行完成后,在下方校验激活结果,如结果通过即可完成边缘节点的激活
- 成功激活后可在边缘节点页面中看到一行状态为在线的记录
Step 2 上传并下发模型服务
- 在模型服务管理-已添加的模型服务页面中点击添加模型服务
- 上传来自于EasyDL/BML的SDK,目前仅支持Windows/Linux的SDK
- 添加成功后可在已添加的模型服务页面查看添加的模型服务SDK
- 在模型服务SDK上传成功以及边缘节点也添加激活过后,即可将模型服务下发至边缘。点击导航栏-下发模型服务,选择已添加的模型服务,选择下发的目标节点(支持多节点批量下发)进行模型服务下发
- 确定下发配置后,填入模型服务在边缘节点联网激活运行的序列号(支持批量导入)即可完成模型服务下发,序列号可在智能云控制台获取。离线激活的过程可参考IECC中的具体指引
-
完成上述流程后即可在模型服务管理-已下发的模型服务列表中查看记录,并进行下一步应用功能体验
注:完成此步骤后即可在边缘节点进行二次集成已下发的模型服务,具体的集成方式可在文档-某图像任务类型-模型发布中查找对应的SDK开发文档进行集成开发
下发时可以通过高级配置设置服务运行的host和port。若不设置,默认host为0.0.0.0,port为系统随机分配的可用端口
Step 3 配置摄像头
Step 3 - 5 描述的是如何使用IECC可视化进行视频流式推理与应用,对此有需求的用户建议详细查看后续步骤内容。如仅需对下发的模型服务进行二次集成的用户无需进行后续操作,参考SDK对应的开发文档进行集成即可
- 首先需要确定边缘节点已经接入物理摄像头,可通过USB插口接入,也可通过RTSP/RTMP流式协议接入。在摄像头设备页面点击添加摄像头按钮,填写对应的信息添加摄像头。支持设置摄像头的运行时间以及摄像头的抽帧频率
- 添加完成后可在摄像头设备页面查看记录
- 点击预览可查看摄像头预览画面
Step 4 模型服务接入视频流预测
- 模型服务可接入摄像头直接进行预测,并可同时设置告警规则,出发告警条件的结果将会以事件的形式保存至IECC中。点击模型服务管理页面中对应服务的接入摄像头操作
- 将已添加至IECC的摄像头与模型服务关联,并在下方设置对应的事件告警条件。告警规则通过标签阈值的方式来建立,例如设置“猕猴桃”标签阈值80%-100%,则大于80%置信度的“猕猴桃”识别结果将会保存至事件记录中
- 也可在摄像头设备页面-实时预览中查看实时的模型服务预测结果
Step 5 视频事件告警
- 可在事件中心-事件记录中查看满足时间告警条件的图片记录
高级配置说明
在系统设置 - 高级,可以修改控制中心的高级系统配置
# IECc系统配置
version: 3
com:
# hub: 作为中心节点模式启动。 edge: 作为子节点启动
role: hub
# 硬件利用率刷新时间间隔: 过低的刷新间隔可能会消耗CPU资源。
hardwareUsageRefreshSecond: 60
# IECC保存SDK等资源的路径:可填写 "default", 也可以直接填写绝对路径
appDataFolder: default
# 是否开启DEBUG模式:开启之后,将会打印大量日志,便于追踪系统问题
debug: no
# 是否需要用户名/密码登陆,强烈建议打开!(默认用户名/密码为 admin/easyedge)
loginEnabled: yes
# 登录有效时间,单位秒
sessionMaxAge: 3600
logging:
# 是否把日志打印到控制台
toStd: no
# 是否把日志输出到文件。关闭后,将无法在页面中正确显示系统日志
toFile: yes
loggingFile: /var/log/easyedge-iecc/easyedge-iecc.log
# 0:info; -1:debug; -2:verbose
level: -1
webservice:
# WEB服务的监听端口
listenPort: 8602
listenHost: 0.0.0.0
commu:
mqServer:
host: 0.0.0.0
port: 8632
HTTPPort: 8620
maxPayload: 8388608
pingIntervalSecond: 30
# 普通消息等待respond的超时时间
respondWaitTimeoutSecond: 2
nodeRefreshIntervalSecond: 30
# ----------- 以下高级配置一般无需修改 ------------
# !!!注意!!! 请确保理解配置项含义后再做修改
# 数据库相关配置
db:
sqliteDbFile: /var/lib/easyedge-iecc/easyedge-iecc.db
hubDbFile: /var/lib/easyedge-iecc/easyedge-iecc.hub.db
eventDbFile: /var/lib/easyedge-iecc/easyedge-event.db
fileServerDbFile: /var/lib/easyedge-iecc/easyedge-fileserver.hub.db
nodeMonitorDbFile: /var/lib/easyedge-iecc/easyedge-nodemonitor.hub.db
# 推流相关配置
mediaserver:
flvPort: 8613
rtmpPort: 8614
# 文件服务器相关配置
fileserver:
root: /var/lib/easyedge-iecc/fs
FAQ
启动服务后,进程中出现两个easyedge-iec
进程
这是正常现象,IEC通过守护进程的方式来完成更新等操作。
启动服务时,显示端口被占用port already been used
通过修改 easyedge-iecc.yml文件的配置后,再重新启动服务。
安装服务时,报错permission denied
请以管理员身份运行安装程序。
添加SDK时,报错 SDK不支持该硬件。 SDK not supported by this device
一般是因为使用的SDK跟硬件不匹配,如 GPU的SDK,硬件没有GPU卡。 对于Jetson,也可能是Jetpack版本不支持,可以通过查看 本机Jetpack版本和SDK支持的Jetpack版本列表(cpp文件中的文件名来查看)来匹配。