目的:基于YOLOX-s 、开源数据集 实现火焰、烟雾识别,并尝试添加一些trick优化识别效果,同时对比yolov3、yolov5效果,最终达到火焰AP 0.71,烟雾AP 0.51,mAP约0.6;相同数据集下测试,yolov3 mAP 0.35;yolov5 mAP 0.4。
>>资源列表- 项目代码
- 模型结果文件
- 项目文档
远程训练环境:主要用来训练模型,通过pycharm 与MobaXterm 远程连接控制调试;
| 操作系统 | Ubuntu 18.04.5 LTS |
|---|---|
| 显卡 | Tesla P100 |
| Pytorch | 1.11.0+cu102 |
| Cuda | 11.4 |
| Anaconda | 4.10.3 |
本地环境:
| 操作系统 | windows10 |
|---|---|
| 显卡 | 无 |
| Pytorch | 1.11.0+cpu(i7-8700) |
| Cuda | 无 |
| Anaconda | 4.8.3 |
- 从github上拉取YOLOX项目代码
- (可选)创建、激活anaconda环境
- 进入YOLOX目录,安装相关依赖
- 安装YOLOX
- 执行YOLOXdemo,验证安装是否成功
- 安装pytorch,注意版本
- 安装visual studio 2019 C++
- 安装anaconda
- 安装git bash
- 引言:尝试对烟雾、火焰识别效果进行一些优化,一些优化尝试从数据集出发,另一些从常用trick方式出发,其中部分对模型识别效果有帮助,一些可能导致下降或者效果不明显,同时使用trick也会增长或减少训练时间,所以整体。
- 评价标准
- mAP
- loss下降速度
- 训练时间
- 原始数据集 v0 描述:
数据集共6940张图片,包含火焰、烟雾标注信息,同时场景包含小火焰、火灾烟雾场景等。
- 描述:
数据集中存在相同的图片,这些相同图片分别标注了不同类别,例如有些标注了火焰,有些标注了烟雾,将其标注信息合并到同一个同一个标注文件中。(数据集格式是VOC2007,可以使用labelimg 查看)
- 描述:数据集中烟雾烟雾不明显,使用直方图增强,增加对比度、亮度等。将含有喊
Yolox使用的损失函数是BCEloss,将其修改成: 1. focal_loss 2. varifocal_loss2.2.2 回归损失函数
Yolox使用的IOUloss 为基本 IOU,将其修改为: 1. GIOU 2. EIOU2.2.3 插入注意力机制
引入注意力机制CBAM 在PAFPN中插入CBAM模块2.2.4 插入ASFF机制
在PAFPN中插入ASFF模块三、训练过程 3.1 数据预处理
描述:借助python脚本,将数据处理成VOC标准格式,数据类型融合,数据增强,数据随机划分工作集、训练集。3.2 训练
描述:借助shell脚本,设定训练参数,帮助简化训练过程,存储每次的训练结果等。3.3 实验结果处理
描述:借助python脚本,处理实验训练log文本,抽离出每个epoll的loss数据,以及每次评判过程中的AP数据,生成相应loss、AP的csv文本;4.4 其他问题 四、实验结果 4.1 YOLOX 训练结果对比
- mAP对比
- loss下降对比
- 训练时间对比
- mAP
- loss
- 训练时间
- YOLOX 论文pdf
- YOLOX github



