深度学习遥感影像语义分割
深度学习大家都知道,在计算机视觉领域取得了很大的成功,在遥感影像自动解译方面,同样带来了快速的发展,我在遥感影像自动解译领域,也做了一些微薄的工作,发表几篇论文,我一直关注遥感影像自动解译领域,
在北京出差的这段时间,终于可以沉下心来,好好研究下深度学习,目前在语义分割领域,也有部分心得,在此同大家分享,权当是互相学习。本篇博文就是论述现有的state-of-art方法在遥感影像语义分割领域的进展,及以后的发展方向!
首先不多说,我采用当前效果表现最稳定、精度较高的几种语义分割网络进行讲述:1.unet网络;2.Deeplab网络(mobile特征提取器,resnet18特征提取器,resnet50特征提取器,Inceptionv3特征提取器等);3.CEnet。
下面我对这几种网络进行简单的讲解,单纯作为抛砖引玉,如有个别不当的地方,请看到的专家不吝赐教,Email:1044625113@qq.com,Phone:15211874660。如果大家需要全套遥感影像语义分割代码,同样可以联系我。
1.unet网络
unet网络由于形状像一个u型,因此称为Unet网络,关于它的资料,大家可以在CSDN的一篇博客找到,介绍的论文太多我就不细讲了!
它的形状如下图所示:
图1 unet语义分割网络(参考unetCSDN博客)
从它的形状,我们可以看出, 非常优美,这是原版论文的架构,我们可以在这个基础上进行大量的改进,比如说,特征提取块,我们可以采用残差网络(resnet)进行替换,这有什么好处呢?主要是可以加深网络,在防止梯度消失的同时,
可以学习到更深层次的特征,有利于提高精度。我看了几个版本的代码,在特征融合层,大家普遍采用两种方式,第一种直接相加,即将编码层与解码层特征直接相加,另外一种就是常用的concat,关于这两种有什么优缺点,我个人的理解是,
concat可以融合更多特征,其实说白了就是以前的向量相加(vector stacking),效果好的同时,GPU的显存肯定要消耗大;而对于特征相加的方式,直观的表现就是节省GPU显存,但是呢,是否比concat更好呢?我这里没有做实验,大家可以
跑跑代码试试!
2.Deeplab网络
图3 DeeplabV3plus语义分割网络(参考原作者论文)
其实从Deeplab的网络可以看出,这个网络简单优美,没有那么多复杂的组合等等,最核心的东西就是四个空洞卷积块,卷积核的大小分别是1 6 12 18,关于作者为什么只用这四个参数呢,作者也只是用实验进行了说明,
证明了用这四个参数可以获得最高的精度,另外一种解析就是,不同大小的空洞卷积核可以感受不同范围的特征。第二个比较重要的地方,就是与四倍采样大小的特征进行concat,这个比较重要,它融合了编码层与解码层的<