免费、绿色、专业的手机游戏中心下载安装平台-游家吧

当前位置: 首页 > 教程攻略 > 【飞桨学习赛:遥感影像地块分割】22年7月第一名方案

【飞桨学习赛:遥感影像地块分割】22年7月第一名方案

时间:2025-07-22

富士康香信icivet最新版
  • 类型:学习办公
  • 大小:96.7 mb
  • 语言:简体中文
  • 评分:
查看详情

【飞桨学习赛:遥感影像地块分割】22年7月第一名方案

本文介绍飞桨遥感影像地块分割赛题第一名方案()。使用PaddleSeg套件,结合有效数据增强和对类别样本的重采样策略,改进了SegFormer的解码器(采用转置卷积替代双线性插值),同时采用了混合损失函数并利用TTA预测来提升分割精度。

飞桨学习赛:遥感影像地块分割22年7月第一名:66分方案

比赛链接:飞桨学习赛:遥感影像地块分割

赛题介绍

初赛赛题的改编与背景介绍本赛题由CCF BDCI 遥感影像地块分割初赛赛题改编而来,旨在对遥感影像进行像素级内容解析,并提取和分类在城乡规划、防汛救灾等领域具有高实用价值的类别。现有的遥感影像地块分割方法大多局限于特定场景和数据来源,精度难以满足需求。因此,在实际应用中,大量依赖于人工处理,耗费了人力、物力和财力。 赛题任务解析赛题旨在评估遥感影像地块分割模型在多个类别(如建筑、道路、林地等)上的效果,并利用人工智能技术对多来源、多场景的异构遥感影像数据进行充分挖掘。通过打造高效实用的算法,提高遥感影像的分析提取能力。 解决方案与技术创新针对现有方法的局限性,赛题要求参赛者提出创新解决方案并开发相应算法模型。这些算法需要在多个类别上取得优异效果,并且能够处理异构数据源、多场景下的不同需求。同时,赛题也鼓励采用最新的人工智能技术来提高算法效率和准确率。 预期成果与应用场景预期的赛题解决方案将显著提升遥感影像地块分割的实际应用能力,为城乡规划、防汛救灾等领域的决策提供重要支持,并减少对人工处理的依赖。通过比赛,也将促进遥感影像技术在实际场景中的进一步发展和创新。总结:本赛题旨在解决现有遥感影像地块分割方法的局限性问题,推动人工智能技术在多个领域实现高效应用。参赛者需要开发有效的算法模型,并且能够适应多样化的数据源和场景需求,以期为未来遥感影像分析提取提供新的解决方案。

数据说明

本竞赛提供多个地区的遥感图像样本,参赛队伍需自建土地分类算法进行挑战。

其中有效的标签被定义为0,1,2,3。255像素值区域为未标记区域。

比赛难点

本比赛实质上还是一个语义分割的任务,只是相对于在遥感影像上的迁移。

我认为本次比赛的难点在于类与类之间的分割界面不易区分,并对模型的细粒度分割提出了要求。

然而,在对处理后的部分进行优化时(采用更加灵活的方法),因为不同对象之间的界限通常较为模糊,并且物体形状各异,难以实施有效的处理方案来提升成绩。

本项目亮点

整体基于PaddleSeg套件进行完成,易于上手改进,学习。

有效的数据增强方法

构建类别3难与训练的有效重采样办法,一定程度上解决类别3难以学习的问题。

构建基于SegFormer改进的Decoder,一定程度上解决模型细粒度不够的问题。

PaddleSeg套件开发

本项目模型和数据集处理采用了PaddleSeg原有技术,并进行了优化改进,主要包括数据加载和模型结构调整。

对于数据集的处理,主要从paddleseg/datasets/dataset.py更改

对于模型的选择及更改,则主要从paddleseg/models/segformer.py更改

数据增强部分

本项目采用数据增强方法显著提升性能,得分:MIOU。以下是具体对比结果:A: : : : : :

上述方法都基于未更改模型和数据集处理的得分,且都使用了TTA的预测方法

数据集处理部分

这里的数据集处理,主要是针对预测结果进行分析,并且获得。

根据多次训练的结果分析显示,模型在学习类别遇到了一些挑战。然而,通过面积分析法来看,这三个类别的分布并无显著差异。基于这一情况,我在训练的过程中采取了针对类别独立重采样策略,以期提高其表现。

具体实现方法详见我的项目中的myconfig文件夹下的mydataset.py模块中。主要思路是建立包含三种类型数据集,并在训练过程中根据一定的概率比例选择这些数据进行样本化处理。相关代码非常简单,就是在带有类别子集中随机抽取样本。

if np.random.random()<self.sample_prob: idx = idx%len(self.sample_list) image_path, label_path = self.sample_list[idx] im, label = self.transforms(im=image_path, label=label_path) if self.edge: edge_mask = F.mask_to_binary_edge( label, radius=2, num_classes=self.num_classes) return im, label, edge_mask else: return im, label登录后复制

在这一段中,采用了的概率来随机抽取每次样本时从包含类别数据集中选择,但是这种方法并不总是能够保持的采样率,因此需要进行大量的修改代码,并最终也没有达到预期的效果。

SegFormer模型改进

SegFormer是一款基于Transformer构建的具有简单结构的语义分割网络。其基础网络结构如下图所示。

我们重点探讨了模型的解码器(Decoder)部分。在基础模型中,这个部分由一个简单的多层感知机(MLP)组成,负责将不同类型层产生的特征进行整合,并通过另一个MLP实现上采样。这样设计使得整个模型结构更加简化,同时保留了足够的灵活性和表达能力。

这里给出两个改进的思路: 对MLP特征融合进行改进

具体可以参考像FPN和PAN结构的金字塔特征融合,来对特征进行充分挖掘。 对上采样部分进行改进

在基础SegFormer结构的基础上进行了改进,在上采样环节采用了更精细的学习过程,通过转置卷积这一技术手段来增强模型对图片细节的捕捉和再现能力。这种改进提升了模型在处理图像细节时的表现力。

具体代码详见myconfig/segformer.py文件。

经过上述两部分操作,得分概览如下。 编号 方法 得分:MIOU G F+数据集重采样 66.04 H G+SegFormer模型改进 66.18

其他细节

本项目还存在以下一些细节部分

训练时采用混合Loss:分别为0.8:CrossEntropyLoss和0.2:LovaszSoftmaxLoss

预测时采用了TTA方法,分别有垂直翻转和0.75,1.0和1.25倍尺寸的多尺度预测。

下面则是本项目的训练过程

代码下载

这里提供了我自己加载在AI studio上的代码 In [8]

# !git clone https://github.com/lzzzzzm/AI-Studio-LrCompetition-Segmentation-of-sensing-imageblock!unzip -q data/data162694/PaddleSeg-SenseingBlock.zip -d ./登录后复制

数据集处理

In [9]

!unzip -q data/data80164/train_and_label.zip -d ~/data/ !unzip -q data/data80164/img_test.zip -d ~/data/登录后复制 In [10]

在Python中,创建并导入必要库(import os, np)之后,我们开始准备数据集。首先,定义训练集的原始图像路径(image_base)和标签路径(annos_base)。然后,使用`os.listdir`获取图片文件名,并将它们与对应的标注文件名进行匹配。接下来,遍历所有原始图像并创建元组(img_pt img_pt,其中包含原始图像和标注图片的完整路径。为了确保数据有效,还检查了每个路径是否存在于指定目录中。最后,打印数据集长度以及第一个和第例子的详细信息。这样就完成了将训练集分割为图像和标签的步骤,并准备好进行进一步的数据预处理工作。

total: 66652 data/img_train/T016293.jpg data/lab_train/T016293.png ('data/img_train/T032581.jpg', 'data/lab_train/T032581.png')登录后复制 In [11]

import numpy as np# 四类标签,这里用处不大,比赛评测是以0、1、2、3类来对比评测的labels = ['建筑', '耕地', '林地', '其他']# 将labels写入标签文件with open('labels.txt', 'w') as f: for v in labels: f.write(v+'\n')# 随机打乱datasnp.random.seed(5) np.random.shuffle(datas)# 验证集与训练集的划分,0.05表示5%为训练集,95%为训练集split_num = int(0.05*len(datas))# 划分训练集和验证集train_data = datas[:-split_num] valid_data = datas[-split_num:]# 写入训练集listwith open('train_list.txt', 'w') as f: for img, lbl in train_data: f.write(img + ' ' + lbl + '\n')# 写入验证集listwith open('valid_list.txt', 'w') as f: for img, lbl in valid_data: f.write(img + ' ' + lbl + '\n')# 打印训练集和测试集大小print('train:', len(train_data))print('valid:', len(valid_data))登录后复制

train: 63320 valid: 3332登录后复制 In [12]

import cv2 as cvimport tqdm# 写入包含类别3的采样样本sample_list = []with open('train_list.txt', 'r') as f: lines = f.readlines() for line in tqdm.tqdm(lines): image_path, label_path = line.split(' ') label_path = label_path[:-1] label = cv.imread(label_path, cv.IMREAD_GRAYSCALE) if label is not None: if (label==3).any() == True: sample_list.append(line) f.close()with open('sample.txt', 'w') as f: for line in sample_list: f.writelines(line) f.close()登录后复制

- || 63320/63320 [00:13<00:00, 4559.30it/s]登录后复制

模型训练

In []

!python AI-Studio-LrCompetition-Segmentation-of-sensing-imageblock/train.py \ --config AI-Studio-LrCompetition-Segmentation-of-sensing-imageblock/myconfig/segformer-b2-rs.yml \ --use_vdl \ --do_eval \ --num_workers 4 \ --save_interval 10000 \ --save_dir segformer-b2-rs \ --log_iters 2000登录后复制

推理预测和生成比赛文件

In []

!python AI-Studio-LrCompetition-Segmentation-of-sensing-imageblock/predict.py \ --config AI-Studio-LrCompetition-Segmentation-of-sensing-imageblock/myconfig/segformer-b2-rs.yml \ --model_path segformer-b2-rs/model.pdparams \ --aug_pred \ --scales 0.75 1.0 1.25 \ --image_path data/img_testA \ --custom_color 0 0 0 1 1 1 2 2 2 3 3 3 \ --save_dir result/SegFormer-B2/登录后复制 In []

import osimport tqdmimport cv2 img_path = "/home/aistudio/result/SegFormer-B2/pseudo_color_prediction"rst_path = "/home/aistudio/result/SegFormer-B2/result"if not os.path.exists(rst_path): os.makedirs(rst_path) file_list = os.listdir(img_path) img_list = [os.path.join(img_path, name) for name in file_list]for i,img_file in tqdm.tqdm(enumerate(img_list)): img = cv2.imread(img_file,cv2.IMREAD_GRAYSCALE) cv2.imwrite(os.path.join(rst_path,file_list[i]),img)登录后复制 In []

# 由预测结果生成提交文件!zip -r result.zip result/SegFormer-B2/result登录后复制

以上就是【飞桨学习赛:遥感影像地块分割】22年7月第一名方案的详细内容,更多请关注其它相关文章!

精品推荐

相关文章

最新资讯

热门文章

更多

最新推荐

更多