图像配准学习小结 (一)
一、含义和意义
图像配准是找到一组变换参数,使得变换后的待配准图像与原始图像之间的相似度达到最高,目的在于将同一场景的不同图像转换到同样的坐标系中。待配准图像与原图像可能存在时间、捕获方式、角度等各方面的差异。
待配准图像向原图像进行变换的方式有刚体(平移旋转)变换、仿射变换、单应性变换、非刚性变换等。
非刚性能够局部扭曲目标图像,使其与参考图像对齐。包括径向基函数(薄板或曲面样条、多二次曲面和紧支撑转换)、物理连续模型(粘性流体)和大变形模型(差异同构)。医学图像配准中大多涉及非刚性变换。
二、内容
2.1传统基于特征的图像配准
2.1.1关键点检测和特征描述
- 关键点 :图像中重要、有特点的地方。关键点的方向由采用的特征点检测方法确定。
- 描述子:描述关键点,对图像变换(位置、缩放、亮度)是鲁棒的。
2.1.2特征匹配
检测到的两幅图像中的关键点进行匹配,找到待配准图像中与原图像中最相近的对应关键点。
2.1.3图像变形
在匹配到至少 4 对关键点之后,将一幅图像相对于另一幅图像进行转换的过程被称作图像变形(Image Warping)。空间中同一平面的任意两幅图像都是通过单应性变换关联起来的。单应性变换是具有8个参数的几何变换,通过一个 3×3 的矩阵表征。代表着对一幅图像整体所做的任何变形(与局部形变不同)。
2.2基于深度学习方法的图像配准
深度学习方法在图像配准上的应用可分为特征点检测和预测转换参数两方面。
2.2.1特征点检测
由于SIFT检测方法在存在一定外观差异的多时间多传感器图像的特征检测中容易出现很多异常值。论文《Multi-temporal Remote Sensing Image Registration Using Deep Convolutional Features》将CNN应用到特征提取环节,生成鲁棒的多尺度特征描述符。对图像进行像素级的划分,将每个patch的中心作为特征点,周围8×8方块作为描述符。
特征点筛选:使用低阈值选择较多的特征点,滤除不相关点。采用较高的阈值选择出具有重叠斑块的特征点,在后续每迭代K次,就将阈值减小一个步长,让更多的特征点参与到变换过程。高匹配特征点决定变换,其余的优化配准准确率。
2.2.2转换矩阵预测
研究《Deep Image Homography Estimation》中提出了一个新的VGG式网络用于单应性估计,使用4点参数化得到一个较好的估计值。提出公式计算单应性估计问题,用来确定单应性变换结果的置信度。端到端训练,不区分角点检测和图像配准,直接产生变换矩阵。按各方面鲁棒性需求对数据集进行扩充,裁剪、旋转、添加模糊等。
- 回归神经网络:直接产生转换矩阵的8个结果值,不给出置信度。8×1实值输出。
- 分类神经网络:产生置信度,8个输出参数每个有21个量化值。
结果:回归网络性能好,分类网络可产生置信度。
三、方法应用
3.1 Opencv
3.1.1角点检测
Harris角点检测:结果是一个由角点分数构成的灰度图像。选取适当的阈值对结果图像进行二值化我们就检测到了图像中的角点。对下图进行Harris角点检测,结果如图所示。
图一
图二
Shi-Tomasi角点检测&适合于跟踪的图像特征:按照质量规定检测指定数量的角点,将符合质量要求的给定最小距离内的角点删除,留下质量最高的角点。找到原图中25个角点的结果如下:
(上述角点检测方法具有旋转不变性,缩放后同样的窗口大小就检测不出角点了)
FAST角点检测:角点判断:一个像素点周围16个像素点中存在n个连续像素点的灰度值都高于Ip+t,或者低于Ip−t。必要条件:像素点周围90°像素点的灰度值,1、5、9、13,有三个满足以上条件。
缺点:
- n<12时候选点多;
- 像素的选取不是最优的,因为它的效果取决与要解决的问题和角点的分布情况;
- 高速方法的结果被抛弃;
- 检测到的很多特征点都连在一起(非极大值抑制解决)。
非极大值抑制:
1、对所有检测到到特征点构建一个打分函数V。V就是像素点p与周围16个像素点差值的绝对值之和。
2、计算临近两个特征点的打分函数V。
3、忽略V值最低的特征点
3.1.2 SIFT(Scale-Invariant Feature Transform)
2004 年,D.Lowe 提出的一个新的算法,主要思路是提取关键点、计算描述符。
3.1.2.1尺度空间极值检测:
尺度空间图像生成就是当前图像与不同尺度核参数σ进行卷积运算后产生的图像。
使用由一系列具有不同方差s的高斯卷积核构成的尺度空间滤波器实现大角点用大窗口、小角点用小窗口检测的功能。
窗口大小=6×s+1
具有不同s的高斯拉普拉斯算子LoG对图像进行卷积。但实际用图像金字塔计算高斯差分算子DoG来近似代替,27邻域内的局部最大值可能为关键点.关键点是相应尺度空间的最好代表。
文献SIFT参数经验值:降低采样减小图像尺寸构成尺寸减小的四层图像金字塔,尺度空间为 5,也就是每个尺寸使用 5 个不同方差的高斯核进行卷积,初始方差是1.6, k 等于√2等。
3.1.2.2关键点定位:
- 关键点:原图像中检测到的点在待匹配图像中依然能检测到。关键点需要被修正,以得到更准确结果。
DOG算法对边界敏感。去除掉边界点:hessian矩阵计算主曲率,去除掉大于边界阈值的极值点。低对比度和边界关键点都会被去除。 - 旋转不变性:
对每一个特征点都把它所在的patch转正后再匹配,因此无论一个点的怎么旋转,匹配都是在转正后的patch上匹配的; - 尺度不变性:
(使用金字塔来实现)对于同一个特征来说,把原始点和待匹配的点的描述都建成一个连续的无穷深的金字塔,总会有两组金字塔中的纹理是相似的,在现实中只选取2-3个Octave也就可以了。 - 一定程度光照不变性:
在均匀光照下,象素之间的梯度是不会改变的
3.1.2.3为关键点(极值点)指定方向参数
为每一个关键点赋予一个反向参数,这样它才会具有旋转不变性。获取关键点(所在尺度空间)的邻域,然后计算这个区域的梯度级和方向。 根据计算得到的结果创建一个含有 36 个 bins(每 10 度一个 bin)的方向直方图。(使用当前尺度空间σ值的1.5倍为方差的圆形高斯窗口和梯度级做权重)。直方图中的峰值为主方向参数,如果其他的任何柱子的高度高于峰值的80%被认为是辅方向。这就会在相同的尺度空间相同的位置构建出具有不同方向的关键点。这对于匹配的稳定性会有所帮助。
3.1.2.4关键点描述符:
选取关键点周围一个16x16的邻域,把它分成16个4x4的小方块,为每个小方块创建一个具有8个bin的方向直方图。总共加起来有128个bin。由此组成长为128的向量就构成了关键点描述符。除此之外还要进行几个测量以达到对光照变化,旋转等的稳定性。
最后,计算欧氏距离作为两幅图像中关键点匹配相似性衡量标准。计算距离最近和第二近欧氏距离的比值,比值大于0.8则认为可能是噪声导致的误匹配,忽略。
对上述原图进行旋转剪切后与原图像进行SIFT特征点检测和匹配如下图:
3.1.3 SURF(加速的SIFT)
构建尺度空间采用box_filter对LoG近似。
为特征点分配主方向:设计一个以特征点为中心,张角为60度的扇形滑动窗口,以步长为0.2弧度左右旋转这个滑动窗口,并对窗口内的图像Haar小波的响应值进行累加。主方向为最大的Haar响应累加值对应的方向。
在已得到的特征描述符参数间进行二次计算,丰富描述符的维度,增加独特性。
Hessian矩阵的迹的正负区分特征点周围小邻域与背景图像的对比度,对比度不同的放弃后续相似度测量(欧氏距离)。
各步骤优化以提高速度。SURF善于处理具有模糊和旋转的图像,但是不善于处理视角变化和光照变化。对上述原图进行旋转剪切后与原图像进行SURF特征点检测和匹配如下图:
BRIEF(Binary Robust Independent Elementary Features):解决存储特征点描述符的内存消耗问题。一种简单的二进制特征描述字符串,对SIFT或SURF检测出的特征点进行描述。对已经平滑后的图像按照一定的方式选择一组像素点对,在像素点对之间进行灰度值对比,结果为1/0,产生一串二进制字符。
ORB(Oriented FAST and Rotated BRIEF):FAST找到关键点,Harris角点检测找到前N个关键点。BRIEF表示描述符。使用灰度距算法计算出角点的方向,以角点到角点所在小区域质心的方向为向量的方向。计算角点周围半径为r的圆形区域的矩,根据矩计算出方向提高旋转不变性。BRIEF 对与旋转是不稳定的。在生成特征前把关键点领域的patch 的坐标轴旋转到关键点的方向。算法快,描述符优,低功耗设备的选择。
3.1.4特征匹配
Brute-Force匹配:依次扫描所有待匹配关键点,将距离最近的关键点间做直线连接。
最佳匹配:互为最近匹配点。
FLANN快速最近邻搜索包:(Fast Library for Approximate Nearest Neighbors)一个对大数据集和高维特征进行最近邻搜索的算法的集合,面对大数据集时算法优秀。需要在函数中传入两个字典来确定要使用的算法和相关参数。
3.2深度学习方法
3.2.1 An Artificial Agent for Robust Image Registration
深度学习方法用于转换矩阵的求解。将图像配准问题视为一个“策略学习”过程,找到产生图像对齐的最佳运动序列(例如,向上、向下等)。使用深度卷积神经网络建模,以3D原始图像数据作为输入,下一个最优动作作为输出。提出一种用于端到端训练的贪婪监督方法解决维数问题,并结合注意力驱动的分层策略。
将图像配准视为一个优化问题,用通用的度量标准来描述图像对的配准相似度。粗糙图像层的训练网络对高分辨率图像层进行配准。
先训练有限分辨率和大的FOVs:输入646464,进行粗匹配,获得全局解剖理解,不至于陷入局部最优解,增强鲁棒性。
高分辨率和有限FOVs:精确校准图像。
每个迭代步骤中计算下一动作,最终可以得到具有6个未知数的转换矩阵:
3.2.2 Robust non-rigid registration through agent-based action learning
(基于代理行为学习的鲁棒非刚性校准)
应用于整体变换求解。使用带有自动特征设计的现代深度学习(DL)方法,从经验中学习内在映射来解决现有方法存在的限制。DL帮助器官特异性(ROI-specific)形变配准,训练一个人工agent来解决非刚性配准问题。模糊动作学习,不需要明确设计相似性度量、正则化标准和优化策略。找到非刚性变换的低维表示以最小化可能的动作量,在给定的概率空间内选择某一个动作,动作以一定的概率被接受或惩罚或抛弃。
3.2.3 Unsupervised Deep Homography: A Fast and Robust Homography Estimation Model
可估计单应性,学习特征,对于具有大位移和光照变化的图像配准效果好。应用到无人机图像集中。四点参数化比3×3矩阵计算可靠。矩阵包含了旋转、平移、伸缩、剪切参量,旋转和剪切具有比转化部分小很多的值,其中存在的小误差会极大的影响后续结果。监督学习、无监督学习、基于通用特征方法的算法网络:
综合了直接计算和特征点查找方法,采用无监督学习方法计算出变换矩阵H的L1范式计算损失,适用于图像校准问题,计算简单。像素级光度损失最小化:
四、总结
对图像配准的概念有了初步的了解,通过运行简单的opencv包中的函数程序了解各类传统特征点检测、图像配准方法的差别。查阅文献了解了深度学习方法在图像配准领域的应用方向。
由于opencv包安装不当,部分函数在使用过程中报错,尝试解决未果,继续解决安装问题。对深度学习的知识理解不足,阅读文献过程中有遗漏,应该再进行较为细致的阅读。