游乐游手机版
首页/AI热点日报/热点详情

第十六届全国大学生智能车竞赛线上赛增分:PaTTA的使用

类型:热点整理2025-07-21
本文以肖佬项目为例,介绍如何用PaTTA提升效果。先解压数据集到data文件夹,生成数据列表并分割训练、验证集,安装PaddleSeg。编写配置文件后训练、验证、导出模型,再下载安
本文以肖佬项目为例,介绍如何用PaTTA提升效果。先解压数据集到data文件夹,生成数据列表并分割训练、验证集,安装PaddleSeg。编写配置文件后训练、验证、导出模型,再下载安装PaTTA,用其工具处理测试集,最后打包结果提交。PaTTA默认配置约涨1.几分,可解决验证集与提交结果差异问题。

第十六届全国大学生智能车竞赛线上赛增分:patta的使用 - 游乐网

PaTTA的使用

以肖佬的项目为例,展示如何使用PaTTA增分。

如果您感觉不错的话,请watch、star、fork三联,别白嫖啦,谢谢您~

仓库地址:https://github.com/AgentMaker/PaTTA

效果展示

使用PaTTA默认配置大约能涨1.几分,PaTTA能解决训练时候在验证集上miou非常高,但在提交后跌许多的问题。

这是在同一个模型情况下,仅仅使用了默认配置的PaTTA后的效果:

第十六届全国大学生智能车竞赛线上赛增分:PaTTA的使用 - 游乐网        

项目主体

解压数据集

考虑到数据集大小和项目启动速度,所以将数据集解压至 data 文件夹每次进入项目都需要进行一次解压In [ ]
# 解压数据集# q [quiet]:无输出# d [directory]:指定解压目录!unzip -d data data/data68698/智能车数据集.zip
登录后复制    

数据集预处理

生成格式为 “img_path anno_path” 的数据列表,供后续模型训练使用切分训练数据为:训练集和验证集,前者用于训练模型,后者用于验证模型效果In [ ]
# 生成数据列表datas_list = [    'data/image_4000/%d.webp data/mask_4000/%d.webp\n' % (x, x)     for x in range(4000)]# 分割训练集,前 3900 张图像作为训练数据with open('train.txt', 'w') as f:    for line in datas_list[:-100]:        f.write(line)# 分割验证集,后 100 张图像作为验证数据with open('dev.txt', 'w') as f:    for line in datas_list[-100:]:        f.write(line)
登录后复制    

安装 PaddleSeg

可通过 pip 或者源码进行安装作为演示并为了节省拉取代码的时间,这里使用 pip 进行安装完成安装之后,建议点击 Notebook 上方的重启按钮重启环境后再使用In [ ]
# 安装 PaddleSeg!pip install paddleseg
登录后复制    In [ ]
!unzip PaddleSeg-release-v2.0.zip!mv PaddleSeg-release-v2.0 paddleseg
登录后复制    

编写配置文件

PaddleSeg 使用配置文件进行各种模型数据等各个方面的配置操作具体的配置方式请参考:最新配置文档更多的配置文件模板请参考:最新配置文件基线代码演示所需的配置文件放置于 Road_Line.yml示例的配置文件内容如下:
# 设置数据批大小batch_size: 2# 设置训练步数iters: 1000# 训练集配置train_dataset:  type: Dataset  num_classes: 15  # 数据目录  dataset_root: ./  # 训练集列表  train_path: ./train.txt  # 数据预处理  transforms:    - type: Resize      target_size: [512, 512]    - type: Normalize  mode: train# 验证集配置val_dataset:  type: Dataset  num_classes: 15  # 数据目录  dataset_root: ./  # 验证集列表  val_path: ./dev.txt  # 数据预处理  transforms:    - type: Resize      target_size: [512, 512]    - type: Normalize  mode: val# 优化器配置optimizer:  type: sgd  momentum: 0.9  weight_decay: 4.0e-5# 学习率配置learning_rate:  value: 0.01  decay:    type: poly    power: 0.9    end_lr: 0# 损失函数配置loss:  types:    - type: CrossEntropyLoss  coef: [1.0, 0.4]# 模型配置model:  type: FastSCNN  num_classes: 15  enable_auxiliary_loss: True  pretrained: null
登录后复制    

模型训练

使用 train.py 进行模型训练In [ ]
# 模型训练# config:配置文件# save_dir:模型保存路径# do_eval:训练同时进行模型验证# 更多选项参数请参考源代码!python paddleseg/train.py \    --config Road_Line.yml \    --save_dir saved_models \    --do_eval
登录后复制    

模型验证

使用 val.py 脚本进行模型验证In [ ]
# 模型验证# config:配置文件# model_path:模型文件# 更多选项参数请参考源代码!python paddleseg/val.py \    --config Road_Line.yml \    --model_path saved_models/best_model/model.pdparams
登录后复制    

模型导出

使用 export.py 脚本进行模型预测In [ ]
!python paddleseg/export.py \       --config Road_Line.yml \       --model_path saved_models/best_model/model.pdparams
登录后复制    

使用TTA

在经过模型导出后,得到下列文件,下列文件将用于PaTTA的使用。

output  ├── deploy.yaml            # 部署相关的配置文件  ├── model.pdiparams        # 静态图模型参数  ├── model.pdiparams.info   # 参数额外信息,一般无需关注  └── model.pdmodel          # 静态图模型文件
登录后复制    

下载PaTTA

In [ ]
!git clone https://github.com/AgentMaker/PaTTA.git
登录后复制    In [ ]
!unzip PaTTA.zip
登录后复制    

生成测试集

In [ ]
import globpath = glob.glob('data/infer/*')f = open('test.txt', 'w')for i in path:    f.write(i+'\n')f.close()
登录后复制    

安装PaTTA

In [ ]
!pip install PaTTA/
登录后复制    

一键使用

注意:请将seg.py里面的crop_size参数改成和训练一致!!!

In [16]
!python PaTTA/tools/seg.py --model_path='output/model' \                 --batch_size=16 \                 --test_dataset='test.txt'
登录后复制    

结果提交

In [ ]
# 打包结果文件!zip -r result.zip result
登录后复制    
来源:https://www.php.cn/faq/1420403.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。