【天池赛事】零基础入门语义分割-地表建筑物识别
https://tianchi.aliyun.com/competition/entrance/531872/introduction【天池赛事】零基础入门语义分割-地表建筑物识别:第一章 赛题及baseline1 赛题背景2 任务安排3 赛制说明4 赛题数据4.1 数据说明4.2 评价函数1 赛题背景本次新人赛是 Datawhale 与天池联合发起的[零基础入门系列赛事——零基础入门语义分割之地
https://tianchi.aliyun.com/competition/entrance/531872/introduction
【天池赛事】零基础入门语义分割-地表建筑物识别:第一章 赛题及baseline
1 赛题背景
本次新人赛是 Datawhale 与天池联合发起的[零基础入门系列赛事——零基础入门语义分割之地表建筑物识别]。
赛题以计算机视觉为背景,要求选手使用给定的航拍图像训练模型并完成地表建筑物识别任务。为更好的引导大家入门,我们为本赛题定制了学习方案和学习任务,具体包括语义分割的模型和具体的应用案例。在具体任务中我们将讲解具体工具和使用和完成任务的过程。
通过对本方案的完整学习,可以帮助掌握语义分割基本技能。同时我们也将提供专属的视频直播学习通道。
2 任务安排
-
Task1:赛题理解与 baseline(3 天)
– 学习主题:理解赛题内容解题流程
– 学习内容:赛题理解、数据读取、比赛 baseline 构建
– 学习成果:比赛 baseline 提交 -
Task2:数据扩增方法(3 天)
– 学习主题:语义分割任务中数据扩增方法
– 学习内容:掌握语义分割任务中数据扩增方法的细节和使用
– 学习成果:数据扩增方法的实践 -
Task3:网络模型结构发展(3 天)
– 学习主题:掌握语义分割模型的发展脉络
– 学习内容: FCN、 Unet、 DeepLab、 SegNet、 PSPNet
– 学习成果:多种网络模型的搭建 -
Task4:评价函数与损失函数(3 天)
– 学习主题:语义分割模型各种评价函数与损失函数
– 学习内容: Dice、 IoU、 BCE、 Focal Loss、 Lovász-Softmax
– 学习成果:评价/损失函数的实践 -
Task5:模型训练与验证(3 天)
– 学习主题:数据划分方法
– 学习内容:三种数据划分方法、模型调参过程
– 学习成果:数据划分具体操作 -
Task6:分割模型模型集成(3 天)
– 学习主题:语义分割模型集成方法
– 学习内容: LookaHead、 SnapShot、 SWA、 TTA
– 学习成果:模型集成思路
3 赛制说明
本次赛事分为两个阶段,分别为正式赛及长期赛。
正式赛赛制选手报名成功后,选手下载数据,可以本地或天池 PAI 平台完成模型训练,并在测试集上进行提交。
在正式赛后,本场比赛将长期开放,报名和参赛无时间限制。每天每位参赛选手可提交 3 次完成初赛打分;排行榜每小时更新,按照评测指标得分从高到低排序;排行榜将选择历史最优成绩进行展示。
4 赛题数据
数据说明
赛题数据来源(Inria Aerial Image Labeling),并进行拆分处理。数据集报名后可见并可下载。赛题数据为航拍图,需要参赛选手识别图片中的地表建筑具体像素位置。
评价函数
赛题使用Dice coefficient来衡量选手结果与真实标签的差异性,Dice coefficient可以按像素差异性来比较结果的差异性。Dice coefficient的具体计算方式如下:
2 ∗ ∣ X ∩ Y ∣ ∣ X ∣ + ∣ Y ∣ {{2*|X\cap Y|}\over {|X|+|Y|}} ∣X∣+∣Y∣2∗∣X∩Y∣
其中X是预测结果,Y为真实标签的结果。当X与Y完全相同时Dice coefficient为1,排行榜使用所有测试集图片的平均Dice coefficient来衡量,分数值越大越好。
CV实践-语义分割|问题汇总
-
Q:赛题数据如何下载
A:下载
SS_Data_A_20210201.md
,该文件内有数据的下载链接,见下表:FileName Size Link test_a.zip 314.49MB http://tianchi-competition.oss-cn-hangzhou.aliyuncs.com/531872/%E5%9C%B0%E8%A1%A8%E5%BB%BA%E7%AD%91%E7%89%A9%E8%AF%86%E5%88%AB/test_a.zip test_a_samplesubmit.csv 46.39KB http://tianchi-competition.oss-cn-hangzhou.aliyuncs.com/531872/%E5%9C%B0%E8%A1%A8%E5%BB%BA%E7%AD%91%E7%89%A9%E8%AF%86%E5%88%AB/test_a_samplesubmit.csv train.zip 3.68GB http://tianchi-competition.oss-cn-hangzhou.aliyuncs.com/531872/%E5%9C%B0%E8%A1%A8%E5%BB%BA%E7%AD%91%E7%89%A9%E8%AF%86%E5%88%AB/train.zip train_mask.csv.zip 97.52MB http://tianchi-competition.oss-cn-hangzhou.aliyuncs.com/531872/%E5%9C%B0%E8%A1%A8%E5%BB%BA%E7%AD%91%E7%89%A9%E8%AF%86%E5%88%AB/train_mask.csv.zip -
Q:使用预训练模型出现显存溢出问题
A:1. 减小模型训练的Batch Size;2. 更换硬件条件【建议:先随机从训练集中抽取一些数据跑通Baseline】。
-
Q: Baseline中Transform.Normalize里的参数是官方建议的标准化参数吗?
A:使用预训练的模型时,输入数据要与预训练的数据做同样的处理,即保持类似的分布,不同框架以及不同预训练模型的参数不同,以Pytorch为例,可参考文档:https://github.com/Cadene/pretrained-models.pytorch。
-
Q:如何安装GDAL、rasterio、tqdm等库?
A:在jupyter notebook中使用
!pip install some_package --user
或者在terminal中使用pip install some_package --user
命令。注:
-
GDAL和rasterio建议使用whl来安装,下载地址为:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pip;
-
albumentations有三种安装方式,推荐使用conda:
-
pip install albumentations
-
pip install -U git+https://github.com/albu/albumentations
-
-
conda install -c conda-forge imgaug
-
conda install albumentations -c albumentations
-
-
-
Opencv(cv2)安装命令:
python -m pip install opencv-python
-
-
Q:关于天池的常见问题,如数据挂载、第三方库安装、DSW操作等
A:请参考天池的新手文档:https://tianchi.aliyun.com/forum/postDetail?spm=TODO.TODO.header.2.21864825A5pdfB&postId=121050。
-
Q:代码运行有问题,或者环境配置完后但使用不了第三方库
A:1. 重启Kernel或者Python服务;2.若涉及到路径,请查看路径是否包含中文【虽然Python3对中文编码进行了处理,但最好还是优先使用英文:)】;3. 重新创建新的虚拟环境,重新配置第三库【防止原始环境的第三方库版本不适合】。
-
Q:天池存储空间达到上限【免费空间为5G】,无法安装库或者解压数据等操作
A:1.若条件允许,优先使用本地计算机操作;2.若本地条件不允许,可使用Kaggle或Colab;3.适合薅羊毛的平台:https://mistgpu.cn/account/【赠送8元点券,每邀请一个好友赠送8元】和https://gpushare.com/auth/register?user=18630188817&fromId=a3f006115d4&source=link【注册后有100元的注册券,可以免费用20+小时,邀请一个好友送50】
-
Q:赛题内容以及Baseline的讲解直播如何观看?
A:直播已经结束,录播请关注Datawhale的b站,地址为:https://space.bilibili.com/431850986?from=search&seid=724423084384707923
-
Q:代码
output = model(image)['out']
中的['out']
能不能删除A:不能,Baseline中的FCN模型有两个输出,只取out部分。
-
Q:
image, mask = dataset[0]
,读取不了图片,image返回NoneType类型A:1. 天池解压可能导致文件损坏;2. 查看文件路径是否正确。
-
Q:如何切换相应环境的Kernel?
A:分以下两步:
conda install ipykernel #安装插件
python -m ipykernel install --name Name #将环境添加到Jyputer中(Name是此环境显示在Jyputer中的名称,可自定义)
```
-
Q:数据扩充那里有一个resize成256*256有什么特殊作用吗?
A:在FCN中对数据输入的尺寸没有要求,所以该大小可以自由调整,但是要对分辨率和占用空间做个权衡。
-
Q:几个提升模型精度的思路
A:1. 使用更强的数据增强方法;2. 模型调参,如学习率、图像尺寸等;3. 调整优化算法、损失函数,考虑正则方法;4 . 更换更强模型,如UNet、DeepLab等;5. 考虑集成方法;6. ……
注:
- 注意样本的分配,绘制学习曲线,基于模型的学习效果(是否过拟合、欠拟合)来确定合适的优化策略;
- 具体请参考本次学习的pdf教程以及Datawhale往期的学习~
-
Q:如何加载本地模型参数?
A:两种方法:
-
# 先初始化模型,再读取模型参数(适用于文件只保存了参数) model = TheModelClass(*args, **kwargs) model.load_state_dict(torch.load(PATH, map_location=device)) #map_location为切换设备
-
# 直接读取模型(适用于文件既保存了模型结构以及参数) model = torch.load(PATH, map_location=device)
-
-
Q:模型预训练参数文件下载慢
A:可使用镜像:https://coggle.club/note/dl/pretrained-models
-
Q:rle编码shape要求必须是512么?若将编码参数shape改为128会导致识别率骤降么?
A:1. shape不是必须为512的,但是编码前和解码后的图像尺寸要一样(本题图像数据的尺寸为512*512,所以该参数设为512);2.rle只是编码,不是降维,如果直接改shape,就相当于编码内容错误,所得信息不是图像的正确表达,自然识别率会骤降。所以在本题中,先编码成512,之后随便缩放。
更多推荐
所有评论(0)