有效的亚像素图像配准算法
比较了采用非线性优化和矩阵乘离散傅里叶变换的三种二维图像配准算法。这些算法的精度与传统的快速算法相当。傅里叶变换上采样方法在一小部分的计算时间和与大大减少内存要求。比较它们的精度和计算时间,以评估平移不变误差度量。
在各种各样的应用中,人们通常希望将两个图像注册到一个像素的一小部分内,以便进行图像处理任务或评估。在这项工作中,我们主要关注通过相位检索来评价重构图像[1,2],对于这一点,二维刚性平移就足够了。其他应用程序也可以发现,虽然更创收费员转换通常是必需的,在遥感数据的处理,生物和医学图像放大,计算机视觉,与相关任务响ingfrom超限分辨[3],斑纹和噪音增加[4],运动和变更跟踪,和立体视觉[5] [6 - 8]
对于仅在两个图像之间进行转换的情况,解决此问题的常用技术是通过快速傅里叶变换(FFT)计算要注册的图像和参考图像之间的上采样互相关,并定位其峰值。与这种方法相关的计算负担随着注册所需的交流权限的增加而增加,特别是在内存方面。例如,对于1024×1024的图像,在1/20像素范围内进行配准需要20480×20480逆FFT的处理和存储,而目前大多数单点计算机无法做到这一点。
在本文中,我们提出了三种基于非线性优化和离散傅里叶变换(DFTs)的有效的配准算法,它们允许两幅具有较大的采样因子的图像的精确配准。在计算图像质量的平移不变误差度量时,我们测试了这些算法的精度和计算速度。与通常的FFT方法相比,这些算法具有更短的计算时间和更少的内存需求。
对于相位检索重建图像的问题,可以通过测量f(x,y)的傅里叶变换的幅值对f(x,y)的图像g(x,y)进行数值重建[1,2]。在这种情况下,一个重构g(x,y)被认为是成功的,即使它有一个全局坐标平移(x0,y0)或者乘以一个任意常数a。重构的质量必须通过一个对这些操作不变的误差度量来实现。其中一个度量是由[9]定义的f(x,y)和g(x,y)之间的标准化均方根误差(NRMSE) E
E2=minα,x0y0∑x,y∣ag(x−x0,y−y0)−f(x,y)∣2∑x,y∣f(x,y)∣2=1−x0y0∑x,y∣f(x,y)∣2∑x,y∣g(x,y)∣2\begin{aligned} E^{2}=& \min _{\alpha, x_{0} y_{0}} \frac{\sum_{x, y}\left|\operatorname{ag}\left(x-x_{0}, y-y_{0}\right)-f(x, y)\right|^{2}}{\sum_{x, y}|f(x, y)|^{2}} \\=& 1-\frac{x_{0} y_{0}}{\sum_{x, y}|f(x, y)|^{2} \sum_{x, y}|g(x, y)|^{2}} \end{aligned} E2==α,x0y0min∑x,y∣f(x,y)∣2∑x,y∣ag(x−x0,y−y0)−f(x,y)∣21−∑x,y∣f(x,y)∣2∑x,y∣g(x,y)∣2x0y0
其中对所有图像点求和(x, y) ;
rfg(x0,y0)=∑x,yf(x,y)g∗(x−x0,y−y0)=∑u,pF(u,v)G∗(u,v)exp[i2π(ux0M+vy0N)]\begin{aligned} r_{f g}\left(x_{0}, y_{0}\right) &=\sum_{x, y} f(x, y) g^{*}\left(x-x_{0}, y-y_{0}\right) \\ &=\sum_{u, p} F(u, v) G^{*}(u, v) \exp \left[i 2 \pi\left(\frac{u x_{0}}{M}+\frac{v y_{0}}{N}\right)\right] \end{aligned} rfg(x0,y0)=x,y∑f(x,y)g∗(x−x0,y−y0)=u,p∑F(u,v)G∗(u,v)exp[i2π(Mux0+Nvy0)]
为f(x,y)与g(x,y)的互相关;N和M为图像的维数:(*)表示复连词;大写字母表示对应的小写字母的DFT,由关系给出
F(u,v)=∑x,yf(x,y)MNexp[−i2π(uxM+vyN)]F(u, v)=\sum_{x, y} \frac{f(x, y)}{\sqrt{M N}} \exp \left[-i 2 \pi\left(\frac{u x}{M}+\frac{v y}{N}\right)\right] F(u,v)=x,y∑MNf(x,y)exp[−i2π(Mux+Nvy)]
E2相对于[9]是最小的。因此,Eq.(1)对NRMSE的评估需要通过定位交叉相关的峰值rfg(x,y)r_{f g}(x, y)rfg(x,y)来解决更一般的亚像素图像配准问题
通常的FFT方法afraction内找到互相关峰值,1/κ1 / \kappa1/κ,一个像素是(i)计算 F(u,v)F(u, v)F(u,v)和G(u,v)G(u, v)G(u,v)(ii)将F(u,v)G∗(u,v)F(u, v) G^{*}(u, v)F(u,v)G∗(u,v)嵌入尺寸为(κM,κN\kappa M, \kappa NκM,κN)的一组更大的零数组中,(iii)计算逆FFT以获得向上采样的互相关,(iv)定位高峰。在本例中,对于N⩽M.N \leqslant M .N⩽M.,逆FFT的计算复杂度为O{MNK[log2(κM)+κlog2(κN)]}O\left\{M N_{K}\left[\log _{2}(\kappa M)+\kappa \log _{2}(\kappa N)\right]\right\}O{MNK[log2(κM)+κlog2(κN)]}。
作为这种方法的有效替代品,我们开发了三种不同的算法,在不牺牲准确性的情况下显著提高了性能。这三种算法都是从FFT方法得到的互相关峰值位置的初始估计开始,向上采样因子κ0=2\kappa_{0}=2κ0=2。这种初始向上采样是用来为可能有不止一个相似磁峰的相互关系选择一个合适的起始点。
第一个算法,首先在[9]中提出,但没有实现,利用非线性优化共轭梯度例程[10]优化初始估计,以最大化∣rfg(x0,y0)∣2\left|r_{f g}\left(x_{0}, y_{0}\right)\right|^{2}∣rfg(x0,y0)∣2。它对x0x_{0}x0的偏导数是
∂∣rfg(x0,y0)∣2∂x0=2Im{rfg,y0)∑u,v2πuMF∗(u,v)×G(u,v)exp[−i2π(ux0M+vy0N)]}\begin{aligned} \frac{\partial\left|r_{f g}\left(x_{0}, y_{0}\right)\right|^{2}}{\partial x_{0}}=& 2 \operatorname{Im}\left\{r_{f g}, y_{0}\right) \sum_{u, v} \frac{2 \pi u}{M} F^{*}(u, v) \\ &\left.\times G(u, v) \exp \left[-i 2 \pi\left(\frac{u x_{0}}{M}+\frac{v y_{0}}{N}\right)\right]\right\} \end{aligned} ∂x0∂∣rfg(x0,y0)∣2=2Im{rfg,y0)u,v∑M2πuF∗(u,v)×G(u,v)exp[−i2π(Mux0+Nvy0)]}
对y0y_{0}y0的偏导也有类似的表达式。该算法迭代搜索使rfg(x0,y0)r_{f g}\left(x_{0}, y_{0}\right)rfg(x0,y0)最大化的图像位移(x0,y0)\left(x_{0}, y_{0}\right)(x0,y0),并能在任意像素分块内实现配准精度。
第二种算法,我们称之为单步DFT方法,使用了2D DFT的矩阵乘法实现[11.121]。如。(3)、细化初始峰值位置估计。当需要计算上采样互相关的所有点时,二维FFT是最有效的方法。不幸的是,FFT仅限于计算整个上采样阵列的维数(κM,κN)(\kappa M, \kappa N)(κM,κN),如果我们只对一个非常小的邻域内的rfg(x0,y0)r_{f g}\left(x_{0}, y_{0}\right)rfg(x0,y0)的上采样版本的峰值位置的初始估计感兴趣,这将导致巨大的资源浪费。矩阵乘DFT的优势在于,向上采样的rfg(x0,y0)r_{f g}\left(x_{0}, y_{0}\right)rfg(x0,y0)可以在这样的邻域内计算,而不需要对F(u,v)G∗(u,v)F(u, v) G^{*}(u, v)F(u,v)G∗(u,v)进行零填充。在单步DFT算法中,初始估计是在一个1.5×1.5像素的邻域内(以原始像素为单位)计算上采样的互相关(由一个因子κ\kappaκ)。这个运算是由三个维度(1.5κ\kappaκ,NNN), (NNN,MMM)和(MMM,1.5κ\kappaκ)的矩阵的乘积来实现的。通过在输出(1.5κ,1.5κ)(1.5 \kappa, 1.5 \kappa)(1.5κ,1.5κ)数组(以上采样像素为单位)中搜索峰值,实现亚像素配准。假设κ\kappaκ小于 MMM and NNN,则上采样的算法复杂度为O(MNκ)O(M N \kappa)O(MNκ);与FFT上采样法相比有了很大的改进。
随着所需配准精度的提高,在细化初始(κ0\kappa{0}κ0=2)转换估计值时采用两步矩阵乘DFT方法证明进一步减少计算样本的数量很有用。两步DFT算法最初对1.5×1.5像素区域进行升采样,采样率约为初始估计的κ1≃κ1/2\kappa_{1} \simeq \kappa^{1 / 2}κ1≃κ1/2,并在该阵列中找到互相关峰值。在第二步中,通过对新估计周围的原始像素网格的3/κ1×3/κ13 / \kappa_{1} \times 3 / \kappa_{1}3/κ1×3/κ1较小区域进行上采样全因数来进一步细化峰位置。以这种方式,细化算法的复杂度降低到O(MNκi/2)O\left(M N \kappa^{\mathrm{i} / 2}\right)O(MNκi/2)。对于FFT,单步和两步DFT方法,这种平移估计的精度(κ−1\kappa^{-1}κ−1)与FFT相同
为了评估和比较各种算法的性能,我们使用相加的零均值圆形com形高斯噪声n(x,y)n(x, y)n(x,y)对一个256×256复值图像f(x,y)f(x, y)f(x,y)进行了破坏,并通过(x0,y0)\left(x_{0}, y_{0}\right)(x0,y0) =(502/21,52/15)像素对其进行了平移以生成g(x,y)g(x, y)g(x,y)。本例中不变NRMSE E的估计结果如图1(a)所示,相对于真实的NRMSE E,其中E2=∑x,y∣n(x,y)∣2/∑x,y∣f(x,y)∣2E^{2}=\sum_{x, y}|n(x, y)|^{2} / \sum_{x, y}|f(x, y)|^{2}E2=∑x,y∣n(x,y)∣2/∑x,y∣f(x,y)∣2。当NRMSE趋近于0时,使用高赋值因子k或非线性优化例程变得至关重要,以避免对e的过高估计。通过计算移位误差(Δr=[(x0−x^0)2+(y0−y^0)]1/2\Delta r=\left[\left(x_{0}-\hat{x}_{0}\right)^{2}\right.\left.+\left(y_{0}-\hat{y}_{0}\right)\right]^{1 / 2}Δr=[(x0−x^0)2+(y0−y^0)]1/2如图1(b) for EEE=0.25所示)来确定估计平移量(xo,jo)的精度。为了便于比较,我们还将得到的Ar与不需要指定k的非线性优化例程进行了比较。对于EEE=0.25这一较大的值,使用较高的上采样因子(即KKK=10)进行估计,得到的收益递减[图3]。1(a)],但是从图1(b)中可以看出,更大的k值和更大的非线性优化算法对配准精度有显著的好处。最终配准精度将受到噪声的限制。
图1所示。(a)不变的NRMSE估计值与E (b) E=0.25时估计图像位移Ar与上采样因子k的误差。虚线表示无噪声的最大误差1/(\2k)。对于优化算法,Ar=0.0029像素(虚线曲线)。
三种算法在台式机(AMD Athlon X2双核处理器2.21 GHz, 64位操作系统,4 Gbytes RAIM)上的计算时间比较如图2所示。2×上采样FFT方法获得ini估计所需的时间包含在时间测量中,并明确显示以供比较。初步估计被发现支配了总计算时间。图2(a)显示了EEE=0.22时配准算法相对于图像大小的计算时间(DFT算法的κ\kappaκ=25)。对于相同噪声量的512×512张图像,计算时间k的函数如图2(b)所示。给出了非线性优化算法的计算时间,并进行了比较;它与κ\kappaκ无关。假设两个双精度复值数组,在同一台计算机上可以执行FFT的最大阵列大小为11585×11585。这相当于传统FFT上采样方法的最大图像大小为463×463,κ\kappaκ=25,取235 s,而单步DFT算法取0.78 s。注意,使用FFT upsampling方法注册κ\kappaκ=25的2048 x 2048个图像需要超过78 gb的RAM。
与单步DFT方法相比,两步DFT方法在计算时间上减少的上采样量与图像大小有关。相交点分别出现在图像大小为64×64、256×256和512 x 512的κ\kappaκ= 20,30和45处。虽然非线性优化方法在任何情况下都是最耗时的,但由于它不受向上采样因子的限制,并且可以检索任意的分数阶变换值,因此具有最高的精度。
图2所示。(彩色在线)相对于(a)图像大小(DFT算法为κ=25\kappa=25κ=25)和(b) 512 x 512图像的上采样因子的计算时间。
通过互相关实现的亚像素图像配准特别适合于相位检索重建的图像的比较,在相位检索中,将翻译后的解乘以一个全局复杂因子被认为是一种成功的配准。在低噪声环境下,利用非线性优化或高阶采样因子对E的精确计算尤为重要。翻译估计的准确性很大程度上得益于较大的上采样因子,即使存在中等数量的噪声。这三种算法可以直接扩展到包含互相关方法的变量,如相位相关,并包含窗口函数来计算边缘效果[13]。
虽然其他方法(如曲线拟合互相关峰值[4]或随机抽样方法[81])可以显著更快地实现亚像素图像配准,但它们在配准过程中牺牲了精度。与FFT上采样方法一样,我们的算法总是使用图像中所有可用的信息来计算初始估计和上采样互相关网格中的每个点,从而使它们对噪声具有很强的鲁棒性。
线性优化算法),但大大减少了计算时间和内存需求。使用这些算法可以精确地注册大型图像,甚至在需要的情况下可以精确到百分之一像素内,在普通的桌面计算机上可进行计算管理,对于任何需要亚像素图像注册的应用程序来说,这将被证明是一个巨大的优势。
部分工作以[14]的形式呈现。
Efficient subpixel image registration algorithms
References
- J. R. Fienup, Opt. Lett. 3, 27 (1978).
- J. R. Fienup, Appl. Opt. 21, 2758 (1982).
- M. Irani and S. Peleg, CVGIP: Graph. Models Image Process. 53, 231 (1991).
- A. R. Wade and F. W. Fitzke, Opt. Express 3, 190(1998).
- M. D. Pritt, J. Opt. Soc. Am. A 10, 2187 (1993).
- L. G. Brown, ACM Comput. Surv. 24, 325 (1992).
- B. Zitová and J. Flusser, Image Vis. Comput. 21, 977 (2003).
- P. Viola and W. M. Wells III, Int. J. Comput. Vis. 24, 137 (1997).
- J. R. Fienup, Appl. Opt. 36, 8352 (1997).
- W. H. Press, S. A. Teukolsky, W. T. Vetterling, and B. P. Flannery, Numerical Recipes in Fortran 77 (Cambridge U. Press, 1992).
- H. H. Barrett and K. J. Myers, Foundations of Image Science (Wiley, 2004), p. 172.
- R. Soummer, L. Pueyo, A. Sivaramakrishnan, and R. J. Vanderbei, Opt. Express 15, 15935 (2007).
- S. T. Thurman and J. R. Fienup, Proc. SPIE 6233,62330S (2006).
- M. Guizar-Sicairos, S. T. Thurman, and J. R. Fienup, in Signal Recovery and Synthesis, 2007 OSA Technical Digest Series (Optical Society of America, 2007), SMC3.
有效的亚像素图像配准算法相关推荐
- globalmapper如何选取图像上的点_图像配准算法
[导读]图像配准与相关[1]是图像处理研究领域中的一个典型问题和技术难点,其目的在于比较或融合针对同一对象在不同条件下获取的图像,例如图像会来自不同的采集设备,取自不同的时间,不同的拍摄视角等等,有时 ...
- 一种用于三维物体建模的精确、鲁棒的距离图像配准算法
论文标题:An Accurate and Robust Range Image Registration Algorithm for 3D Object Modeling 作者:Yulan Guo, ...
- matlab图片surf图,用matlab实现SURF图像配准 算法
[实例简介] 一种使用用matlab实现SURF图像配准 算法 [实例截图] [核心代码] 55c5c3ca-3c4f-4857-a0b1-100a10233884 └── surf ├── exam ...
- Apap图像配准算法
图像配准 图像配准是将两张场景相关的图像进行映射,寻找其中的关系,多用在医学图像配准.图像拼接.不同摄像机的几何标定等方面,其研究也较为成熟.OpenCv中的stitching类就是使用了2007年的 ...
- 【图像配准】基于互信息的图像配准算法:MI、EMI、ECC算法
简介: 基于互信息的图像配准算法以其较高的配准精度和广泛的适用性而成为图像配准领域研究的热点之一,而基于互信息的医学图像配准方法被认为是最好的配准方法之一.基于此,本文将介绍简单的基于 ...
- 基于多项式插值的亚像素边缘定位算法
一. 背景 在测量或者定位的应用中会涉及到边缘检测, 但是像 OpenCV 这样的开源库中边缘检测算法的精度在像素级别, 比如Canny, Sobel blablabla. 要想提高精度就需要用到 亚 ...
- 基于多项式插值的亚像素边缘定位算法(python)
本文代码主要是将另外一个博主的c++代码转换成python代码 原文链接:https://blog.csdn.net/yx123919804/article/details/103123071 代码如 ...
- 【MATLAB教程案例27】基于matlab的图像配准算法的仿真与分析——sift,surf,kaze等
FPGA教程目录 MATLAB教程目录 目录 1.软件版本 2.图像配准理论概述 3.基于sift特征提取的图像配准
- 基于sift特征提取的图像配准算法matlab仿真
目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 SIFT 是一种从图像中提取独特不变特征的方法,其特点为基于图像的一些局部特征,而与图像整体的大小和 ...
最新文章
- 用子函数的方法求一维数组中所有元素之和
- 全球及中国水软化盐行业消费规模及市场现状调研分析报告2022-2027年
- int 互换 java_Java基础中Int类型变量值互换的几种方法
- python运维常用模块-运维常用python库模块
- 《计算机组成原理》数据传送类指令不包括( ),兰大《计算机组成原理》20秋平时作业1【标准答案】...
- andorid 三种方式的练习
- C语言编程题:(C语言)分糖果 通俗易懂
- eclipse连接sql数据库
- web前端开发和java后端_web前端开发和后端开发的区别是什么
- 3D打印发光字与传统工艺发光字的区别具体有哪些?
- 我的Delphi开发经验谈(本人修改版) 收藏
- 工科数学分析-微积分(1)
- matlab生成对角占优矩阵,latex对角矩阵diag
- 给最真的自己加上static final
- 基因测序的云计算平台可能带来的变革与进步
- 可视化工具 roto 3t
- 企业电子邮箱如何注册好
- linux删除重复文件,linuxshell删除重复文件只保留一份
- PL/0解释程序输出运行栈(带注释)
- 计算机学硕降20分!2020年中国农业大学硕士生招生考试初试成绩基本要求