赞
踩
从图片中识别道路病害是道路日场养护的重要的工作
也有类似的比赛:
Global Road Damage Detection Challenge 2020数据集
自动化系统:
本任务具备应用与科研价值。
选取多个模型进行训练,验证精度
删除数据展示如下:
此区域为块状裂缝区域,本项目目标为条状裂缝,因此删除
数据集名为CrackForest-dataset,源自论文Automatic road crack detection using random structured forests
标注精细且完整,标注质量极高
# clone PaddleSeg的项目
!git clone https://gitee.com/paddlepaddle/PaddleSeg
# 安装依赖
!pip install -r PaddleSeg/requirements.txt
#解压数据集
!mkdir dataset
!unzip -oq data/data132592/CrackForest.zip -d dataset/
# 删除部分歧义数据
!rm dataset/image/093.jpg
!rm dataset/image/097.jpg
!rm dataset/image/101.jpg
!rm dataset/label/093.png
!rm dataset/label/097.png
!rm dataset/label/101.png
# 更改标签为2分类数据
!python work/process_data.py --dir dataset/label
# 划分数据
!python PaddleSeg/tools/split_dataset_list.py dataset image label --split 0.9 0.1 0 --format jpg png
项目二次完善补充训练:
训练曲线都较为平滑,下图为OCRNet曲线:
# # 复制segformer_b3配置文件
!cp ./work/segformer_b3_cf.yml ./PaddleSeg/configs/
# 开始训练
!python PaddleSeg/train.py \
--config PaddleSeg/configs/segformer_b3_cf.yml \
--do_eval \
--use_vdl \
--save_interval 500 \
--save_dir work/output_segformer_b3_train
# # 复制segformer_b2配置文件
!cp ./work/segformer_b2_cf.yml ./PaddleSeg/configs/
# 开始训练
!python PaddleSeg/train.py \
--config PaddleSeg/configs/segformer_b2_cf.yml \
--do_eval \
--use_vdl \
--save_interval 500 \
--save_dir work/output_segformer_b2_train
# # 复制segformer_b1配置文件
!cp ./work/segformer_b1_cf.yml ./PaddleSeg/configs/
# 开始训练
!python PaddleSeg/train.py \
--config PaddleSeg/configs/segformer_b1_cf.yml \
--do_eval \
--use_vdl \
--save_interval 500 \
--save_dir work/output_segformer_b1_train
# # 复制hrnet18配置文件
!cp ./work/HRNet_W18.yml ./PaddleSeg/configs/
# 开始训练
!python PaddleSeg/train.py \
--config PaddleSeg/configs/HRNet_W18.yml \
--do_eval \
--use_vdl \
--save_interval 500 \
--save_dir work/output_HRNet_W18_train
# # 复制hrnet48配置文件
!cp ./work/HRNet_W48.yml ./PaddleSeg/configs/
# 开始训练
!python PaddleSeg/train.py \
--config PaddleSeg/configs/HRNet_W48.yml \
--do_eval \
--use_vdl \
--save_interval 500 \
--save_dir work/output_HRNet_W48_train
# # 复制Unet配置文件
!cp ./work/AttentionUNet.yml ./PaddleSeg/configs/
# 开始训练
!python PaddleSeg/train.py \
--config PaddleSeg/configs/AttentionUNet.yml \
--do_eval \
--use_vdl \
--save_interval 500 \
--save_dir work/output_AttentionUNet_train
# # 复制BiSeNet配置文件
!cp ./work/BiSeNet.yml ./PaddleSeg/configs/
# 开始训练
!python PaddleSeg/train.py \
--config PaddleSeg/configs/BiSeNet.yml \
--do_eval \
--use_vdl \
--save_interval 500 \
--save_dir work/output_BiSeNet_train
# # 复制OCR配置文件
!cp ./work/OCRNet.yml ./PaddleSeg/configs/
# 开始训练
!python PaddleSeg/train.py \
--config PaddleSeg/configs/OCRNet.yml \
--do_eval \
--use_vdl \
--save_interval 500 \
--save_dir work/output_OCRNet_train
实验1 50000 step
模型 | segformerB1 | segformerB2 | segformerB3 | HRNet_W18 | HRNet_W48 |
---|---|---|---|---|---|
IOU | 0.7236 | 0.7153 | 0.7117 | 0.7153 | 0.7160 |
训练时间 | 3806.161秒 | 5465.511秒 | 8788.607秒 | 11240.455秒 | 11365.421秒 |
实验2 AttentionUNet与BiSeNet,150000 step ;OCRNet 50000 step
模型 | AttentionUNet | BiSeNet | OCRNet |
---|---|---|---|
IOU | 0.7124 | 0.6786 | 0.7260 |
训练时间 | 12159.823秒 | 13614.211秒 | 16318.894秒 |
*实验1中,segformerB1 时间最短,效果最好
*实验2中,ocrnet效果最好
预训练模型验证代码如下:(其它模型需验证请自行修改)
例如:
–config PaddleSeg/configs/segformer_b1_cf.yml \ 修改为 --config PaddleSeg/configs/segformer_b2_cf.yml
–model_path work/output_segformer_b1/best_model/model.pdparams \ 修改为 --model_path work/output_segformer_b2/best_model_train/model.pdparams \
若使用自己训练的权重,修改如下:(其它模型需验证请自行修改)
–config PaddleSeg/configs/segformer_b1_cf.yml \ 无需修改
–model_path work/output_segformer_b1/best_model/model.pdparams \ 修改为
–model_path work/output_segformer_b1_train/best_model/model.pdparams \
# segformerB1
!python PaddleSeg/val.py \
--config PaddleSeg/configs/segformer_b1_cf.yml \
--model_path work/output_segformer_b1/best_model/model.pdparams \
模型 | segformerB1 | segformerB2 | segformerB3 | HRNet_W18 | HRNet_W48 |
---|---|---|---|---|---|
推理时长 | 209ms/step | 345ms/step | 555ms/step | 780ms/step | 762ms/step |
!python PaddleSeg/predict.py \ --config PaddleSeg/configs/segformer_b1_cf.yml \ --model_path work/output_segformer_b1/best_model/model.pdparams \ --image_path dataset/test \ --save_dir ./work/test/segformer_b1result \ --is_slide \ --crop_size 256 256 \ --stride 128 128 !python PaddleSeg/predict.py \ --config PaddleSeg/configs/segformer_b2_cf.yml \ --model_path work/output_segformer_b2/best_model/model.pdparams \ --image_path dataset/test \ --save_dir ./work/test/segformer_b2result \ --is_slide \ --crop_size 256 256 \ --stride 128 128 !python PaddleSeg/predict.py \ --config PaddleSeg/configs/segformer_b3_cf.yml \ --model_path work/output_segformer_b3/best_model/model.pdparams \ --image_path dataset/test \ --save_dir ./work/test/segformer_b3result \ --is_slide \ --crop_size 256 256 \ --stride 128 128 !python PaddleSeg/predict.py \ --config PaddleSeg/configs/HRNet_W18.yml \ --model_path work/output_HRNet_W18/best_model/model.pdparams \ --image_path dataset/test \ --save_dir ./work/test/HRNet_W18result \ --is_slide \ --crop_size 256 256 \ --stride 128 128 !python PaddleSeg/predict.py \ --config PaddleSeg/configs/HRNet_W48.yml \ --model_path work/output_HRNet_W48/best_model/model.pdparams \ --image_path dataset/test \ --save_dir ./work/test/HRNet_W48result \ --is_slide \ --crop_size 256 256 \ --stride 128 128
模型 | segformerB1 | segformerB2 | segformerB3 | HRNet_W18 | HRNet_W48 |
---|---|---|---|---|---|
推理时长 | 209ms/step | 345ms/step | 555ms/step | 780ms/step | 762ms/step |
本项目仅为搬运,原项目链接:https://aistudio.baidu.com/aistudio/projectdetail/3620417
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。