文章相关内容资料已经取得百度BML允许,仅用与交流学习,请不要用于商业传播。
这一期继续讲解视觉在现实场景中的应用,PP-YOLOv2算法在火焰烟雾识别。
.下载操作模板与数据集(必看)
请提前准备好!
链接:https://aistudio.baidu.com/aistudio/datasetdetail/117915
1.进入BML主页,点击立即使用:https://ai.baidu.com/bml/
4.配置Notebook,Python3.7,PaddlePaddle2.0.0,GPUV100
第二步:导入“火灾烟雾检测操作模板“
1.点击图中按钮进行上传
第三步:安装环境
安装paddlepaddle-gpu
!python -m pip install paddlepaddle-gpu==2.1.3.post101 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html
第四步:安装PaddleDetection
1.下载并安装PaddleDetection
!git clone https://gitee.com/PaddlePaddle/PaddleDetection.git -b develop
2.安装PaddleDetection相关依赖
! pip install -r PaddleDetection/requirements.txt
(红色报错不影响后续操作)
第五步:上传数据集并解压
1.上传“fire_smoke“数据集(耐心等待上传)
2.解压数据集至根目录
操作前可执行pwd查看当前路径,若路径没在根目录,可执行
cd /home/work
解压命令
! unzip -oq ./fire_smoke.zip
PP-YOLOv2:相较20年发布的PP-YOLO,PP-YOLOv2版本在COCO 2017 test-dev上的精度提升了3.6个百分点,由45.9%提升到了49.5%;在640*640的输入尺寸下,FPS达到68.9FPS。主要改进点:
Path Aggregation Network
Mish Activation Function
Larger Input Size
IoU Aware Branch
1.配置ppyolov2_r50vd_dcn_voc.yml文件
路径:/home/work/PaddleDetection/configs/ppyolo/ppyolov2_r50vd_dcn_voc.yml
参考:若batch_size=12,总epoch=10,则训练时长预估3小时
2.配置voc.yml文件
路径 :/home/work/PaddleDetection/configs/datasets/voc.yml
修改数据集路径
修改txt文件名,与数据集中的txt文件名一致
第三步:模型训练
1.进入训练路径
cd/home/work/PaddleDetection/tools
2.启动单卡训练
!export CUDA_VISIBLE_DEVICES=0
3.设置训练yml文件路径
config_path = ‘/home/work/PaddleDetection/configs/ppyolo/ppyolov2_r50vd_dcn_voc.yml’
4.开始训练
!python train.py -c $config_path
第四步:模型评估
1.设置模型评估的模型路径
weight_path = ‘/home/work/PaddleDetection/tools/output/ppyolov2_r50vd_dcn_voc/model_final.pdparams’
2.进行模型评估
!python eval.py -c c o n f i g p a t h − o w e i g h t s = config_path -o weights= configpath−oweights=weight_path
第二步:进入相应路径
cd/home/work/PaddleDetection/tools
第三步:设置预测图片路径
img_path = ‘/home/work/fire_smoke/images/fire_000002.jpg’
thresh = 0.1
第四步:模型预测
!python infer.py -cKaTeX parse error: Undefined control sequence: \ at position 29: …o use_gpu=True \̲ ̲-o weight=weight_path --draw_threshold=KaTeX parse error: Undefined control sequence: \ at position 8: thresh \̲ ̲--infer_img=img_path