目录

1.1 亚像素理解

1.2 何谓亚像素?

1.3 何谓亚像素精度?

摘要:

2 图像处理中的sub-pixel是什么意思?

3 PixelShuffle(像素重组)


1.1 亚像素理解

在相机成像的过程中,获得的图像数据是将图像进行了离散化的处理,由于感光元件本身的能力限制,到成像面上每个像素只代表附近的颜色。例如两个感官原件上的像素之间有4.5um的间距,宏观上它们是连在一起的,微观上它们之间还有无数微小的东西存在,这些存在于两个实际物理像素之间的像素,就被称为“亚像素”。

亚像素实际上应该是存在的,只是缺少更小的传感器将其检测出来而已,因此只能在软件上将其近似计算出来。

如下图所示,每四个红色点围成的矩形区域为实际原件上的像素点,黑色点为亚像素点:

根据相邻两像素之间插值情况的不同,可以调整亚像素的精度,例如四分之一,就是将每个像素从横向和纵向上当做四个像素点。也就是上面图里的红色点之间有三个黑色点。这样通过亚像素插值的方法可以实现从小矩形到大矩形的映射,从而提高分辨率。

正因为这样的操作,所以在图像超分辨的任务里使用pixel shuffle的方式获得高分辨图像(例如ESPCN)。在一般的反卷积里会存在大量补0的区域,这可能对结果有害。因此pixel shuffle通过亚像素卷积的方式,实现从低分辨图到高分辨图的重构,具体如下所示,通过将多通道feature上的单个像素组合成一个feature上的单位即可,每个feature上的像素就相当于新的feature上的亚像素了。

1.2 何谓亚像素?

面阵摄像机的成像面以像素为最小单位。例如某摄像芯片,其像素间距为5.2微米。摄像机拍摄时,将物理世界中连续的图像进行了离散化处理(即真实世界是相连的,但是机器无法做到,所以讲一个小块周围的颜色作为它本来应该有的颜色,那么就相当于将连续的图像进行了离散化处理)。到成像面上每一个像素点只代表其附近的颜色。至于“附近”到什么程度?就很困难解释。两个像素之间有5.2微米的距离,在宏观上可以看作是连在一起的。但是在微观上,它们之间还有无限的更小的东西存在。这个更小的东西我们称它为“亚像素”。实际上“亚像素”应该是存在的,只是硬件上没有个细微的传感器把它检测出来。于是软件上把它近似地计算出来。

为了最大限度利用图像信息来提高分辨率,有人提出了Sub-Pixel概念。意思是说,在两个物理像素之间还有像素,称之为Sub-Pixel。

如果原始图像是n行m列的,希望做k细分的Sub-Pixel,这样就有新的行N和列M,有
N = kn
M = k
m
原来相邻4个像素包含的区域现在变成了(k+1)(k+1)的区域了;要填满这个(k+1)(k+1)的区域,从一个小正方形映照到一个大正方形。

1.3 何谓亚像素精度?

亚像素精度是指相邻两像素之间细分情况。输入值通常为二分之一,三分之一或四分之一。这意味着每个像素将被分为更小的单元从而对这些更小的单元实施插值算法。例如,如果选择四分之一,就相当于每个像素在横向和纵向上都被当作四个像素来计算。

由上图可知,检测结果为对“插值后图像”处理的结果,由于图像分辨率提高了一倍,故用于表示小圆直径的像素数量也增加了一倍,这就是一阶亚像素元技术。我们在每两个像素之间插值一个像素,这样本来是120万像素的图像,插值后的实际处理图像就是240万像素了,相当于把一个像素拆分为1/2,同理依次有1/3拆分、1/4拆分等,一些优秀的算法甚至可以达到1/100拆分,同时还能保证处理速度。

摘要:

Sub-pixel convolution是一种巧妙的图像及特征图upscale的方法,又叫做pixel shuffle(像素洗牌)。我们知道,用深度学习处理图像的话,经常需要对特征图放大。常见的方法有直接上采样,双线性插值,反卷积等等。本文主要介绍一种在超分辨率中经常使用的upscale方法——sub-pixel convolution。

2 图像处理中的sub-pixel是什么意思?

亚像素卷积,是一种正常卷积的简化形式,并加了很强的假设,结果就是去除了大量的卷积运算。亚像素卷积的结果一般是一张更大的图片,可用作超分辨率。

一个正常的反 / 逆 / 转置卷积长这样:

把一个3x3的小图片变成一个5X5的大图片。白色虚线区域全填0。

提出sub-pixel的作者认为,这些白色的填0区域,是无效信息,甚至对求梯度优化有害处。明明可以直接从原图得到信息,何必非要填0呢。

第一个白色矩阵图片是输入层。 第二、第三个白色张量是隐藏层,做步长为1的正常卷积。 第四个彩色图片,经过子像素卷积,得到最后一张斑斓的大图。

3 PixelShuffle(像素重组)

PixelShuffle是一种上采样方法,可以对缩小后的特征图进行有效的放大。
可以替代插值或解卷积的方法实现相应倍数的upscale

PixelShuffle(像素重组)的主要功能是将低分辨的特征图,通过卷积和多通道间的重组得到高分辨率的特征图。这一方法最初是为了解决图像超分辨率问题而提出的,这种称为Sub-Pixel Convolutional Neural Network的方法成为了上采样的有效手段。

  1. 第一个白色矩阵图片是输入层。
  2. 第二个、第三个白色张量是隐藏层,做步长为1的正常卷积。
  3. 第四个彩色图片,经过子像素卷积,得到最后一张斑斓的大图。

要把一张低分辨输入转变为高分辨输出,论文ESPCN中提出用基于特征抽取和亚像素卷积的方法来扩大特征图,将特征图从低分辨空间转换到高分辨空间中去。

上图中左侧第一部分是用于对图像的特征进行抽取。而后在倒数第二层生成 r*r 个通道特征图,这里 r 就是希望上采样的倍数。

pixelshuffle的主要功能就是将这 r*r 个通道的特征图组合为新的 w*r,h*r 的上采样结果。具体来说,就是将原来一个低分辨的像素划分为r*r个更小的格子,利用r*r个特征图对应位置的值按照一定的规则来填充这些小格子。按照同样的规则将每个低分辨像素划分出的小格子填满就完成了重组过程。在这一过程中模型可以调整 r*r 个shuffle通道权重 不断优化生成的结果。

主要实现了这样的功能:N * (C * r * r) * W * H ——>> N * C * (H * r) * (W * r)

利用这些方法可以来改进特征图上采样过程中出现的问题,特别是在图像超分辨和图像增强的算法中需要对特征图进行上下采样的过程,可以解决插值和解卷积的一些人工痕迹问题。

最上面一排是输入的模糊图像x。

中间是超分辨后的图片f(x)

最下面是对照样例y

深入理解——亚像素 / sub-pixel、亚像素卷积 | 码农家园

Sub-pixel Convolution(子像素卷积)_木盏-CSDN博客

图像处理中的subpixel是什么意思? - 知乎

深入理解——亚像素 / sub-pixel、亚像素卷积相关推荐

  1. 亚像素Sub Pixel

    亚像素Sub Pixel 评估图像处理算法时,通常会考虑是否具有亚像素精度. 亚像素概念的引出: 图像处理过程中,提高检测方法的精度一般有两种方式:一种是提高图像系统的光学放大倍数和CCD相机的分辨率 ...

  2. opencv亚像素边缘精度_opencv 亚像素 算法

    亚像素算法亚像素算法的基本思路就是将一个像素再分为更小的单位. 也就是说 1 个像素的灰度值分为 256 级. 所以, 以这类系统为例, 进行亚像素计算就要把像 素分为 255 个小单位. 或许, 可 ...

  3. 【深度学习笔记】亚像素 / sub-pixel、亚像素卷积

    近段时间需要用到亚像素卷积的知识,因此上网查阅了论文和资料,此文是根据网上的博文以及相关论文,依据个人的理解整理而来. 总而言之,拾人牙慧而已. Content 1 亚像素的定义 1.1 亚像素理解 ...

  4. opencv亚像素边缘精度_opencv亚像素边缘检测

    一种新的基于 Zernike 正交矩亚像素边缘定位的直径测量方法 [J], 宋晋国; 党 宏社; 洪英; 梁勇 2.一种改进的正交 Fourier-Mellin 矩亚像素边缘检测算法 [C...... ...

  5. opencv亚像素边缘精度_亚像素级角点定位原理及opencv实现

    为何需要进行亚像素定位? 数字图像通常是离散化成像素:每个像素对应一个整数坐标位置:整数坐标位置对于很多应用并不精确,比如跟踪.相机标定.图像配准.图像拼接以及三维重构:为达到有些应用的精确性,需要精 ...

  6. 【剑桥摄影协会】数码相机像素(Pixel)基础

    随着数码相机技术的不断发展,各种技术相关的术语层出不穷,刚入门的小白常常对此异常困惑.本文主要是让大家能够分清数字像素相关的一些概念,比如传感器尺寸.百万级像素.抖动和打印尺寸等.同时,理解这些概念, ...

  7. 像素(Pixel)、DPI与PPI一看就明白

    像素(Pixel).DPI与PPI 像素(Pixel) DPI 英文全写是(Dots Per Inch,每英寸点数) PPI 英文全写是(Pixels Per Inch,每英寸像素数) 比喻来区分 应 ...

  8. UE4 Pixel Streaming像素推流云端部署方案

    [适用于4.24之后版本] 本文介绍适用于普通WEB云端部署,非GPU云 按照循序渐进方式,分为五个部分 局域网单实例 局域网多实例 广域网部署 WEB云部署 后续 1.局域网单实例 局域网单实例构架 ...

  9. 设备物理像素、设备独立像素

    视觉稿 在前端开发之前,视觉MM会给我们一个psd文件,称之为视觉稿. 对于移动端开发而言,为了做到页面高清的效果,视觉稿的规范往往会遵循以下两点: 首先,选取一款手机的屏幕宽高作为基准(以前是iph ...

最新文章

  1. 未来农业科技:物联网如何阻止全球粮荒
  2. macOS 10.12 Sierra 中文官网正式推出
  3. springboot 得到端口_带你入门SpringBoot
  4. 修改VS2017新建类模板文件添加注释
  5. android 系统倒计时显示时间,Android 依据系统时间整点、半点倒计时
  6. 多年前那些优秀的工程师,后来都去哪儿了?
  7. [PYTHON] 深度解析copy.copy() 与 copy.deepcopy()
  8. re模块常用修饰符_在c语言中修饰符的用法
  9. 海龟交易法则01_玩风险的交易者
  10. 中英文对照 —— 战争与军事
  11. 如何改变WINDOWS服务的启动顺序(Win2000)
  12. Halcon教程十:把Halcon程序放入WPF程序里
  13. MQTT 客户端收发 MQTT 消息
  14. 第十四届蓝桥杯C++B组题解(不完全对)
  15. 实验三:跟踪分析Linux内核的启动过程 ----- 20135108 李泽源
  16. 临时邮箱怎么用?邮箱客户端设置
  17. Java数据结构告诉你如何选用数据集合(2)顺序表
  18. 江西省中职计算机简答题,江西省中等职业学校第八届技能竞赛节计算机类专业竞赛模拟试题(CAD、CAM软件应用)...
  19. 家教信息管理系统的设计与实现
  20. Nacos名字服务(Naming Service)

热门文章

  1. jeecg 与 jeecg-p3有什么区别?
  2. Android NDK调试出错Unknown Application ABI, Unable to detect application ABI#39;s的解决方式...
  3. jvm类加载机制是怎么样的
  4. 博客园客户端UAP开发随笔 -- 适配不同尺寸的屏幕
  5. Joomla2.5模板简明教程
  6. XnView v1.93.6 Final 注册机
  7. linux php项目启动_Linux上实现Node.js项目自启动
  8. OJ1034: 夏季促销
  9. java字符串去掉一头一尾_快学Scala第13章----集合
  10. android 动态设置textview的边距,添加边距为动态的Android的TextView(Adding Margins to a dynam...