部署EasyDL烟火检测模型至ARM64节点
更新时间:2024-04-18
1、概述
本文重点介绍使用EasyDL训练一个烟火检测模型,并获取离线部署SDK,然后通过BIE将离线模型SDK部署至边缘节点设备。
2、训练集准备
- 本身使用开源烟火检测标注数据集fire-smoke-detect-yolov4,下载
烟火(2059张图像,含标签)-百度云盘下载链接-提取码
3q4r
。 - 解压数据集,对文件目录进行修改,执行操作如下,最终得到标注数据集fire_detection_VOC2020.zip
# 查看目录
% ls -l
total 8
drwxr-xr-x@ 2061 user staff 65952 7 18 2020 Annotations
drwxr-xr-x@ 3 user staff 96 7 13 2020 ImageSets
drwxr-xr-x@ 2061 user staff 65952 7 17 2020 JPEGImages
-rw-r--r--@ 1 user staff 591 7 18 2020 README
# 删除ImageSets README,EasyDL数据集不需要这2个
% rm -r ImageSets README
# 将JPEGImages重命名为Images,这是EasyDL导入数据集的规范
% mv JPEGImages Images
% ls -l
total 0
drwxr-xr-x@ 2061 user staff 65952 7 18 2020 Annotations
drwxr-xr-x@ 2061 user staff 65952 7 17 2020 Images
# 将上述Annotations和Images压缩为zip包
% zip -r fire_detection_VOC2020.zip ./*
% ls -l
total 361752
drwxr-xr-x@ 2061 user staff 65952 7 18 2020 Annotations
drwxr-xr-x@ 2061 user staff 65952 7 17 2020 Images
-rw-r--r-- 1 user staff 177816248 10 10 20:24 fire_detection_VOC2020.zip
- 将 fire_detection_VOC2020.zip 上传至百度对象存储BOS,并记录fire_detection_VOC2020.zip的下载URL。
3、训练模型
3.1 导入数据集
- 访问EasyDL——物体检测模型,可点击此处直接访问
- EasyData数据服务——数据总览——创建数据集
-
在数据集下发,点击导入,在导入数据当中填写如下信息:
- 数据标注状态:有标注信息
- 导入方式:分享链接导入
- 标注格式:xml(特指voc)
- 链接地址:上述2.3步骤的fire_detection_VOC2020.zip的下载URL
- 点击确认并返回,完成数据集导入。图片总计有2000张,导入需要一定时间。
3.2 训练模型
- 在左边栏模型中心找到我的模型,点击创建模型。
- 点击训练,选择上述导入的数据集
-
训练配置选择如下:
- 部署方式:EasyEdge本地部署
- 选择设备:可以服务器、通用小型设备、专项适配硬件全部都做一次训练
- 选择算法:通用算法,精度使用默认即可
- 训练环境:可以使用免费的GPU T4算力,免费算力训练时间比较长,可能超过3个小时,需要耐心等待。
- 训练完成以后,点击申请发布,选择通用小型设备,操作系统选择Linux,芯片选择通用ARM,点击发布
- 在纯离线服务页面,找到发布生成的SDK,此处下载 通用ARM-Linux-基础版SDK,如下图所示:
4、BIE部署模型
4.1 创建程序包
- 导入进程程序包-paddle-opensource-sdk-edge-serving.json,与 文档可执行脚本类型进程应用 当中创建的程序包是一样的。
4.2 创建模型文件配置项
- 导入模型配置项-easyedge-linux-m76527-b47450-arm-normal.zip.json
- 将模型SDK文件的HTTP URL替换成第3.2-6小节的URL。
4.3 创建进程应用
- 导入模型进程应用应用-easyedge-linux-m76527-b47450-arm-normal.json
- 将应用当中的模型序列号替换成第3.2-7小节的模型序列号。
4.4 特殊配置说明
-
上述应用配置的环境变量说明如下:
- PARAMS_SERIAL_NUM:模型SDK的序列号
- PARAMS_PORT:服务暴露端口号,此处设置为
8701
-
4.2小节和4.3小节注意替换成自身的模型SDK文件和模型序列号,否则模型将无法正常部署。
- 如果上述模型SDK和模型序列号都不做替换,应用部署以后,在本地日志文件当中可以看到错误提示:序列号已被其他设备使用
- 如果只替换序列号而不替换模型SDK文件,应用部署以后,在本地日志文件当中可以看到错误提示:序列号不能用于其他账号的模型
5、部署模型并验证
通过浏览器打开在线推断服务:http://ip:8701 ,上传测试图片,推断结果如下,证明AI服务正常启动。