遥感图像处理学习(8)


前言

遥感系列第8篇。遥感图像处理方向的学习者可以参考或者复刻

本文初编辑于2024年1月2日
本文再编辑于2024年1月4日:附作者改进U-Net网络图片;文字补充说明

2024年1月25日搬运至本人博客园平台

总结:人家(指模型)已经是他的形状了️


仓库名字:Machine Learning CS-433 - Class Project 2 - Road Segmentation - EPFL

仓库地址:https://github.com/LucasBrazCappelo/ML_EPFL_Project_2


数据库介绍

作者团队在Google Maps的卫星图像上执行道路语义分割

作者团队使用了50幅尺寸为608x608的RGB卫星图像,以及100幅尺寸为400x400的RGB卫星标记图像。标记图像中的每个像素都被标记为白色(代表道路)或黑色(代表背景)。对图像采用了16x16像素的patch进行分割,而不是像素级别的分割。这种方法能够更好地处理道路的语义。

训练集包含100幅尺寸为400x400的RGB卫星标记图像,而测试集包含50幅尺寸为608x608的RGB卫星图像。
训练集的输出格式为1x400x400x2,测试集的输出格式为1x608x608x2,其中最后两个维度对应于图像的二元分类。

由于训练图像太少了,这里作者做了数据增强,即原图像的旋转再截取中间的小图片,见下图。


模型介绍

作者团队对U-Net网络的encoder阶段的卷积进行了改进,见下图。原始的U-Net网络的encoder的卷积核padding为0,但作者团队将其设定为1,这样就不需要在将图像从encoder复制到decoder时进行裁剪,简化了操作流程。

把别人的模型变成自己的样子,这何尝不是一种NTR!
泛式,终将成为你!

下面是原始U-Net

下面是作者改进U-Net。
卷积核零填充padding为1的话,就不会在卷积阶段让图片维度减少了,方便网络右侧将上采样图像和特征图像进行合并。

不过除此之外就没什么改动了,评价是不够牛,看看隔壁U-Net++、3D U-Net、Attention U-Net。

模型的输出端采用了LogSoftmax分类,并使用了Negative Log Likelihood误差和IoU误差进行优化。

模型采用了两个优化器,第一个是带有动量的SGD(动量为0.9),这样可以通过让之前的梯度对当前梯度计算产生影响来提供惯性。第二个是Adam优化器,但作者团队发现Adam优化器并不比SGD更有效,所以选择了保持简单的SGD。

此外,模型还实现了一个学习率调度器,允许指数衰减(gamma = 0.95)。


模型结果

在验证测试中,模型发现一些道路经常被打断,作者团队注意到这种现象通常发生在小道路上,因为建筑物或树的阴影导致切割效果不佳。同时,由于车辆的遮挡和横跨公路的广告牌,模型对高速公路的分割效果也不理想,见右下图。

不过,作者团队发现通过旋转图片的数据增强方式,可以有效提高对对角线道路的分割效果。

后面都是一些作者的奇思妙想,就不贴上来了。

遥感图像处理笔记之【Machine Learning CS-433 - Class Project 2 - Road Segmentation - EPFL】的更多相关文章

  1. Stanford机器学习笔记-7. Machine Learning System Design

    7 Machine Learning System Design Content 7 Machine Learning System Design 7.1 Prioritizing What to W ...

  2. 学习笔记之Machine Learning Crash Course | Google Developers

    Machine Learning Crash Course  |  Google Developers https://developers.google.com/machine-learning/c ...

  3. 学习笔记之Machine Learning by Andrew Ng | Stanford University | Coursera

    Machine Learning by Andrew Ng | Stanford University | Coursera https://www.coursera.org/learn/machin ...

  4. Coursera 学习笔记|Machine Learning by Standford University - 吴恩达

    / 20220404 Week 1 - 2 / Chapter 1 - Introduction 1.1 Definition Arthur Samuel The field of study tha ...

  5. [笔记]机器学习(Machine Learning) - 00.目录/大纲/写在之前

    目录会根据我的学习进度而更新,给自己列一个大纲以系统地看待整个学习过程. 学习资料来源 学习的是Coursera上吴恩达(Andrew Ng)老师的机器学习视频(课程传送门,最近在"最强大脑 ...

  6. 【coursera笔记】Machine Learning(Week6)

    发现自己不写总结真是件很恶劣的事情,好多学的东西没有自己总结都忘记了.所以决定从今天开始,学东西的时候一定跟上总结. 我写的东西大多数是自己通俗的总结,不太喜欢写严格的定义或者证明,写了也记不住,欢迎 ...

  7. [笔记]机器学习(Machine Learning) - 01.线性回归(Linear Regression)

    线性回归属于回归问题.对于回归问题,解决流程为: 给定数据集中每个样本及其正确答案,选择一个模型函数h(hypothesis,假设),并为h找到适应数据的(未必是全局)最优解,即找出最优解下的h的参数 ...

  8. [笔记]机器学习(Machine Learning) - 03.正则化(Regularization)

    欠拟合(Underfitting)与过拟合(Overfitting) 上面两张图分别是回归问题和分类问题的欠拟合和过度拟合的例子.可以看到,如果使用直线(两组图的第一张)来拟合训,并不能很好地适应我们 ...

  9. [笔记]机器学习(Machine Learning) - 02.逻辑回归(Logistic Regression)

    逻辑回归算法是分类算法,虽然这个算法的名字中出现了"回归",但逻辑回归算法实际上是一种分类算法,我们将它作为分类算法使用.. 分类问题:对于每个样本,判断它属于N个类中的那个类或哪 ...

  10. 学习笔记之机器学习(Machine Learning)

    机器学习 - 维基百科,自由的百科全书 https://zh.wikipedia.org/wiki/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0 机器学习是人工智能的一个分 ...

随机推荐

  1. 分享几个常用的运维 shell 脚本

    今天咸鱼给大家分享几个不错的 Linux 运维脚本,这些脚本中大量使用了 Linux 的文本三剑客: 1. awk 2. grep 3. sed 建议大家这三个工具都要了解并最好能够较为熟练的使用 根 ...

  2. 【库函数】QT 中QString字符串的操作

    QString是QT提供的字符串类,相应的也就提供了很多很方便对字符串的处理方法.这里把这些对字符串的操作做一个整理和总结. 1. 将一个字符串追加到另一个字符串的末尾 QString str1 = ...

  3. #2612:Find a way(BFS搜索+多终点)

    第一次解决双向BFS问题,拆分两个出发点分BFS搜索 #include<cstdio> #include<cstring> #include<queue> usin ...

  4. UVA540 Team Queue(双queue)

    题目大意 有一条长队,每个人均唯一属于一个组(有编号),执行给定操作序列,输出相应结果.操作如下: (假设长队q1) ENQUEUE x:标号为x的人入队,若q1中存在和x属于同一组的人,则将x插入长 ...

  5. [计数dp] 整数划分(模板题+计数dp+完全背包变种题)

    计数类 dp 可分为 计数 dp 和数位统计 dp.大多是用来统计方案数什么的,特别强调 不重不漏,在此还是根据各个题的特点将计数 dp 和数位 dp 分开整理.其实数位 dp 的题目会相对多很多- ...

  6. 十二、docker仓库

    系列导航 一.docker入门(概念) 二.docker的安装和镜像管理 三.docker容器的常用命令 四.容器的网络访问 五.容器端口转发 六.docker数据卷 七.手动制作docker镜像 八 ...

  7. 引入阿里在线图标(微信小程序)

    https://www.bilibili.com/video/BV1WJ41197sD?p=49

  8. 如何部署两个JMS网关,形成双机热备

    大家使用JMS的过程中,可能会留意到,不管是微服务在注册时,还是RemoteClient构造时,所指向的网关都是一个NetAddress数组,之所以网关地址是多个,而不是一个,那是因为网关是一个双击热 ...

  9. .NET集成IdGenerator生成分布式全局唯一ID

    前言 生成分布式唯一ID的方式有很多种如常见的有UUID.Snowflake(雪花算法).数据库自增ID.Redis等等,今天我们来讲讲.NET集成IdGenerator生成分布式全局唯一ID. 分布 ...

  10. ONVIF网络摄像头(IPC)客户端开发—最简RTSP客户端实现

    前言: 网上对于RTSP协议客户端的表述和实现非常不清晰,在实际使用中,FFMPEG和live555这些软件已经实现了RTSP客户端和服务端的所有功能,但是它们并没有将RTSP协议独立出来,通过看li ...