最近接触到一些和subpixel相关的操作,对亚像素相关基本概念还不是很了解,所以这里想了解一下。
在相机成像的过程中,获得的图像数据是将图像进行了离散化的处理,由于感光元件本身的能力限制,到成像面上每个像素只代表附近的颜色。例如两个感官原件上的像素之间有4.5um的间距,宏观上它们是连在一起的,微观上它们之间还有无数微小的东西存在,这些存在于两个实际物理像素之间的像素,就被称为“亚像素”。亚像素实际上应该是存在的,只是缺少更小的传感器将其检测出来而已,因此只能在软件上将其近似计算出来。
亚像素可以表示为如下图所示,每四个红色点围成的矩形区域为实际原件上的像素点,黑色点为亚像素点:
根据相邻两像素之间插值情况的不同,可以调整亚像素的精度,例如四分之一,就是将每个像素从横向和纵向上当做四个像素点。也就是上面图里的红色点之间有三个黑色点。这样通过亚像素插值的方法可以实现从小矩形到大矩形的映射,从而提高分辨率。
正因为这样的操作,所以在图像超分辨的任务里使用pixel shuffle的方式获得高分辨图像(例如ESPCN)。在一般的反卷积里会存在大量补0的区域,这可能对结果有害。因此pixel shuffle通过亚像素卷积的方式,实现从低分辨图到高分辨图的重构,具体如下所示,通过将多通道feature上的单个像素组合成一个feature上的单位即可,每个feature上的像素就相当于新的feature上的亚像素了。
参考:
1.https://blog.csdn.net/pengjc2001/article/details/55095023
2.https://www.zhihu.com/question/56177877/answer/269452316
---------------------
作者:CHNguoshiwushuang
来源:CSDN
原文:https://blog.csdn.net/CHNguoshiwushuang/article/details/81155361