回顾
经过前两次的思考,最终还是回到最初的想法上来,利用大量比较合理的电子地图进行模型的训练,看能否产生较好的效果。
前两次的博文链接如下:
遥感影像识别-制作数据集
遥感影像识别-训练策略
本次训练所使用的数据集
地域覆盖了全国几个主要的城市,比如杭州、成都、广州等等,不过一方面为了进一步观察数据集的效果,也为了不浪费算力,因此并未采集各个大城市的地图用以制作数据集,而是随便挑了几个城市中的部分区域用以制作,另一方面的原因也是因为现有的地图软件对于地图的识别很多地方都不是特别精确的,因此选择一个比较准确的标注区域实际上是有点靠运气的,只能挨个挨个去试,而在偏远地区则只有主要道路有标注,因此几乎无法从偏远地区取材制作数据集。
数据集类别分布
数据集中的类别越平衡,效果应该也会稍好些,因此为了查看本次做的数据集质量如何,因此统计了各个类别的像素个数以及百分比。
百分比:
背景: 0.8067575502102572
水域: 0.11571123391477656
道路: 0.029220867620779262
建筑: 0.04831034825418703
数据集大小概念:
总分辨率为:26817.35510821304
相当于104.0张 256X256 的图像
这里可以看出数据集的类别分布还是没那么平衡的,但是这也是在预料之中,因为结合遥感影像的特点,一张图里必然背景充斥了大部分板块,而道路则是最少的,毕竟都是以线条状分布在地图中,且零零散散。而建筑与水域情况也和道路差不了太多。因此除去背景,后三类的分布还是较为均匀的。
训练模型
本次并未再使用前文所提及的 DeepLabV3+ 模型,而是重新换了一个网络模型 Unet 来试了一下。
至于为什么,会在下文提及。
在将数据集放到 Unet 中训练之前,先利用一个比赛的数据集跑了一下效果,如下图。
这是把训练的数据集拿出来再预测了一下,基本上整个模型对原数据集拟合的效果还是可以的,但是这个说明不了什么问题,接下来把该模型用来预测我最近做的数据集上看效果咋样。
这就可以看出预测的效果比较差了,但是仔细看的话,还是能看到水域和道路还是能分的清的,但是由于参与训练的数据集比较少,只有五张图像,能有这个样子还是不错了。Unet的预测效果比较平滑,同时为了试试其它模型的效果,所以这次没有用之前的模型。
目前的模型还正在训练中,正是使用的新数据集,不过数量也不算特别多,但相较于上述使用的数据集还是要多一些的。