亚像素Sub Pixel
评估图像处理算法时,通常会考虑是否具有亚像素精度。
亚像素概念的引出:
图像处理过程中,提高检测方法的精度一般有两种方式:一种是提高图像系统的光学放大倍数和CCD相机的分辨率能力;另一种是引入亚像素细分技术来弥补硬件的不足以提高图像系统的分辨率。
如使用亚像素细分技术将精度提到到0.01像素,就相当于提高了100倍的图像系统分辨率。
[分辨率可以从显示分辨率与图像分辨率两个方向来分类。
优点:大大节省系统的硬件投入成本,降低技术应用的难度,扩大其应用范围。
亚像素细分技术最早是由Hueckel M F在a local visual operator which recognizes edges and lines中提出。目前此技术已取得了很好的成果。
-
亚像素定义:
像素是成像面的基本单位也是最小单位,通常被称为图像的物理分辨率。
如130万像素为1280*1024;
如果成像系统要显示的对象尺寸小于物理分辨率时,成像系统是无法正常辨识出来的。
实际上,亚像素细分算法是软件上对物理分辨率的近似优化结果。
例如:某CMOS成像芯片,其像素间距为4.5um。在成像时,对物理世界中连续的图像进行了离散化处理,这时成像面上每一个像素点只代表其附近的颜色。
而两个像素之间有4.5um的距离,在宏观上可以看作是连在一起的,但在微观上它们之间还有无限更小的东西存在,是两个物理像素之间的“像素”,这些更小的东西就称为“亚像素”。
【注】:实际上,“亚像素”应该是存在的,只是硬件上没有比像素更细微的传感器把它检测出来而已,于是在软件上把它可以近似地计算出来。
-
简单示例来说明一下:
如下图所示:
较大的点是真实的物理像素点,在物理像素点之间较小的点是亚像素点。
假设:在理想成像条件下,一个点经过数字化后,在数字图像上表现为四个物理像素点的矩形,下图所示,左上角的四个标记1,2,3,4围起来的矩形所示。
如果取整像素值作为目标的中心坐标,
则与采用亚像素方法求出的中心坐标相差0.5个物理像素。
-
亚像素算法的建立和选择:
亚像素定位算法的前提条件是:目标不是孤立的单个像素点,而必须是由一定灰度分布和形状分布的一系列像素点组成。
一般要经过三个步骤:
① 粗定位过程:
对检测的目标进行初步定位,得到像素的精度;
② 确定搜索范围:
为了提高精度和降低运算量,在目标位置附近选择合适大小的小领域区域作为分析的搜索区域。
③ 细定位过程
根据区域特点,选择合适的亚像素算法进行细定位分析以得到亚像素的精度。
-
亚像素细分算法
①:几何方法
利用图像中某一目标的几何特征得到亚像素的测量数据,一般是规则形状的目标,如圆,三角形、正方形等形状。
常见的几何方法有形心法和灰度重心法。
形心法是对图像中圆、椭圆和矩形等中心对称的目标进行高精度定位的最简单的亚像素算法。
由于形心法是根据被测目标的几何特性来确定位置,所以需要对图像进行二值化运算,识别 出要处理的目标区域。同时,此算法也要求目标图像的干扰噪声尽可能小,这样就不会产生 太大的误差,一般可进行图像预处理来减少误差的产生。当目标图像的对比度较好时,形心法的精度可以达到0.1个像素。
灰度重心法是基于形心法的基本原理而形成的常用亚像素算法。
在图像的亚像素级边缘提取中,它看成是以灰度或灰度的导数为权值的加权重心。它的好处在于算法充分利用了对称目标中每一点的灰度值,通常可获得比形心法更高的定位精度。
②:矩估计方法
矩估计方法是目前亚像素算法中研究最广泛,应用最多的方法。由于矩是基于积分的运算, 因此矩也被认为是对噪声不敏感的稳定特征,同时矩还具有被测目标的矩特性在成像前后 保持不变的性质。根据矩的这种显著特点可以采用模板运算的方式对物体形状的边缘进行 亚像素细分。常见的算法有空间矩、灰度矩和ZOM正交矩等。
③:插值法
线性插值是插值算法中最简单的一种。毫无疑问,它是通过等间隔的线性插值算法来实现对边缘过渡的细分。因此,其算法最为简单,速度快,但精度也不高。
多项式插值法则改善了线性插值的缺陷,它采用了多项式插值函数来对边缘进行亚像素细分。
-
实践中,
许多算法,都具有亚像素精度;对算法进行评估的一个指标是是否具有亚像素精度。
这是什么意思呢?
可以这样理解:图像采用某种算法,一般得出的像素坐标为整数int(x,y);但是如果得出的像素坐标不是整数如float(x,y);即数值计算的结果不为整数;可以说成算法具有亚像素精度(Sub Pixel Accuracy)的优点。
计算的数值比整数值更为精确,如果需要得出整数,可以把返回的小数值近似为最接近的整数。