智能边缘控制台-单节点版
EasyEdge 智能边缘控制台-单节点版 IEC
EasyEdge Intelligent Edge Console (以下简称IEC)是EasyEdge推出的边缘设备管理的本地化方案。可以运行于多种架构、多系统、多类型的终端之上。通过IEC,用户可以方便地在本地进行
- 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芯片
- 完整列表可参考这里
Release Note
注意:2.0.0之后,默认以系统服务形式安装iec,无法兼容1.x版本的iec
版本号 | 发布时间 | 更新说明 |
---|---|---|
2.2.2.1 | 2023-08-30 | 系统稳定性优化 |
2.2.2.0 | 2023-03-16 | 支持多媒体服务器硬件编解码 |
2.2.1 | 2022-11-15 | 修复告警规则删除问题 |
2.2.0 | 2022-10-27 | 新增onvif/gb28181支持;完善端云通信逻辑 |
2.0.0 | 2022-03-22 | 支持连接中心节点IECC;支持以系统服务安装 |
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
或者从纯离线服务管理页可下载智能边缘控制台
您也可以通过先安装多节点版本IECC,通过中心节点来自动连接安装边缘节点。
Linux 安装
解压缩之后,目录结构如下
0 EasyEdge-IEC-v2.0.0-linux-amd64-standard > tree .
.
├── easyedge-iec
├── easyedge-iec-setup.sh
├── etc
│ └── easyedge-iec.yml
└── readme.txt
以系统服务形式安装(推荐)
以root用户运行bash ./easyedge-iec-setup.sh install
即可
[setup]: sudo could not be found
[setup]: Start to install IEC...
[setup]: + bash -c "./easyedge-iec --com.role=edge --service=install"
[setup]: + bash -c "cp /code/EasyEdge-IEC-v2.2.2-linux-amd64-standard/easyedge-iec-setup.sh /usr/sbin/easyedge-iec-setup.sh"
[setup]: Install IEC success!
[setup]: + bash -c "/usr/sbin/easyedge-iec --com.role=edge --service=start"
[setup]: Start to check IEC status...
[setup]: + bash -c "curl -s 127.0.0.1:8702 >/dev/null"
[setup]: + bash -c "curl -s 127.0.0.1:8702 >/dev/null"
[setup]: + bash -c "/usr/sbin/easyedge-iec --com.role=edge --service=status | grep running > /dev/null 2>&1"
[setup]: IEC status: OK!
[easyedge-iec]: default configure file: /etc/easyedge-iec/easyedge-iec.yml
[easyedge-iec]: default log dir: /var/log/easyedge-iec/
[easyedge-iec]: service usage: service easyedge-iec { start | stop }
[setup]: Done!
- 日志:
/var/log/easyedge-iec/easyedge-iec.log
- 系统配置:
/etc/easyedge-iec/easyedge-iec.yml
- 服务启动/停止:
service easyedge-iec { start | stop }
(不同操作系统内可能不同,具体命令参考安装日志)
自定义安装(不推荐)
自定义安装方法仅限于 安装脚本无法识别的情况。
- 拷贝
./EasyEdge-IEC-v2.0.0-linux-amd64-standard/
整个目录至自定义文件夹,如/opt/EasyEdge-IEC
- 进入到
/opt/EasyEdge-IEC
- 通过 nohup 等方法运行
./easyedge-iec-linux-{您的系统架构}
amd64: intel、AMD的64位x86_84 CPU arm:树莓派等32位的ARM CPU * arm64:RK3399、飞腾等64位的ARM CPU - 日志:
./log/easyedge-iec.log
- 系统配置:
./easyedge-iec.yml
Windows 安装
解压缩之后,安装目录如下所示:
0 tmp2 > tree EasyEdge-IEC-v2.2.2-windows-amd64-standard
EasyEdge-IEC-v2.2.2-windows-amd64-standard
├── easyedge-iec.exe
├── easyedge-iec-setup.bat
├── etc
│ └── easyedge-iec.yml
└── readme.txt
1 directory, 4 files
打开命令行(非powershell)运行 easyedge-iec-setup.bat install
。
如果遇到hang住的情况,可修改命令行配置 启动之后,打开浏览器,访问
http://{设备ip}:8702/easyedge/iec
即可:
启动之后,打开浏览器,访问 http://{设备ip}:8702
即可:
默认用户名密码为 admin / easyedge
功能使用说明
①添加模型服务
首先,点击导航栏的「本地模型服务」-「添加模型服务」。在页面中定义服务名称后,将已经下载好的Linux/Windows版本的SDK与IEC关联。关联完毕后可按两种激活方式,激活使用SDK。
部分SDK需要提前安装系统依赖,如TRT等,具体请参考EasyDL/BML/EasyEdge SDK使用文件中的环境依赖安装说明
联网激活
- 在关联SDK完成后,需要在百度智能云控制台对应部署方式管理页中新增测试序列号或购买正式序列号。(图中以服务器版SDK为例)
- 再在IEC中填入所申请的序列号
- 配置服务,在服务端口不冲突占用的情况下,使用默认即可
- 添加并激活
离线激活
- 在IEC总览页面下载「指纹文件」
- 在百度智能云的控制台中找到SDK对应的管理列表,图中以服务器SDK为例。申请序列号后,点击对应序列号尾部的「离线激活」操作,按指引激活
- 在IEC的添加模型服务页面,上传下载好的授权文件,完成激活
激活完成后即可在「模型服务管理」列表中启动服务,使用后续的操作栏功能。
序列号激活错误码
错误码 | 文案 | 描述 |
---|---|---|
4001 | parameters missing. 参数缺失 | |
4002 | parameters invalid. 参数不合法 | |
4003 | model invalid. 模型信息不合法 | |
4004 | no more activation left. 该序列号和该设备的激活次数超上限 | |
4005 | the serial key is out of date. 该序列号过期 | |
4006 | the serial key has been activated. 该序列号已被其他设备激活 | 该序列号已被其他设备激活,不能重复激活。 |
4007 | account invalid. 序列号不能用于其他账号的模型 | 序列号不能用于其他账号的模型,只能用于绑定账号的模型。 |
4008 | serial key invalid. 序列号不合法 | 序列号不存在或找不到 |
4009 | bundle id invalid. 包名不合法 | |
4010 | product invalid. 产品不合法 | 如easydl的SDK使用BML的序列号来激活,会报该错误 |
4011 | platform invalid. 平台不合法 | |
4012 | activate too frequent. 激活太频繁 | 激活太频繁,请稍后再进行激活。 |
4013 | device type and license type not match. 硬件类型和序列号类型不匹配 | 如使用加速版序列号激活基础版SDK会报该错误 |
4014 | exceed max activate device num. 超过最大授权数量 | |
4015 | technology invalid. 技术类型不合法 | |
4016 | exceed max activate entity num. 超过最大模型数量 | |
4017 | device invalid. 设备不合法 | |
4018 | model invalid. 模型不合法 |
体验本地demo
点击「本地demo体验」即可在立即上传图片进行预测
接入摄像头
使用接入摄像头功能首先需要添加摄像头并创建告警规则,请参考第②步和第③步,完成后按照第④步操作
注:服务启动后也可参考「模型发布」模块的技术文档进行开发使用,本文档主要介绍IEC使用功能
②添加摄像头
导航栏点击「我的摄像头」-「添加摄像头」,定义摄像头名称、备注后即可添加摄像头。支持本地摄像头、网络摄像头、ONVIF协议摄像头和GB28181协议摄像头。 摄像头添加成功后即可设置摄像头的运行时间和频率
③创建告警规则
导航栏点击「本地事件」-「本地事件记录」,切换至「告警规则管理」tab。点进创建告警规则
选择要关联的模型服务,并配置产生告警不同标签需要满足的阈值条件
④摄像头接入模型服务预测
点击「本地模型服务」-「模型服务管理」中,所需接入预测的服务的「接入摄像头」
在弹出的弹窗中选择第②步中添加的摄像头,并选择第③步中创建的告警规则,此时点击确认即可在「摄像头管理」中的实时预览功能中查看摄像头预测结果
⑤本地事件
点击导航栏「本地事件记录」,可通过服务名称、摄像头名称、事件记录的时间、标签及置信度来筛选识别结果查看,多个标签及置信度同样也是“或"的逻辑记录。如有想要删除的事件数据可选择后删除,全选为本页全选。
⑥连接到智能边缘控制台-多节点版(IECC)
与中心节点连接之后,边缘节点主程序版本会自动随控制中心版本升级。(>2.0.0)
- Step 1 在IECC中添加边缘节点,选择「边缘节点已安装IEC」,并记录IP地址与Token
- Step 2 在IEC的系统设置中打开多节点模式,并填入刚才记录的IP地址与Token,点击建立连接
- 连接完成后即可在中心节点IECC去监控/管理/应用在边缘节点上的IEC
⑦多媒体服务器使用硬件编解码
点击导航栏「设置」-「系统设置」,会自动检测当前硬件是否支持开启硬件编解码,如支持则可开启
配置项*
配置文件easyedge-iec.yml
中有关于IEC的各项配置说明,一般无需修改,请确保理解配置项含义之后,再做修改。
# IEC系统配置
# ----------- 高级配置一般无需修改 ------------
# !!!注意!!! 请确保理解配置项含义后再做修改
version: 3
com:
# hub: 作为中心节点模式启动。 edge: 作为子节点启动
# role: edge
# 硬件利用率刷新时间间隔: 过低的刷新间隔可能会消耗CPU资源。
hardwareUsageRefreshSecond: 60
# 事件监测触发扫描周期
eventTriggerIntervalSecond: 10
# IEC保存SDK等资源的路径:可填写 "default", 也可以直接填写绝对路径
appDataFolder: /var/lib/easyedge-iec/appdata
# 是否开启DEBUG模式:开启之后,将会打印大量日志,便于追踪系统问题
debug: no
# 是否需要用户名/密码登陆,强烈建议打开!(默认用户名/密码为 admin/easyedge)
loginEnabled: yes
# 登录有效时间,单位秒
sessionMaxAge: 3600
logging:
# 是否把日志打印到控制台
toStd: no
# 是否把日志输出到文件。关闭后,将无法在页面中正确显示系统日志
toFile: yes
# loggingFile: /var/log/easyedge-iec/easyedge-iec.log
loggingFolder: /var/log/easyedge-iec/
# 0:info; -1:debug; -2:verbose 。 设置为<-1时,SDK HTTP服务会输出DEBUG日志
level: -1
webservice:
# WEB服务的监听端口
listenPort: 8702
listenHost: 0.0.0.0
sdk:
# GPU SDK所使用的cuda版本:auto(自动检测) / 9 / 10 / 10.2 / 11.0 / 11.1。如果auto检测不正确,可以强制指定版本号。更换版本只对新添加的模型有效
cudaVersion: auto
# AI服务启动时,额外配置的 LD_LIBRARY_PATH(linux) 或者 PATH(windows)
libPath: ./
# AI服务启动时,额外配置的其他环境变量。
ENVs:
EDGE_CONTROLLER_KEY_LOG_BRAND: EasyEdge
# EDGE_CONTROLLER_KEY_XXX: XXXX
commu:
# 普通消息等待respond的超时时间
respondWaitTimeoutSecond: 2
# 数据库相关配置
db:
sqliteDbFile: /var/lib/easyedge-iec/easyedge-iec.db
hubDbFile: /var/lib/easyedge-iec/easyedge-iec.hub.db
eventDbFile: /var/lib/easyedge-iec/easyedge-event.db
fileServerDbFile: /var/lib/easyedge-iec/easyedge-fileserver.hub.db
nodeMonitorDbFile: /var/lib/easyedge-iec/easyedge-nodemonitor.hub.db
# 推流相关配置
mediaserver:
flvPort: 8715
rtmpPort: 8716
# 视频流相关配置
edgestream:
# FATAL 1, ERROR 2, WARNING 3, INFO 4, DEBUG 5, VERBOSE_LEVEL1 6, VERBOSE_LEVEL2 7, VERBOSE_LEVEL3 8
logLevel: 5
listenHost: 0.0.0.0
listenPort: 8710
# 摄像头预览:识别结果绘制延迟消失
renderExtendFrames: 10
# 预测队列大小: 如果设置为60,当摄像头fps=30时,视频延迟约为2秒。 降低inferenceQueueSize可以降低预览延迟,但是根据硬件的算力情况,可能导致模型推理速度跟不上,没有识别结果,不建议设置太低
inferenceQueueSize: 60
videoEncodeBitRate: 400000
# 视频采样 & 视频实时预览分辨率设置
# 0: auto, 1: 1080p, 2: 720p, 3: 480p, 4: 360p, 5: 240p
resolution: 0
# 内置多媒体服务配置
# port设为0表示关闭
mediaServerFlvPort: 8713
mediaServerRtmpPort: 8714
mediaServerRtspPort: 0
mediaServerRtpPort: 8716
# 信令服务器相关配置
sipserver:
listenHost: 0.0.0.0
listenPort: 8708
# 当前域
region: 3707000008
# 当前服务id
deviceId: 37070000082008000001
# 用户id固定头部
uid: 37070000081118
# 设备id固定头部
did: 37070000081318
loadbalance:
HTTPPort: 8780
TCPPortMin: 30000
TCPPortMax: 31000
UDPPortMin: 30000
UDPPortMax: 31000
FAQ
启动服务后,进程中出现两个easyedge-iec
进程
这是正常现象,IEC通过守护进程的方式来完成更新等操作。
启动服务时,显示端口被占用port already been used
通过修改 easyedge-iecc.yml文件的配置后,再重新启动服务。
安装服务时,报错permission denied
请以管理员身份运行安装程序。
中心节点重启后,边缘节点IEC 一直离线
中心节点短时间的离线,边缘节点会自动重连。如果中心节点已经恢复在线,边缘节点长时间未自动连接上,可通过边缘节点iec的方法来重新连接(右上角 admin - 重启系统)
IEC 是否有Android / iOS 版本
我们将会在近期发布对Android操作系统的支持
添加SDK时,报错 SDK不支持该硬件。 SDK not supported by this device
一般是因为使用的SDK跟硬件不匹配,如 GPU的SDK,硬件没有GPU卡。 对于Jetson,也可能是Jetpack版本不支持,可以通过查看 本机Jetpack版本和SDK支持的Jetpack版本列表(cpp文件中的文件名来查看)来匹配。