部署EasyDL烟火检测模型至ARM64节点
更新时间:2024-04-18
1、概述
本文重点介绍使用EasyDL训练一个烟火检测模型,并获取离线部署SDK,然后通过BIE将离线模型SDK部署至边缘节点设备。
2、训练集准备
- 本身使用开源烟火检测标注数据集fire-smoke-detect-yolov4,下载
烟火(2059张图像,含标签)-百度云盘下载链接-提取码
3q4r。 - 解压数据集,对文件目录进行修改,执行操作如下,最终得到标注数据集fire_detection_VOC2020.zip
 
                Bash
                
            
            1# 查看目录
2% ls -l
3total 8
4drwxr-xr-x@ 2061 user  staff  65952  7 18  2020 Annotations
5drwxr-xr-x@    3 user  staff     96  7 13  2020 ImageSets
6drwxr-xr-x@ 2061 user  staff  65952  7 17  2020 JPEGImages
7-rw-r--r--@    1 user  staff    591  7 18  2020 README
8# 删除ImageSets README,EasyDL数据集不需要这2个
9% rm -r ImageSets README
10# 将JPEGImages重命名为Images,这是EasyDL导入数据集的规范
11% mv JPEGImages Images
12% ls -l
13total 0
14drwxr-xr-x@ 2061 user  staff  65952  7 18  2020 Annotations
15drwxr-xr-x@ 2061 user  staff  65952  7 17  2020 Images
16# 将上述Annotations和Images压缩为zip包
17% zip -r fire_detection_VOC2020.zip ./*
18% ls -l
19total 361752
20drwxr-xr-x@ 2061 user  staff      65952  7 18  2020 Annotations
21drwxr-xr-x@ 2061 user  staff      65952  7 17  2020 Images
22-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服务正常启动。

