新闻中心

飞桨常规赛:遥感影像地块分割 - 10月第2名方案

2025-07-28
浏览次数:
返回列表
该方案为飞桨遥感影像地块分割赛题10月第2名方案,借鉴榜首模型结构,采用HRNet_W48+OCRNet,loss结合LovaszSoftmax和CrossEntropy。数据集经处理剔除无效样本,用多种增强策略。训练用Momentum优化器等,预测选50轮模型,提分点含数据增强等。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

飞桨常规赛:遥感影像地块分割 - 10月第2名方案 -

飞桨常规赛:遥感影像地块分割

10月第2名方案

赛题

本赛题旨在对遥感影像进行像素级内容解析,并对遥感影像中感兴趣的类别进行提取和分类,以衡量遥感影像地块分割模型在多个类别(如建筑、道路、林地等)上的效果。
数据共包括4种分类,像素值分别为0、1、2、3。此外,像素值255为未标注区域,表示对应区域的所属类别并不确定,在评测中也不会考虑这部分区域。
训练集包含66,653张遥感影像图片和对应的标注图片,测试集包括4,609张遥感影像图片。遥感分辨率均为2m/pixel,图片尺寸均为256*256。
示例图片:
飞桨常规赛:遥感影像地块分割 - 10月第2名方案 -  飞桨常规赛:遥感影像地块分割 - 10月第2名方案 -        

飞桨常规赛:遥感影像地块分割 - 10月第2名方案 -  飞桨常规赛:遥感影像地块分割 - 10月第2名方案 -        

解题思路

主要借鉴了当前榜首(戳这里查看方案)的模型结构,但由于实现细节的差异,分数还是低了不少。
和榜首方案不同的是,个人比较偏好API编程的模式。

模型

模型采用了HRNet_W48+OCRNet,loss采用LovaszSoftmax和CrossEntropy(详见my_model.py)。

backbone = paddleseg.models.backbones.HRNet_W48(pretrained='https://bj.bcebos.com/paddleseg/dygraph/hrnet_w48_ssld.tar.gz', has_se=False)model = paddleseg.models.OCRNet(num_classes=4,backbone=backbone,backbone_indices=[-1],ocr_mid_channels=512,ocr_key_channels=256, pretrained='https://bj.bcebos.com/paddleseg/dygraph/ccf/fcn_hrnetw48_rs_256x256_160k/model.pdparams')
       
ce_coef = 1.0lovasz_coef = 0.3main_loss = lovasz_coef*self.lovasz(yp[0], yt)+ce_coef*self.ce(yp[0], yt)soft_loss = lovasz_coef*self.lovasz(yp[1], yt)+ce_coef*self.ce(yp[1], yt)return 1.0*main_loss+0.4*soft_loss
   

数据集

数据集采用了paddle.io.Dataset包装,方便采用paddle.io.DataLoader实现组batch和并行预处理,能够提高训练效率。

在数据集中调用paddle.vision.transforms实现数据增强,采用的增强策略有颜色抖动、随机旋转、随机翻转、随机crop等。

另外,发现训练集中有大约5000余张样本对应的标签完全由255组成,他们对训练不会有任何收益,故构造数据集时将相应的样本剔除。

代码详见my_dataset.py

训练策略

优化器为Momentum,学习率策略为PolynomialDecay和LinearWarmup。其他训练参数为:

BATCH_SIZE = 32LR = 1e-3WARMUP_EPOCH = 10 # warmup轮数TRAIN_EPOCHS = 40 # 训练轮数EVAL_EPOCH = 2 # 每两轮验证一次
       

训练主函数见train.py

学习率变化曲线飞桨常规赛:遥感影像地块分割 - 10月第2名方案 - loss曲线飞桨常规赛:遥感影像地块分割 - 10月第2名方案 - miou曲线飞桨常规赛:遥感影像地块分割 - 10月第2名方案 -        

预测

训练时有一个很奇怪的现象,验证集的miou曲线是一个先降后升的'U'型。采用验证集最优模型的话,提交结果不如最后一轮,所以预测时加载的模型是训练50轮的参数。

Motiff妙多 Motiff妙多

Motiff妙多是一款AI驱动的界面设计工具,定位为“AI时代设计工具”

Motiff妙多 334 查看详情 Motiff妙多

预测时使用with paddle.no_grad():或者@paddle.no_grad()装饰器可以在推理时不保存中间结果,节省巨量显存。当然AI Studio的V100显卡太强了,有没有都无所谓。

推理时把数据集用DataLoader包装一下可以更好的并行。

预测后在左侧直接右键result文件夹,选择'打包下载'即可直接下载zip压缩包,可以直接在比赛页面提交。奇怪,前两天用的时候好像还是英文'Download as zip archive',现在就变成中文了。

具体代码见predict.py。

代码说明

代码都放在work文件夹下,结果也都保存在work/result文件夹下,模型保存在models文件夹下。

文件 内容
configs.py 全局参数设置
my_dataset.py 构造数据集
my_model.py 构造模型
predict.py 预测并保存结果
train.py 训练模型
utils.py 一些工具函数

模块文件下都通过

if __name__=='__main__':    ...
       

的形式编写了一些测试语句,方便调试。

总结

四月份的时候参加过一轮,当时手攒了个模型,没有利用好paddleseg这个好用的套件,分数很低,该做好的点没有做好。感觉提分点主要有以下这些吧:

  1. 数据增强。一般来说,常规的数据增强都会有些效果,也可以根据数据的特点进行一定的取舍;
  2. SOTA模型。自己攒模型一般还是不如用现成的,尤其是对于新手。学到一定程度以后可以看看源码对比一下论文,说不定以后自己也能提出一些改进呢;
  3. 预训练模型。不多说了,有没有预训练简直是两个模型;
  4. 结果后处理。按之前的经验,语义分割类的结果做个滤波会有一点点不大的提升;另外,TTA据说很强。这里我还没来得及试。
               

和榜首的差距可能主要还是在数据增强策略上,另外,自己用API手写的训练过程可能还是有些细节上没实现好,还需要多学习学习。

一键复现

In [ ]
# 安装paddleseg和解压数据集。!pip install paddleseg==2.3.0!cd data/data77571/ && unzip -q train_and_label.zip!cd data/data77571/ && unzip -q img_test.zip
    In [ ]
# 训练!cd work && python train.py
    In [ ]
# 预测!cd work && python predict.py
   

以上就是飞桨常规赛:遥感影像地块分割 - 10月第2名方案的详细内容,更多请关注其它相关文章!


# 工具  # python  # 均为  # 一言  # 中文网  # fig  # udio  # igs  # red  # ai  # 简单网站建设优化方案  # b站视频推广网站视频怎么上传  # 推广口碑营销价格行情  # 价值营销推广案例分析  # 优化seo疯狂易速达  # 沧州谷歌seo  # 白云外贸网站推广方案  # 建设手机网站多少费用  # 北京服务网站建设图  # seo实训外链分析  # 尤其是  # 放在  # 会有  # 是在  # 是一个  # 的是  # 官网 


相关栏目: 【 行业资讯67740 】 【 技术百科0 】 【 网络运营39195


相关推荐: 爱玛电动车power模式是什么意思  汽车上power是什么意思  春运抢票哪个平台好一点  学typescript需要什么基础么  苹果16要升级哪些功能  苹果16更新了哪些版本  内在市盈率是什么意思  如何设置从固态硬盘启动  typescript中如何引入本地js  计数器上power是什么意思  电脑5G怎么上传手机  苹果手机16新款颜色有哪些  typescript和node学哪个  vue怎么连接typescript  老电脑如何装固态硬盘  sql isnull函数如何使用  华为5g手机掉了怎么定位找回  j*a map数组怎么用  vi命令如何退出  五十铃x-power是什么意思  如何测固态硬盘芯片  更换固态硬盘如何检查  什么是域名解析地址  单片机怎么连接电路图  vivo手机nfc功能是什么意思  新找到ao3镜像网站链接入口  如何查看固态硬盘分区  负市盈率是什么意思  油电混动车仪表盘上的power是什么意思  如何使用net命令  安装固态硬盘如何设置  一天多少分钟  如何将系统移到固态硬盘  苹果16有哪些变化尺寸  j*a怎么创建json数组  尼桑越野车中控前power是什么意思  如何在昇腾Ascend 910B上运行Qwen2.5教程  solidworks打开IGS文件作图教程  单片机怎么判定高电平  汽车排量是什么意思  树莓派命令行如何新建文件  pp是什么意思  360桌面壁纸怎么弄掉  折叠屏手机哪个牌子性价比高  awk命令如何对两列加分隔符  a股等权市盈率中位数是什么意思  win7怎么做幻灯片  固态硬盘 如何分区  nosql数据库的应用场景有哪些  折叠手机屏易坏吗为什么 

搜索