前情提要
紧接前文:
遥感影像识别-利用较大数据集训练
通过上次制作的数据集进行训练,最终得到拟合的深度学习模型,接下来分析出现的问题以及解决的想法。
1. 训练前的准备(补充)
由于前一篇文章并未指出数据集的使用方式导致数据集被误认为较小,因此准备画图以及说明来补一下前面留的坑。
1.1 数据预处理
由于原始数据集分辨率都是比较大的,而且每张图像的分辨率大小都不相同,因此是无法直接放到模型中训练的,原因有二:一是分辨率过大,显存会爆;二是训练需要的数据大小需要统一。为此对数据做下图的操作。
这是局部的一个处理过程,其实和深度学习中的卷积核滑动窗口去计算相似,也是滑动裁取图像。下图是全局的,看着可能就比较直接。
数据集大小变化结果:
30
→
3740
→
7480
30\to3740\to7480
30→3740→7480
这里的
3740
→
7480
3740 \to 7480
3740→7480 是将裁切图像通过数据增强又增加了一倍的数据。
图像分辨率可表示为:
W
×
H
∼
2560
×
1440
\mathrm{W} \times \mathrm{H} \sim 2560\times1440
W×H∼2560×1440
分辨率大小变化结果:
W
=
{
1004
,
…
,
15088
}
→
W
=
{
512
}
H
=
{
751
,
…
,
8017
}
→
H
=
{
512
}
\mathrm{W} =\{1004,\dots,15088\}\rightarrow \mathrm{W} =\{512\} \\ \mathrm{H} =\{751,\dots,8017\}\rightarrow \mathrm{H} =\{512\}
W={1004,…,15088}→W={512}H={751,…,8017}→H={512}
以上便是数据准备的工作。
2. 训练后的效果
最后一张是利用现在的数据来跑的,前一张则是之前用了五张大图像来跑的。
评价指标:
3. 出现的问题
从上图可以看出,模型将地图中的绿地部分预测成了水域。
3.1 原因
- 水域与绿地的颜色是比较相近的,从分布的形状来说也比较相近,且数据集中由于都是从城市地区采集的,因此水域都呈青绿色,与绿地相近
- 由于电子地图中对于绿地的标注几乎没有,因此在开始的训练中并未将绿地这一类加入到模型中识别,也是导致模型分不清绿地与水域
3.2 思考
对于上述原因,主要有几个看法
- 最开始是围绕电子地图这一主题去制作数据集,然后再训练预测,但是这样的方法是比较有局限性的,标注的质量完全取决于电子地图,且类别也由它来决定,因此模型跑出来的效果不太理想。
- 如果只追求效果,那么可能还有一种方式,就是去利用现有的不同类别的数据集去训练不同的模型,最后再将结果集成到一起。
4. 分开识别
现在尝试将 水域 和 绿地 单独用一个模型去训练识别,最后将结果与另一个模型做集成,目前才把数据集给做了出来,然后投入训练。