点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

大家都知道目前主流的语义分割模型都是编码-解码框架的。通过编码器不断将输入不断进行下采样达到信息浓缩,而解码器则负责上采样来恢复输入尺寸。

目前已知的大多数分类网络,比如说VGG、ResNet、MobileNet、Inception和DenseNet等,均可用于分割时的信息编码,那么恢复图像像素的上采样方法都有哪些呢?

经典的上采样方法主要包括双线性插值法(Bilinear interpolation)、转置卷积法和反池化法(Unpooling)。本文笔者就和大家来看一下这些上采样方法。

双线性插值

插值法(Interpolation)是一种经典的数值分析方法,一些经典插值大家或多或少都有听到过,比如线性插值、三次样条插值和拉格朗日插值法等。在说双线性插值前我们先来了解一下什么是线性插值(Linear interpolation)。

线性插值法是指使用连接两个已知量的直线来确定在这两个已知量之间的一个未知量的值的方法。如下图所示:

已知直线上两点坐标分别为(x1,y1)和(x2,y2),现在想要通过线性插值法来得到某一点x在直线上的值。基本就是一个初中数学题,这里就不做国多展开,点x在直线上的值y可以表示为:

然后我们再来看双线性插值。线性插值用到两个点来确定插值,双线性插值则需要四个点。在图像上采样中,双线性插值利用四个点的像素值来确定要插值的一个像素值,其本质上还是分别在x和y方向上分别进行两次线性插值。如下图所示,我们来看具体做法。

图中Q11-Q22四个黄色的点是已知数据点,红色点P是待插值点。假设Q11为(x1,y1),Q12为(x1,y2),Q21为(x2,y1),Q22为(x2,y2)。我们先在x轴方向上进行线性插值,先求得R1和R2的插值。根据线性插值公式,有:

得到R1和R2点坐标之后,便可继续在y轴方向进行线性插值。可得目标点P的插值为:

双线性插值在众多经典的语义分割网络中都有用到,比如说奠定语义分割编解码框架的FCN网络。假设将3x6的图像通过双线性插值变为6x12的图像,如下图所示。

双线性插值的优点是速度非常快,计算量小,但缺点一般就是效果不是特别理想。

转置卷积

语义分割上采样另一种经典的、也是最主流的方法是转置卷积(Transposed Convolution),也有叫做反卷积或者解卷积。转置卷积本质上跟常规卷积并无太大差别,具体笔者在系列第6篇深度学习100问-6:有哪些经典的卷积类型?中已有详细阐述,本文就不再赘述。

常规卷积

转置卷积

转置卷积作为上采样方法效果要比双线性插值好一些,但缺点就是计算量偏大。

反池化

反池化(Unpooling)可以理解为池化的逆操作,相较于前两种上采样方法,反池化用的并不是特别多。其简要原理如下,在池化时记录下对应kernel中的坐标,在反池化时将一个元素根据kernel进行放大,根据之前的坐标将元素填写进去,其他位置补位为0即可。

如下图所示,a为输入图像,b为转置卷积的输出效果,c则是反池化的输出效果。

以上就是本文内容。

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

深度学习100问:图像语义分割有哪些经典的上采样方法?相关推荐

  1. 深度学习100问-13:深度学习如何制作个人数据集?

    深度学习100问 Author:louwill Machine Learning Lab 上一节我们谈到深度学习,尤其是计算机视觉方向的一些经典数据集.这些数据除了供我们学习和实验之外,在实际的生产环 ...

  2. 应用于语义分割问题的深度学习技术综述(语义分割综述)

    应用于语义分割问题的深度学习技术综述 基本介绍 摘要 1 .引言 2.术语及背景概念 2.1 常见的深度网络架构 2.1.1 AlexNet 2.1.2 VGG 2.1.3 GoogLeNet 2.1 ...

  3. 深度学习100问-1:深度学习环境配置有哪些坑?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 从今天起,开辟一个新的专栏,名字就叫深度学习100问.选取深度学习 ...

  4. 【深度学习】Transformer在语义分割上的应用探索

    [深度学习]Transformer在语义分割上的应用探索 文章目录 1 Segmenter 2 Swin-Unet:Unet形状的纯Transformer的医学图像分割 3 复旦大学提出SETR:基于 ...

  5. 深度学习100问之深入理解Regularization(正则化)

    声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献. 2)本文仅供学术交流,非商用.所以每一部分具体的参考资料并没有详细对应.如果某部分不小心侵犯了大家的利益,还 ...

  6. [转载] python实现语义分割_使用Keras实现深度学习中的一些语义分割模型

    参考链接: Keras中的深度学习-数据预处理 Keras-Sematic-Segmentation 使用Keras实现深度学习中的一些语义分割模型. 配置 tensorflow 1.13.1+ten ...

  7. 动手深度学习13:计算机视觉——语义分割、风格迁移

    文章目录 一.语义分割 1.1 语义分割简介 1.2 Pascal VOC2012 语义分割数据集 1.2.1下载.读取数据集 1.2.2 构建字典(RGB颜色值和类名互相映射) 1.2.3 数据预处 ...

  8. 深度学习应用篇-计算机视觉-语义分割综述[5]:FCN、SegNet、Deeplab等分割算法、常用二维三维半立体数据集汇总、前景展望等

    [深度学习入门到进阶]必看系列,含激活函数.优化策略.损失函数.模型调优.归一化算法.卷积模型.序列模型.预训练模型.对抗神经网络等 专栏详细介绍:[深度学习入门到进阶]必看系列,含激活函数.优化策略 ...

  9. 基于深度学习的遥感影像语义分割数据预处理

    基于深度学习的遥感影像语义分割数据预处理 第一次处理数据,不熟练,仅供参考 数据预处理工具:Arcgis 第一步:下载遥感影像tif数据 根据实际需求选择感兴趣的遥感影像区域 数据来源:Google卫 ...

最新文章

  1. 【2020新书】Python Pro专业实践原则,Practices of the Python Pro,250页pdf
  2. 从计算机移到u盘如何加快速度,我的电脑移动文件到U盘里时进度很慢很慢,怎么让它变快?...
  3. python flask实现博客系统_基于Flask的博客网站设计与实现
  4. 图片任意放大缩小 插件
  5. 如何用ABP框架快速完成项目(2) - 快的定义!
  6. Tcode SCU3查看table log的error message - 如何查找necessary PFCG role
  7. 登录界面点击登录后如何延迟提示成功的div的显示时间并跳转
  8. Java反射基础(二)--Fileds对象的使用
  9. a start job is running for延迟90s的解决办法
  10. jdbc和mysql编程_MySql数据库与JDBC编程三
  11. SAP License:SAP PFCG或SEARCH_SAP_MENU文本乱码
  12. 介绍Angular的注入服务
  13. NopCommerce支持友好路由
  14. javascript实现页面自动刷新和自动跳转代码
  15. ZooKeeper 会话的秘密 快偷偷过来瞧一瞧!!!
  16. 微信公众平台测试账号申请
  17. html里面<i>和<em>标签的区别
  18. Presto Cannot write to non-managed Hive table
  19. STM32程序下载2:通过STM32CubePro-ST-Link下载
  20. 解决“javac”提示不是内部或外部命令的问题

热门文章

  1. 四大指标超现有模型!少样本的无监督图像翻译效果逆天| 技术头条
  2. PFLD:简单、快速、超高精度人脸特征点检测算法
  3. BDTC 2017丨大数据在金融、交通、医疗、工业领域落地实践与应用
  4. JDK17 要来了!会带来什么新特性?不好意思,我还在JDK7 踏步走...
  5. 总结:被MySQL UTF8编码坑的惨痛教训...
  6. Spring Boot 监听 Redis Key 失效事件实现定时任务
  7. Redis实现分布式锁的深入探究
  8. 机器学习博士在获得学位之前需要掌握的九种工具!
  9. 剑指offer_第10题_矩形覆盖
  10. 兰大本科生发31篇论文遭质疑,本人及校方回应!