EfficientNet训练自己的烟火识别算法

基于EfficientNet的烟火识别算法.

EfficientNet是19年提出的一种复合缩放模型,在较低复杂度上可以获得很好的分类性能.详情见EfficientNet(https://arxiv.org/abs/1905.11946)

EfficientNet-Pytorch(https://github.com/lukemelas/EfficientNet-PyTorch)

本文工作主要参考以上两点,具体实现可以参考我的github(https://github.com/midasklr/FireSmokeDetectionByEfficientNet)

1. EfficientNet

很不错的模型,创新性一般,工程指导比较有意义.后面我会给出我的EfficientDet实现.论文细节不赘述.

2. 烟火识别

2.1 idea

做目标检测对数据集要求太高,没有烟火的检测数据集,所以我在网上爬取了大量烟火的图片作为EfficientNet的分类数据.

使用EfficientNet作为特征提取层,输出全连接层修改为3个节点进行烟火预测.

烟火检测主要是通过将图片分块预测,更精细的结果可以使用不同大小滑动窗进行预测,对结果进行NMS.

2.2 网络可视化

这里可视化部分特征图

可以看出来,有些卷积核可以很好发现火的区域,对应特征图中白色激活区域.有的特征图擅长发现其他特征.

3. EfficientNet训练自数据集

这里提供了脚本train.py可以使用EfficientNet训练自己的数据集.通过下面命令制定你的数据位置,使用网络和目标类别数.

python train.py --data [ur dataset path] --arch [efficientnet model:efficientnet-b0-7] --num_cls [ur task class num]  

预测时记得相应的修改你的标签映射文件.

 

数据集:链接: https://pan.baidu.com/s/1RkX76xJuop1Q6XB-f22WTg 提取码: 65mv

 

Guess you like

Origin blog.csdn.net/IEEE_FELLOW/article/details/104039131