图像配准
本文为原创文章,转载请注明出处**
目录
一、图像配准概述
二、图像匹配算法
SIFT
SURF
ORB
暴力匹配
FLANN
深度学习(superpoint)
三、各算法对比
四、图像配准在SLAM中的应用
图像配准概述
匹配:指寻找两幅影像中相似的部分(基于特征点或灰度等),从而找到与搜索图像相似的图像
配准:将不同时间、不同传感器(成像设备)或不同条件下(天候、照度、摄像位置和角度等)获取的两幅或多幅图像进行匹配、叠加的过程
特征点
特征点:图像当中具有代表性的部分
可重复性:相同的区域可在不同的图像中被找到。
可区别性:不同的区域有不同表达。
高效率:同一图像中,特征点的数量应远小于像素的数量。
本地性:特征仅与一小片图像区域有关
特征点信息:
位置、大小、方向、评分等------关键点
特征点周围图像的信息------描述子
特征描述应该在光照、视角发生少量变化时仍能保持一致
基于特征点配准的优缺点
■ 提取待配准图像中的点、线、边缘等特征信息,不需要其它辅助信息,在减少计算量、提高效率的同时,能够对图像灰度的变化有一定的鲁棒性
■ 只采用了图像一小部分的特征信息,所以这种算法对特征提取和特征匹配的精度及准确性要求非常高,对错误非常敏感
■ 特征点所包含的信息相对较少,只能反映出其在图像中的位置坐标信息,所以在两幅图像中寻找匹配的特征点是关键所在
基于特征图像的配准流程
1.首先对两幅图像进行特征提取得到特征点;
2.通过进行相似性度量找到匹配的特征点对;
3.然后通过匹配的特征点对得到图像空间坐标变换参数;
4.最后由坐标变换参数进行图像配准。
高斯金字塔与尺度空间
■ 高斯核是唯一的线性核,对图像模糊不会引入其他噪声
■ 对每层最模糊的一幅图像继续下采样,继续高斯模糊处理
■ 上采样(分辨率逐级升高)和下采样(分辨率逐级降低)
■ 尺度空间(O,S)
– O—octave
– S-层
– (o,s)能够确定高斯金字塔中的唯一一幅图像δ
其中δ为尺度大小,k的几次幂为每个八度(octave)的第几个模糊层
尺度空间图例
差分高斯金字塔
同一个八度的相邻两模糊层做差得到差分高斯金字塔
特征点检测与描述------SIFT
在不同的尺度空间上查找关键点(特征点),计算关键点的大小、方向、尺度信息,利用这些信息组成关键点对特征点进行描述
具体步骤:
■ 1. 生成高斯差分金字塔(DOG金字塔),尺度空间构建
■ 2. 空间极值点检测 (在高斯金字塔中搜索对尺度和旋转不变的特征点)
■ 3. 稳定关键点的精确定位 (离散空间用曲线拟合寻找极值点)
■ 4. 稳定关键点方向信息分配 (图像局部的梯度方向)
■ 5. 关键点描述 (将得到的特征点位置、方向、尺度信息,使用一组向量来描述特征点及其周围邻域像素的信息)
■ 6. 特征点匹配
优缺点
■ 1. 对旋转、尺度缩放、亮度变化保持不变性,对视角变化、噪声等也存在一定程度的稳定性;
■ 2. 独特性,信息量丰富,适用于在海量特征数据中进行快速,准确的匹配;
■ 3. 多量性,即使少数几个物体也可以产生大量的Sift特征向量;
■ 4. 可扩展性,可以很方便的与其他形式的特征向量进行联合;
SIFT结合FLANN
特征点检测–SURF
■ 1. 用Hessian矩阵构造高斯金字塔尺度空间构建
(高斯滤波后进行矩阵计算构建金字塔)
■ 2. 非极大值抑制初步确定特征点
■ 3. 稳定关键点的精确定位 (连续空间到离散空间)
■ 4. 选取主方向 (统计特征点邻域内的harr小波特征)
■ 5. 关键点描述
16*4=64维
■ 6. 特征点匹配
通过LOWE的论文可知,SIFT和SURF的速度相差一个数量级
原因
1.描述子的维度不同
SIFT是取1616的邻域分成44的块区域,每块统计八个方向梯度,所以为478=128维
SURF是分成16块,每块统计25个点4个方向的小波特征,所以为16*4=64维
2.SIFT是固定高斯核,改变图像尺寸; SURF固定尺寸,改变高斯核,所以SURF可以通过同一尺寸的图像与多个高斯核卷积并行处理
特征检测–SURF效果图
特征描述与匹配------SURF效果图
上述图片存在误匹配点,可以使用LM算法进行优化同时采用RANSAC算法筛选出内点
特征检测------ORB
ORB特征
关键点:oriented FAST
描述: BRIEF
FAST:连续N个点的灰度有明显差异
若某像素与其周围邻域内足够多的像素点相差较大,则该像素可能是角点
如下面介绍FAST-10(连续十个点超过阈值)算法步骤
算法步骤:
上图所示,
1.一个以像素p为中心,半径为3的圆上,有16个像素点(p1、p2、…、p16)。
2、定义一个阈值。计算p1、p9、p5、p13与中心p的像素差,若它们的绝对值有至少3个超过阈值,则当做候选角点,再进行下一步考察;否则,不可能是角点;
3、若p是候选点,则计算p1到p16这16个点与中心p的像素差,若它们有至少连续10(所以为FAST-10)个超过阈值,则是角点;否则,不可能是角点。
4、对图像进行非极大值抑制:计算特征点出的FAST得分值(即score值,也即s值),判断以特征点p为中心的一个邻域(如3x3或5x5)内,计算若有多个特征点,则判断每个特征点的s值(16个点与中心差值的绝对值总和),若p是邻域所有特征点中响应值最大的,则保留;否则,抑制。若邻域内只有一个特征点(角点),则保留。得分计算公式如下(公式中用V表示得分,t表示阈值):
FAST算法实现起来简单,尤其是以速度快著称。
oriented Fast:在FAST基础上计算旋转
Brief(binary robust independent elementary features)描述子:
在特征点附近随机选取若干点对,将所选取的点的灰度值组成一个二进制串作为特征点描述子,用汉明距离度量
速度快,但是不具备旋转不变性和尺度不变性,对噪声敏感
特征检测–ORB
图像匹配------暴力匹配和FLANN匹配器
图像匹配:通过描述子的差异判断哪些特征为同一点
暴力匹配:比较图A的每个特征的与图B的所有特征点的距离,相当于轮询
加速:快速最近邻(FLANN)
对大数据集和高维特征进行最近邻搜索的算法的集合,如k近邻算法等
暴力匹配
FLANN特征点匹配
用快速近邻方法找到特征点匹配对,速度快,如图中找到了22对匹配的特征点
SURF和ORB的对比
SURF:用时0.6938s,用RANSAC算法和LM算法优化筛选出的匹配点对为243对
ORB:用时0.1184s,用RANSAC算法和LM算法优化筛选出的匹配点对为80对
正如论文中所提到的,ORB比SURF快一个数量级,SURF比SIFT快一个数量级
Self-Supervised Interest Point Detection and Description(基于深度学习)
■ 描述符具有优良特性,在定位场景下,可以对季节和环境光照具有更强的鲁棒性
■ 虽然深度学习目前还不能很好的支持SLAM中的几何计算和位姿估计,但是在特征点跟踪和匹配上可以做得很好
SLAM中的图像配准
实时性必须强,速度必须要快,可以在质量和速度之间折中
■ SIFT,SURF等特征提取方法具有较好的并行性,可通过GPU等设备加速运算,如加速后的SIFT就满足实时性的要求。
■ 在目前的SLAM方案中,ORB是质量与性能之间较好的折中
■ ORB在平移、旋转、缩放的变换下仍具有较好的表现
■ FAST和BRIEF的组合非常高效
■ 匹配的时候采用快速近似最近邻