遥感图像处理学习(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. 【辅助工具】Postman使用

    Postman使用 批量处理 https://www.bbsmax.com/A/A7zglyjoJ4/ pm.test("测试结果成功", function () {     pm ...

  2. [啊哈!算法] 零基础彻底弄懂"并查集"

    今天是算法数据结构专题的第5篇文章,我们一起来学习一下「并查集」. 并查集被很多ACMer认为是最简洁而优雅的数据结构之一,主要用于解决一些元素分组的问题.并支持两种操作: 合并(Union):把两个 ...

  3. Nginx 代理后,打开新窗口,报404,开发环境下没有问题

    解决办法: router/index.js文件中, 将 router 的 mode 属性设置为 hash,不要使用 history

  4. mybatis-plus Date类型的参数 只有年月日 没有时分秒的解决办法

    问题: 使用mybatis-plus 设计实体的时候 使用   Date inTime;   数据库里的时间2021-11-05 22:00:13 但java里的时间变成了2021-11-05 00: ...

  5. prettier配置项说明

    Prettier 特点 一键改变代码风格,无需改变开发风格 => 1. 安装Node 环境 自行安装 => 2. 安装 Prettier 全局安装npm install --global ...

  6. webpack4中hash、chunkhash和contenthash三者的区别

    https://blog.csdn.net/bubbling_coding/article/details/81561362

  7. 2024-01-20:用go语言,小扣在探索丛林的过程中,无意间发现了传说中“落寞的黄金之都“, 而在这片建筑废墟的地带中,小扣使用探测仪监测到了存在某种带有「祝福」效果的力场, 经过不断的勘测记录,

    2024-01-20:用go语言,小扣在探索丛林的过程中,无意间发现了传说中"落寞的黄金之都", 而在这片建筑废墟的地带中,小扣使用探测仪监测到了存在某种带有「祝福」效果的力场, ...

  8. go Print 和 反射

    0. 前言 在 小白学标准库之反射 reflect 篇中介绍了反射的三大法则.但并未给出具体示例介绍反射,感觉还是少了点什么.这里进一步通过fmt.Println 源码,查看反射如何使用的,算是对前文 ...

  9. 简单剖析Hashmap

    剖析 Java Hashmap 源码 在 Java 的集合框架中,HashMap 是一颗璀璨的明珠.通过深入挖掘其源码,我们将揭开 HashMap 的神秘面纱,理解其底层原理.扩容机制和数据结构. 1 ...

  10. Java 使用二分查找快速定位元素位置

    转载请注明出处: 快速定位 一个有序数列中 某一个元素的位置: 共有三种思路: 第一种:使用 for 循环,匹配元素值 与循环变量的值是否相等,相等则循环变量时的 i 则为元素位置 第二种:使用 二分 ...